* VDADD EQU 0C11CH PSCAN EQU 0C310H SINP EQU 0C01FH SOUT EQU 0C019H EXIT EQU 0C004H HEOUT EQU 0C40BH * * MEMORY TEST FROM SCCS INTERFACE 9/77 * ORG 0C900H XEQ 0C900H * BEGIN LXI SP,0CBFFH CALL CRLF MVI B,0BH CALL SOUT LXI H,MSG1 CALL STRNG CALL INPUT SHLD START LXI H,MSG2 CALL STRNG CALL INPUT SHLD FINIS CALL CRLF * MAIN LHLD START SPHL MOV D,H MOV E,L LHLD FINIS MOV C,L MOV B,H LXI H,0001 LOOP1 INX SP INX SP PUSH H POP H LXI H,0 DAD SP MOV A,C SUB L MOV A,B SBB H JC DONE1 DCX SP DCX SP POP H MOV A,L ADD A MOV L,A MOV A,H RAL MOV H,A MVI A,0 ADC L MOV L,A MOV A,H RLC RLC RLC XRA L RRC RRC ANI 1 XRA L MOV L,A JMP LOOP1 DONE1 MOV L,E MOV H,D MVI A,1 CMP M JNZ CHECK DCR A INX H CMP M JNZ ERROR JMP LOOP2 CHECK MVI A,0FEH CMP M MVI A,1 JNZ ERROR DCR A DCR A INX H CMP M JNZ ERROR LOOP2 MOV A,M RAL DCX H MOV A,M RAL MOV M,A INX H MOV A,M RAL MOV M,A INX H MOV A,C SUB L MOV A,B SBB H JC DONE2 DCX H MOV A,M RLC RLC RLC DCX H XRA M RRC RRC ANI 1 XRA M INX H INX H CMP M JNZ ERROR INX H MOV A,C SUB L MOV A,B SBB H JC DONE2 DCX H DCX H MOV A,M INX H INX H CMP M JNZ ERROR JMP LOOP2 DONE2 MOV L,E MOV H,D SPHL LXI H,0FFFEH LDAX D CPI 2 JZ LOOP1 MOV L,E MOV H,D LXI D,0AA55H LOOP3 MOV M,D INX H MOV M,E INX H MOV A,C SUB L MOV A,B SBB H JNC LOOP3 LXI H,0 DAD SP LOOP4 MOV A,D MOV D,E MOV E,A CMP M JNZ ERROR INX H MOV A,C SUB L MOV A,B SBB H JNC LOOP4 LXI H,0 DAD SP LXI D,055AAH MOV A,M CPI 0AAH JZ LOOP3 LXI D,0FFFFH CPI 55H JZ LOOP3 LXI D,0 INR A JZ LOOP3 * ST5 LXI H,MSG3 CALL STRNG CALL CRLF JMP BEGIN * ERROR SHLD STACK LXI SP,0CBFFH LXI H,MSG4 MOV D,A CALL STRNG ER1 LHLD STACK MOV B,D PUSH B XCHG CALL OUTER ER2 MOV D,E CALL OUTER POP B ER3 MOV D,B LXI H,MSG5 CALL STRNG ER4 CALL OUTER ER5 LXI H,MSG6 CALL STRNG ER6 LHLD STACK MOV E,D MOV D,M CALL OUTER ER7 LXI H,MSG7 CALL STRNG ER8 MVI D,0 MVI B,1 LHLD STACK MOV A,E XRA M MOV E,A LOP INR D MOV A,E RAR MOV E,A JNC NOERR DCR B JZ LOPE LUPE PUSH B MVI B,2CH CALL SOUT POP B LOPE MOV A,D ADI 2FH PUSH B MOV B,A CALL SOUT POP B NOERR MOV A,D CPI 8 JNZ LOP JMP BEGIN * OUTER PUSH D MOV A,D CALL HEOUT POP D CALL SINP ANI 7FH CPI 1BH JZ EXIT RET * CRLF MVI B,0DH CALL SOUT MVI B,0AH CALL SOUT RET * STRNG PUSH H MOV B,M CALL SOUT POP H INX H MOV A,M CPI 0 JNZ STRNG RET * INPUT CALL VDADD XCHG DCX D INP1 CALL SINP JZ INP1 ANI 7FH CPI 0DH JZ INP2 MOV B,A CALL SOUT JMP INP1 INP2 MVI B,20H CALL SOUT CALL PSCAN RET * START DS 2 FINIS DS 2 STACK DS 2 * MSG1 DW 0D0AH ASC # STARTING ADDRESS: # DB 00H MSG2 DW 0D0AH ASC # ENDING ADDRESS: # DB 00H MSG3 DW 0D0AH ASC # TEST COMPLETED OK # DB 00H MSG4 DW 0D0AH ASC # ERROR AT BYTE: # DB 00H MSG5 DW 0D0AH ASC # TEST BYTE WAS: # DB 00H MSG6 DW 0D0AH ASC # ERROR BYTE WAS: # DB 00H MSG7 DW 0D0AH ASC # BITS IN ERROR ARE: # DB 00H *