; CROSSTALK drivers for ALTOS computers : ; Revised 8/16/82 by LAF - added INIT routine to ; allow operation under MP/M 2.1 ; Revised again 8/24/82 by LAF - fixed ORG conflict ; in CARR routine.... ; NOTE: for the Series 5 computers, set "acs8002" to TRUE true equ 1 false equ 0 acs8002 equ false ;set true for altos 8000-2 or series 5 others equ not acs8002 ;for other models (-7,-10,etc.) if acs8002 status equ 01fh data equ 01eh endif if others status equ 029h data equ 028h endif start: org 100h jmp init ;go set up port org 110h sstat: in status ;get serial port status ani 1 ;Test for char. waiting ret ;and return sin: org 120h in status ;get serial port status ani 1 ;char. ready ? jz sin ;loop if not in data ;get char. ret ;and return sout: org 130h push psw ;save char. sout1: mvi a,10h ;reset serial status out status in status ;get status ani 04h ;ready? cpi 04h jnz sout1 ;loop if not pop psw ;put char. in acc. out data ;and send it to modem ret carr: ret ;no carrier detect init: ; set up Altos port for communications: mvi a,18h ; reset port out status out status mvi a,1 ; point to WR #1 out status xra a ; no interrupts out status mvi a,3 ; point to WR #3 out status mvi a,0c1h ; Rx 8 bits, Rx enable out status mvi a,4 ; point to WR #4 out status mvi a,44h ; 16X clock, 1 stop bit out status mvi a,5 ; point to WR#5 out status mvi a,0eah ; DTR on, Tx 8 bits, Tx enable, RTS on out status jmp 200h ; now jump into xtalk program end