Z80 Instruction Set Reference

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.

Column Format

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.

Flags Key — S Z H P N C

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)

Operand Notation

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

Opcode Prefix Groups

(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-Cycle Derivation

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.

Instruction Table

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
version2
created2026-02-20
updated2026-02-20