mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 09:29:26 +02:00
+ created a parseable Z80 instruction description file, very loosely based on x86ins.dat. Parser not
implemented yet, but will be soon. git-svn-id: branches/z80@44554 -
This commit is contained in:
parent
9309e2c42e
commit
565cc0e96b
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1079,6 +1079,7 @@ compiler/z80/rz80sta.inc svneol=native#text/plain
|
|||||||
compiler/z80/rz80std.inc svneol=native#text/plain
|
compiler/z80/rz80std.inc svneol=native#text/plain
|
||||||
compiler/z80/rz80sup.inc svneol=native#text/plain
|
compiler/z80/rz80sup.inc svneol=native#text/plain
|
||||||
compiler/z80/symcpu.pas svneol=native#text/plain
|
compiler/z80/symcpu.pas svneol=native#text/plain
|
||||||
|
compiler/z80/z80ins.dat svneol=native#text/plain
|
||||||
compiler/z80/z80reg.dat svneol=native#text/plain
|
compiler/z80/z80reg.dat svneol=native#text/plain
|
||||||
/fpmake.pp svneol=native#text/plain
|
/fpmake.pp svneol=native#text/plain
|
||||||
/fpmake_add1.inc svneol=native#text/plain
|
/fpmake_add1.inc svneol=native#text/plain
|
||||||
|
372
compiler/z80/z80ins.dat
Normal file
372
compiler/z80/z80ins.dat
Normal file
@ -0,0 +1,372 @@
|
|||||||
|
; legend:
|
||||||
|
; r - 8-bit register: A/B/C/D/E/H/L
|
||||||
|
; r' - 8-bit register: A/B/C/D/E/H/L
|
||||||
|
; b - 3-bit immediate value (bit number: [0..7])
|
||||||
|
; n - 8-bit immediate value
|
||||||
|
; p - immediate value in [$00,$08,$10,$18,$20,$28,$30,$38]
|
||||||
|
; e - 8-bit relative jump offset
|
||||||
|
; nn - 16-bit immediate value
|
||||||
|
; cc - condition: NZ/Z/NC/C/PO/PE/P/M
|
||||||
|
; C - condition C
|
||||||
|
; NC - condition NC
|
||||||
|
; Z - condition Z
|
||||||
|
; NZ - condition NZ
|
||||||
|
; dd - 16-bit register pair: BC/DE/HL/SP
|
||||||
|
; qq - 16-bit register pair: BC/DE/HL/AF
|
||||||
|
; pp - 16-bit register pair: BC/DE/IX/SP
|
||||||
|
; rr - 16-bit register pair: BC/DE/IY/SP
|
||||||
|
; A - register A
|
||||||
|
; I - register I
|
||||||
|
; R - register R
|
||||||
|
; IX - register IX
|
||||||
|
; IY - register IY
|
||||||
|
; SP - register SP
|
||||||
|
; DE - 16-bit register pair DE
|
||||||
|
; HL - 16-bit register pair HL
|
||||||
|
; AF - 16-bit register pair AF
|
||||||
|
; AF' - alternate register set, 16-bit register pair AF'
|
||||||
|
; (C) - implied parameter of the IN and OUT instructions
|
||||||
|
; (nn) - memory contents at address (nn = 16-bit immediate address)
|
||||||
|
; (BC) - memory contents at address in register BC
|
||||||
|
; (DE) - memory contents at address in register DE
|
||||||
|
; (HL) - memory contents at address in register HL
|
||||||
|
; (SP) - memory contents at address in register SP
|
||||||
|
; (IX+d) - memory contents at address in register IX+d, d is in [-128..127]
|
||||||
|
; (IY+d) - memory contents at address in register IX+d, d is in [-128..127]
|
||||||
|
|
||||||
|
[ADC]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
HL,dd
|
||||||
|
|
||||||
|
[ADD]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
HL,dd
|
||||||
|
IX,pp
|
||||||
|
IY,rr
|
||||||
|
|
||||||
|
[AND]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
|
||||||
|
[BIT]
|
||||||
|
b,r
|
||||||
|
b,(HL)
|
||||||
|
b,(IX+d)
|
||||||
|
b,(IY+d)
|
||||||
|
|
||||||
|
[CALL]
|
||||||
|
nn
|
||||||
|
cc,nn
|
||||||
|
|
||||||
|
[CCF]
|
||||||
|
void
|
||||||
|
|
||||||
|
[CP]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
|
||||||
|
[CPD]
|
||||||
|
void
|
||||||
|
|
||||||
|
[CPDR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[CPI]
|
||||||
|
void
|
||||||
|
|
||||||
|
[CPIR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[CPL]
|
||||||
|
void
|
||||||
|
|
||||||
|
[DAA]
|
||||||
|
void
|
||||||
|
|
||||||
|
[DEC]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
dd
|
||||||
|
IX
|
||||||
|
IY
|
||||||
|
|
||||||
|
[DI]
|
||||||
|
void
|
||||||
|
|
||||||
|
[DJNZ]
|
||||||
|
e
|
||||||
|
|
||||||
|
[EI]
|
||||||
|
void
|
||||||
|
|
||||||
|
[EX]
|
||||||
|
DE,HL
|
||||||
|
AF,AF'
|
||||||
|
(SP),HL
|
||||||
|
(SP),IX
|
||||||
|
(SP),IY
|
||||||
|
|
||||||
|
[EXX]
|
||||||
|
void
|
||||||
|
|
||||||
|
[HALT]
|
||||||
|
void
|
||||||
|
|
||||||
|
[IM]
|
||||||
|
0
|
||||||
|
1
|
||||||
|
2
|
||||||
|
|
||||||
|
[IN]
|
||||||
|
A,(n)
|
||||||
|
r,(C)
|
||||||
|
|
||||||
|
[INC]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
dd
|
||||||
|
IX
|
||||||
|
IY
|
||||||
|
|
||||||
|
[IND]
|
||||||
|
void
|
||||||
|
|
||||||
|
[INDR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[INI]
|
||||||
|
void
|
||||||
|
|
||||||
|
[INIR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[JP]
|
||||||
|
nn
|
||||||
|
cc,nn
|
||||||
|
(HL)
|
||||||
|
(IX)
|
||||||
|
(IY)
|
||||||
|
|
||||||
|
[JR]
|
||||||
|
e
|
||||||
|
C,e
|
||||||
|
NC,e
|
||||||
|
Z,e
|
||||||
|
NZ,e
|
||||||
|
|
||||||
|
[LD]
|
||||||
|
r,r'
|
||||||
|
r,n
|
||||||
|
r,(HL)
|
||||||
|
r,(IX+d)
|
||||||
|
r,(IY+d)
|
||||||
|
(HL),r
|
||||||
|
(IX+d),r
|
||||||
|
(IY+d),r
|
||||||
|
(HL),n
|
||||||
|
(IX+d),n
|
||||||
|
(IY+d),n
|
||||||
|
A,(BC)
|
||||||
|
A,(DE)
|
||||||
|
A,(nn)
|
||||||
|
(BC),A
|
||||||
|
(DE),A
|
||||||
|
(nn),A
|
||||||
|
A,I
|
||||||
|
A,R
|
||||||
|
I,A
|
||||||
|
R,A
|
||||||
|
dd,nn
|
||||||
|
IX,nn
|
||||||
|
IY,nn
|
||||||
|
HL,(nn)
|
||||||
|
dd,(nn)
|
||||||
|
IX,(nn)
|
||||||
|
IY,(nn)
|
||||||
|
(nn),HL
|
||||||
|
(nn),dd
|
||||||
|
(nn),IX
|
||||||
|
(nn),IY
|
||||||
|
SP,HL
|
||||||
|
SP,IX
|
||||||
|
SP,IY
|
||||||
|
|
||||||
|
[LDD]
|
||||||
|
void
|
||||||
|
|
||||||
|
[LDDR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[LDI]
|
||||||
|
void
|
||||||
|
|
||||||
|
[LDIR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[NEG]
|
||||||
|
void
|
||||||
|
|
||||||
|
[NOP]
|
||||||
|
void
|
||||||
|
|
||||||
|
[OR]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
|
||||||
|
[OTDR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[OTIR]
|
||||||
|
void
|
||||||
|
|
||||||
|
[OUT]
|
||||||
|
(n),A
|
||||||
|
(C),r
|
||||||
|
|
||||||
|
[OUTD]
|
||||||
|
void
|
||||||
|
|
||||||
|
[OUTI]
|
||||||
|
void
|
||||||
|
|
||||||
|
[POP]
|
||||||
|
qq
|
||||||
|
IX
|
||||||
|
IY
|
||||||
|
|
||||||
|
[PUSH]
|
||||||
|
qq
|
||||||
|
IX
|
||||||
|
IY
|
||||||
|
|
||||||
|
[RES]
|
||||||
|
b,r
|
||||||
|
b,(HL)
|
||||||
|
b,(IX+d)
|
||||||
|
b,(IY+d)
|
||||||
|
|
||||||
|
[RET]
|
||||||
|
void
|
||||||
|
cc
|
||||||
|
|
||||||
|
[RETI]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RETN]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RL]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
|
||||||
|
[RLA]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RLC]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
|
||||||
|
[RLCA]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RLD]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RR]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
|
||||||
|
[RRA]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RRC]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
|
||||||
|
[RRCA]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RRD]
|
||||||
|
void
|
||||||
|
|
||||||
|
[RST]
|
||||||
|
p
|
||||||
|
|
||||||
|
[SBC]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
HL,dd
|
||||||
|
|
||||||
|
[SCF]
|
||||||
|
void
|
||||||
|
|
||||||
|
[SET]
|
||||||
|
b,r
|
||||||
|
b,(HL)
|
||||||
|
b,(IX+d)
|
||||||
|
b,(IY+d)
|
||||||
|
|
||||||
|
[SLA]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
|
||||||
|
[SRA]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
|
||||||
|
[SRL]
|
||||||
|
r
|
||||||
|
(HL)
|
||||||
|
(IX+d)
|
||||||
|
(IY+d)
|
||||||
|
|
||||||
|
[SUB]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
|
||||||
|
[XOR]
|
||||||
|
A,r
|
||||||
|
A,n
|
||||||
|
A,(HL)
|
||||||
|
A,(IX+d)
|
||||||
|
A,(IY+d)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user