OpenCores
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

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.