# Key # B Bytes in instruction # M M-cycles in instruction # T T-states in instruction # Mx T-states in M-cycle x (M-cycles can be skipped; T-states cannot) # WZ WZ register at end of instruction (WZ = WZ means no change) # old value at start of instruction # new value at end of instruction # #"Instruction" , B, M, T,M1,M1,M2,M3,M4,M5, WZ, Comment "LD r,r'" , 1, 1, 4, , 4, , , , , WZ, r=B/C/D/E/H/L/A "LD x,x'" , 2, 2, 8, 4, 4, , , , , WZ, x=B/C/D/E/IXH/IXL/A "LD y,y'" , 2, 2, 8, 4, 4, , , , , WZ, y=B/C/D/E/IYH/IYL/A "LD r,n" , 2, 2, 7, , 4, 3, , , , WZ, "LD x,n" , 3, 3,11, 4, 4, 3, , , , WZ, "LD y,n" , 3, 3,11, 4, 4, 3, , , , WZ, "LD r,(HL)" , 1, 2, 7, , 4, , , 3, , WZ, "LD r,(IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "LD r,(IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "LD (HL),r" , 1, 2, 7, , 4, , , 3, , WZ, "LD (IX+d),r" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "LD (IY+d),r" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "LD (HL),n" , 2, 3,10, , 4, 3, , 3, , WZ, "LD (IX+d),n" , 4, 5,19, 4, 4, 3, 5, 3, , IX+d, "LD (IY+d),n" , 4, 5,19, 4, 4, 3, 5, 3, , IY+d, "LD A,(BC)" , 1, 2, 7, , 4, , , 3, , BC+1, "LD A,(DE)" , 1, 2, 7, , 4, , , 3, , DE+1, "LD (BC),A" , 1, 2, 7, , 4, , , 3, , W=A;Z=C+1, "LD (DE),A" , 1, 2, 7, , 4, , , 3, , W=A;Z=E+1, "LD A,(mn)" , 3, 4,13, , 4, 3, 3, 3, , mn+1, "LD (mn),A" , 3, 4,13, , 4, 3, 3, 3, , W=A;Z=n+1, "LD A,I" , 2, 2, 9, 4, 5, , , , , WZ, "LD A,R" , 2, 2, 9, 4, 5, , , , , WZ, "LD I,A" , 2, 2, 9, 4, 5, , , , , WZ, "LD R,A" , 2, 2, 9, 4, 5, , , , , WZ, "LD ss,mn" , 3, 3,10, , 4, 3, 3, , , WZ, ss=BC/DE/HL/SP "LD pp,mn" , 4, 4,14, 4, 4, 3, 3, , , WZ, pp=BC/DE/IX/SP "LD qq,mn" , 4, 4,14, 4, 4, 3, 3, , , WZ, qq=BC/DE/IY/SP "LD HL,(mn)" , 3, 5,16, , 4, 3, 3, 3, 3, mn+1, "LD IX,(mn)" , 4, 6,20, 4, 4, 3, 3, 3, 3, mn+1, "LD IY,(mn)" , 4, 6,20, 4, 4, 3, 3, 3, 3, mn+1, "LD (mn),HL" , 3, 5,16, , 4, 3, 3, 3, 3, mn+1, "LD (mn),IX" , 4, 6,20, 4, 4, 3, 3, 3, 3, mn+1, "LD (mn),IY" , 4, 6,20, 4, 4, 3, 3, 3, 3, mn+1, "LD ss,(mn)" , 4, 6,20, 4, 4, 3, 3, 3, 3, mn+1, "LD (mn),ss" , 4, 6,20, 4, 4, 3, 3, 3, 3, mn+1, "LD SP,HL" , 1, 1, 6, , 6, , , , , WZ, "LD SP,IX" , 2, 2,10, 4, 6, , , , , WZ, "LD SP,IY" , 2, 2,10, 4, 6, , , , , WZ, "PUSH rr" , 1, 3,11, , 5, , , 3, 3, WZ, rr=BC/DE/HL/AF "PUSH xx" , 2, 4,15, 4, 5, , , 3, 3, WZ, xx=BC/DE/IX/AF "PUSH yy" , 2, 4,15, 4, 5, , , 3, 3, WZ, yy=BC/DE/IY/AF "POP rr" , 1, 3,10, , 4, , , 3, 3, WZ, "POP xx" , 2, 4,14, 4, 4, , , 3, 3, WZ, "POP yy" , 2, 4,14, 4, 4, , , 3, 3, WZ, "EX AF,AF'" , 1, 1, 4, , 4, , , , , WZ, "EX DE,HL" , 1, 1, 4, , 4, , , , , WZ, "EXX" , 1, 1, 4, , 4, , , , , WZ, "EX (SP),HL" , 1, 5,19, , 4, 3, 4, 3, 5, old (SP), "EX (SP),IX" , 2, 6,23, 4, 4, 3, 4, 3, 5, old (SP), "EX (SP),IY" , 2, 6,23, 4, 4, 3, 4, 3, 5, old (SP), "LDI" , 2, 4,16, 4, 4, 3, 5, , , WZ, "LDIR" , 2, 4,16, 4, 4, 3, 5, , , WZ, if old BC=1 "LDIR" , 2, 5,21, 4, 4, 3, 5, 5, , PC-1, if old BC<>1;PC=addr of next instr "LDD" , 2, 4,16, 4, 4, 3, 5, , , WZ, "LDDR" , 2, 4,16, 4, 4, 3, 5, , , WZ, if old BC=1 "LDDR" , 2, 5,21, 4, 4, 3, 5, 5, , PC-1, if old BC<>1 "CPI" , 2, 4,16, 4, 4, 3, 5, , , WZ+1, "CPIR" , 2, 4,16, 4, 4, 3, 5, , , WZ+1, if old BC=1/A=(HL) "CPIR" , 2, 5,21, 4, 4, 3, 5, 5, , PC-1, if old BC<>1 "CPD" , 2, 4,16, 4, 4, 3, 5, , , WZ-1, "CPDR" , 2, 4,16, 4, 4, 3, 5, , , WZ-1, if old BC=1/A=(HL) "CPDR" , 2, 5,21, 4, 4, 3, 5, 5, , PC-1, if old BC<>1 "ADD A,r" , 1, 1, 4, , 4, , , , , WZ, "ADD A,x" , 2, 2, 8, 4, 4, , , , , WZ, "ADD A,y" , 2, 2, 8, 4, 4, , , , , WZ, "ADD A,n" , 2, 2, 7, , 4, 3, , , , WZ, "ADD A,(HL)" , 1, 2, 7, , 4, , , 3, , WZ, "ADD A,(IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "ADD A,(IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "ADC A,r" , 1, 1, 4, , 4, , , , , WZ, "ADC A,x" , 2, 2, 8, 4, 4, , , , , WZ, "ADC A,y" , 2, 2, 8, 4, 4, , , , , WZ, "ADC A,n" , 2, 2, 7, , 4, 3, , , , WZ, "ADC A,(HL)" , 1, 2, 7, , 4, , , 3, , WZ, "ADC A,(IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "ADC A,(IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "SUB r" , 1, 1, 4, , 4, , , , , WZ, "SUB x" , 2, 2, 8, 4, 4, , , , , WZ, "SUB y" , 2, 2, 8, 4, 4, , , , , WZ, "SUB n" , 2, 2, 7, , 4, 3, , , , WZ, "SUB (HL)" , 1, 2, 7, , 4, , , 3, , WZ, "SUB (IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "SUB (IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "SBC A,r" , 1, 1, 4, , 4, , , , , WZ, "SBC A,x" , 2, 2, 8, 4, 4, , , , , WZ, "SBC A,y" , 2, 2, 8, 4, 4, , , , , WZ, "SBC A,n" , 2, 2, 7, , 4, 3, , , , WZ, "SBC A,(HL)" , 1, 2, 7, , 4, , , 3, , WZ, "SBC A,(IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "SBC A,(IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "AND r" , 1, 1, 4, , 4, , , , , WZ, "AND x" , 2, 2, 8, 4, 4, , , , , WZ, "AND y" , 2, 2, 8, 4, 4, , , , , WZ, "AND n" , 2, 2, 7, , 4, 3, , , , WZ, "AND (HL)" , 1, 2, 7, , 4, , , 3, , WZ, "AND (IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "AND (IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "XOR r" , 1, 1, 4, , 4, , , , , WZ, "XOR x" , 2, 2, 8, 4, 4, , , , , WZ, "XOR y" , 2, 2, 8, 4, 4, , , , , WZ, "XOR n" , 2, 2, 7, , 4, 3, , , , WZ, "XOR (HL)" , 1, 2, 7, , 4, , , 3, , WZ, "XOR (IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "XOR (IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "OR r" , 1, 1, 4, , 4, , , , , WZ, "OR x" , 2, 2, 8, 4, 4, , , , , WZ, "OR y" , 2, 2, 8, 4, 4, , , , , WZ, "OR n" , 2, 2, 7, , 4, 3, , , , WZ, "OR (HL)" , 1, 2, 7, , 4, , , 3, , WZ, "OR (IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "OR (IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "CP r" , 1, 1, 4, , 4, , , , , WZ, "CP x" , 2, 2, 8, 4, 4, , , , , WZ, "CP y" , 2, 2, 8, 4, 4, , , , , WZ, "CP n" , 2, 2, 7, , 4, 3, , , , WZ, "CP (HL)" , 1, 2, 7, , 4, , , 3, , WZ, "CP (IX+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IX+d, "CP (IY+d)" , 3, 5,19, 4, 4, 3, 5, 3, , IY+d, "INC r" , 1, 1, 4, , 4, , , , , WZ, "INC x" , 2, 2, 8, 4, 4, , , , , WZ, "INC y" , 2, 2, 8, 4, 4, , , , , WZ, "INC (HL)" , 1, 3,11, , 4, , , 4, 3, WZ, "INC (IX+d)" , 3, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "INC (IY+d)" , 3, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "DEC r" , 1, 1, 4, , 4, , , , , WZ, "DEC x" , 2, 2, 8, 4, 4, , , , , WZ, "DEC y" , 2, 2, 8, 4, 4, , , , , WZ, "DEC (HL)" , 1, 3,11, , 4, , , 4, 3, WZ, "DEC (IX+d)" , 3, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "DEC (IY+d)" , 3, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "NOP" , 1, 1, 4, , 4, , , , , WZ, "DAA" , 1, 1, 4, , 4, , , , , WZ, "CPL" , 1, 1, 4, , 4, , , , , WZ, "SCF" , 1, 1, 4, , 4, , , , , WZ, "CCF" , 1, 1, 4, , 4, , , , , WZ, "HALT" , 1, 1, 4, , 4, , , , , WZ, "DI" , 1, 1, 4, , 4, , , , , WZ, "EI" , 1, 1, 4, , 4, , , , , WZ, "NEG" , 2, 2, 8, 4, 4, , , , , WZ, "IM 0" , 2, 2, 8, 4, 4, , , , , WZ, "IM 1" , 2, 2, 8, 4, 4, , , , , WZ, "IM 2" , 2, 2, 8, 4, 4, , , , , WZ, "ADD HL,ss" , 1, 3,11, , 4, , , 4, 3, old HL+1, "ADD IX,pp" , 2, 4,15, 4, 4, , , 4, 3, old IX+1, "ADD IY,qq" , 2, 4,15, 4, 4, , , 4, 3, old IY+1, "ADC HL,ss" , 2, 4,15, 4, 4, , , 4, 3, old HL+1, "SBC HL,ss" , 2, 4,15, 4, 4, , , 4, 3, old HL+1, "INC ss" , 1, 1, 6, , 6, , , , , WZ, "INC pp" , 2, 2,10, 4, 6, , , , , WZ, "INC qq" , 2, 2,10, 4, 6, , , , , WZ, "DEC ss" , 1, 1, 6, , 6, , , , , WZ, "DEC pp" , 2, 2,10, 4, 6, , , , , WZ, "DEC qq" , 2, 2,10, 4, 6, , , , , WZ, "RLCA" , 1, 1, 4, , 4, , , , , WZ, "RLA" , 1, 1, 4, , 4, , , , , WZ, "RRCA" , 1, 1, 4, , 4, , , , , WZ, "RRA" , 1, 1, 4, , 4, , , , , WZ, "RLC r" , 2, 2, 8, 4, 4, , , , , WZ, "RLC (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "RLC (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RLC (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RLC (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RLC (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RL r" , 2, 2, 8, 4, 4, , , , , WZ, "RL (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "RL (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RL (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RL (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RL (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RRC r" , 2, 2, 8, 4, 4, , , , , WZ, "RRC (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "RRC (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RRC (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RRC (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RRC (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RR r" , 2, 2, 8, 4, 4, , , , , WZ, "RR (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "RR (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RR (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RR (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RR (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SLA r" , 2, 2, 8, 4, 4, , , , , WZ, "SLA (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "SLA (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SLA (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SLA (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SLA (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SL1 r" , 2, 2, 8, 4, 4, , , , , WZ, "SL1 (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "SL1 (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SL1 (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SL1 (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SL1 (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SRA r" , 2, 2, 8, 4, 4, , , , , WZ, "SRA (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "SRA (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SRA (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SRA (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SRA (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SRL r" , 2, 2, 8, 4, 4, , , , , WZ, "SRL (HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "SRL (IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SRL (IX+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SRL (IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SRL (IY+d),r" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RLD" , 2, 5,18, 4, 4, 3, 4, 3, , HL+1, "RRD" , 2, 5,18, 4, 4, 3, 4, 3, , HL+1, "BIT b,r" , 2, 2, 8, 4, 4, , , , , WZ, "BIT b,(HL)" , 2, 3,12, 4, 4, , , 4, , WZ, "BIT b,(IX+d)" , 4, 5,20, 4, 4, 3, 5, 4, , IX+d, "BIT b,(IY+d)" , 4, 5,20, 4, 4, 3, 5, 4, , IY+d, "SET b,r" , 2, 2, 8, 4, 4, , , , , WZ, "SET b,(HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "SET b,(IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SET b,(IX+d),r", 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "SET b,(IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "SET b,(IY+d),r", 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RES b,r" , 2, 2, 8, 4, 4, , , , , WZ, "RES b,(HL)" , 2, 4,15, 4, 4, , , 4, 3, WZ, "RES b,(IX+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RES b,(IX+d),r", 4, 6,23, 4, 4, 3, 5, 4, 3, IX+d, "RES b,(IY+d)" , 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "RES b,(IY+d),r", 4, 6,23, 4, 4, 3, 5, 4, 3, IY+d, "JP cc,mn" , 3, 3,10, , 4, 3, 3, , , mn, cc=NZ/Z/NC/C/PO/PE/P/M "JP mn" , 3, 3,10, , 4, 3, 3, , , mn, "JR c,e" , 2, 2, 7, , 4, 3, , , , WZ, if c=NZ/Z/NC/C false "JR c,e" , 2, 3,12, , 4, 3, 5, , , PC+e, if c true "JR e" , 2, 3,12, , 4, 3, 5, , , PC+e, "JP (HL)" , 1, 1, 4, , 4, , , , , WZ, "JP (IX)" , 2, 2, 8, 4, 4, , , , , WZ, "JP (IY)" , 2, 2, 8, 4, 4, , , , , WZ, "DJNZ e" , 2, 2, 8, , 5, 3, , , , WZ, if old B=1 "DJNZ e" , 2, 3,13, , 5, 3, 5, , , PC+e, if old B<>1 "CALL cc,mn" , 3, 3,10, , 4, 3, 3, , , mn, if cc false "CALL cc,mn" , 3, 5,17, , 4, 3, 4, 3, 3, mn, if cc true "CALL mn" , 3, 5,17, , 4, 3, 4, 3, 3, mn, "RET cc" , 1, 1, 5, , 5, , , , , WZ, if cc false "RET cc" , 1, 3,11, , 5, , , 3, 3, old (SP), if cc true "RET" , 1, 3,10, , 4, , , 3, 3, old (SP) "RETI" , 2, 4,14, 4, 4, , , 3, 3, old (SP) "RETN" , 2, 4,14, 4, 4, , , 3, 3, old (SP) "RST t" , 1, 3,11, , 5, , , 3, 3, t, t = 00/08/10/18/20/28/30/38H "IN A,(n)" , 2, 3,11, , 4, 3, , 4, , WZ=old A*256+n+1, "IN r,(C)" , 2, 3,12, 4, 4, , , 4, , BC+1, "IN F,(C)" , 2, 3,12, 4, 4, , , 4, , BC+1, "OUT (n),A" , 2, 3,11, , 4, 3, , 4, , W=A;Z=n+1, "OUT (C),r" , 2, 3,12, 4, 4, , , 4, , BC+1, "OUT (C),0" , 2, 3,12, 4, 4, , , 4, , BC+1, NMOS CPU "OUT (C),255" , 2, 3,12, 4, 4, , , 4, , BC+1, CMOS CPU "INI" , 2, 4,16, 4, 5, 4, 3, , , old BC+1, "INIR" , 2, 4,16, 4, 5, 4, 3, , , old BC+1, if old B=1 "INIR" , 2, 5,21, 4, 5, 4, 3, 5, , PC-1, if old B<>1 "IND" , 2, 4,16, 4, 5, 4, 3, , , old BC-1, "INDR" , 2, 4,16, 4, 5, 4, 3, , , old BC-1, if old B=1 "INDR" , 2, 5,21, 4, 5, 4, 3, 5, , PC-1, if old B<>1 "OUTI" , 2, 4,16, 4, 5, 3, 4, , , new BC+1, "OTIR" , 2, 4,16, 4, 5, 3, 4, , , new BC+1, if old B=1 "OTIR" , 2, 5,21, 4, 5, 3, 4, 5, , PC-1, if old B<>1 "OUTD" , 2, 4,16, 4, 5, 3, 4, , , new BC-1, "OTDR" , 2, 4,16, 4, 5, 3, 4, , , new BC-1, if old B=1 "OTDR" , 2, 5,21, 4, 5, 3, 4, 5, , PC-1, if old B<>1 "INT ACK IM 0" , ?, ?, ?, ?, ?, ?, ?, ?, ?, ??, per instruction "INT ACK IM 1" , 0, 3,13, , 7, , , 3, 3, 0038H, opcode ignored "INT ACK IM 2" , 0, 5,19, , 7, 3, 3, 3, 3, call addr, opcode ignored "NMI ACK" , 0, 3,11, , 5, , , 3, 3, 0066H, opcode ignored