;test routine for 9512 BDOS EQU 5 PSTRING EQU 9H ;PRINTS STRING IN DE REGISTER RCON EQU 0AH ;READS STRING INTO LOCATION IN DE REG. COUT EQU 2H ;OUTPUTS SINGLE CHARACTER IN REG E TO TERMINAL CIN EQU 1 ;INPUTS CONSOLE CHARACTER TO REG A CR EQU 0AH LF EQU 0DH DREG EQU 58H creg: equ 59H ; ORG 100H lxi d,cpymsg ;print copyright message mvi c,pstring call bdos ; LXI SP,STACK ;INITIALIZE STACK ; START: LXI D,GREET MVI C,PSTRING CALL BDOS ; XRA A STA COUNT ;INITIALIZE COUNTER ; ;write table1 to 9512 EXAM: lxi h,tbl1 mvi c,8 test1: mov a,m out dreg inx h dcr c jnz test1 mvi a,1 out creg nop ;put rst 7 here for operation with ndt ;compare 9512 answer with predicted answer mvi c,4 lxi h,tbl1A comp1: in dreg cmp m jnz error inx h dcr c jnz comp1 nop ;put rst 7 here for ddt in creg ;check status lxi d,okmsg mvi c,pstring call bdos nop ;put rst 7 here for ddt jmp 0 ; ;IF ONE OFF THEN POP 2-- IF NO GO ONE MORE TEST SHOULD DO IT ; error: lxi d,errmsg mvi c,pstring call bdos nop ;put rst 7 here for ddt LDA COUNT INR A STA COUNT CPI 3 JZ PERM CPI 2 JZ SECOND IN DREG ;ADJUST 9512 STACK POINTER IN DREG SECOND: LXI D,ADJMSG MVI C,PSTRING CALL BDOS jmp EXAM ; PERM: LXI D,PERMSG MVI C,PSTRING CALL BDOS EXIT: JMP 0 ; COUNT: DB 0 ; ;MESSAGES ; GREET: DB CR,LF,'9512 TEST BEGUN',CR,LF,'$' ; ERRMSG: DB CR,LF,'ERROR ','$' OKMSG: DB CR,LF,'OK ','$' ADJMSG: DB CR,LF,'ADJUSTING 9512 STACK',CR,LF,'$' PERMSG: DB CR,LF,'PERMANENT ERROR',CR,LF,'$' cpymsg: DB CR,LF,'COPYRIGHT COMPUPRO 1983' DB CR,LF,CR,LF,'$' ; TBL1: DB 00,00,80H,3FH,00,00,80H,3FH TBL1A: DB 40H,00,00,00 DS 64 ;32 LEVEL STACK STACK: