Intel 386 User Manual
Page 558

C-9
EXAMPLE CODE HEADER FILES
#define SIO_TX_EMPTY
0x40
/* Offsets from beginning of SIO port addresses */
#define RBR
0
#define TBR
0
#define DLL
0
#define IER
1
#define DLH
1
#define IIR
2
#define LCR
3
#define MCR
4
#define LSR
5
#define MSR
6
#define SCR
7
#define SIO0_BASE
0xF4F8
#define SIO1_BASE
0xF8F8
/* Define Function Macros */
#define GetSIO0Status()
_GetEXRegByte(LSR0)
#define GetSIO1Status()
_GetEXRegByte(LSR1)
#define GetSIO0InterruptID()
_GetEXRegByte(IIR0)
#define GetSIO1InterruptID()
_GetEXRegByte(IIR1)
#define GetSIO0ModemStatus()
_GetEXRegByte(MSR0)
#define GetSIO1ModemStatus()
_GetEXRegByte(MSR1)
#define GetSIO0Char()
_GetEXRegByte(RBR0)
#define GetSIO1Char()
_GetEXRegByte(RBR1)
#define ChangeSIO0IntrSrc(src)
_SetEXRegByte(IER0,src)
#define ChangeSIO1IntrSrc(src)
_SetEXRegByte(IER1,src)
#define ChangeSIO0Mode(Mode)
_SetEXRegByte(LCR0,Mode)
#define ChangeSIO1Mode(Mode)
_SetEXRegByte(LCR1,Mode)
#define DisableSIO0Interrupt(src) _SetEXRegByte(IER0,_GetEXRegByte(IER0) &
!(src))
#define DisableSIO1Interrupt(src) _SetEXRegByte(IER1,_GetEXRegByte(IER1) &
!(src))
/* SIO Function Definitions */
extern int
InitSIO
(int Unit, BYTE Mode, BYTE ModemCntrl, DWORD BaudRate,
DWORD BaudClkIn);
extern BYTE SerialReadChar(int Unit);
extern int SerialReadStr(int Unit, char far *str, int count);
extern void SerialWriteChar(int Unit, BYTE ch);
extern void SerialWriteStr(int Unit, const char far *str);
extern void SerialWriteMem(int Unit, const char far *mem, int count);
void interrupt far Serial0_ISR(void);
extern void Service_RBF (void);
extern void SerialWriteStr_Int(int Unit, const char far *str);
extern void Service_TBE(void);
/***************** DMA configuration defines *****************/