cos2000v2/lib/port.c

69 lines
1.5 KiB
C
Raw Normal View History

#include "types.h"
#include "asm.h"
/*******************************************************************************/
/* Envoie une s<>rie d'octet a destination d'une portion de m<>moire
vers le registre video sp<EFBFBD>cifi<EFBFBD> */
void outreg(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
outb(port,i);
outb(port+1,*src++);
}
}
/*******************************************************************************/
/* Envoie une s<>rie d'octet a destination d'une portion de m<>moire
vers le registre video sp<EFBFBD>cifi<EFBFBD> (acc<EFBFBD>s data et index confondu) */
void outregsame(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
inb(port);
outb(port,i);
outb(port,*src++);
}
}
/*******************************************************************************/
/* R<>cup<75>re une s<>rie d'octet en provenance d'un registre video sp<73>cifi<66>
vers portion de m<EFBFBD>moire */
void inreg(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
outb(port,i);
*src++=inb(port+1);
}
}
/*******************************************************************************/
/* R<>cup<75>re une s<>rie d'octet en provenance d'un registre video sp<73>cifi<66>
vers portion de m<EFBFBD>moire (acc<EFBFBD>s data et index confondu) */
void inregsame(u16 port,u8 *src,u16 num)
{
int i;
for(i=0;i<num;i++)
{
inb(port);
outb(port,i);
*src++=inb(port);
}
}
/*******************************************************************************/