; CENTRONICS TEST PROGRAM ; 3/25/82 ; ;* ;* ;* INTERFACER 3 TEST PROGRAM ;* ;* ;* base equ 10h udata equ BASE+0h ;data port in and out ustat equ BASE+1h ;status register port mode equ BASE+2h ;mode register port commr equ BASE+3h ;command register port txreg equ BASE+4h ;tx int register rxreg equ BASE+5h ;rx int register user equ BASE+7h ;port to select user exit equ 0 ;CP/M reentry point tbmt equ 01h ;transmitter buffer empty dav equ 02h ;data available cr equ 0dh ;carr. return lf equ 0ah ;line feed bdos equ 5 pstring equ 9H * * * org 100h lxi d,cpymsg mvi c,pstring call bdos start1 call setup ;setup message area start2 call start ;init user line1 lxi h,msg1 ;point to message call print ;print message lxi h,msg3 ;point call print ;print lxi h,msg4 ;point call print ;print lxi h,msg5 ;point graphics call print ;print graphics mvi c,0bh ;check call 0005h ; console cpi 00h ; status jz start2 ;for entry jmp 0 ;exit Start mvi a,04H ;init CENTRONICS out user ;select uart mvi a,0ffh ;interrupts enable out txreg ;transmit int enabled out rxreg ;receive enabled mvi a,0h ;init centronics out ustat ;out ret setup lxi h,msg3 ;point to buffer mvi a,20h ;init sloop mov m,a ;put byte inr a ;next up inx h ;next loc cpi 40h ;beyond last char jz done1 ; jmp sloop ;again done1 mvi a,cr ;carrage return mov m,a ; inx h ; mvi a,lf ;line feed mov m,a ; inx h ; mvi a,0 ;null mov m,a ;place setup1 lxi h,msg4 ;point to buffer mvi a,40h ;init sloop1 mov m,a ;put byte inr a ;next up inx h ;next loc cpi 7eh ;beyond last char jz done2 ; jmp sloop1 ;again done2 mvi a,cr ;carrage return mov m,a ; inx h ; mvi a,lf ;line feed mov m,a ; inx h ; mvi a,0 ;null mov m,a ;place setup2 lxi h,msg5 ;point to buffer mvi a,0A0h ;init sloop2 mov m,a ;put byte inr a ;next up inx h ;next loc cpi 0E0h ;beyond last char jz done3 ; jmp sloop2 ;again done3 mvi a,cr ;carrage return mov m,a ; inx h ; mvi a,lf ;line feed mov m,a ; inx h ; mvi a,0 ;null mov m,a ;place ret print call start ;select user call instat ;check status mov a,m ;get byte cpi 0 ;is it a null? rz ;done out udata ;output data inx h ;next byte jmp print ;again instat in ustat ;get status cpi 0c5h ;check all ok? jnz instat ;loop not ready ret msg1 db cr,lf,lf db 'This is a test of the INTERFACER 4 CENTRONICS port' db cr,lf,lf db 0 msg2 db cr,lf,lf db 0 cpymsg: db cr,lf,'COPYRIGHT COMPUPRO 1983' DB CR,LF,CR,LF,'$' msg3 ds 100h msg4 ds 100h msg5 ds 100h end