home *** CD-ROM | disk | FTP | other *** search
- ; Written by Chris Sokol
-
- DEBUG EQU 1
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Constant equates ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- BA300 EQU 000h
- BA1200 EQU 001h
- BA2400 EQU 002h
- BA4800 EQU 003h
- BA9600 EQU 004h
- BA19200 EQU 005h
- BA38400 EQU 006h
- BA57600 EQU 007h
- BA115200 EQU 008h
-
- EOI EQU 20h
-
- ERRbhand EQU 0ffffh
- ERRbio EQU 0fffeh
- ERRbirq EQU 0fffdh
- ERRbtype EQU 0fffch
- ERRnbuff EQU 0fffbh
- ERRqfull EQU 0fffah
-
- IDPend EQU 001h
- IDMask EQU 006h
- IDMSR EQU 000h
- IDTX EQU 002h
- IDRX EQU 004h
- IDLSR EQU 006h
-
- IEDATA EQU 001h
- IETHRE EQU 002h
- IELSR EQU 004h
- IEMSR EQU 008h
-
- LCWLen0 EQU 001h
- LCWLen1 EQU 002h
- LCStop EQU 004h
- LCParEn EQU 008h
- LCParEv EQU 010h
- LCParSt EQU 020h
- LCSBrk EQU 040h
- LCDLAB EQU 080h
-
- LSData EQU 001h
- LSOver EQU 002h
- LSPari EQU 004h
- LSFram EQU 008h
- LSBreak EQU 010h
- LSHREmp EQU 020h
- LSSREmp EQU 040h
-
- MAX_TTYS EQU 8
-
- MCDTR EQU 001h
- MCRTS EQU 002h
- MCOUT1 EQU 004h
- MCOUT2 EQU 008h
- MCLOOP EQU 010h
-
- MOCW1 EQU 021h
- MOCW2 EQU 020h
-
- MSDCTS EQU 001h
- MSDDSR EQU 002h
- MSTERI EQU 004h
- MSDRLSD EQU 008h
- MSCTS EQU 010h
- MSDSR EQU 020h
- MSRI EQU 040h
- MSRLSD EQU 080h
-
- RXchar EQU 000h
- RXlins EQU 001h
- RXmdms EQU 002h
- RXhinv EQU 0feh
- RXndat EQU 0ffh
-
- SOCW1 EQU 0a1h
- SOCW2 EQU 0a0h
-
- THFhfctl EQU 00001h
- THFhwait EQU 00002h
- THFopen EQU 00004h
- THFxfctl EQU 00008h
- THFxmit EQU 00010h
- THFxwait EQU 00020h
-
- TXchar EQU 000h
- TXbaud EQU 001h
- TXhwfc EQU 002h
- TXlinc EQU 003h
- TXmdmc EQU 004h
- TXxofc EQU 005h
-
- UATxBuf EQU 00000h
- UARxBuf EQU 00000h
- UADvLsb EQU 00000h
- UADvMsb EQU 00001h
- UAIntEn EQU 00001h
- UAIntId EQU 00002h
- UALiCtl EQU 00003h
- UAMdCtl EQU 00004h
- UALiSta EQU 00005h
- UAMdSta EQU 00006h
- UAHCR EQU 00007h
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Structures ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- TTYBuf STRUC
- TBbuff DD ?
- TBin DW ?
- TBout DW ?
- TBsize DW ?
- TTYBuf ENDS
-
- TTYHand STRUC
- THflags DW ?
- THhand DW ?
- THioaddr DW ?
- THirqno DW ?
- THlinc DB ?
- THlins DB ?
- THmdmc DB ?
- THmdms DB ?
- THnxtirq DW ?
- THprvirq DW ?
- THrxbuf TTYBuf <>
- THselect DW ?
- THtxbuf TTYBuf <>
- TTYHand ENDS
-
- TTYIrq STRUC
- TIhead DW ?
- TIoldvec DD ?
- TItail DW ?
- TTYIrq ENDS
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Macros ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- IVEC_NO = 0
-
- jmps MACRO where
- jmp short where
- ENDM
-
- GenIVec MACRO ivnum
- IVec&ivnum:
- push si
-
- lea si, IrqPtrs + (ivnum * SIZE TTYIrq)
- jmp IntHand
- ENDM
-
- GenIVIdx MACRO ivnum
- DW IVec&ivnum
- ENDM
-
- UAddr MACRO off
- mov dx, ds:[si].THioaddr
-
- IF off
- add dx, off
- ENDIF
- ENDM
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-