void setup(char *serport, int baud) { int x = 115200 / baud; SetPhysByte((paddr_t)serport+LCR, 128); sync(); SetPhysByte((paddr_t)serport+BAUDLOW, x & 255); sync(); SetPhysByte((paddr_t)serport+BAUDHIGH, x >> 8); sync(); SetPhysByte((paddr_t)serport+LCR, 3); sync(); }
inline void send(char *serport, char c) { /* Wait for Clear to Send */ while( !(GetPhysByte((paddr_t)serport+LSR) & 0x20) ) sync(); SetPhysByte((paddr_t)serport+THR, c); sync(); }
VOID NTAPI WRITE_PORT_BUFFER_UCHAR (PUCHAR Port, PUCHAR Buffer, ULONG Count) { while(Count--) { SetPhysByte((ULONG)Port, *Buffer++); } }
void IntEnable() { SetPhysByte((paddr_t)serport+IER, GetPhysByte((paddr_t)serport+IER) | 1); }
VOID NTAPI WRITE_PORT_UCHAR (PUCHAR Port, UCHAR Value) { SetPhysByte((ULONG)Port, Value); }