URL
https://opencores.org/ocsvn/am9080_cpu_based_on_microcoded_am29xx_bit-slices/am9080_cpu_based_on_microcoded_am29xx_bit-slices/trunk
Subversion Repositories am9080_cpu_based_on_microcoded_am29xx_bit-slices
[/] [am9080_cpu_based_on_microcoded_am29xx_bit-slices/] [trunk/] [prog/] [zout/] [cpudiag.bds] - Rev 3
Compare with Previous | Blame | View Log
binary-debuggable-source
0000 0000 f cpudiag.asm
0000 0000 s ;***********************************************************************
0000 0000 s ; MICROCOSM ASSOCIATES 8080/8085 CPU DIAGNOSTIC VERSION 1.0 (C) 1980
0000 0000 s ;***********************************************************************
0000 0000 s ;
0000 0000 s ;DONATED TO THE "SIG/M" CP/M USER'S GROUP BY:
0000 0000 s ;KELLY SMITH, MICROCOSM ASSOCIATES
0000 0000 s ;3055 WACO AVENUE
0000 0000 s ;SIMI VALLEY, CALIFORNIA, 93065
0000 0000 s ;(805) 527-9321 (MODEM, CP/M-NET (TM))
0000 0000 s ;(805) 527-0518 (VERBAL)
0000 0000 s ;
0000 0000 s BDOS EQU 00005H ;BDOS ENTRY TO CP/M
0000 0000 s WBOOT EQU 00000H ;RE-ENTRY TO CP/M WARM BOOT
0000 0000 s ;
0000 0000 s ;
0000 0000 s ORG WBOOT; -- CPU starts here after reset
0000 0000 d f3
0000 0000 s DI
0001 0001 d c32800
0001 0001 s JMP INIT
0004 0004 s ;
0004 0004 s ; -- Fake "BDOS", only implement functions 2 and 9 (https://www.seasip.info/Cpm/bdos.html)
0004 0004 s ;
0005 0005 s ORG BDOS;
0005 0005 d f5
0005 0005 s PUSH PSW
0006 0006 d 79
0006 0006 s MOV A, C
0007 0007 s
0007 0007 d fe02
0007 0007 s CPI 2
0009 0009 d ca1400
0009 0009 s JZ C_WRITE
000c 000c d fe09
000c 000c s CPI 9
000e 000e d ca1a00
000e 000e s JZ C_WRITESTR
0011 0011 d c32600
0011 0011 s JMP DONE
0014 0014 s
0014 0014 d 7b
0014 0014 s C_WRITE: MOV A, E
0015 0015 d d300
0015 0015 s OUT 00H
0017 0017 d c32600
0017 0017 s JMP DONE
001a 001a s
001a 001a d 1a
001a 001a s C_WRITESTR: LDAX D
001b 001b d fe24
001b 001b s CPI '$'
001d 001d d ca2600
001d 001d s JZ DONE
0020 0020 d d300
0020 0020 s OUT 00H
0022 0022 d 13
0022 0022 s INX D
0023 0023 d c31a00
0023 0023 s JMP C_WRITESTR
0026 0026 s
0026 0026 d f1
0026 0026 s DONE: POP PSW
0027 0027 d c9
0027 0027 s RET
0028 0028 s
0028 0028 d 210000
0028 0028 s INIT: LXI H, 0000H
002b 002b d 2b
002b 002b s DCX H
002c 002c d f9
002c 002c s SPHL
002d 002d d fb
002d 002d s EI
002e 002e d c3af01
002e 002e s JMP CPU
0031 0031 s ;
0031 0031 s ;
0031 0031 s
0100 0100 s ORG 00100H
0100 0100 s ;
0100 0100 s ;
0100 0100 s ;
0100 0100 d c3af01
0100 0100 s JMP CPU ;JUMP TO 8080 CPU DIAGNOSTIC
0103 0103 s ;
0103 0103 s ;
0103 0103 s ;
0103 0103 d 4d4943524f434f534d204153534f43494154455320383038302f383038352043505520444941474e4f53544943
0103 0103 s DB 'MICROCOSM ASSOCIATES 8080/8085 CPU DIAGNOSTIC'
0130 0130 d 2056455253494f4e20312e3020202843292031393830
0130 0130 s DB ' VERSION 1.0 (C) 1980'
0146 0146 s ;
0146 0146 s ;
0146 0146 s ;
0146 0146 s
0146 0146 s ;
0146 0146 s ;
0146 0146 s ;
0146 0146 s ;MESSAGE OUTPUT ROUTINE
0146 0146 s ;
0146 0146 d d5
0146 0146 s MSG: PUSH D ;EXILE D REG.
0147 0147 d eb
0147 0147 s XCHG ;SWAP H&L REGS. TO D&E REGS.
0148 0148 d 0e09
0148 0148 s MVI C,9 ;LET BDOS KNOW WE WANT TO SEND A MESSAGE
014a 014a d cd0500
014a 014a s CALL BDOS
014d 014d d d1
014d 014d s POP D ;BACK FROM EXILE
014e 014e d c9
014e 014e s RET
014f 014f s ;
014f 014f s ;
014f 014f s ;
014f 014f s ;CHARACTER OUTPUT ROUTINE
014f 014f s ;
014f 014f d 0e02
014f 014f s PCHAR: MVI C,2
0151 0151 d cd0500
0151 0151 s CALL BDOS
0154 0154 d c9
0154 0154 s RET
0155 0155 s ;
0155 0155 s ;
0155 0155 s ;
0155 0155 d f5
0155 0155 s BYTEO: PUSH PSW
0156 0156 d cd6501
0156 0156 s CALL BYTO1
0159 0159 d 5f
0159 0159 s MOV E,A
015a 015a d cd4f01
015a 015a s CALL PCHAR
015d 015d d f1
015d 015d s POP PSW
015e 015e d cd6901
015e 015e s CALL BYTO2
0161 0161 d 5f
0161 0161 s MOV E,A
0162 0162 d c34f01
0162 0162 s JMP PCHAR
0165 0165 d 0f
0165 0165 s BYTO1: RRC
0166 0166 d 0f
0166 0166 s RRC
0167 0167 d 0f
0167 0167 s RRC
0168 0168 d 0f
0168 0168 s RRC
0169 0169 d e60f
0169 0169 s BYTO2: ANI 0FH
016b 016b d fe0a
016b 016b s CPI 0AH
016d 016d d fa7201
016d 016d s JM BYTO3
0170 0170 d c607
0170 0170 s ADI 7
0172 0172 d c630
0172 0172 s BYTO3: ADI 30H
0174 0174 d c9
0174 0174 s RET
0175 0175 s ;
0175 0175 s ;
0175 0175 s ;
0175 0175 s ;************************************************************
0175 0175 s ; MESSAGE TABLE FOR OPERATIONAL CPU TEST
0175 0175 s ;************************************************************
0175 0175 s ;
0175 0175 d 0c0d0a20435055204953204f5045524154494f4e414c24
0175 0175 s OKCPU: DB 0CH,0DH,0AH,' CPU IS OPERATIONAL$'
018c 018c s ;
018c 018c d 0c0d0a2043505520484153204641494c454421202020204552524f5220455849543d24
018c 018c s NGCPU: DB 0CH,0DH,0AH,' CPU HAS FAILED! ERROR EXIT=$'
01af 01af s ;
01af 01af s ;
01af 01af s ;
01af 01af s ;************************************************************
01af 01af s ; 8080/8085 CPU TEST/DIAGNOSTIC
01af 01af s ;************************************************************
01af 01af s ;
01af 01af s ;NOTE: (1) PROGRAM ASSUMES "CALL",AND "LXI SP" INSTRUCTIONS WORK!
01af 01af s ;
01af 01af s ; (2) INSTRUCTIONS NOT TESTED ARE "HLT","DI","EI","RIM","SIM",
01af 01af s ; AND "RST 0" THRU "RST 7"
01af 01af s ;
01af 01af s ;
01af 01af s ;
01af 01af s ;TEST JUMP INSTRUCTIONS AND FLAGS
01af 01af s ;
01af 01af d 3180ff
01af 01af s CPU: LXI SP,STACK ;SET THE STACK POINTER
01b2 01b2 d e600
01b2 01b2 s ANI 0 ;INITIALIZE A REG. AND CLEAR ALL FLAGS
01b4 01b4 d caba01
01b4 01b4 s JZ J010 ;TEST "JZ"
01b7 01b7 d cd8d06
01b7 01b7 s CALL CPUER
01ba 01ba d d2c001
01ba 01ba s J010: JNC J020 ;TEST "JNC"
01bd 01bd d cd8d06
01bd 01bd s CALL CPUER
01c0 01c0 d eac601
01c0 01c0 s J020: JPE J030 ;TEST "JPE"
01c3 01c3 d cd8d06
01c3 01c3 s CALL CPUER
01c6 01c6 d f2cc01
01c6 01c6 s J030: JP J040 ;TEST "JP"
01c9 01c9 d cd8d06
01c9 01c9 s CALL CPUER
01cc 01cc d c2db01
01cc 01cc s J040: JNZ J050 ;TEST "JNZ"
01cf 01cf d dadb01
01cf 01cf s JC J050 ;TEST "JC"
01d2 01d2 d e2db01
01d2 01d2 s JPO J050 ;TEST "JPO"
01d5 01d5 d fadb01
01d5 01d5 s JM J050 ;TEST "JM"
01d8 01d8 d c3de01
01d8 01d8 s JMP J060 ;TEST "JMP" (IT'S A LITTLE LATE,BUT WHAT THE HELL!
01db 01db d cd8d06
01db 01db s J050: CALL CPUER
01de 01de d c606
01de 01de s J060: ADI 6 ;A=6,C=0,P=1,S=0,Z=0
01e0 01e0 d c2e601
01e0 01e0 s JNZ J070 ;TEST "JNZ"
01e3 01e3 d cd8d06
01e3 01e3 s CALL CPUER
01e6 01e6 d daef01
01e6 01e6 s J070: JC J080 ;TEST "JC"
01e9 01e9 d e2ef01
01e9 01e9 s JPO J080 ;TEST "JPO"
01ec 01ec d f2f201
01ec 01ec s JP J090 ;TEST "JP"
01ef 01ef d cd8d06
01ef 01ef s J080: CALL CPUER
01f2 01f2 d c670
01f2 01f2 s J090: ADI 070H ;A=76H,C=0,P=0,S=0,Z=0
01f4 01f4 d e2fa01
01f4 01f4 s JPO J100 ;TEST "JPO"
01f7 01f7 d cd8d06
01f7 01f7 s CALL CPUER
01fa 01fa d fa0302
01fa 01fa s J100: JM J110 ;TEST "JM"
01fd 01fd d ca0302
01fd 01fd s JZ J110 ;TEST "JZ"
0200 0200 d d20602
0200 0200 s JNC J120 ;TEST "JNC"
0203 0203 d cd8d06
0203 0203 s J110: CALL CPUER
0206 0206 d c681
0206 0206 s J120: ADI 081H ;A=F7H,C=0,P=0,S=1,Z=0
0208 0208 d fa0e02
0208 0208 s JM J130 ;TEST "JM"
020b 020b d cd8d06
020b 020b s CALL CPUER
020e 020e d ca1702
020e 020e s J130: JZ J140 ;TEST "JZ"
0211 0211 d da1702
0211 0211 s JC J140 ;TEST "JC"
0214 0214 d e21a02
0214 0214 s JPO J150 ;TEST "JPO"
0217 0217 d cd8d06
0217 0217 s J140: CALL CPUER
021a 021a d c6fe
021a 021a s J150: ADI 0FEH ;A=F5H,C=1,P=1,S=1,Z=0
021c 021c d da2202
021c 021c s JC J160 ;TEST "JC"
021f 021f d cd8d06
021f 021f s CALL CPUER
0222 0222 d ca2b02
0222 0222 s J160: JZ J170 ;TEST "JZ"
0225 0225 d e22b02
0225 0225 s JPO J170 ;TEST "JPO"
0228 0228 d fa2e02
0228 0228 s JM AIMM ;TEST "JM"
022b 022b d cd8d06
022b 022b s J170: CALL CPUER
022e 022e s ;
022e 022e s ;
022e 022e s ;
022e 022e s ;TEST ACCUMULATOR IMMEDIATE INSTRUCTIONS
022e 022e s ;
022e 022e d fe00
022e 022e s AIMM: CPI 0 ;A=F5H,C=0,Z=0
0230 0230 d da4602
0230 0230 s JC CPIE ;TEST "CPI" FOR RE-SET CARRY
0233 0233 d ca4602
0233 0233 s JZ CPIE ;TEST "CPI" FOR RE-SET ZERO
0236 0236 d fef5
0236 0236 s CPI 0F5H ;A=F5H,C=0,Z=1
0238 0238 d da4602
0238 0238 s JC CPIE ;TEST "CPI" FOR RE-SET CARRY ("ADI")
023b 023b d c24602
023b 023b s JNZ CPIE ;TEST "CPI" FOR RE-SET ZERO
023e 023e d feff
023e 023e s CPI 0FFH ;A=F5H,C=1,Z=0
0240 0240 d ca4602
0240 0240 s JZ CPIE ;TEST "CPI" FOR RE-SET ZERO
0243 0243 d da4902
0243 0243 s JC ACII ;TEST "CPI" FOR SET CARRY
0246 0246 d cd8d06
0246 0246 s CPIE: CALL CPUER
0249 0249 d ce0a
0249 0249 s ACII: ACI 00AH ;A=F5H+0AH+CARRY(1)=0,C=1
024b 024b d ce0a
024b 024b s ACI 00AH ;A=0+0AH+CARRY(0)=0BH,C=0
024d 024d d fe0b
024d 024d s CPI 00BH
024f 024f d ca5502
024f 024f s JZ SUII ;TEST "ACI"
0252 0252 d cd8d06
0252 0252 s CALL CPUER
0255 0255 d d60c
0255 0255 s SUII: SUI 00CH ;A=FFH,C=0
0257 0257 d d60f
0257 0257 s SUI 00FH ;A=F0H,C=1
0259 0259 d fef0
0259 0259 s CPI 0F0H
025b 025b d ca6102
025b 025b s JZ SBII ;TEST "SUI"
025e 025e d cd8d06
025e 025e s CALL CPUER
0261 0261 d def1
0261 0261 s SBII: SBI 0F1H ;A=F0H-0F1H-CARRY(0)=FFH,C=1
0263 0263 d de0e
0263 0263 s SBI 00EH ;A=FFH-OEH-CARRY(1)=F0H,C=0
0265 0265 d fef0
0265 0265 s CPI 0F0H
0267 0267 d ca6d02
0267 0267 s JZ ANII ;TEST "SBI"
026a 026a d cd8d06
026a 026a s CALL CPUER
026d 026d d e655
026d 026d s ANII: ANI 055H ;A=F0H<AND>55H=50H,C=0,P=1,S=0,Z=0
026f 026f d fe50
026f 026f s CPI 050H
0271 0271 d ca7702
0271 0271 s JZ ORII ;TEST "ANI"
0274 0274 d cd8d06
0274 0274 s CALL CPUER
0277 0277 d f63a
0277 0277 s ORII: ORI 03AH ;A=50H<OR>3AH=7AH,C=0,P=0,S=0,Z=0
0279 0279 d fe7a
0279 0279 s CPI 07AH
027b 027b d ca8102
027b 027b s JZ XRII ;TEST "ORI"
027e 027e d cd8d06
027e 027e s CALL CPUER
0281 0281 d ee0f
0281 0281 s XRII: XRI 00FH ;A=7AH<XOR>0FH=75H,C=0,P=0,S=0,Z=0
0283 0283 d fe75
0283 0283 s CPI 075H
0285 0285 d ca8b02
0285 0285 s JZ C010 ;TEST "XRI"
0288 0288 d cd8d06
0288 0288 s CALL CPUER
028b 028b s ;
028b 028b s ;
028b 028b s ;
028b 028b s ;TEST CALLS AND RETURNS
028b 028b s ;
028b 028b d e600
028b 028b s C010: ANI 000H ;A=0,C=0,P=1,S=0,Z=1
028d 028d d dc8d06
028d 028d s CC CPUER ;TEST "CC"
0290 0290 d e48d06
0290 0290 s CPO CPUER ;TEST "CPO"
0293 0293 d fc8d06
0293 0293 s CM CPUER ;TEST "CM"
0296 0296 d c48d06
0296 0296 s CNZ CPUER ;TEST "CNZ"
0299 0299 d fe00
0299 0299 s CPI 000H
029b 029b d caa102
029b 029b s JZ C020 ;A=0,C=0,P=0,S=0,Z=1
029e 029e d cd8d06
029e 029e s CALL CPUER
02a1 02a1 d d677
02a1 02a1 s C020: SUI 077H ;A=89H,C=1,P=0,S=1,Z=0
02a3 02a3 d d48d06
02a3 02a3 s CNC CPUER ;TEST "CNC"
02a6 02a6 d ec8d06
02a6 02a6 s CPE CPUER ;TEST "CPE"
02a9 02a9 d f48d06
02a9 02a9 s CP CPUER ;TEST "CP"
02ac 02ac d cc8d06
02ac 02ac s CZ CPUER ;TEST "CZ"
02af 02af d fe89
02af 02af s CPI 089H
02b1 02b1 d cab702
02b1 02b1 s JZ C030 ;TEST FOR "CALLS" TAKING BRANCH
02b4 02b4 d cd8d06
02b4 02b4 s CALL CPUER
02b7 02b7 d e6ff
02b7 02b7 s C030: ANI 0FFH ;SET FLAGS BACK!
02b9 02b9 d e4c402
02b9 02b9 s CPO CPOI ;TEST "CPO"
02bc 02bc d fed9
02bc 02bc s CPI 0D9H
02be 02be d ca2103
02be 02be s JZ MOVI ;TEST "CALL" SEQUENCE SUCCESS
02c1 02c1 d cd8d06
02c1 02c1 s CALL CPUER
02c4 02c4 d e8
02c4 02c4 s CPOI: RPE ;TEST "RPE"
02c5 02c5 d c610
02c5 02c5 s ADI 010H ;A=99H,C=0,P=0,S=1,Z=0
02c7 02c7 d ecd002
02c7 02c7 s CPE CPEI ;TEST "CPE"
02ca 02ca d c602
02ca 02ca s ADI 002H ;A=D9H,C=0,P=0,S=1,Z=0
02cc 02cc d e0
02cc 02cc s RPO ;TEST "RPO"
02cd 02cd d cd8d06
02cd 02cd s CALL CPUER
02d0 02d0 d e0
02d0 02d0 s CPEI: RPO ;TEST "RPO"
02d1 02d1 d c620
02d1 02d1 s ADI 020H ;A=B9H,C=0,P=0,S=1,Z=0
02d3 02d3 d fcdc02
02d3 02d3 s CM CMI ;TEST "CM"
02d6 02d6 d c604
02d6 02d6 s ADI 004H ;A=D7H,C=0,P=1,S=1,Z=0
02d8 02d8 d e8
02d8 02d8 s RPE ;TEST "RPE"
02d9 02d9 d cd8d06
02d9 02d9 s CALL CPUER
02dc 02dc d f0
02dc 02dc s CMI: RP ;TEST "RP"
02dd 02dd d c680
02dd 02dd s ADI 080H ;A=39H,C=1,P=1,S=0,Z=0
02df 02df d f4e802
02df 02df s CP TCPI ;TEST "CP"
02e2 02e2 d c680
02e2 02e2 s ADI 080H ;A=D3H,C=0,P=0,S=1,Z=0
02e4 02e4 d f8
02e4 02e4 s RM ;TEST "RM"
02e5 02e5 d cd8d06
02e5 02e5 s CALL CPUER
02e8 02e8 d f8
02e8 02e8 s TCPI: RM ;TEST "RM"
02e9 02e9 d c640
02e9 02e9 s ADI 040H ;A=79H,C=0,P=0,S=0,Z=0
02eb 02eb d d4f402
02eb 02eb s CNC CNCI ;TEST "CNC"
02ee 02ee d c640
02ee 02ee s ADI 040H ;A=53H,C=0,P=1,S=0,Z=0
02f0 02f0 d f0
02f0 02f0 s RP ;TEST "RP"
02f1 02f1 d cd8d06
02f1 02f1 s CALL CPUER
02f4 02f4 d d8
02f4 02f4 s CNCI: RC ;TEST "RC"
02f5 02f5 d c68f
02f5 02f5 s ADI 08FH ;A=08H,C=1,P=0,S=0,Z=0
02f7 02f7 d dc0003
02f7 02f7 s CC CCI ;TEST "CC"
02fa 02fa d d602
02fa 02fa s SUI 002H ;A=13H,C=0,P=0,S=0,Z=0
02fc 02fc d d0
02fc 02fc s RNC ;TEST "RNC"
02fd 02fd d cd8d06
02fd 02fd s CALL CPUER
0300 0300 d d0
0300 0300 s CCI: RNC ;TEST "RNC"
0301 0301 d c6f7
0301 0301 s ADI 0F7H ;A=FFH,C=0,P=1,S=1,Z=0
0303 0303 d c40c03
0303 0303 s CNZ CNZI ;TEST "CNZ"
0306 0306 d c6fe
0306 0306 s ADI 0FEH ;A=15H,C=1,P=0,S=0,Z=0
0308 0308 d d8
0308 0308 s RC ;TEST "RC"
0309 0309 d cd8d06
0309 0309 s CALL CPUER
030c 030c d c8
030c 030c s CNZI: RZ ;TEST "RZ"
030d 030d d c601
030d 030d s ADI 001H ;A=00H,C=1,P=1,S=0,Z=1
030f 030f d cc1803
030f 030f s CZ CZI ;TEST "CZ"
0312 0312 d c6d0
0312 0312 s ADI 0D0H ;A=17H,C=1,P=1,S=0,Z=0
0314 0314 d c0
0314 0314 s RNZ ;TEST "RNZ"
0315 0315 d cd8d06
0315 0315 s CALL CPUER
0318 0318 d c0
0318 0318 s CZI: RNZ ;TEST "RNZ"
0319 0319 d c647
0319 0319 s ADI 047H ;A=47H,C=0,P=1,S=0,Z=0
031b 031b d fe47
031b 031b s CPI 047H ;A=47H,C=0,P=1,S=0,Z=1
031d 031d d c8
031d 031d s RZ ;TEST "RZ"
031e 031e d cd8d06
031e 031e s CALL CPUER
0321 0321 s ;
0321 0321 s ;
0321 0321 s ;
0321 0321 s ;TEST "MOV","INR",AND "DCR" INSTRUCTIONS
0321 0321 s ;
0321 0321 d 3e77
0321 0321 s MOVI: MVI A,077H
0323 0323 d 3c
0323 0323 s INR A
0324 0324 d 47
0324 0324 s MOV B,A
0325 0325 d 04
0325 0325 s INR B
0326 0326 d 48
0326 0326 s MOV C,B
0327 0327 d 0d
0327 0327 s DCR C
0328 0328 d 51
0328 0328 s MOV D,C
0329 0329 d 5a
0329 0329 s MOV E,D
032a 032a d 63
032a 032a s MOV H,E
032b 032b d 6c
032b 032b s MOV L,H
032c 032c d 7d
032c 032c s MOV A,L ;TEST "MOV" A,L,H,E,D,C,B,A
032d 032d d 3d
032d 032d s DCR A
032e 032e d 4f
032e 032e s MOV C,A
032f 032f d 59
032f 032f s MOV E,C
0330 0330 d 6b
0330 0330 s MOV L,E
0331 0331 d 45
0331 0331 s MOV B,L
0332 0332 d 50
0332 0332 s MOV D,B
0333 0333 d 62
0333 0333 s MOV H,D
0334 0334 d 7c
0334 0334 s MOV A,H ;TEST "MOV" A,H,D,B,L,E,C,A
0335 0335 d 57
0335 0335 s MOV D,A
0336 0336 d 14
0336 0336 s INR D
0337 0337 d 6a
0337 0337 s MOV L,D
0338 0338 d 4d
0338 0338 s MOV C,L
0339 0339 d 0c
0339 0339 s INR C
033a 033a d 61
033a 033a s MOV H,C
033b 033b d 44
033b 033b s MOV B,H
033c 033c d 05
033c 033c s DCR B
033d 033d d 58
033d 033d s MOV E,B
033e 033e d 7b
033e 033e s MOV A,E ;TEST "MOV" A,E,B,H,C,L,D,A
033f 033f d 5f
033f 033f s MOV E,A
0340 0340 d 1c
0340 0340 s INR E
0341 0341 d 43
0341 0341 s MOV B,E
0342 0342 d 60
0342 0342 s MOV H,B
0343 0343 d 24
0343 0343 s INR H
0344 0344 d 4c
0344 0344 s MOV C,H
0345 0345 d 69
0345 0345 s MOV L,C
0346 0346 d 55
0346 0346 s MOV D,L
0347 0347 d 15
0347 0347 s DCR D
0348 0348 d 7a
0348 0348 s MOV A,D ;TEST "MOV" A,D,L,C,H,B,E,A
0349 0349 d 67
0349 0349 s MOV H,A
034a 034a d 25
034a 034a s DCR H
034b 034b d 54
034b 034b s MOV D,H
034c 034c d 42
034c 034c s MOV B,D
034d 034d d 68
034d 034d s MOV L,B
034e 034e d 2c
034e 034e s INR L
034f 034f d 5d
034f 034f s MOV E,L
0350 0350 d 1d
0350 0350 s DCR E
0351 0351 d 4b
0351 0351 s MOV C,E
0352 0352 d 79
0352 0352 s MOV A,C ;TEST "MOV" A,C,E,L,B,D,H,A
0353 0353 d 6f
0353 0353 s MOV L,A
0354 0354 d 2d
0354 0354 s DCR L
0355 0355 d 65
0355 0355 s MOV H,L
0356 0356 d 5c
0356 0356 s MOV E,H
0357 0357 d 53
0357 0357 s MOV D,E
0358 0358 d 4a
0358 0358 s MOV C,D
0359 0359 d 41
0359 0359 s MOV B,C
035a 035a d 78
035a 035a s MOV A,B
035b 035b d fe77
035b 035b s CPI 077H
035d 035d d c48d06
035d 035d s CNZ CPUER ;TEST "MOV" A,B,C,D,E,H,L,A
0360 0360 s ;
0360 0360 s ;
0360 0360 s ;
0360 0360 s ;TEST ARITHMETIC AND LOGIC INSTRUCTIONS
0360 0360 s ;
0360 0360 d af
0360 0360 s XRA A
0361 0361 d 0601
0361 0361 s MVI B,001H
0363 0363 d 0e03
0363 0363 s MVI C,003H
0365 0365 d 1607
0365 0365 s MVI D,007H
0367 0367 d 1e0f
0367 0367 s MVI E,00FH
0369 0369 d 261f
0369 0369 s MVI H,01FH
036b 036b d 2e3f
036b 036b s MVI L,03FH
036d 036d d 80
036d 036d s ADD B
036e 036e d 81
036e 036e s ADD C
036f 036f d 82
036f 036f s ADD D
0370 0370 d 83
0370 0370 s ADD E
0371 0371 d 84
0371 0371 s ADD H
0372 0372 d 85
0372 0372 s ADD L
0373 0373 d 87
0373 0373 s ADD A
0374 0374 d fef0
0374 0374 s CPI 0F0H
0376 0376 d c48d06
0376 0376 s CNZ CPUER ;TEST "ADD" B,C,D,E,H,L,A
0379 0379 d 90
0379 0379 s SUB B
037a 037a d 91
037a 037a s SUB C
037b 037b d 92
037b 037b s SUB D
037c 037c d 93
037c 037c s SUB E
037d 037d d 94
037d 037d s SUB H
037e 037e d 95
037e 037e s SUB L
037f 037f d fe78
037f 037f s CPI 078H
0381 0381 d c48d06
0381 0381 s CNZ CPUER ;TEST "SUB" B,C,D,E,H,L
0384 0384 d 97
0384 0384 s SUB A
0385 0385 d c48d06
0385 0385 s CNZ CPUER ;TEST "SUB" A
0388 0388 d 3e80
0388 0388 s MVI A,080H
038a 038a d 87
038a 038a s ADD A
038b 038b d 0601
038b 038b s MVI B,001H
038d 038d d 0e02
038d 038d s MVI C,002H
038f 038f d 1603
038f 038f s MVI D,003H
0391 0391 d 1e04
0391 0391 s MVI E,004H
0393 0393 d 2605
0393 0393 s MVI H,005H
0395 0395 d 2e06
0395 0395 s MVI L,006H
0397 0397 d 88
0397 0397 s ADC B
0398 0398 d 0680
0398 0398 s MVI B,080H
039a 039a d 80
039a 039a s ADD B
039b 039b d 80
039b 039b s ADD B
039c 039c d 89
039c 039c s ADC C
039d 039d d 80
039d 039d s ADD B
039e 039e d 80
039e 039e s ADD B
039f 039f d 8a
039f 039f s ADC D
03a0 03a0 d 80
03a0 03a0 s ADD B
03a1 03a1 d 80
03a1 03a1 s ADD B
03a2 03a2 d 8b
03a2 03a2 s ADC E
03a3 03a3 d 80
03a3 03a3 s ADD B
03a4 03a4 d 80
03a4 03a4 s ADD B
03a5 03a5 d 8c
03a5 03a5 s ADC H
03a6 03a6 d 80
03a6 03a6 s ADD B
03a7 03a7 d 80
03a7 03a7 s ADD B
03a8 03a8 d 8d
03a8 03a8 s ADC L
03a9 03a9 d 80
03a9 03a9 s ADD B
03aa 03aa d 80
03aa 03aa s ADD B
03ab 03ab d 8f
03ab 03ab s ADC A
03ac 03ac d fe37
03ac 03ac s CPI 037H
03ae 03ae d c48d06
03ae 03ae s CNZ CPUER ;TEST "ADC" B,C,D,E,H,L,A
03b1 03b1 d 3e80
03b1 03b1 s MVI A,080H
03b3 03b3 d 87
03b3 03b3 s ADD A
03b4 03b4 d 0601
03b4 03b4 s MVI B,001H
03b6 03b6 d 98
03b6 03b6 s SBB B
03b7 03b7 d 06ff
03b7 03b7 s MVI B,0FFH
03b9 03b9 d 80
03b9 03b9 s ADD B
03ba 03ba d 99
03ba 03ba s SBB C
03bb 03bb d 80
03bb 03bb s ADD B
03bc 03bc d 9a
03bc 03bc s SBB D
03bd 03bd d 80
03bd 03bd s ADD B
03be 03be d 9b
03be 03be s SBB E
03bf 03bf d 80
03bf 03bf s ADD B
03c0 03c0 d 9c
03c0 03c0 s SBB H
03c1 03c1 d 80
03c1 03c1 s ADD B
03c2 03c2 d 9d
03c2 03c2 s SBB L
03c3 03c3 d fee0
03c3 03c3 s CPI 0E0H
03c5 03c5 d c48d06
03c5 03c5 s CNZ CPUER ;TEST "SBB" B,C,D,E,H,L
03c8 03c8 d 3e80
03c8 03c8 s MVI A,080H
03ca 03ca d 87
03ca 03ca s ADD A
03cb 03cb d 9f
03cb 03cb s SBB A
03cc 03cc d feff
03cc 03cc s CPI 0FFH
03ce 03ce d c48d06
03ce 03ce s CNZ CPUER ;TEST "SBB" A
03d1 03d1 d 3eff
03d1 03d1 s MVI A,0FFH
03d3 03d3 d 06fe
03d3 03d3 s MVI B,0FEH
03d5 03d5 d 0efc
03d5 03d5 s MVI C,0FCH
03d7 03d7 d 16ef
03d7 03d7 s MVI D,0EFH
03d9 03d9 d 1e7f
03d9 03d9 s MVI E,07FH
03db 03db d 26f4
03db 03db s MVI H,0F4H
03dd 03dd d 2ebf
03dd 03dd s MVI L,0BFH
03df 03df d a7
03df 03df s ANA A
03e0 03e0 d a1
03e0 03e0 s ANA C
03e1 03e1 d a2
03e1 03e1 s ANA D
03e2 03e2 d a3
03e2 03e2 s ANA E
03e3 03e3 d a4
03e3 03e3 s ANA H
03e4 03e4 d a5
03e4 03e4 s ANA L
03e5 03e5 d a7
03e5 03e5 s ANA A
03e6 03e6 d fe24
03e6 03e6 s CPI 024H
03e8 03e8 d c48d06
03e8 03e8 s CNZ CPUER ;TEST "ANA" B,C,D,E,H,L,A
03eb 03eb d af
03eb 03eb s XRA A
03ec 03ec d 0601
03ec 03ec s MVI B,001H
03ee 03ee d 0e02
03ee 03ee s MVI C,002H
03f0 03f0 d 1604
03f0 03f0 s MVI D,004H
03f2 03f2 d 1e08
03f2 03f2 s MVI E,008H
03f4 03f4 d 2610
03f4 03f4 s MVI H,010H
03f6 03f6 d 2e20
03f6 03f6 s MVI L,020H
03f8 03f8 d b0
03f8 03f8 s ORA B
03f9 03f9 d b1
03f9 03f9 s ORA C
03fa 03fa d b2
03fa 03fa s ORA D
03fb 03fb d b3
03fb 03fb s ORA E
03fc 03fc d b4
03fc 03fc s ORA H
03fd 03fd d b5
03fd 03fd s ORA L
03fe 03fe d b7
03fe 03fe s ORA A
03ff 03ff d fe3f
03ff 03ff s CPI 03FH
0401 0401 d c48d06
0401 0401 s CNZ CPUER ;TEST "ORA" B,C,D,E,H,L,A
0404 0404 d 3e00
0404 0404 s MVI A,000H
0406 0406 d 268f
0406 0406 s MVI H,08FH
0408 0408 d 2e4f
0408 0408 s MVI L,04FH
040a 040a d a8
040a 040a s XRA B
040b 040b d a9
040b 040b s XRA C
040c 040c d aa
040c 040c s XRA D
040d 040d d ab
040d 040d s XRA E
040e 040e d ac
040e 040e s XRA H
040f 040f d ad
040f 040f s XRA L
0410 0410 d fecf
0410 0410 s CPI 0CFH
0412 0412 d c48d06
0412 0412 s CNZ CPUER ;TEST "XRA" B,C,D,E,H,L
0415 0415 d af
0415 0415 s XRA A
0416 0416 d c48d06
0416 0416 s CNZ CPUER ;TEST "XRA" A
0419 0419 d 0644
0419 0419 s MVI B,044H
041b 041b d 0e45
041b 041b s MVI C,045H
041d 041d d 1646
041d 041d s MVI D,046H
041f 041f d 1e47
041f 041f s MVI E,047H
0421 0421 s ;MVI H,(TEMP0 / 0FFH) ;HIGH BYTE OF TEST MEMORY LOCATION
0421 0421 d 26ff
0421 0421 s MVI H,(TEMP0 >> 8) ;HIGH BYTE OF TEST MEMORY LOCATION
0423 0423 d 2e02
0423 0423 s MVI L,(TEMP0 AND 0FFH) ;LOW BYTE OF TEST MEMORY LOCATION
0425 0425 d 70
0425 0425 s MOV M,B
0426 0426 d 0600
0426 0426 s MVI B,000H
0428 0428 d 46
0428 0428 s MOV B,M
0429 0429 d 3e44
0429 0429 s MVI A,044H
042b 042b d b8
042b 042b s CMP B
042c 042c d c48d06
042c 042c s CNZ CPUER ;TEST "MOV" M,B AND B,M
042f 042f d 72
042f 042f s MOV M,D
0430 0430 d 1600
0430 0430 s MVI D,000H
0432 0432 d 56
0432 0432 s MOV D,M
0433 0433 d 3e46
0433 0433 s MVI A,046H
0435 0435 d ba
0435 0435 s CMP D
0436 0436 d c48d06
0436 0436 s CNZ CPUER ;TEST "MOV" M,D AND D,M
0439 0439 d 73
0439 0439 s MOV M,E
043a 043a d 1e00
043a 043a s MVI E,000H
043c 043c d 5e
043c 043c s MOV E,M
043d 043d d 3e47
043d 043d s MVI A,047H
043f 043f d bb
043f 043f s CMP E
0440 0440 d c48d06
0440 0440 s CNZ CPUER ;TEST "MOV" M,E AND E,M
0443 0443 d 74
0443 0443 s MOV M,H
0444 0444 s ;MVI H,(TEMP0 / 0FFH)
0444 0444 d 26ff
0444 0444 s MVI H,(TEMP0 >> 8)
0446 0446 d 2e02
0446 0446 s MVI L,(TEMP0 AND 0FFH)
0448 0448 d 66
0448 0448 s MOV H,M
0449 0449 s ;MVI A,(TEMP0 / 0FFH)
0449 0449 d 3eff
0449 0449 s MVI A,(TEMP0 >> 8)
044b 044b d bc
044b 044b s CMP H
044c 044c d c48d06
044c 044c s CNZ CPUER ;TEST "MOV" M,H AND H,M
044f 044f d 75
044f 044f s MOV M,L
0450 0450 s ;MVI H,(TEMP0 / 0FFH)
0450 0450 d 26ff
0450 0450 s MVI H,(TEMP0 >> 8)
0452 0452 d 2e02
0452 0452 s MVI L,(TEMP0 AND 0FFH)
0454 0454 d 6e
0454 0454 s MOV L,M
0455 0455 d 3e02
0455 0455 s MVI A,(TEMP0 AND 0FFH)
0457 0457 d bd
0457 0457 s CMP L
0458 0458 d c48d06
0458 0458 s CNZ CPUER ;TEST "MOV" M,L AND L,M
045b 045b s ;MVI H,(TEMP0 / 0FFH)
045b 045b d 26ff
045b 045b s MVI H,(TEMP0 >> 8)
045d 045d d 2e02
045d 045d s MVI L,(TEMP0 AND 0FFH)
045f 045f d 3e32
045f 045f s MVI A,032H
0461 0461 d 77
0461 0461 s MOV M,A
0462 0462 d be
0462 0462 s CMP M
0463 0463 d c48d06
0463 0463 s CNZ CPUER ;TEST "MOV" M,A
0466 0466 d 86
0466 0466 s ADD M
0467 0467 d fe64
0467 0467 s CPI 064H
0469 0469 d c48d06
0469 0469 s CNZ CPUER ;TEST "ADD" M
046c 046c d af
046c 046c s XRA A
046d 046d d 7e
046d 046d s MOV A,M
046e 046e d fe32
046e 046e s CPI 032H
0470 0470 d c48d06
0470 0470 s CNZ CPUER ;TEST "MOV" A,M
0473 0473 s ;MVI H,(TEMP0 / 0FFH)
0473 0473 d 26ff
0473 0473 s MVI H,(TEMP0 >> 8)
0475 0475 d 2e02
0475 0475 s MVI L,(TEMP0 AND 0FFH)
0477 0477 d 7e
0477 0477 s MOV A,M
0478 0478 d 96
0478 0478 s SUB M
0479 0479 d c48d06
0479 0479 s CNZ CPUER ;TEST "SUB" M
047c 047c d 3e80
047c 047c s MVI A,080H
047e 047e d 87
047e 047e s ADD A
047f 047f d 8e
047f 047f s ADC M
0480 0480 d fe33
0480 0480 s CPI 033H
0482 0482 d c48d06
0482 0482 s CNZ CPUER ;TEST "ADC" M
0485 0485 d 3e80
0485 0485 s MVI A,080H
0487 0487 d 87
0487 0487 s ADD A
0488 0488 d 9e
0488 0488 s SBB M
0489 0489 d fecd
0489 0489 s CPI 0CDH
048b 048b d c48d06
048b 048b s CNZ CPUER ;TEST "SBB" M
048e 048e d a6
048e 048e s ANA M
048f 048f d c48d06
048f 048f s CNZ CPUER ;TEST "ANA" M
0492 0492 d 3e25
0492 0492 s MVI A,025H
0494 0494 d b6
0494 0494 s ORA M
0495 0495 d fe37
0495 0495 s CPI 037H
0497 0497 d c48d06
0497 0497 s CNZ CPUER ;TEST "ORA" M
049a 049a d ae
049a 049a s XRA M
049b 049b d fe05
049b 049b s CPI 005H
049d 049d d c48d06
049d 049d s CNZ CPUER ;TEST "XRA" M
04a0 04a0 d 3655
04a0 04a0 s MVI M,055H
04a2 04a2 d 34
04a2 04a2 s INR M
04a3 04a3 d 35
04a3 04a3 s DCR M
04a4 04a4 d 86
04a4 04a4 s ADD M
04a5 04a5 d fe5a
04a5 04a5 s CPI 05AH
04a7 04a7 d c48d06
04a7 04a7 s CNZ CPUER ;TEST "INR","DCR",AND "MVI" M
04aa 04aa d 01ff12
04aa 04aa s LXI B,12FFH
04ad 04ad d 11ff12
04ad 04ad s LXI D,12FFH
04b0 04b0 d 21ff12
04b0 04b0 s LXI H,12FFH
04b3 04b3 d 03
04b3 04b3 s INX B
04b4 04b4 d 13
04b4 04b4 s INX D
04b5 04b5 d 23
04b5 04b5 s INX H
04b6 04b6 d 3e13
04b6 04b6 s MVI A,013H
04b8 04b8 d b8
04b8 04b8 s CMP B
04b9 04b9 d c48d06
04b9 04b9 s CNZ CPUER ;TEST "LXI" AND "INX" B
04bc 04bc d ba
04bc 04bc s CMP D
04bd 04bd d c48d06
04bd 04bd s CNZ CPUER ;TEST "LXI" AND "INX" D
04c0 04c0 d bc
04c0 04c0 s CMP H
04c1 04c1 d c48d06
04c1 04c1 s CNZ CPUER ;TEST "LXI" AND "INX" H
04c4 04c4 d 3e00
04c4 04c4 s MVI A,000H
04c6 04c6 d b9
04c6 04c6 s CMP C
04c7 04c7 d c48d06
04c7 04c7 s CNZ CPUER ;TEST "LXI" AND "INX" B
04ca 04ca d bb
04ca 04ca s CMP E
04cb 04cb d c48d06
04cb 04cb s CNZ CPUER ;TEST "LXI" AND "INX" D
04ce 04ce d bd
04ce 04ce s CMP L
04cf 04cf d c48d06
04cf 04cf s CNZ CPUER ;TEST "LXI" AND "INX" H
04d2 04d2 d 0b
04d2 04d2 s DCX B
04d3 04d3 d 1b
04d3 04d3 s DCX D
04d4 04d4 d 2b
04d4 04d4 s DCX H
04d5 04d5 d 3e12
04d5 04d5 s MVI A,012H
04d7 04d7 d b8
04d7 04d7 s CMP B
04d8 04d8 d c48d06
04d8 04d8 s CNZ CPUER ;TEST "DCX" B
04db 04db d ba
04db 04db s CMP D
04dc 04dc d c48d06
04dc 04dc s CNZ CPUER ;TEST "DCX" D
04df 04df d bc
04df 04df s CMP H
04e0 04e0 d c48d06
04e0 04e0 s CNZ CPUER ;TEST "DCX" H
04e3 04e3 d 3eff
04e3 04e3 s MVI A,0FFH
04e5 04e5 d b9
04e5 04e5 s CMP C
04e6 04e6 d c48d06
04e6 04e6 s CNZ CPUER ;TEST "DCX" B
04e9 04e9 d bb
04e9 04e9 s CMP E
04ea 04ea d c48d06
04ea 04ea s CNZ CPUER ;TEST "DCX" D
04ed 04ed d bd
04ed 04ed s CMP L
04ee 04ee d c48d06
04ee 04ee s CNZ CPUER ;TEST "DCX" H
04f1 04f1 d 3202ff
04f1 04f1 s STA TEMP0
04f4 04f4 d af
04f4 04f4 s XRA A
04f5 04f5 d 3a02ff
04f5 04f5 s LDA TEMP0
04f8 04f8 d feff
04f8 04f8 s CPI 0FFH
04fa 04fa d c48d06
04fa 04fa s CNZ CPUER ;TEST "LDA" AND "STA"
04fd 04fd d 2a00ff
04fd 04fd s LHLD TEMPP
0500 0500 d 2202ff
0500 0500 s SHLD TEMP0
0503 0503 d 3a00ff
0503 0503 s LDA TEMPP
0506 0506 d 47
0506 0506 s MOV B,A
0507 0507 d 3a02ff
0507 0507 s LDA TEMP0
050a 050a d b8
050a 050a s CMP B
050b 050b d c48d06
050b 050b s CNZ CPUER ;TEST "LHLD" AND "SHLD"
050e 050e d 3a01ff
050e 050e s LDA TEMPP+1
0511 0511 d 47
0511 0511 s MOV B,A
0512 0512 d 3a03ff
0512 0512 s LDA TEMP0+1
0515 0515 d b8
0515 0515 s CMP B
0516 0516 d c48d06
0516 0516 s CNZ CPUER ;TEST "LHLD" AND "SHLD"
0519 0519 d 3eaa
0519 0519 s MVI A,0AAH
051b 051b d 3202ff
051b 051b s STA TEMP0
051e 051e d 44
051e 051e s MOV B,H
051f 051f d 4d
051f 051f s MOV C,L
0520 0520 d af
0520 0520 s XRA A
0521 0521 d 0a
0521 0521 s LDAX B
0522 0522 d feaa
0522 0522 s CPI 0AAH
0524 0524 d c48d06
0524 0524 s CNZ CPUER ;TEST "LDAX" B
0527 0527 d 3c
0527 0527 s INR A
0528 0528 d 02
0528 0528 s STAX B
0529 0529 d 3a02ff
0529 0529 s LDA TEMP0
052c 052c d feab
052c 052c s CPI 0ABH
052e 052e d c48d06
052e 052e s CNZ CPUER ;TEST "STAX" B
0531 0531 d 3e77
0531 0531 s MVI A,077H
0533 0533 d 3202ff
0533 0533 s STA TEMP0
0536 0536 d 2a00ff
0536 0536 s LHLD TEMPP
0539 0539 d 110000
0539 0539 s LXI D,00000H
053c 053c d eb
053c 053c s XCHG
053d 053d d af
053d 053d s XRA A
053e 053e d 1a
053e 053e s LDAX D
053f 053f d fe77
053f 053f s CPI 077H
0541 0541 d c48d06
0541 0541 s CNZ CPUER ;TEST "LDAX" D AND "XCHG"
0544 0544 d af
0544 0544 s XRA A
0545 0545 d 84
0545 0545 s ADD H
0546 0546 d 85
0546 0546 s ADD L
0547 0547 d c48d06
0547 0547 s CNZ CPUER ;TEST "XCHG"
054a 054a d 3ecc
054a 054a s MVI A,0CCH
054c 054c d 12
054c 054c s STAX D
054d 054d d 3a02ff
054d 054d s LDA TEMP0
0550 0550 d fecc
0550 0550 s CPI 0CCH
0552 0552 d 12
0552 0552 s STAX D
0553 0553 d 3a02ff
0553 0553 s LDA TEMP0
0556 0556 d fecc
0556 0556 s CPI 0CCH
0558 0558 d c48d06
0558 0558 s CNZ CPUER ;TEST "STAX" D
055b 055b d 217777
055b 055b s LXI H,07777H
055e 055e d 29
055e 055e s DAD H
055f 055f d 3eee
055f 055f s MVI A,0EEH
0561 0561 d bc
0561 0561 s CMP H
0562 0562 d c48d06
0562 0562 s CNZ CPUER ;TEST "DAD" H
0565 0565 d bd
0565 0565 s CMP L
0566 0566 d c48d06
0566 0566 s CNZ CPUER ;TEST "DAD" H
0569 0569 d 215555
0569 0569 s LXI H,05555H
056c 056c d 01ffff
056c 056c s LXI B,0FFFFH
056f 056f d 09
056f 056f s DAD B
0570 0570 d 3e55
0570 0570 s MVI A,055H
0572 0572 d d48d06
0572 0572 s CNC CPUER ;TEST "DAD" B
0575 0575 d bc
0575 0575 s CMP H
0576 0576 d c48d06
0576 0576 s CNZ CPUER ;TEST "DAD" B
0579 0579 d 3e54
0579 0579 s MVI A,054H
057b 057b d bd
057b 057b s CMP L
057c 057c d c48d06
057c 057c s CNZ CPUER ;TEST "DAD" B
057f 057f d 21aaaa
057f 057f s LXI H,0AAAAH
0582 0582 d 113333
0582 0582 s LXI D,03333H
0585 0585 d 19
0585 0585 s DAD D
0586 0586 d 3edd
0586 0586 s MVI A,0DDH
0588 0588 d bc
0588 0588 s CMP H
0589 0589 d c48d06
0589 0589 s CNZ CPUER ;TEST "DAD" D
058c 058c d bd
058c 058c s CMP L
058d 058d d c48d06
058d 058d s CNZ CPUER ;TEST "DAD" B
0590 0590 d 37
0590 0590 s STC
0591 0591 d d48d06
0591 0591 s CNC CPUER ;TEST "STC"
0594 0594 d 3f
0594 0594 s CMC
0595 0595 d dc8d06
0595 0595 s CC CPUER ;TEST "CMC
0598 0598 d 3eaa
0598 0598 s MVI A,0AAH
059a 059a d 2f
059a 059a s CMA
059b 059b d fe55
059b 059b s CPI 055H
059d 059d d c48d06
059d 059d s CNZ CPUER ;TEST "CMA"
05a0 05a0 d b7
05a0 05a0 s ORA A ;RE-SET AUXILIARY CARRY
05a1 05a1 d 27
05a1 05a1 s DAA
05a2 05a2 d fe55
05a2 05a2 s CPI 055H
05a4 05a4 d c48d06
05a4 05a4 s CNZ CPUER ;TEST "DAA"
05a7 05a7 d 3e88
05a7 05a7 s MVI A,088H
05a9 05a9 d 87
05a9 05a9 s ADD A
05aa 05aa d 27
05aa 05aa s DAA
05ab 05ab d fe76
05ab 05ab s CPI 076H
05ad 05ad d c48d06
05ad 05ad s CNZ CPUER ;TEST "DAA"
05b0 05b0 d af
05b0 05b0 s XRA A
05b1 05b1 d 3eaa
05b1 05b1 s MVI A,0AAH
05b3 05b3 d 27
05b3 05b3 s DAA
05b4 05b4 d d48d06
05b4 05b4 s CNC CPUER ;TEST "DAA"
05b7 05b7 d fe10
05b7 05b7 s CPI 010H
05b9 05b9 d c48d06
05b9 05b9 s CNZ CPUER ;TEST "DAA"
05bc 05bc d af
05bc 05bc s XRA A
05bd 05bd d 3e9a
05bd 05bd s MVI A,09AH
05bf 05bf d 27
05bf 05bf s DAA
05c0 05c0 d d48d06
05c0 05c0 s CNC CPUER ;TEST "DAA"
05c3 05c3 d c48d06
05c3 05c3 s CNZ CPUER ;TEST "DAA"
05c6 05c6 d 37
05c6 05c6 s STC
05c7 05c7 d 3e42
05c7 05c7 s MVI A,042H
05c9 05c9 d 07
05c9 05c9 s RLC
05ca 05ca d dc8d06
05ca 05ca s CC CPUER ;TEST "RLC" FOR RE-SET CARRY
05cd 05cd d 07
05cd 05cd s RLC
05ce 05ce d d48d06
05ce 05ce s CNC CPUER ;TEST "RLC" FOR SET CARRY
05d1 05d1 d fe09
05d1 05d1 s CPI 009H
05d3 05d3 d c48d06
05d3 05d3 s CNZ CPUER ;TEST "RLC" FOR ROTATION
05d6 05d6 d 0f
05d6 05d6 s RRC
05d7 05d7 d d48d06
05d7 05d7 s CNC CPUER ;TEST "RRC" FOR SET CARRY
05da 05da d 0f
05da 05da s RRC
05db 05db d fe42
05db 05db s CPI 042H
05dd 05dd d c48d06
05dd 05dd s CNZ CPUER ;TEST "RRC" FOR ROTATION
05e0 05e0 d 17
05e0 05e0 s RAL
05e1 05e1 d 17
05e1 05e1 s RAL
05e2 05e2 d d48d06
05e2 05e2 s CNC CPUER ;TEST "RAL" FOR SET CARRY
05e5 05e5 d fe08
05e5 05e5 s CPI 008H
05e7 05e7 d c48d06
05e7 05e7 s CNZ CPUER ;TEST "RAL" FOR ROTATION
05ea 05ea d 1f
05ea 05ea s RAR
05eb 05eb d 1f
05eb 05eb s RAR
05ec 05ec d dc8d06
05ec 05ec s CC CPUER ;TEST "RAR" FOR RE-SET CARRY
05ef 05ef d fe02
05ef 05ef s CPI 002H
05f1 05f1 d c48d06
05f1 05f1 s CNZ CPUER ;TEST "RAR" FOR ROTATION
05f4 05f4 d 013412
05f4 05f4 s LXI B,01234H
05f7 05f7 d 11aaaa
05f7 05f7 s LXI D,0AAAAH
05fa 05fa d 215555
05fa 05fa s LXI H,05555H
05fd 05fd d af
05fd 05fd s XRA A
05fe 05fe d c5
05fe 05fe s PUSH B
05ff 05ff d d5
05ff 05ff s PUSH D
0600 0600 d e5
0600 0600 s PUSH H
0601 0601 d f5
0601 0601 s PUSH PSW
0602 0602 d 010000
0602 0602 s LXI B,00000H
0605 0605 d 110000
0605 0605 s LXI D,00000H
0608 0608 d 210000
0608 0608 s LXI H,00000H
060b 060b d 3ec0
060b 060b s MVI A,0C0H
060d 060d d c6f0
060d 060d s ADI 0F0H
060f 060f d f1
060f 060f s POP PSW
0610 0610 d e1
0610 0610 s POP H
0611 0611 d d1
0611 0611 s POP D
0612 0612 d c1
0612 0612 s POP B
0613 0613 d dc8d06
0613 0613 s CC CPUER ;TEST "PUSH PSW" AND "POP PSW"
0616 0616 d c48d06
0616 0616 s CNZ CPUER ;TEST "PUSH PSW" AND "POP PSW"
0619 0619 d e48d06
0619 0619 s CPO CPUER ;TEST "PUSH PSW" AND "POP PSW"
061c 061c d fc8d06
061c 061c s CM CPUER ;TEST "PUSH PSW" AND "POP PSW"
061f 061f d 3e12
061f 061f s MVI A,012H
0621 0621 d b8
0621 0621 s CMP B
0622 0622 d c48d06
0622 0622 s CNZ CPUER ;TEST "PUSH B" AND "POP B"
0625 0625 d 3e34
0625 0625 s MVI A,034H
0627 0627 d b9
0627 0627 s CMP C
0628 0628 d c48d06
0628 0628 s CNZ CPUER ;TEST "PUSH B" AND "POP B"
062b 062b d 3eaa
062b 062b s MVI A,0AAH
062d 062d d ba
062d 062d s CMP D
062e 062e d c48d06
062e 062e s CNZ CPUER ;TEST "PUSH D" AND "POP D"
0631 0631 d bb
0631 0631 s CMP E
0632 0632 d c48d06
0632 0632 s CNZ CPUER ;TEST "PUSH D" AND "POP D"
0635 0635 d 3e55
0635 0635 s MVI A,055H
0637 0637 d bc
0637 0637 s CMP H
0638 0638 d c48d06
0638 0638 s CNZ CPUER ;TEST "PUSH H" AND "POP H"
063b 063b d bd
063b 063b s CMP L
063c 063c d c48d06
063c 063c s CNZ CPUER ;TEST "PUSH H" AND "POP H"
063f 063f d 210000
063f 063f s LXI H,00000H
0642 0642 d 39
0642 0642 s DAD SP
0643 0643 d 2207ff
0643 0643 s SHLD SAVSTK ;SAVE THE "OLD" STACK-POINTER!
0646 0646 d 3106ff
0646 0646 s LXI SP,TEMP4
0649 0649 d 3b
0649 0649 s DCX SP
064a 064a d 3b
064a 064a s DCX SP
064b 064b d 33
064b 064b s INX SP
064c 064c d 3b
064c 064c s DCX SP
064d 064d d 3e55
064d 064d s MVI A,055H
064f 064f d 3204ff
064f 064f s STA TEMP2
0652 0652 d 2f
0652 0652 s CMA
0653 0653 d 3205ff
0653 0653 s STA TEMP3
0656 0656 d c1
0656 0656 s POP B
0657 0657 d b8
0657 0657 s CMP B
0658 0658 d c48d06
0658 0658 s CNZ CPUER ;TEST "LXI","DAD","INX",AND "DCX" SP
065b 065b d 2f
065b 065b s CMA
065c 065c d b9
065c 065c s CMP C
065d 065d d c48d06
065d 065d s CNZ CPUER ;TEST "LXI","DAD","INX", AND "DCX" SP
0660 0660 d 2106ff
0660 0660 s LXI H,TEMP4
0663 0663 d f9
0663 0663 s SPHL
0664 0664 d 213377
0664 0664 s LXI H,07733H
0667 0667 d 3b
0667 0667 s DCX SP
0668 0668 d 3b
0668 0668 s DCX SP
0669 0669 d e3
0669 0669 s XTHL
066a 066a d 3a05ff
066a 066a s LDA TEMP3
066d 066d d fe77
066d 066d s CPI 077H
066f 066f d c48d06
066f 066f s CNZ CPUER ;TEST "SPHL" AND "XTHL"
0672 0672 d 3a04ff
0672 0672 s LDA TEMP2
0675 0675 d fe33
0675 0675 s CPI 033H
0677 0677 d c48d06
0677 0677 s CNZ CPUER ;TEST "SPHL" AND "XTHL"
067a 067a d 3e55
067a 067a s MVI A,055H
067c 067c d bd
067c 067c s CMP L
067d 067d d c48d06
067d 067d s CNZ CPUER ;TEST "SPHL" AND "XTHL"
0680 0680 d 2f
0680 0680 s CMA
0681 0681 d bc
0681 0681 s CMP H
0682 0682 d c48d06
0682 0682 s CNZ CPUER ;TEST "SPHL" AND "XTHL"
0685 0685 d 2a07ff
0685 0685 s LHLD SAVSTK ;RESTORE THE "OLD" STACK-POINTER
0688 0688 d f9
0688 0688 s SPHL
0689 0689 d 219f06
0689 0689 s LXI H,CPUOK
068c 068c d e9
068c 068c s PCHL ;TEST "PCHL"
068d 068d s ;
068d 068d s ;
068d 068d s ;
068d 068d d 218c01
068d 068d s CPUER: LXI H,NGCPU ;OUTPUT "CPU HAS FAILED ERROR EXIT=" TO CONSOLE
0690 0690 d cd4601
0690 0690 s CALL MSG
0693 0693 d e3
0693 0693 s XTHL
0694 0694 d 7c
0694 0694 s MOV A,H
0695 0695 d cd5501
0695 0695 s CALL BYTEO ;SHOW ERROR EXIT ADDRESS HIGH BYTE
0698 0698 d 7d
0698 0698 s MOV A,L
0699 0699 d cd5501
0699 0699 s CALL BYTEO ;SHOW ERROR EXIT ADDRESS LOW BYTE
069c 069c d c30000
069c 069c s JMP WBOOT ;EXIT TO CP/M WARM BOOT
069f 069f s ;
069f 069f s ;
069f 069f s ;
069f 069f d 217501
069f 069f s CPUOK: LXI H,OKCPU ;OUTPUT "CPU IS OPERATIONAL" TO CONSOLE
06a2 06a2 d cd4601
06a2 06a2 s CALL MSG
06a5 06a5 d c30000
06a5 06a5 s JMP WBOOT ;EXIT TO CP/M WARM BOOT
06a8 06a8 s ;
06a8 06a8 s ; -------- RAM is implemented in top 256 bytes of the address space -------
ff00 ff00 s ORG 0FF00H
ff00 ff00 s ;
ff00 ff00 d 02ff
ff00 ff00 s TEMPP: DW TEMP0 ;POINTER USED TO TEST "LHLD","SHLD",
ff02 ff02 s ; AND "LDAX" INSTRUCTIONS
ff02 ff02 s ;
ff02 ff02 s TEMP0: DS 1 ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
ff03 ff03 s TEMP1: DS 1 ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
ff04 ff04 s TEMP2 DS 1 ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
ff05 ff05 s TEMP3: DS 1 ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
ff06 ff06 s TEMP4: DS 1 ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
ff07 ff07 s SAVSTK: DS 2 ;TEMPORARY STACK-POINTER STORAGE LOCATION
ff09 ff09 s ;
ff09 ff09 s ;
ff09 ff09 s ;
ff09 ff09 s STACK EQU TEMPP+128 ;DE-BUG STACK POINTER STORAGE AREA
ff09 ff09 s ;
ff09 ff09 s ;
ff09 ff09 s ;
ff09 ff09 s END
028b a c010
02a1 a c020
02b7 a c030
01ba a j010
01c0 a j020
01c6 a j030
01cc a j040
01db a j050
01de a j060
01e6 a j070
01ef a j080
01f2 a j090
01fa a j100
0203 a j110
0206 a j120
020e a j130
0217 a j140
021a a j150
0222 a j160
022b a j170
0300 a cci
02dc a cmi
0318 a czi
0146 a msg
01af a cpu
0249 a acii
02f4 a cnci
0246 a cpie
026d a anii
02d0 a cpei
022e a aimm
0026 a done
0261 a sbii
0005 v bdos
02c4 a cpoi
02e8 a tcpi
0277 a orii
0028 a init
030c a cnzi
0255 a suii
0321 a movi
0281 a xrii
ff02 a temp0
ff03 a temp1
ff04 a temp2
ff05 a temp3
ff06 a temp4
0165 a byto1
0169 a byto2
0172 a byto3
014f a pchar
ff80 v stack
018c a ngcpu
068d a cpuer
0175 a okcpu
0155 a byteo
069f a cpuok
ff00 a tempp
0000 v wboot
ff07 a savstk
0014 a c_write
001a a c_writestr