;program to transfer terminal port to modem port ;for micro decision ;modified by dan lopez for md11,4/9/84. tpa equ 100h chout equ 2 strout equ 9 bdos equ 5 tdata equ 60h ;terminal data port register (port 1 data) tstat equ 61h ;terminal status port register (port 1 status) ldata equ 62h ;list data port register (port 2 data) lstat equ 63h ;list status port register (port 2 status) mdata equ 70h ;modem data port register (port 3 data) mstat equ 71h ;modem status port register (port 3 status) baudset equ 53h ;ctc channel select/mode port baud0 equ 52h ;baud rate control for serial port 1 (con:) baud1 equ 51h ;baud rate control for serial port 2 (lst:) baud2 equ 50h ;baud rate control for serial port 3 (aux:) b300 equ 342h ;300 baud \ b1200 equ 0d0h ;1200 baud > baud rate definitions for ctc b9600 equ 01ah ;9600 baud / b19200 equ 00dh ;19200 baud/ auxmode equ 3eh ;ctc mode 3 channel 0 done equ '\'-64 ;control \ to exit (mdt60 adds +80h offset) char equ 1 ;test for char present (dart ready bit) org tpa begin: jmp signon db 0dh,0ah,'terminal program for md11, modified by DJL',1ah signon: lxi d,signmsg ;print signon message mvi c,strout call bdos aux: mvi a,auxmode ;set ctc to aux: program mode out baudset ;output to ctc channel port mvi a,b9600 ;low byte (9600 baud) out baud2 ; mvi a,00h ;high byte (same for all baud rates) out baud2 start: in tstat ani char ;set if char avail jz mtest ;if (char) in tdata ;get char cpi done jz exit ;exit if done out mdata ;if not, send to modem mtest: in mstat ani char jz start ;if (char) in mdata ;read modem char mov e,a ;put in [e] per cp/m mvi c,chout ;output char call bdos jmp start exit: lxi d,rtnmsg ;output return message mvi c,strout call bdos ret rtnmsg: db 0dh,0ah,'RETURNING TO MD11',0dh,0ah,'$' signmsg: db 'TALKING THRU AUX: PORT AT 9600 BAUD',0dh,0ah,'$' end