fix: Correction des ports entrée-sortie
This commit is contained in:
parent
252515be4a
commit
68445d3a54
136
lib/port.c
136
lib/port.c
|
@ -1,68 +1,68 @@
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "asm.h"
|
#include "asm.h"
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
/* Envoie une série d'octet a destination d'une portion de mémoire
|
/* Envoie une série d'octet a destination d'une portion de mémoire
|
||||||
vers le registre video spécifié */
|
vers le registre video spécifié */
|
||||||
|
|
||||||
void outreg(u16 port,u8 *src,u16 num)
|
void outreg(u16 port,u8 *src,u16 num)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i=0;i<num;i++)
|
for(i=0;i<num;i++)
|
||||||
{
|
{
|
||||||
outb(port,i);
|
outb(port,i);
|
||||||
outb(port+1,*src++);
|
outb(port+1,*src++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
/* Envoie une série d'octet a destination d'une portion de mémoire
|
/* Envoie une série d'octet a destination d'une portion de mémoire
|
||||||
vers le registre video spécifié (accés data et index confondu) */
|
vers le registre video spécifié (accés data et index confondu) */
|
||||||
|
|
||||||
void outregsame(u16 port,u8 *src,u16 num)
|
void outregsame(u16 port,u8 *src,u16 num)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i=0;i<num;i++)
|
for(i=0;i<num;i++)
|
||||||
{
|
{
|
||||||
inb(port);
|
inb(port);
|
||||||
outb(port,i);
|
outb(port,i);
|
||||||
outb(port,*src++);
|
outb(port,*src++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
/* Récupère une série d'octet en provenance d'un registre video spécifié
|
/* Récupère une série d'octet en provenance d'un registre video spécifié
|
||||||
vers portion de mémoire */
|
vers portion de mémoire */
|
||||||
|
|
||||||
void inreg(u16 port,u8 *src,u16 num)
|
void inreg(u16 port,u8 *src,u16 num)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i=0;i<num;i++)
|
for(i=0;i<num;i++)
|
||||||
{
|
{
|
||||||
outb(port,i);
|
outb(port,i);
|
||||||
*src++=inb(port+1);
|
*src++=inb(port+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
/* Récupère une série d'octet en provenance d'un registre video spécifié
|
/* Récupère une série d'octet en provenance d'un registre video spécifié
|
||||||
vers portion de mémoire (accés data et index confondu) */
|
vers portion de mémoire (accés data et index confondu) */
|
||||||
|
|
||||||
void inregsame(u16 port,u8 *src,u16 num)
|
void inregsame(u16 port,u8 *src,u16 num)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i=0;i<num;i++)
|
for(i=0;i<num;i++)
|
||||||
{
|
{
|
||||||
inb(port);
|
inb(port);
|
||||||
outb(port,i);
|
outb(port,i);
|
||||||
*src++=inb(port);
|
*src++=inb(port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue