|
|
In Standard Win32 Platform, it is not allow to use inport
and outport. It should be instead by writing Device
Driver. But, we can use asm in Windows 95/98 to do this:File
List bcbio.h :
- void outportb(unsigned short int port,unsigned
char value)
{
__emit__(0x8b,0x95,&port);
//mov edx,*(&port);
__emit__(0x8a,0x85,&value);
//mov al,*(&value);
__emit__(0x66,0xee);
//out dx,al;
}
void outportw(unsigned short int port,unsigned
short int value)
{
__emit__(0x8b,0x95,&port);
//mov edx,*(&port);
__emit__(0x66,0x8b,0x85,&value);
//mov ax,*(&value);
__emit__(0xef);
//out dx,ax;
}
char inportb(unsigned short int port)
{
char value;
__emit__(0x8b,0x95,&port);
//mov edx,*(&port);
__emit__(0x66,0xec);
//in al,dx;
__emit__(0x88,0x85,&value);
//mov *(&value),al;
return value;
}
short int inportw(unsigned short int
port)
{
short int value;
__emit__(0x8b,0x95,&port);
//mov edx,*(&port);
__emit__(0xed);
//in ax,dx;
__emit__(0x66,0x89,0x85,&value);
//mov *(&value),ax;
return value;
}
|
|
|