Source: map.grauw.nl/resources/z80instr.php (via github.com/maziac/z80-instruction-set). 491 instructions: documented Z80, undocumented variants (IXh/IXl/IYh/IYl, SLL, IN F,(C), DDCB/FDCB with reg results), and Z80N/ZX Spectrum Next extensions. Compiled 2026-02-20.
Instruction | Opcode (hex bytes) | Sz (instruction size in bytes) | Z80 (T-states on standard Z80) | Z80+M1 (T-states with MSX M1 wait) | CPC (timing in NOPs on Amstrad CPC, 1 NOP = 4T) | Flags (6 chars: S Z H P N C) | DescriptionConditional instructions show timing as taken/not-taken, e.g. 17/10.
Position order: S=Sign Z=Zero H=Half-carry P=Parity/Overflow N=Add/Subtract C=Carry - Unaffected (preserved) * Modified by result 0 Always reset to 0 1 Always set to 1 ? Undefined (varies by silicon revision) P P/V used as Parity (set if even number of 1-bits) V P/V used as Overflow (set if signed overflow)
r 8-bit register: B=0, C=1, D=2, E=3, H=4, L=5, A=7 p 8-bit reg (IX context): B,C,D,E, IXh=4, IXl=5, A=7 q 8-bit reg (IY context): B,C,D,E, IYh=4, IYl=5, A=7 n 8-bit immediate (0–255) nn 16-bit immediate (0–65535), little-endian o 8-bit signed displacement (–128 to +127) b Bit number (0–7) CY Carry flag [x] Memory byte at address x
(none) Main instruction set CB xx Bit ops: rotates, shifts, BIT/SET/RES ED xx Extended: block ops, 16-bit arith, I/O, special LD DD xx IX index variants (HL → IX) FD xx IY index variants (HL → IY) DD CB o xx IX indexed bit instructions FD CB o xx IY indexed bit instructions
M-cycles not stored explicitly; derive from T-states: M1 opcode fetch=4T, Mem read=3T, Mem write=3T, I/O=4T. Example: LD A,(nn) = 13T = M1(4)+addr-lo(3)+addr-hi(3)+data(3) = 4 M-cycles.
Key: [UND] = undocumented Z80 (works on real silicon, not in Zilog manual)
[Z80N] = ZX Spectrum Next extension (not Z80 standard)
No marker = official Zilog documented Z80
──────────────────────────────────────────────────────────────────────────────
ADC A,(HL) 8E 1 7 8 2 ***V0* A := A+[HL]+CY
ADC A,(IX+o) DD 8E o 3 19 21 3 ***V0* A := A+[IX+o]+CY
ADC A,(IY+o) FD 8E o 3 19 21 3 ***V0* A := A+[IY+o]+CY
ADC A,IXh DD 8C 2 8 10 2 ***V0* [UND] A := A+IXh+CY
ADC A,IXl DD 8D 2 8 10 2 ***V0* [UND] A := A+IXl+CY
ADC A,IYh FD 8C 2 8 10 2 ***V0* [UND] A := A+IYh+CY
ADC A,IYl FD 8D 2 8 10 2 ***V0* [UND] A := A+IYl+CY
ADC A,n CE n 2 7 8 2 ***V0* A := A+n+CY
ADC A,r 88+r 1 4 5 1 ***V0* A := A+r+CY
ADC HL,BC ED 4A 2 15 17 4 ***V0* HL := HL+BC+CY
ADC HL,DE ED 5A 2 15 17 4 ***V0* HL := HL+DE+CY
ADC HL,HL ED 6A 2 15 17 4 ***V0* HL := HL+HL+CY
ADC HL,SP ED 7A 2 15 17 4 ***V0* HL := HL+SP+CY
ADD A,(HL) 86 1 7 8 2 ***V0* A+=[HL]
ADD A,(IX+o) DD 86 o 3 19 21 3 ***V0* A := A+[IX+o]
ADD A,(IY+o) FD 86 o 3 19 21 3 ***V0* A := A+[IY+o]
ADD A,IXh DD 84 2 8 10 2 ***V0* [UND] A := A+IXh
ADD A,IXl DD 85 2 8 10 2 ***V0* [UND] A := A+IXl
ADD A,IYh FD 84 2 8 10 2 ***V0* [UND] A := A+IYh
ADD A,IYl FD 85 2 8 10 2 ***V0* [UND] A := A+IYl
ADD A,n C6 n 2 7 8 2 ***V0* A := A+n
ADD A,r 80+r 1 4 5 1 ***V0* A := A+r
ADD HL,BC 9 1 11 12 3 --*-0* HL := HL+BC
ADD HL,DE 19 1 11 12 3 --*-0* HL := HL+DE
ADD HL,HL 29 1 11 12 3 --*-0* HL := HL+HL
ADD HL,SP 39 1 11 12 3 --*-0* HL := HL+SP
ADD IX,BC DD 09 2 15 17 4 --*-0* IX := IX+BC
ADD IX,DE DD 19 2 15 17 4 --*-0* IX := IX+DE
ADD IX,IX DD 29 2 15 17 4 --*-0* IX := IX+IX
ADD IX,SP DD 39 2 15 17 4 --*-0* IX := IX+SP
ADD IY,BC FD 09 2 15 17 4 --*-0* IY := IY+BC
ADD IY,DE FD 19 2 15 17 4 --*-0* IY := IY+DE
ADD IY,IY FD 29 2 15 17 4 --*-0* IY := IY+IY
ADD IY,SP FD 39 2 15 17 4 --*-0* IY := IY+SP
AND (HL) A6 1 7 8 2 ***P00 A&=[HL]
AND (IX+o) DD A6 o 3 19 21 3 ***P00 A := A & [IX+o]
AND (IY+o) FD A6 o 3 19 21 3 ***P00 A := A & [IY+o]
AND IXh DD A4 2 8 10 2 ***P00 [UND] A := A & IXh
AND IXl DD A5 2 8 10 2 ***P00 [UND] A := A & IXl
AND IYh FD A4 2 8 10 2 ***P00 [UND] A := A & IYh
AND IYl FD A5 2 8 10 2 ***P00 [UND] A := A & IYl
AND n E6 n 2 7 8 2 ***P00 A := A & n
AND r A0+r 1 4 5 1 ***P00 A := A & r
BIT b,(HL) CB 46+8*b 2 12 14 3 ?*1?0- Test (HL).b
BIT b,(IX+o) DD CB o 46+8*b 4 20 22 6 ?*1?0- Test (IX+o).b
BIT b,(IY+o) FD CB o 46+8*b 4 20 22 6 ?*1?0- Test (IY+o).b
BIT b,r CB 40+8*b+r 2 8 10 2 ?*1?0- Test r.b
CALL C,nn DC nn nn 3 17/10 18/11 5/3 ------ If CY then SP := SP-2, [SP] := PC, PC := nn
CALL M,nn FC nn nn 3 17/10 18/11 5/3 ------ If sign negative then SP := SP-2, [SP] := PC,P C := nn
CALL NC,nn D4 nn nn 3 17/10 18/11 5/3 ------ If Non-Carry then SP := SP-2, [SP] := PC, PC := nn
CALL nn CD nn nn 3 17 18 5 ------ SP := SP-2, [SP] := PC, PC := nn
CALL NZ,nn C4 nn nn 3 17/10 18/11 5/3 ------ If Non-Zero then SP := SP-2, [SP] := PC, PC := nn
CALL P,nn F4 nn nn 3 17/10 18/11 5/3 ------ If sign positive then SP := SP-2, [SP] := PC, PC := nn
CALL PE,nn EC nn nn 3 17/10 18/11 5/3 ------ If parity even then SP := SP-2, [SP] := PC, PC := nn
CALL PO,nn E4 nn nn 3 17/10 18/11 5/3 ------ If oarity odd then SP := SP-2, [SP] := PC, PC := nn
CALL Z,nn CC nn nn 3 17/10 18/11 5/3 ------ If Zero then SP := SP-2, [SP] := PC, PC := nn
CCF 3F 1 4 5 1 --*-0* CY := ~CY
CP (HL) BE 1 7 8 2 ***V1* A-[HL]
CP (IX+o) DD BE o 3 19 21 3 ***V1* A-[IX+o]
CP (IY+o) FD BE o 3 19 21 3 ***V1* A-[IY+o]
CP IXh DD BC 2 8 10 2 ***V1* [UND] A-IXh
CP IXl DD BD 2 8 10 2 ***V1* [UND] A-IXl
CP IYh FD BC 2 8 10 2 ***V1* [UND] A-IYh
CP IYl FD BD 2 8 10 2 ***V1* [UND] A-IYl
CP n FE n 2 7 8 2 ***V1* A-n
CP r B8+r 1 4 5 1 ***V1* A-r
CPD ED A9 2 16 18 4 ****1- A-[HL], HL := HL-1, BC := BC-1, P/V := 0 if BC == 0
CPDR ED B9 2 21/16 23/18 6/4 ****1- CPD until A == [HL] or BC == 0
CPI ED A1 2 16 18 4 ****1- A-[HL], HL := HL+1, BC := BC-1, P/V := 0 if BC == 0
CPIR ED B1 2 21/16 23/18 6/4 ****1- CPI until A == [HL] or BC == 0
CPL 2F 1 4 5 1 --1-1- A := ~A
DAA 27 1 4 5 1 ***P-* A := adjust result to BCD-format
DEC (HL) 35 1 11 12 3 ***V1- [HL] := [HL]-1
DEC (IX+o) DD 35 o 3 23 25 6 ***V1- [IX+o] := [IX+o]-1
DEC (IY+o) FD 35 o 3 23 25 6 ***V1- [IY+o] := [IY+o]-1
DEC A 3D 1 4 5 1 ***V1- A := A-1
DEC B 5 1 4 5 1 ***V1- B := B-1
DEC BC 0B 1 6 7 2 ------ BC := BC-1
DEC C 0D 1 4 5 1 ***V1- C := C-1
DEC D 15 1 4 5 1 ***V1- D := D-1
DEC DE 1B 1 6 7 2 ------ DE := DE-1
DEC E 1D 1 4 5 1 ***V1- E := E-1
DEC H 25 1 4 5 1 ***V1- H := H-1
DEC HL 2B 1 6 7 2 ------ HL := HL-1
DEC IX DD 2B 2 10 12 3 ------ IX := IX-1
DEC IXh DD 25 2 8 10 2 ***V1- [UND] IXh := IXh-1
DEC IXl DD 2D 2 8 10 2 ***V1- [UND] IXl := IXl-1
DEC IY FD 2B 2 10 12 3 ------ IY := IY-1
DEC IYh FD 25 2 8 10 2 ***V1- [UND] IYh := IYh-1
DEC IYl FD 2D 2 8 10 2 ***V1- [UND] IYl := IYl-1
DEC L 2D 2 4 5 1 ***V1- L := L-1
DEC SP 3B 1 6 7 2 ------ SP := SP-1
DI F3 1 4 5 1 ------ Disable interrupts
DJNZ o 10 o 2 13/8 14/9 4/3 ------ B := B-1, if B != 0 then jump
EI FB 1 4 5 1 ------ Enable interrupts
EX (SP),HL E3 1 19 20 6 ------ [SP] <=> HL
EX (SP),IX DD E3 2 23 25 7 ------ [SP] <=> IX
EX (SP),IY FD E3 2 23 25 7 ------ [SP] <=> IY
EX AF,AF' 8 1 4 5 1 ****** AF <=> AF'
EX DE,HL EB 1 4 5 1 ------ DE <=> HL
EXX D9 1 4 5 1 ------ BC <=> BC', DE <=> DE', HL <=> HL'
HALT 76 1 4 5 1 ------ Repeat NOP until interrupt
IM 0 ED 46 2 8 10 2 ------ Set interrupt mode 0
IM 1 ED 56 2 8 10 2 ------ Set interrupt mode 1
IM 2 ED 5E 2 8 10 2 ------ Set interrupt mode 2
IN (C) ED 70 3 12 14 4 ****** F := port[BC]
IN A,(C) ED 78 2 12 14 3 **0P0- A := port[BC]
IN A,(n) DB n 2 11 12 3 ------ A := port[An]
IN B,(C) ED 40 2 12 14 4 **0P0- B := port[BC]
IN C,(C) ED 48 2 12 14 4 **0P0- C := port[BC]
IN D,(C) ED 50 2 12 14 4 **0P0- D := port[BC]
IN E,(C) ED 58 2 12 14 4 **0P0- E := port[BC]
IN F,(C) ED 70 3 12 14 4 ****** [UND] F := port[BC]
IN H,(C) ED 60 2 12 14 4 **0P0- H := port[BC]
IN L,(C) ED 68 2 12 14 4 **0P0- L := port[BC]
INC (HL) 34 1 11 12 3 ***V0- [HL] := [HL]+1
INC (IX+o) DD 34 o 3 23 25 6 ***V0- [IX+o] := [IX+o]+1
INC (IY+o) FD 34 o 3 23 25 6 ***V0- [IY+o] := [IY+o]+1
INC A 3C 1 4 5 1 ***V0- A := A+1
INC B 4 1 4 5 1 ***V0- B := B+1
INC BC 3 1 6 7 2 ------ BC := BC+1
INC C 0C 1 4 5 1 ***V0- C := C+1
INC D 14 1 4 5 1 ***V0- D := D+1
INC DE 13 1 6 7 2 ------ DE := DE+1
INC E 1C 1 4 5 1 ***V0- E := E+1
INC H 24 1 4 5 1 ***V0- H := H+1
INC HL 23 1 6 7 1 ------ HL := HL+1
INC IX DD 23 2 10 12 3 ------ IX := IX+1
INC IXh DD 24 2 8 10 2 ***V0- [UND] IXh := IXh+1
INC IXl DD 2C 2 8 10 2 ***V0- [UND] IXl := IXl+1
INC IY FD 23 2 10 12 3 ------ IY := IY+1
INC IYh FD 24 2 8 10 2 ***V0- [UND] IYh := IYh+1
INC IYl FD 2C 2 8 10 2 ***V0- [UND] IYl := IYl+1
INC L 2C 1 4 5 1 ***V0- L := L+1
INC SP 33 1 6 7 2 ------ SP := SP+1
IND ED AA 2 16 18 5 ****** [HL] := port[BC], HL := HL-1, B := B-1, Z is set if BC == 0
INDR ED BA 2 21/16 23/18 6/5 ****** IND until B == 0
INI ED A2 2 16 18 5 ****** [HL] := port[BC], HL := HL+1, B := B-1, Z is set if BC == 0
INIR ED B2 2 21/16 23/18 6/5 ****** INI until B == 0
JP (HL) E9 1 4 5 1 ------ PC := HL
JP (IX) DD E9 2 8 10 2 ------ PC := IX
JP (IY) FD E9 2 8 10 2 ------ PC := IY
JP C,nn DA nn nn 3 10 11 4/3 ------ If CY then PC := nn
JP HL E9 1 4 5 1 ------ PC := HL
JP M,nn FA nn nn 3 10 11 4/3 ------ If sign negative then PC := nn
JP NC,nn D2 nn nn 3 10 11 4/3 ------ If Non-CY then PC := nn
JP nn C3 nn nn 3 10 11 3 ------ PC := nn
JP NZ,nn C2 nn nn 3 10 11 4/3 ------ If Non-Zero then PC := nn
JP P,nn F2 nn nn 3 10 11 4/3 ------ If sign positive then PC := nn
JP PE,nn EA nn nn 3 10 11 4/3 ------ If parity even then PC := nn
JP PO,nn E2 nn nn 3 10 11 4/3 ------ If parity odd then PC := nn
JP Z,nn CA nn nn 3 10 11 4/3 ------ If Zero then PC := nn
JR C,o 38 o 2 12/7 13/8 3/2 ------ If CY then PC := PC+o
JR NC,o 30 o 2 12/7 13/8 3/2 ------ If Non-CY then PC := PC+o
JR NZ,o 20 o 2 12/7 13/8 3/2 ------ If Non-Zero then PC := PC+o
JR o 18 o 2 12 13 3 ------ PC := PC+o
JR Z,o 28 o 2 12/7 13/8 3/2 ------ If Zero then PC := PC+o
LD (BC),A 2 1 7 8 2 ------ (BC) := A
LD (DE),A 12 1 7 8 2 ------ (DE) := A
LD (HL),n 36 n 2 10 11 3 ------ (HL) := n
LD (HL),r 70+r 1 7 8 2 ------ (HL) := r
LD (IX+o),n DD 36 o n 4 19 21 6 ------ (IX+o) := n
LD (IX+o),r DD 70+r o 3 19 21 5 ------ (IX+o) := r
LD (IY+o),n FD 36 o n 4 19 21 6 ------ (IY+o) := n
LD (IY+o),r FD 70+r o 3 19 21 5 ------ (IY+o) := r
LD (nn),A 32 nn nn 3 13 14 4 ------ (nn) := A
LD (nn),BC ED 43 nn nn 4 20 22 6 ------ (nn) := BC
LD (nn),DE ED 53 nn nn 4 20 22 6 ------ (nn) := DE
LD (nn),HL 22 nn nn 3 16 17 5 ------ (nn) := HL
LD (nn),IX DD 22 nn nn 4 20 22 6 ------ (nn) := IX
LD (nn),IY FD 22 nn nn 4 20 22 6 ------ (nn) := IY
LD (nn),SP ED 73 nn nn 4 20 22 6 ------ (nn) := SP
LD A,(BC) 0A 1 7 8 2 ------ A := (BC)
LD A,(DE) 1A 1 7 8 2 ------ A := (DE)
LD A,(HL) 7E 1 7 8 2 ------ A := (HL)
LD A,(IX+o) DD 7E o 3 19 21 5 ------ A := (IX+o)
LD A,(IY+o) FD 7E o 3 19 21 5 ------ A := (IY+o)
LD A,(nn) 3A nn nn 3 13 14 4 ------ A := (nn)
LD A,I ED 57 2 9 11 3 **0?0- A := I, P := IFF2
LD A,IXh DD 7C 2 8 10 2 ------ [UND] A := IXh
LD A,IXl DD 7D 2 8 10 2 ------ [UND] A := IXl
LD A,IYh FD 7C 2 8 10 2 ------ [UND] A := IYh
LD A,IYl FD 7D 2 8 10 2 ------ [UND] A := IYl
LD A,n 3E n 2 7 8 2 ------ A := n
LD A,r 78+r 1 4 5 1 ------ A := r
LD A,R ED 5F 2 9 11 3 **0?0- A := R, P := IFF2
LD B,(HL) 46 1 7 8 2 ------ B := (HL)
LD B,(IX+o) DD 46 o 3 19 21 5 ------ B := (IX+o)
LD B,(IY+o) FD 46 o 3 19 21 5 ------ B := (IY+o)
LD B,IXh DD 44 2 8 10 2 ------ [UND] B := IXh
LD B,IXl DD 45 2 8 10 2 ------ [UND] B := IXl
LD B,IYh FD 44 2 8 10 2 ------ [UND] B := IYh
LD B,IYl FD 45 2 8 10 2 ------ [UND] B := IYl
LD B,n 06 n 2 7 8 2 ------ B := n
LD B,r 40+r 1 4 5 1 ------ B := r
LD BC,(nn) ED 4B nn nn 4 20 22 6 ------ BC := (nn)
LD BC,nn 01 nn nn 3 10 11 3 ------ BC := nn
LD C,(HL) 4E 1 7 8 2 ------ C := (HL)
LD C,(IX+o) DD 4E o 3 19 21 5 ------ C := (IX+o)
LD C,(IY+o) FD 4E o 3 19 21 5 ------ C := (IY+o)
LD C,IXh DD 4C 2 8 10 2 ------ [UND] C := IXh
LD C,IXl DD 4D 2 8 10 2 ------ [UND] C := IXl
LD C,IYh FD 4C 2 8 10 2 ------ [UND] C := IYh
LD C,IYl FD 4D 2 8 10 2 ------ [UND] C := IYl
LD C,n 0E n 2 7 8 2 ------ C := n
LD C,r 48+r 1 4 5 1 ------ C := r
LD D,(HL) 56 1 7 8 2 ------ D := (HL)
LD D,(IX+o) DD 56 o 3 19 21 5 ------ D := (IX+o)
LD D,(IY+o) FD 56 o 3 19 21 5 ------ D := (IY+o)
LD D,IXh DD 54 2 8 10 2 ------ [UND] D := IXh
LD D,IXl DD 55 2 8 10 2 ------ [UND] D := IXl
LD D,IYh FD 54 2 8 10 2 ------ [UND] D := IYh
LD D,IYl FD 55 2 8 10 2 ------ [UND] D := IYl
LD D,n 16 n 2 7 8 2 ------ D := n
LD D,r 50+r 1 4 5 1 ------ D := r
LD DE,(nn) ED 5B nn nn 4 20 22 4 ------ DE := (nn)
LD DE,nn 11 nn nn 3 10 11 3 ------ DE := nn
LD E,(HL) 5E 1 7 8 2 ------ E := (HL)
LD E,(IX+o) DD 5E o 3 19 21 5 ------ E := (IX+o)
LD E,(IY+o) FD 5E o 3 19 21 5 ------ E := (IY+o)
LD E,IXh DD 58+p 2 8 10 2 ------ [UND] E := IXh
LD E,IXl DD 58+p 2 8 10 2 ------ [UND] E := IXl
LD E,IYh FD 58+q 2 8 10 2 ------ [UND] E := IYh
LD E,IYl FD 58+q 2 8 10 2 ------ [UND] E := IYl
LD E,n 1E n 2 7 8 2 ------ E := n
LD E,r 58+r 1 4 5 1 ------ E := r
LD H,(HL) 66 1 7 8 2 ------ H := (HL)
LD H,(IX+o) DD 66 o 3 19 21 5 ------ H := (IX+o)
LD H,(IY+o) FD 66 o 3 19 21 5 ------ H := (IY+o)
LD H,n 26 n 2 7 8 2 ------ H := n
LD H,r 60+r 1 4 5 1 ------ H := r
LD HL,(nn) 2A nn nn 5 16 17 5 ------ HL := (nn)
LD HL,nn 21 nn nn 3 10 11 3 ------ HL := nn
LD I,A ED 47 2 9 11 3 ------ I := A
LD IX,(nn) DD 2A nn nn 4 20 22 6 ------ IX := (nn)
LD IX,nn DD 21 nn nn 4 14 16 4 ------ IX := nn
LD IXh,n DD 26 n 3 11 13 4 ------ [UND] IXh := n
LD IXh,p DD 60+p 2 8 10 3 ------ [UND] IXh := p
LD IXl,n DD 2E n 3 11 13 4 ------ [UND] IXl := n
LD IXl,p DD 68+p 2 8 10 3 ------ [UND] IXl := p
LD IY,(nn) FD 2A nn nn 4 20 22 6 ------ IY := (nn)
LD IY,nn FD 21 nn nn 4 14 16 4 ------ IY := nn
LD IYh,n FD 26 n 3 11 13 3 ------ [UND] IYh := n
LD IYh,q FD 60+q 2 8 10 3 ------ [UND] IYh := q
LD IYl,n FD 2E n 3 11 13 4 ------ [UND] IYl := n
LD IYl,q FD 68+q 2 8 10 3 ------ [UND] IYl := q
LD L,(HL) 6E 1 7 8 2 ------ L := (HL)
LD L,(IX+o) DD 6E o 3 19 21 5 ------ L := (IX+o)
LD L,(IY+o) FD 6E o 3 19 21 5 ------ L := (IY+o)
LD L,n 2E n 2 7 8 2 ------ L := n
LD L,r 68+r 1 4 5 1 ------ L := r
LD R,A ED 4F 2 9 11 3 ------ R := A
LD SP,(nn) ED 7B nn nn 4 20 22 6 ------ SP := (nn)
LD SP,HL F9 1 6 7 2 ------ SP := HL
LD SP,IX DD F9 2 10 12 3 ------ SP := IX
LD SP,IY FD F9 2 10 12 3 ------ SP := IY
LD SP,nn 31 nn nn 3 10 11 3 ------ SP := nn
LDD ED A8 2 16 18 5 --0*0- [DE] := [HL], HL := HL-1, DE := DE-1, BC := BC-1
LDDR ED B8 2 21/16 23/18 6/5 --000- LDD until BC == 0
LDI ED A0 2 16 18 5 --0*0- [DE] := [HL], HL := HL+1, DE := DE+1, BC := BC-1
LDIR ED B0 2 21/16 23/18 6/5 --000- LDI until BC == 0
NEG ED 44 2 8 10 2 ***V1* A := -A
NOP 0 1 4 5 1 ------ No operation
OR (HL) B6 1 7 8 2 ***P00 A := A|[HL]
OR (IX+o) DD B6 o 3 19 21 3 ***P00 A := A|[IX+o]
OR (IY+o) FD B6 o 3 19 21 3 ***P00 A := A|[IY+o]
OR IXh DD B4 2 8 10 2 ***P00 [UND] A := A|IXh
OR IXl DD B5 2 8 10 2 ***P00 [UND] A := A|IXl
OR IYh FD B4 2 8 10 2 ***P00 [UND] A := A|IYh
OR IYl FD B5 2 8 10 2 ***P00 [UND] A := A|IYl
OR n F6 n 2 7 8 2 ***P00 A := A|n
OR r B0+r 1 4 5 1 ***P00 A := A|r
OTDR ED BB 2 21/16 23/18 6/5 ****** OUTD until B == 0
OTIR ED B3 2 21/16 23/18 6/5 ****** OUTI until B == 0
OUT (C),0 ED 71 2 12 14 4 ------ [UND] port[BC] := 0 (NMOS Z80) or 255 (CMOS Z80) (undocumented)
OUT (C),A ED 79 2 12 14 4 ------ port[BC] := A
OUT (C),B ED 41 2 12 14 4 ------ port[BC] := B
OUT (C),C ED 49 2 12 14 4 ------ port[BC] := C
OUT (C),D ED 51 2 12 14 4 ------ port[BC] := D
OUT (C),E ED 59 2 12 14 4 ------ port[BC] := E
OUT (C),H ED 61 2 12 14 4 ------ port[BC] := H
OUT (C),L ED 69 2 12 14 4 ------ port[BC] := L
OUT (n),A D3 n 2 11 12 4 ------ port[An] := A
OUTD ED AB 2 16 18 5 ****** B := B-1, port[BC] := [HL], HL := HL-1
OUTI ED A3 2 16 18 5 ****** B := B-1; port[BC] := [HL], HL := HL+1
POP AF F1 1 10 11 3 ****** F := [SP], SP := SP+1, A := [SP], SP := SP+1
POP BC C1 1 10 11 3 ------ C := [SP], SP := SP+1, B := [SP], SP := SP+1
POP DE D1 1 10 11 3 ------ E := [SP], SP := SP+1, D := [SP], SP := SP+1
POP HL E1 1 10 11 3 ------ L := [SP], SP := SP+1, H := [SP], SP := SP+1
POP IX DD E1 2 14 16 4 ------ IXl := [SP], SP := SP+1, IXh := [SP], SP := SP+1
POP IY FD E1 2 14 16 4 ------ IYl := [SP], SP := SP+1, IYh := [SP], SP := SP+1
PUSH AF F5 1 11 12 4 ------ SP := SP-1, [SP] := A, SP := SP-1, [SP] := F
PUSH BC C5 1 11 12 4 ------ SP := SP-1, [SP] := B, SP := SP-1, [SP] := C
PUSH DE D5 1 11 12 4 ------ SP := SP-1, [SP] := D, SP := SP-1, [SP] := E
PUSH HL E5 1 11 12 4 ------ SP := SP-1, [SP] := H, SP := SP-1, [SP] := L
PUSH IX DD E5 2 15 17 5 ------ SP := SP-1, [SP] := IXh, SP := SP-1, [SP] := IXl
PUSH IY FD E5 2 15 17 5 ------ SP := SP-1, [SP] := IYh, SP := SP-1, [SP] := IYl
RES b,(HL) CB 86+8*b 2 15 17 4 ------ [HL].b := 0
RES b,(IX+o) DD CB o 86+8*b 4 23 25 7 ------ [IX+o].b := 0
RES b,(IY+o) FD CB o 86+8*b 4 23 25 7 ------ [IY+o].b := 0
RES b,r CB 80+8*b+r 2 8 10 2 ------ r.b := 0
RET C9 1 10 11 3 ------ Return from subroutine, PC := [SP,SP+1], SP := SP+2
RET C D8 1 11/5 12/6 4/2 ------ Return from subroutine, if CY then PC := [SP,SP+1], SP := SP+2
RET M F8 1 11/5 12/6 4/2 ------ If sign negative then PC := [SP,SP+1], SP := SP+2
RET NC D0 1 11/5 12/6 4/2 ------ If Non-CY then PC := [SP,SP+1], SP := SP+2
RET NZ C0 1 11/5 12/6 4/2 ------ If Non-Zero then PC := [SP,SP+1], SP := SP+2
RET P F0 1 11/5 12/6 4/2 ------ If sign positive then PC := [SP,SP+1], SP := SP+2
RET PE E8 1 11/5 12/6 4/2 ------ If parity even then PC := [SP,SP+1], SP := SP+2
RET PO E0 1 11/5 12/6 4/2 ------ If parity odd then PC := [SP,SP+1], SP := SP+2
RET Z C8 1 11/5 12/6 4/2 ------ If Zero then PC := [SP,SP+1], SP := SP+2
RETI ED 4D 2 14 16 4 ------ Return from ISR (interrupt service routine), PC := [SP,SP+1], SP := SP+2
RETN ED 45 2 14 16 4 ------ Return from NMI (non maskable interrupt), PC := [SP,SP+1], SP := SP+2
RL (HL) CB 16 2 15 17 4 **0P0* Rotate [HL] left through CY, CY<7<6<5<4<3<2<1<0<CY
RL (IX+o) DD CB o 16 4 23 25 7 **0P0* Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY
RL (IY+o) FD CB o 16 4 23 25 7 **0P0* Rotate [IY+o] left through CY, CY<7<6<5<4<3<2<1<0<CY
RL r CB 10+r 2 8 10 2 **0P0* Rotate r left through CY, CY<7<6<5<4<3<2<1<0<CY
RLA 17 1 4 5 1 --0-0* Rotate A through CY, CY<7<6<5<4<3<2<1<0<CY
RLC (HL) CB 06 2 15 17 4 **0P0* Rotate [HL] left with CY, CY<7<6<5<4<3<2<1<0<7
RLC (IX+o) DD CB o 06 4 23 25 7 **0P0* Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7
RLC (IY+o) FD CB o 06 4 23 25 7 **0P0* Rotate [IY+o] left with CY, CY<7<6<5<4<3<2<1<0<7
RLC r CB 00+r 2 8 10 2 **0P0* Rotate r left with CY, CY<7<6<5<4<3<2<1<0<7
RLCA 07 1 4 5 1 --0-0* Rotate A left with CY, CY<7<6<5<4<3<2<1<0<7
RLD ED 6F 2 18 20 5 **0P0- A.0-3 := [HL].4-7, [HL].4-7 := [HL].0-3, [HL].0-3 := A.0-3
RR (HL) CB 1E 2 15 17 4 **0P0* Rotate [HL] right through CY, CY>7>6>5>4>3>2>1>0>CY
RR (IX+o) DD CB o 1E 4 23 25 7 **0P0* Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY
RR (IY+o) FD CB o 1E 4 23 25 7 **0P0* Rotate [IY+o] right through CY, CY>7>6>5>4>3>2>1>0>CY
RR r CB 18+r 2 8 10 2 **0P0* Rotate r right through CY, CY>7>6>5>4>3>2>1>0>CY
RRA 1F 1 4 5 1 --0-0* Rotate A right through CY, CY>7>6>5>4>3>2>1>0>CY
RRC (HL) CB 0E 2 15 17 4 **0P0* Rotate [HL] right with CY, 0>7>6>5>4>3>2>1>0>CY
RRC (IX+o) DD CB o 0E 4 23 25 7 **0P0* Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY
RRC (IY+o) FD CB o 0E 4 23 25 7 **0P0* Rotate [IY+o] right with CY, 0>7>6>5>4>3>2>1>0>CY
RRC r CB 08+r 2 8 10 2 **0P0* Rotate r right with CY, 0>7>6>5>4>3>2>1>0>CY
RRCA 0F 1 4 5 1 --0-0* Rotate A right with CY, 0>7>6>5>4>3>2>1>0>CY
RRD ED 67 2 18 20 5 **0P0- A.0-3 := [HL].0-3, [HL].4-7 := A.0-3, [HL].0-3 := [HL].4-7
RST 0 C7 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 00h
RST 8H CF 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 08h
RST 10H D7 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 10h
RST 18H DF 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 18h
RST 20H E7 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 20h
RST 28H EF 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 28h
RST 30H F7 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 30h
RST 38H FF 1 11 12 4 ------ SP := SP-2, [SP+1,SP] := PC, PC := 38h
SBC A,(HL) 9E 1 7 8 2 ***V1* A := A-[HL]-CY
SBC A,(IX+o) DD 9E o 3 19 21 3 ***V1* A := A-[IX+o]-CY
SBC A,(IY+o) FD 9E o 3 19 21 3 ***V1* A := A-[IY+o]-CY
SBC A,IXh DD 9C 2 8 10 2 ***V1* [UND] A := A-IXh-CY
SBC A,IXl DD 9D 2 8 10 2 ***V1* [UND] A := A-IXl-CY
SBC A,IYh FD 9C 2 8 10 2 ***V1* [UND] A := A-IYh-CY
SBC A,IYl FD 9D 2 8 10 2 ***V1* [UND] A := A-IYl-CY
SBC A,n DE n 2 7 8 2 ***V1* A := A-n-CY
SBC A,r 98+r 1 4 5 1 ***V1* A := A-b-CY
SBC HL,BC ED 42 2 15 17 4 ***V1* HL := HL-BC-CY
SBC HL,DE ED 52 2 15 17 4 ***V1* HL := HL-DE-CY
SBC HL,HL ED 62 2 15 17 4 ***V1* HL := HL-HL-CY (i.e. HL := -CY)
SBC HL,SP ED 72 2 15 17 4 ***V1* HL := HL-SP-CY
SCF 37 1 4 5 1 --0-01 CY := 1
SET b,(HL) CB C6+8*b 2 15 17 4 ------ [HL].b := 0
SET b,(IX+o) DD CB o C6+8*b 4 23 25 7 ------ [IX+o].b := 1
SET b,(IY+o) FD CB o C6+8*b 4 23 25 7 ------ [IY+o].b := 1
SET b,r CB C0+8*b+r 2 8 10 2 ------ r.b := 1
SL1 (HL) CB 36 2 15 17 4 **0P0* 1-fill shift left [HL], CY<7<6<5<4<3<2<1<0<'1', i.e. [HL] := 2*[HL]+1
SL1 (IX+o) DD CB o 36 4 23 25 7 **0P0* 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1
SL1 (IY+o) FD CB o 36 4 23 25 7 **0P0* 1-fill shift left [IY+o], CY<7<6<5<4<3<2<1<0<'1', i.e. [IY+o] := 2*[IY+o]+1
SL1 r CB 30+r 2 8 10 2 **0P0* 1-fill shift left r, CY<7<6<5<4<3<2<1<0<'1', i.e. r := 2*r+1
SLA (HL) CB 26 2 15 17 4 **0P0* 0-fill shift left [HL], CY<7<6<5<4<3<2<1<0<'0', i.e. [HL] := 2*[HL]
SLA (IX+o) DD CB o 26 4 23 25 7 **0P0* 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]
SLA (IY+o) FD CB o 26 4 23 25 7 **0P0* 0-fill shift left [IY+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IY+o] := 2*[IY+o]
SLA r CB 20+r 2 8 10 2 **0P0* 0-fill shift left r, CY<7<6<5<4<3<2<1<0<'0', i.e. r := 2*r
SLL (HL) CB 36 2 15 17 4 **0P0* [UND] 1-fill shift left [HL], CY<7<6<5<4<3<2<1<0<'1', i.e. [HL] := 2*[HL]+1
SLL (IX+o) DD CB o 36 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1
SLL (IY+o) FD CB o 36 4 23 25 7 **0P0* [UND] 1-fill shift left [IY+o], CY<7<6<5<4<3<2<1<0<'1', i.e. [IY+o] := 2*[IY+o]+1
SLL r CB 30+r 2 8 10 2 **0P0* [UND] 1-fill shift left r, CY<7<6<5<4<3<2<1<0<'1', i.e. r := 2*r+1
SRA (HL) CB 2E 2 15 17 4 **0P0* Sticky shift right [HL], 7>7>6>5>4>3>2>1>0>CY, i.e. [HL] := [HL]/2 (signed), bit 7 keeps it's value
SRA (IX+o) DD CB o 2E 4 23 25 7 **0P0* Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value
SRA (IY+o) FD CB o 2E 4 23 25 7 **0P0* Sticky shift right [IY+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IY+o] := [IY+o]/2 (signed), bit 7 keeps it's value
SRA r CB 28+r 2 8 10 2 **0P0* Sticky shift right r, 7>7>6>5>4>3>2>1>0>CY, i.e. r := r/2 (signed), bit 7 keeps it's value
SRL (HL) CB 3E 2 15 17 4 **0P0* 0-fill shift right [HL], '0'>7>6>5>4>3>2>1>0>CY, i.e. [HL] := [HL]/2 (unsigned)
SRL (IX+o) DD CB o 3E 4 23 25 7 **0P0* 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned)
SRL (IY+o) FD CB o 3E 4 23 25 7 **0P0* 0-fill shift right [IY+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IY+o] := [IY+o]/2 (unsigned)
SRL r CB 38+r 2 8 10 2 **0P0* 0-fill shift right r, '0'>7>6>5>4>3>2>1>0>CY, i.e. r := r/2 (unsigned)
SUB (HL) 96 1 7 8 2 ***V1* A := A-[HL]
SUB (IX+o) DD 96 o 3 19 21 7 ***V1* A: = A-[IX+o]
SUB (IY+o) FD 96 o 3 19 21 7 ***V1* A: = A-[IY+o]
SUB IXh DD 94 2 8 10 2 ***V1* [UND] A := A-IXh
SUB IXl DD 95 2 8 10 2 ***V1* [UND] A := A-IXl
SUB IYh FD 94 2 8 10 2 ***V1* [UND] A := A-IYh
SUB IYl FD 95 2 8 10 2 ***V1* [UND] A := A-IYl
SUB n D6 n 2 7 8 2 ***V1* A := A-n
SUB r 90+r 1 4 5 1 ***V1* A := A-r
XOR (HL) AE 1 7 8 2 ***P00 A := A ^ [HL]
XOR (IX+o) DD AE o 3 19 21 3 ***P00 A := A ^ [IX+o]
XOR (IY+o) FD AE o 3 19 21 3 ***P00 A := A ^ [IY+o]
XOR IXh DD AC 2 8 10 2 ***P00 [UND] A := A ^ IXh
XOR IXl DD AD 2 8 10 2 ***P00 [UND] A := A ^ IXl
XOR IYh FD AC 2 8 10 2 ***P00 [UND] A := A ^ IYh
XOR IYl FD AD 2 8 10 2 ***P00 [UND] A := A ^ IYl
XOR n EE n 2 7 8 2 ***P00 A := A ^ n
XOR r A8+r 1 4 5 1 ***P00 A := A ^ r
RLC (IX+o),B DD CB o 00 4 23 25 7 **0P0* [UND] Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7. Store result additionally in B.
RLC (IX+o),C DD CB o 01 4 23 25 7 **0P0* [UND] Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7. Store result additionally in C.
RLC (IX+o),D DD CB o 02 4 23 25 7 **0P0* [UND] Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7. Store result additionally in D.
RLC (IX+o),E DD CB o 03 4 23 25 7 **0P0* [UND] Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7. Store result additionally in E.
RLC (IX+o),H DD CB o 04 4 23 25 7 **0P0* [UND] Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7. Store result additionally in H.
RLC (IX+o),L DD CB o 05 4 23 25 7 **0P0* [UND] Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7. Store result additionally in L.
RLC (IX+o),A DD CB o 07 4 23 25 7 **0P0* [UND] Rotate [IX+o] left with CY, CY<7<6<5<4<3<2<1<0<7. Store result additionally in A.
RRC (IX+o),B DD CB o 08 4 23 25 7 **0P0* [UND] Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY. Store result additionally in B.
RRC (IX+o),C DD CB o 09 4 23 25 7 **0P0* [UND] Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY. Store result additionally in C.
RRC (IX+o),D DD CB o 0A 4 23 25 7 **0P0* [UND] Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY. Store result additionally in D.
RRC (IX+o),E DD CB o 0B 4 23 25 7 **0P0* [UND] Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY. Store result additionally in E.
RRC (IX+o),H DD CB o 0C 4 23 25 7 **0P0* [UND] Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY. Store result additionally in H.
RRC (IX+o),L DD CB o 0D 4 23 25 7 **0P0* [UND] Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY. Store result additionally in L.
RRC (IX+o),A DD CB o 0F 4 23 25 7 **0P0* [UND] Rotate [IX+o] right with CY, 0>7>6>5>4>3>2>1>0>CY. Store result additionally in A.
RL (IX+o),B DD CB o 10 4 23 25 7 **0P0* [UND] Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY. Store result additionally in B.
RL (IX+o),C DD CB o 11 4 23 25 7 **0P0* [UND] Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY. Store result additionally in C.
RL (IX+o),D DD CB o 12 4 23 25 7 **0P0* [UND] Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY. Store result additionally in D.
RL (IX+o),E DD CB o 13 4 23 25 7 **0P0* [UND] Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY. Store result additionally in E.
RL (IX+o),H DD CB o 14 4 23 25 7 **0P0* [UND] Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY. Store result additionally in H.
RL (IX+o),L DD CB o 15 4 23 25 7 **0P0* [UND] Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY. Store result additionally in L.
RL (IX+o),A DD CB o 17 4 23 25 7 **0P0* [UND] Rotate [IX+o] left through CY, CY<7<6<5<4<3<2<1<0<CY. Store result additionally in A.
RR (IX+o),B DD CB o 18 4 23 25 7 **0P0* [UND] Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY. Store result additionally in B.
RR (IX+o),C DD CB o 19 4 23 25 7 **0P0* [UND] Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY. Store result additionally in C.
RR (IX+o),D DD CB o 1A 4 23 25 7 **0P0* [UND] Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY. Store result additionally in D.
RR (IX+o),E DD CB o 1B 4 23 25 7 **0P0* [UND] Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY. Store result additionally in E.
RR (IX+o),H DD CB o 1C 4 23 25 7 **0P0* [UND] Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY. Store result additionally in H.
RR (IX+o),L DD CB o 1D 4 23 25 7 **0P0* [UND] Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY. Store result additionally in L.
RR (IX+o),A DD CB o 1F 4 23 25 7 **0P0* [UND] Rotate [IX+o] right through CY, CY>7>6>5>4>3>2>1>0>CY. Store result additionally in A.
SLA (IX+o),B DD CB o 20 4 23 25 7 **0P0* [UND] 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]. Store result additionally in B.
SLA (IX+o),C DD CB o 21 4 23 25 7 **0P0* [UND] 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]. Store result additionally in C.
SLA (IX+o),D DD CB o 22 4 23 25 7 **0P0* [UND] 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]. Store result additionally in D.
SLA (IX+o),E DD CB o 23 4 23 25 7 **0P0* [UND] 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]. Store result additionally in E.
SLA (IX+o),H DD CB o 24 4 23 25 7 **0P0* [UND] 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]. Store result additionally in H.
SLA (IX+o),L DD CB o 25 4 23 25 7 **0P0* [UND] 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]. Store result additionally in L.
SLA (IX+o),A DD CB o 27 4 23 25 7 **0P0* [UND] 0-fill shift left [IX+o], CY<7<6<5<4<3<2<1<0<'0', i.e. [IX+o] := 2*[IX+o]. Store result additionally in A.
SRA (IX+o),B DD CB o 28 4 23 25 7 **0P0* [UND] Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value. Store result additionally in B.
SRA (IX+o),C DD CB o 29 4 23 25 7 **0P0* [UND] Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value. Store result additionally in C.
SRA (IX+o),D DD CB o 2A 4 23 25 7 **0P0* [UND] Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value. Store result additionally in D.
SRA (IX+o),E DD CB o 2B 4 23 25 7 **0P0* [UND] Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value. Store result additionally in E.
SRA (IX+o),H DD CB o 2C 4 23 25 7 **0P0* [UND] Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value. Store result additionally in H.
SRA (IX+o),L DD CB o 2D 4 23 25 7 **0P0* [UND] Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value. Store result additionally in L.
SRA (IX+o),A DD CB o 2F 4 23 25 7 **0P0* [UND] Sticky shift right [IX+o], 7>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (signed), bit 7 keeps it's value. Store result additionally in A.
SLL (IX+o),B DD CB o 30 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in B.
SLL (IX+o),C DD CB o 31 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in C.
SLL (IX+o),D DD CB o 32 4 23 25 7 **0P0* [UND] 01-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in D.
SLL (IX+o),E DD CB o 33 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in E.
SLL (IX+o),H DD CB o 34 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in H.
SLL (IX+o),L DD CB o 35 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in L.
SLL (IX+o),A DD CB o 37 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in A.
SRL (IX+o),r DD CB o 38 4 23 25 7 **0P0* 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned). Store result additionally in register r.
SRL (IX+o),C DD CB o 39 4 23 25 7 **0P0* [UND] 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned). Store result additionally in C.
SRL (IX+o),D DD CB o 3A 4 23 25 7 **0P0* [UND] 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned). Store result additionally in D.
SRL (IX+o),E DD CB o 3B 4 23 25 7 **0P0* [UND] 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned). Store result additionally in E.
SRL (IX+o),H DD CB o 3C 4 23 25 7 **0P0* [UND] 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned). Store result additionally in H.
SRL (IX+o),L DD CB o 3D 4 23 25 7 **0P0* [UND] 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned). Store result additionally in L.
SRL (IX+o),A DD CB o 3F 4 23 25 7 **0P0* [UND] 0-fill shift right [IX+o], '0'>7>6>5>4>3>2>1>0>CY, i.e. [IX+o] := [IX+o]/2 (unsigned). Store result additionally in A.
RES b,(IX+o) DD CB o 86+8*b 4 23 25 7 ------ [IX+o].b := 0
RES b,(IX+o),B DD CB o 30 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in B.
RES b,(IX+o),C DD CB o 31 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in C.
RES b,(IX+o),D DD CB o 32 4 23 25 7 **0P0* [UND] 01-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in D.
RES b,(IX+o),E DD CB o 33 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in E.
RES b,(IX+o),H DD CB o 34 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in H.
SLL (IX+o),L DD CB o 35 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in L.
SLL (IX+o),A DD CB o 37 4 23 25 7 **0P0* [UND] 1-fill shift left [IX+o], i.e. [IX+o] := 2*[IX+o]+1. Store result additionally in A.
LDIX ED A4 16 ------ [Z80N] If [HL] != A then [DE] := [HL], DE := DE+1; HL := HL+1; BC := BC-1
LDWS ED A5 14 ***V0- [Z80N] [DE] := [HL], L := L+1, D := D+1, flags are like 'INC D'. This is used for vertically copying bytes to the Layer 2 display.
LDIRX ED B4 21/16 ------ [Z80N] Repeat LDIX until BC == 0
LDDX ED AC 16 ------ [Z80N] If [HL] != A then [DE] := [HL], DE := DE-1; HL := HL-1; BC := BC-1
LDDRX ED BC 21/16 ------ [Z80N] Repeat LDIX until BC == 0
LDPIRX ED B7 21/16 ------ [Z80N] repeat, t := [HL&FFF8h+E&7h], if t != A then [DE] := t, DE := DE+1, BC := BC-1, until BC == 0
OUTINB ED 90 16 ?????? [Z80N] port[BC] := [HL], HL++, behaves like OUTI but does not decrement B
MUL D,E ED 30 8 ------ [Z80N] DE := D*E
ADD HL,A ED 31 8 ------ [Z80N] HL := HL+A
ADD DE,A ED 32 8 ------ [Z80N] DE := DE+A
ADD BC,A ED 33 8 ------ [Z80N] BC := BC+A
ADD HL,nn ED 34 nn nn 16 ------ [Z80N] HL := HL+nn
ADD DE,nn ED 35 nn nn 16 ------ [Z80N] DE := DE+nn
ADD BC,nn ED 36 nn nn 16 ------ [Z80N] BC := BC+nn
SWAPNIB ED 23 8 ------ [Z80N] A.0-3 <=> A.4-7
MIRROR ED 24 8 ------ [Z80N] A.76543210 := A.01234567, mirrors (reverses the order) of bits in the accumulator
PUSH nn ED 8A nn.h nn.l 23 ------ [Z80N] SP := SP-1, [SP] := nn.h, SP := SP-1, [SP] := nn.l
NEXTREG n1,n2 ED 91 n1 n2 20 ------ [Z80N] port[243Bh] := n1, port[253Bh] := n2
NEXTREG n,A ED 92 n 17 ------ [Z80N] port[243Bh] := n, port[253Bh] := A
PIXELDN ED 93 8 ------ [Z80N] Updates the address in HL to move down by one line of pixels
PIXELAD ED 94 8 ------ [Z80N] Takes E and D as the X/Y coordinate of a point and calculates the address of the byte containing this pixel in the pixel area of standard ULA screen 0, storing it in HL
SETAE ED 95 8 ------ [Z80N] A := 0, A.(7-E&07h) := 1, SETAE takes the bit number to set from E (only the low 3 bits) and sets the bit of A while clearing the other bits. I.e. if E is 2 and A is FFh before this operation then A will be 20h (=00100000b) after the operation. This instruction is used as pixel mask for ULA bitmap modes, when E is 0..255 x - coordinate.
TEST n ED 27 n 11 ***V?* [Z80N] A & n
BSLA DE,B ED 28 8 ------ [Z80N] 0-fill shift left of DE, (B&1Fh) times
BSRA DE,B ED 29 8 ------ [Z80N] Sticky shift right of DE, (B&1Fh) times, bit 7 of D keeps it's value
BSRL DE,B ED 2A 8 ------ [Z80N] 0-fill shift right of DE, (B&1Fh) times
BSRF DE,B ED 2B 8 ------ [Z80N] 1-fill shift right of DE, (B&1Fh) times
BRLC DE,B ED 2C 8 ------ [Z80N] Rotate DE left, (B&0Fh) times, (Note: there is no rotate-right equivalent, a rotate-right can be achieved by rotating left (16-x) times.)
JP (C) ED 98 13 ------ [Z80N] The JP (C) sets bottom 14 bits of current PC to value read from I/O port: PC.13-0 := port[C]<<6) (can be used to execute code block read from a disk stream).
END: 491 instructions