* * PROCESSOR TECHNOLOGY 32KRA-1 TEST * * ORG 0C900H XEQ 0C900H * LXI SP,0CBFFH * RTRN EQU 0C004H SOUT EQU 0C019H SINP EQU 0C01FH VDADD EQU 0C11CH * * ANNOUNCE TEST * * LXI H,MSG1 CALL STRNG XRA A STA CFLAG CALL GET CPI 'C' JNZ INIT PUSH PSW MVI A,0FFH STA CFLAG POP PSW * INIT CALL PUT CALL CRLF LXI H,0 SHLD ROW1 SHLD ROW2 SHLD BDADR Board address is assumed to be 0 * CONT LHLD COUNT Update pass counter INR H MVI A,39H CMP H JNC C1 INR L MVI H,30H C1 SHLD COUNT LXI H,MSG2 CALL STRNG SUB A STA PAGE STA FILL * MAIN LDA FILL RLC CALL WRITE SUB A STC * LOOP1 PUSH PSW CALL NXTPG MVI E,003H * TEST1 CALL TEST DCR E JNZ TEST1 LDA FILL RLC CALL READ POP PSW RAR JNC LOOP1 CMP A MVI A,0FFH * LOOP2 PUSH PSW CALL NXTPG MVI E,003H * TEST2 CALL TEST DCR E JNZ TEST2 LDA FILL RLC CALL READ POP PSW RAR JC LOOP2 CALL NXTPG LDA PAGE ORA A JNZ MAIN LDA FILL CMA STA FILL ORA A JNZ MAIN * CALL MAP OUTPUT CHIP MAP * LDA CFLAG ORA A JZ RTRN JMP CONT * * SUBROUTINES * MAP CALL CRLF LHLD ROW1 CALL LINE MOV L,H CALL LINE LHLD ROW2 CALL LINE MOV L,H CALL LINE CALL CRLF RET * LINE MVI D,004H * PAIR MOV A,L RAR MOV L,A CALL CHIP MOV A,L RAR MOV L,A CALL CHIP CALL SPAC1 DCR D JNZ PAIR CALL CRLF RET * SPAC1 MVI A,020H JMP MARK1 * CHIP MVI A,'G' JNC MARK1 MVI A,'X' * MARK1 CALL PUT CMP A RET * STRNG MOV A,M INX H CPI 0 RZ CALL PUT JMP STRNG * PUT PUSH H MOV B,A CALL SOUT POP H RET * GET CALL SINP JZ GET ANI 07FH RET * CRLF MVI A,00DH CALL PUT MVI A,00AH CALL PUT RET * NXTPG PUSH PSW CALL SINP CPI 01BH See if ESC was typed JNZ N1 CALL MAP JMP RTRN N1 LDA PAGE ADI 020H ANI 060H STA PAGE POP PSW RET * GETPG PUSH PSW LDA PAGE LHLD BDADR ADD H MOV H,A POP PSW RET * TEST CALL WRITE CALL READ CALL NXTPG CALL VDADD Show some activity MOV A,M ADI 80H Blink the cursor MOV M,A RET * WRITE PUSH PSW CALL GETPG MVI D,020H WRIT1 PUSH PSW MOV M,A XRA M CNZ BITER POP PSW RAL INR L JNZ WRIT1 INR H DCR D JNZ WRIT1 POP PSW RET * READ PUSH PSW CALL GETPG MVI D,020H READ1 PUSH PSW XRA M CNZ BITER POP PSW RAL INR L JNZ READ1 INR H DCR D JNZ READ1 POP PSW RET * BITER PUSH H MOV B,A LDA PAGE RLC RLC RLC LXI H,BITS ADD L MOV L,A MOV A,M ORA B MOV M,A POP H RET * MSG1 DW 0A0BH DW 2020H DW 2020H DW 2020H ASC " PROCESSOR TECHNOLOGY 32KRA-1" ASC " TEST" DW 0A0DH ASC "COPYRIGHT (C) 1978, PROCESSOR" ASC " TECHNOLOGY CORP." DW 0A0DH DW 0A0DH ASC "TYPE 'C' TO RUN CONTINUOUSLY" ASC " AND ACCUMULATE ERRORS." DW 0A0DH ASC "STRIKE ANY OTHER KEY TO RUN ONE PASS." DW 0A0DH ASC "STRIKE ESCAPE TO HALT TEST" DW 0A0DH DB 0 * MSG2 ASC "32KRA-1 TEST IN PROGRESS. PASS NO. " COUNT DW 3030H DW 0A0DH DB 00 * CFLAG DS 1 BDADR DS 2 BITS EQU $ ROW1 DS 2 ROW2 DS 2 PAGE DS 1 FILL DS 1 *