mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
831 lines
12 KiB
831 lines
12 KiB
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; $Id: testz80.asm 1.4 1998/02/25 12:18:20 toma Exp $
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; TASM test file
|
|
; Test all instructions and addressing modes.
|
|
; Processor: Z80
|
|
;
|
|
; SEPT. 16,1987
|
|
; CARL A. WALL
|
|
; VE3APY
|
|
;
|
|
;
|
|
|
|
#define equ .equ
|
|
#define end .end
|
|
|
|
n: equ 20h
|
|
nn: equ 0584h
|
|
dddd: equ 07h
|
|
addr16: equ $1234
|
|
port: equ 3
|
|
imm8: equ 56h ;immediate data (8 bits)
|
|
offset: equ 7
|
|
offset_neg: equ -7
|
|
|
|
; try a few cases that have two expressions in the args and
|
|
; one is inside ().
|
|
LD (IX+offset),n+1+4+8-9
|
|
LD (IX+offset+5),n-1
|
|
LD (IX+dddd),n
|
|
LD (IX+offset),n
|
|
LD (IX+offset),n
|
|
|
|
; Try all possible instructions
|
|
|
|
ADC A,(HL)
|
|
ADC A,(IX+offset)
|
|
ADC A,(IX+offset_neg)
|
|
ADC A,(IY+offset)
|
|
ADC A,(IY+offset_neg)
|
|
ADC A,A
|
|
ADC A,B
|
|
ADC A,C
|
|
ADC A,D
|
|
ADC A,E
|
|
ADC A,H
|
|
ADC A,L
|
|
ADC A,n
|
|
ADC HL,BC
|
|
ADC HL,DE
|
|
ADC HL,HL
|
|
ADC HL,SP
|
|
|
|
ADD A,(HL)
|
|
ADD A,(IX+offset)
|
|
ADD A,(IY+offset)
|
|
ADD A,A
|
|
ADD A,B
|
|
ADD A,C
|
|
ADD A,D
|
|
ADD A,E
|
|
ADD A,H
|
|
ADD A,L
|
|
ADD A,n
|
|
ADD HL,BC
|
|
ADD HL,DE
|
|
ADD HL,HL
|
|
ADD HL,SP
|
|
ADD IX,BC
|
|
ADD IX,DE
|
|
ADD IX,IX
|
|
ADD IX,SP
|
|
ADD IY,BC
|
|
ADD IY,DE
|
|
ADD IY,IY
|
|
ADD IY,SP
|
|
|
|
AND (HL)
|
|
AND (IX+offset)
|
|
AND (IY+offset)
|
|
AND A
|
|
AND B
|
|
AND C
|
|
AND D
|
|
AND E
|
|
AND H
|
|
AND L
|
|
AND n
|
|
|
|
BIT 0,(HL)
|
|
BIT 0,(IX+offset)
|
|
BIT 0,(IY+offset)
|
|
BIT 0,A
|
|
BIT 0,B
|
|
BIT 0,C
|
|
BIT 0,D
|
|
BIT 0,E
|
|
BIT 0,H
|
|
BIT 0,L
|
|
|
|
BIT 1,(HL)
|
|
BIT 1,(IX+offset)
|
|
BIT 1,(IY+offset)
|
|
BIT 1,A
|
|
BIT 1,B
|
|
BIT 1,C
|
|
BIT 1,D
|
|
BIT 1,E
|
|
BIT 1,H
|
|
BIT 1,L
|
|
|
|
BIT 2,(HL)
|
|
BIT 2,(IX+offset)
|
|
BIT 2,(IY+offset)
|
|
BIT 2,A
|
|
BIT 2,B
|
|
BIT 2,C
|
|
BIT 2,D
|
|
BIT 2,E
|
|
BIT 2,H
|
|
BIT 2,L
|
|
|
|
BIT 3,(HL)
|
|
BIT 3,(IX+offset)
|
|
BIT 3,(IY+offset)
|
|
BIT 3,A
|
|
BIT 3,B
|
|
BIT 3,C
|
|
BIT 3,D
|
|
BIT 3,E
|
|
BIT 3,H
|
|
BIT 3,L
|
|
|
|
BIT 4,(HL)
|
|
BIT 4,(IX+offset)
|
|
BIT 4,(IY+offset)
|
|
BIT 4,A
|
|
BIT 4,B
|
|
BIT 4,C
|
|
BIT 4,D
|
|
BIT 4,E
|
|
BIT 4,H
|
|
BIT 4,L
|
|
|
|
BIT 5,(HL)
|
|
BIT 5,(IX+offset)
|
|
BIT 5,(IY+offset)
|
|
BIT 5,A
|
|
BIT 5,B
|
|
BIT 5,C
|
|
BIT 5,D
|
|
BIT 5,E
|
|
BIT 5,H
|
|
BIT 5,L
|
|
|
|
BIT 6,(HL)
|
|
BIT 6,(IX+offset)
|
|
BIT 6,(IY+offset)
|
|
BIT 6,A
|
|
BIT 6,B
|
|
BIT 6,C
|
|
BIT 6,D
|
|
BIT 6,E
|
|
BIT 6,H
|
|
BIT 6,L
|
|
|
|
BIT 7,(HL)
|
|
BIT 7,(IX+offset)
|
|
BIT 7,(IY+offset)
|
|
BIT 7,A
|
|
BIT 7,B
|
|
BIT 7,C
|
|
BIT 7,D
|
|
BIT 7,E
|
|
BIT 7,H
|
|
BIT 7,L
|
|
|
|
CALL C,addr16
|
|
CALL M,addr16
|
|
CALL NC,addr16
|
|
CALL NZ,addr16
|
|
CALL P,addr16
|
|
CALL PE,addr16
|
|
CALL PO,addr16
|
|
CALL Z,addr16
|
|
CALL addr16
|
|
|
|
CCF
|
|
|
|
CP (HL)
|
|
CP (IX+offset)
|
|
CP (IY+offset)
|
|
CP A
|
|
CP B
|
|
CP C
|
|
CP D
|
|
CP E
|
|
CP H
|
|
CP L
|
|
CP imm8
|
|
CPD
|
|
CPDR
|
|
CPIR
|
|
CPI
|
|
CPL
|
|
|
|
DAA
|
|
|
|
DEC (HL)
|
|
DEC (IX+offset)
|
|
DEC (IY+offset)
|
|
DEC A
|
|
DEC B
|
|
DEC BC
|
|
DEC C
|
|
DEC D
|
|
DEC DE
|
|
DEC E
|
|
DEC H
|
|
DEC HL
|
|
DEC IX
|
|
DEC IY
|
|
DEC L
|
|
DEC SP
|
|
DI
|
|
loop1:
|
|
DJNZ loop1
|
|
|
|
EI
|
|
EX (SP),HL
|
|
EX (SP),IX
|
|
EX (SP),IY
|
|
EX AF,AF'
|
|
EX DE,HL
|
|
EXX
|
|
HALT
|
|
|
|
IM 0
|
|
IM 1
|
|
IM 2
|
|
|
|
IN A,(C)
|
|
IN B,(C)
|
|
IN C,(C)
|
|
IN D,(C)
|
|
IN E,(C)
|
|
IN H,(C)
|
|
IN L,(C)
|
|
IN A,(port)
|
|
|
|
IN0 B,(n)
|
|
IN0 C,(n)
|
|
IN0 D,(n)
|
|
IN0 E,(n)
|
|
IN0 H,(n)
|
|
IN0 L,(n)
|
|
|
|
INC (HL)
|
|
INC (IX+offset)
|
|
INC (IY+offset)
|
|
INC A
|
|
INC B
|
|
INC BC
|
|
INC C
|
|
INC D
|
|
INC DE
|
|
INC E
|
|
INC H
|
|
INC HL
|
|
INC IX
|
|
INC IY
|
|
INC L
|
|
INC SP
|
|
|
|
IND
|
|
INDR
|
|
INI
|
|
INIR
|
|
|
|
JP addr16
|
|
JP (HL)
|
|
JP (IX)
|
|
JP (IY)
|
|
JP C,addr16
|
|
JP M,addr16
|
|
JP NC,addr16
|
|
JP NZ,addr16
|
|
JP P,addr16
|
|
JP PE,addr16
|
|
JP PO,addr16
|
|
JP Z,addr16
|
|
|
|
loop2:
|
|
JR C,loop2
|
|
JR NC,loop2
|
|
JR NZ,loop2
|
|
JR Z,loop2
|
|
JR loop2
|
|
|
|
LD (BC),A
|
|
LD (DE),A
|
|
LD (HL),A
|
|
LD (HL),B
|
|
LD (HL),C
|
|
LD (HL),D
|
|
LD (HL),E
|
|
LD (HL),H
|
|
LD (HL),L
|
|
LD (HL),n
|
|
LD (IX+offset),A
|
|
LD (IX+offset),B
|
|
LD (IX+offset),C
|
|
LD (IX+offset),D
|
|
LD (IX+offset),E
|
|
LD (IX+offset),H
|
|
LD (IX+offset),L
|
|
LD (IX+offset),n
|
|
LD (IY+offset),A
|
|
LD (IY+offset),B
|
|
LD (IY+offset),C
|
|
LD (IY+offset),D
|
|
LD (IY+offset),E
|
|
LD (IY+offset),H
|
|
LD (IY+offset),L
|
|
LD (IY+offset),n
|
|
LD (nn),A
|
|
LD (nn),BC
|
|
LD (nn),DE
|
|
LD (nn),HL
|
|
LD (nn),IX
|
|
LD (nn),IY
|
|
LD (nn),SP
|
|
LD A,(BC)
|
|
LD A,(DE)
|
|
LD A,(HL)
|
|
LD A,(IX+offset)
|
|
LD A,(IY+offset)
|
|
LD A,(nn)
|
|
LD A,A
|
|
LD A,B
|
|
LD A,C
|
|
LD A,D
|
|
LD A,E
|
|
LD A,H
|
|
LD A,I
|
|
LD A,L
|
|
LD A,n
|
|
LD A,R
|
|
LD B,(HL)
|
|
LD B,(IX+offset)
|
|
LD B,(IY+offset)
|
|
LD B,A
|
|
LD B,B
|
|
LD B,C
|
|
LD B,D
|
|
LD B,E
|
|
LD B,H
|
|
LD B,L
|
|
LD B,n
|
|
LD BC,(nn)
|
|
LD BC,nn
|
|
LD C,(HL)
|
|
LD C,(IX+offset)
|
|
LD C,(IY+offset)
|
|
LD C,A
|
|
LD C,B
|
|
LD C,C
|
|
LD C,D
|
|
LD C,E
|
|
LD C,H
|
|
LD C,L
|
|
LD C,n
|
|
LD D,(HL)
|
|
LD D,(IX+offset)
|
|
LD D,(IY+offset)
|
|
LD D,A
|
|
LD D,B
|
|
LD D,C
|
|
LD D,D
|
|
LD D,E
|
|
LD D,H
|
|
LD D,L
|
|
LD D,n
|
|
LD DE,(nn)
|
|
LD DE,nn
|
|
LD E,(HL)
|
|
LD E,(IX+offset)
|
|
LD E,(IY+offset)
|
|
LD E,A
|
|
LD E,B
|
|
LD E,C
|
|
LD E,D
|
|
LD E,E
|
|
LD E,H
|
|
LD E,L
|
|
LD E,n
|
|
LD H,(HL)
|
|
LD H,(IX+offset)
|
|
LD H,(IY+offset)
|
|
LD H,A
|
|
LD H,B
|
|
LD H,C
|
|
LD H,D
|
|
LD H,E
|
|
LD H,H
|
|
LD H,L
|
|
LD H,n
|
|
LD HL,(nn)
|
|
LD HL,nn
|
|
LD I,A
|
|
LD IX,(nn)
|
|
LD IX,nn
|
|
LD IY,(nn)
|
|
LD IY,nn
|
|
LD L,(HL)
|
|
LD L,(IX+offset)
|
|
LD L,(IY+offset)
|
|
LD L,A
|
|
LD L,B
|
|
LD L,C
|
|
LD L,D
|
|
LD L,E
|
|
LD L,H
|
|
LD L,L
|
|
LD L,n
|
|
LD R,A
|
|
LD SP,(nn)
|
|
LD SP,HL
|
|
LD SP,IX
|
|
LD SP,IY
|
|
LD SP,nn
|
|
|
|
LDD
|
|
LDDR
|
|
LDI
|
|
LDIR
|
|
|
|
MLT BC
|
|
MLT DE
|
|
MLT HL
|
|
MLT SP
|
|
|
|
NEG
|
|
NOP
|
|
|
|
OR (HL)
|
|
OR (IX+offset)
|
|
OR (IY+offset)
|
|
OR A
|
|
OR B
|
|
OR C
|
|
OR D
|
|
OR E
|
|
OR H
|
|
OR L
|
|
OR imm8
|
|
|
|
OTDR
|
|
OTIR
|
|
|
|
OUT (C),A
|
|
OUT (C),B
|
|
OUT (C),C
|
|
OUT (C),D
|
|
OUT (C),E
|
|
OUT (C),H
|
|
OUT (C),L
|
|
OUT (port),A
|
|
|
|
OUT0 (imm8),A
|
|
OUT0 (imm8),B
|
|
OUT0 (imm8),C
|
|
OUT0 (imm8),D
|
|
OUT0 (imm8),E
|
|
OUT0 (imm8),H
|
|
OUT0 (imm8),L
|
|
|
|
OUTD
|
|
OUTI
|
|
OTIM
|
|
OTDM
|
|
OTIMR
|
|
OTDMR
|
|
|
|
POP AF
|
|
POP BC
|
|
POP DE
|
|
POP HL
|
|
POP IX
|
|
POP IY
|
|
|
|
PUSH AF
|
|
PUSH BC
|
|
PUSH DE
|
|
PUSH HL
|
|
PUSH IX
|
|
PUSH IY
|
|
|
|
RES 0,(HL)
|
|
RES 0,(IX+offset)
|
|
RES 0,(IY+offset)
|
|
RES 0,A
|
|
RES 0,B
|
|
RES 0,C
|
|
RES 0,D
|
|
RES 0,E
|
|
RES 0,H
|
|
RES 0,L
|
|
|
|
RES 1,(HL)
|
|
RES 1,(IX+offset)
|
|
RES 1,(IY+offset)
|
|
RES 1,A
|
|
RES 1,B
|
|
RES 1,C
|
|
RES 1,D
|
|
RES 1,E
|
|
RES 1,H
|
|
RES 1,L
|
|
|
|
RES 2,(HL)
|
|
RES 2,(IX+offset)
|
|
RES 2,(IY+offset)
|
|
RES 2,A
|
|
RES 2,B
|
|
RES 2,C
|
|
RES 2,D
|
|
RES 2,E
|
|
RES 2,H
|
|
RES 2,L
|
|
|
|
RES 3,(HL)
|
|
RES 3,(IX+offset)
|
|
RES 3,(IY+offset)
|
|
RES 3,A
|
|
RES 3,B
|
|
RES 3,C
|
|
RES 3,D
|
|
RES 3,E
|
|
RES 3,H
|
|
RES 3,L
|
|
|
|
RES 4,(HL)
|
|
RES 4,(IX+offset)
|
|
RES 4,(IY+offset)
|
|
RES 4,A
|
|
RES 4,B
|
|
RES 4,C
|
|
RES 4,D
|
|
RES 4,E
|
|
RES 4,H
|
|
RES 4,L
|
|
|
|
RES 5,(HL)
|
|
RES 5,(IX+offset)
|
|
RES 5,(IY+offset)
|
|
RES 5,A
|
|
RES 5,B
|
|
RES 5,C
|
|
RES 5,D
|
|
RES 5,E
|
|
RES 5,H
|
|
RES 5,L
|
|
|
|
RES 6,(HL)
|
|
RES 6,(IX+offset)
|
|
RES 6,(IY+offset)
|
|
RES 6,A
|
|
RES 6,B
|
|
RES 6,C
|
|
RES 6,D
|
|
RES 6,E
|
|
RES 6,H
|
|
RES 6,L
|
|
|
|
RES 7,(HL)
|
|
RES 7,(IX+offset)
|
|
RES 7,(IY+offset)
|
|
RES 7,A
|
|
RES 7,B
|
|
RES 7,C
|
|
RES 7,D
|
|
RES 7,E
|
|
RES 7,H
|
|
RES 7,L
|
|
|
|
RET
|
|
RET C
|
|
RET M
|
|
RET NC
|
|
RET NZ
|
|
RET P
|
|
RET PE
|
|
RET PO
|
|
RET Z
|
|
RETI
|
|
RETN
|
|
|
|
RL (HL)
|
|
RL (IX+offset)
|
|
RL (IY+offset)
|
|
RL A
|
|
RL B
|
|
RL C
|
|
RL D
|
|
RL E
|
|
RL H
|
|
RL L
|
|
RLA
|
|
|
|
RLC (HL)
|
|
RLC (IX+offset)
|
|
RLC (IY+offset)
|
|
RLC A
|
|
RLC B
|
|
RLC C
|
|
RLC D
|
|
RLC E
|
|
RLC H
|
|
RLC L
|
|
RLCA
|
|
RLD
|
|
|
|
RR (HL)
|
|
RR (IX+offset)
|
|
RR (IY+offset)
|
|
RR A
|
|
RR B
|
|
RR C
|
|
RR D
|
|
RR E
|
|
RR H
|
|
RR L
|
|
RRA
|
|
|
|
RRC (HL)
|
|
RRC (IX+offset)
|
|
RRC (IY+offset)
|
|
RRC A
|
|
RRC B
|
|
RRC C
|
|
RRC D
|
|
RRC E
|
|
RRC H
|
|
RRC L
|
|
RRCA
|
|
RRD
|
|
|
|
RST 00H
|
|
RST 08H
|
|
RST 10H
|
|
RST 18H
|
|
RST 20H
|
|
RST 28H
|
|
RST 30H
|
|
RST 38H
|
|
|
|
SBC A,n
|
|
SBC A,(HL)
|
|
SBC A,(IX+offset)
|
|
SBC A,(IY+offset)
|
|
SBC A,A
|
|
SBC A,B
|
|
SBC A,C
|
|
SBC A,D
|
|
SBC A,E
|
|
SBC A,H
|
|
SBC A,L
|
|
SBC HL,BC
|
|
SBC HL,DE
|
|
SBC HL,HL
|
|
SBC HL,SP
|
|
SCF
|
|
|
|
SET 0,(HL)
|
|
SET 0,(IX+offset)
|
|
SET 0,(IY+offset)
|
|
SET 0,A
|
|
SET 0,B
|
|
SET 0,C
|
|
SET 0,D
|
|
SET 0,E
|
|
SET 0,H
|
|
SET 0,L
|
|
|
|
SET 1,(HL)
|
|
SET 1,(IX+offset)
|
|
SET 1,(IY+offset)
|
|
SET 1,A
|
|
SET 1,B
|
|
SET 1,C
|
|
SET 1,D
|
|
SET 1,E
|
|
SET 1,H
|
|
SET 1,L
|
|
|
|
SET 2,(HL)
|
|
SET 2,(IX+offset)
|
|
SET 2,(IY+offset)
|
|
SET 2,A
|
|
SET 2,B
|
|
SET 2,C
|
|
SET 2,D
|
|
SET 2,E
|
|
SET 2,H
|
|
SET 2,L
|
|
|
|
SET 3,(HL)
|
|
SET 3,(IX+offset)
|
|
SET 3,(IY+offset)
|
|
SET 3,A
|
|
SET 3,B
|
|
SET 3,C
|
|
SET 3,D
|
|
SET 3,E
|
|
SET 3,H
|
|
SET 3,L
|
|
|
|
SET 4,(HL)
|
|
SET 4,(IX+offset)
|
|
SET 4,(IY+offset)
|
|
SET 4,A
|
|
SET 4,B
|
|
SET 4,C
|
|
SET 4,D
|
|
SET 4,E
|
|
SET 4,H
|
|
SET 4,L
|
|
|
|
SET 5,(HL)
|
|
SET 5,(IX+offset)
|
|
SET 5,(IY+offset)
|
|
SET 5,A
|
|
SET 5,B
|
|
SET 5,C
|
|
SET 5,D
|
|
SET 5,E
|
|
SET 5,H
|
|
SET 5,L
|
|
|
|
SET 6,(HL)
|
|
SET 6,(IX+offset)
|
|
SET 6,(IY+offset)
|
|
SET 6,A
|
|
SET 6,B
|
|
SET 6,C
|
|
SET 6,D
|
|
SET 6,E
|
|
SET 6,H
|
|
SET 6,L
|
|
|
|
SET 7,(HL)
|
|
SET 7,(IX+offset)
|
|
SET 7,(IY+offset)
|
|
SET 7,A
|
|
SET 7,B
|
|
SET 7,C
|
|
SET 7,D
|
|
SET 7,E
|
|
SET 7,H
|
|
SET 7,L
|
|
|
|
SLA (HL)
|
|
SLA (IX+offset)
|
|
SLA (IY+offset)
|
|
SLA A
|
|
SLA B
|
|
SLA C
|
|
SLA D
|
|
SLA E
|
|
SLA H
|
|
SLA L
|
|
|
|
SLP
|
|
|
|
SRA (HL)
|
|
SRA (IX+offset)
|
|
SRA (IY+offset)
|
|
SRA A
|
|
SRA B
|
|
SRA C
|
|
SRA D
|
|
SRA E
|
|
SRA H
|
|
SRA L
|
|
|
|
SRL (HL)
|
|
SRL (IX+offset)
|
|
SRL (IY+offset)
|
|
SRL A
|
|
SRL B
|
|
SRL C
|
|
SRL D
|
|
SRL E
|
|
SRL H
|
|
SRL L
|
|
|
|
SUB (HL)
|
|
SUB (IX+offset)
|
|
SUB (IY+offset)
|
|
SUB A
|
|
SUB B
|
|
SUB C
|
|
SUB D
|
|
SUB E
|
|
SUB H
|
|
SUB L
|
|
SUB n
|
|
|
|
TST A
|
|
TST B
|
|
TST C
|
|
TST D
|
|
TST E
|
|
TST (HL)
|
|
TST n
|
|
|
|
XOR (HL)
|
|
XOR (IX+offset)
|
|
XOR (IY+offset)
|
|
XOR A
|
|
XOR B
|
|
XOR C
|
|
XOR D
|
|
XOR E
|
|
XOR H
|
|
XOR L
|
|
XOR n
|
|
end
|
|
|