; TITLE ZMSM-1.Z80 - 01/01/88 - ZMD I/O Overlay for SMARTMODEM w/8251 ; Copyrighted (c) 1987, 1988 ; Robert W. Kramer III PAGE ;- -; ; Update History ; ; ; ; Date Release Comments ; ; -------- ------- ---------------------------------------------- ; ; ; ; 01/01/88 v1.00 - Initial version ; ;- -; ; MODCTLP EQU 3 ; Base port address MODSNDB EQU 1 ; Bit to test fot send MODSNDR EQU 1 ; Value when ready MODRCVB EQU 2 ; Bit to test for receive MODRCVR EQU 2 ; Value when ready MODDCDB EQU 1 ; Carrier detect bit MODDCDA EQU 1 ; Value when active MODDATP EQU MODCTLP-1 ; Data IN port MODDATO EQU MODCTLP-1 ; Data OUT port BAUDRP EQU 5 ; Baud rate output/modem status ; ;-------------------------------------------------------------------------; ; Input/Output Jump Table | ;-------------------------------------------------------------------------; ; ORG 0580H ; Start after configuration table JP 0000H ; See CONOUT.INF JP INIT ; Initialization routine JP UNINIT ; Unititialize routine JP SNDCHR ; Send character JP CARCHK ; Test for carrier JP GETCHR ; Get character from modem JP RCVRDY ; Check receive ready JP SNDRDY ; Check send ready ; ;-------------------------------------------------------------------------; ; System startup inititialization routine | ;-------------------------------------------------------------------------; INIT: RET ; ;-------------------------------------------------------------------------; ; System exit unititialization routine | ;-------------------------------------------------------------------------; UNINIT: RET ; ;-------------------------------------------------------------------------; ; Send character out modem | ;-------------------------------------------------------------------------; SNDCHR: POP AF ; Get character from stack OUT (MODDATO),A ; Send character RET ; ;-------------------------------------------------------------------------; ; Check for carrier | ;-------------------------------------------------------------------------; CARCHK: IN A,(BAUDRP) ; Get status AND MODDCDB ; Get cd bit CP MODDCDA ; Test bit RET ; ;-------------------------------------------------------------------------; ; Get character from modem | ;-------------------------------------------------------------------------; GETCHR: IN A,(MODDATP) ; Get character RET ; Return it ; ;-------------------------------------------------------------------------; ; Check modem receive ready | ;-------------------------------------------------------------------------; RCVRDY: IN A,(MODCTLP) AND MODRCVB ; Isolate ready bit CP MODRCVR ; Test it LD A,0 RET ; ;-------------------------------------------------------------------------; ; Check modem send ready | ;-------------------------------------------------------------------------; SNDRDY: IN A,(MODCTLP) ; Get status byte AND MODSNDB ; Mask off bit to be tested XOR MODSNDR ; Set status flag RET END