Skip to content

Instantly share code, notes, and snippets.

@Tomcc
Created May 25, 2018 08:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tomcc/f5672739b5397c37c36afe26a6002f9b to your computer and use it in GitHub Desktop.
Save Tomcc/f5672739b5397c37c36afe26a6002f9b to your computer and use it in GitHub Desktop.
fn interpret(cpu: &mut CPU, instr: usize) unsafe {
match instr {
0x0 => {
cpu.NOP();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x1 => {
cpu.LD(cpu.BC.BC, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(12);
},
0x2 => {
cpu.LD(cpu.RAM[cpu.BC.BC], cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x3 => {
cpu.INC(cpu.BC.BC);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x4 => {
cpu.INC_z_h(cpu.BC.B);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x5 => {
cpu.DEC_z_h(cpu.BC.B);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x6 => {
cpu.LD(cpu.BC.B, cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(8);
},
0x7 => {
cpu.RLCA_c();
cpu.set_z();
cpu.set_n();
cpu.set_h();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x8 => {
cpu.LD(cpu.RAM[cpu.immediateU16()], cpu.SP);
cpu.PC += 3;
cpu.run_cycles(20);
},
0x9 => {
cpu.ADD_h_c(cpu.HL.HL, cpu.BC.BC);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0xa => {
cpu.LD(cpu.AF.A, cpu.RAM[cpu.BC.BC]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0xb => {
cpu.DEC(cpu.BC.BC);
cpu.PC += 1;
cpu.run_cycles(8);
},
0xc => {
cpu.INC_z_h(cpu.BC.C);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xd => {
cpu.DEC_z_h(cpu.BC.C);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xe => {
cpu.LD(cpu.BC.C, cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(8);
},
0xf => {
cpu.RRCA_c();
cpu.set_z();
cpu.set_n();
cpu.set_h();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x10 => {
cpu.STOP(0);
cpu.PC += 2;
cpu.run_cycles(4);
},
0x11 => {
cpu.LD(cpu.DE.DE, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(12);
},
0x12 => {
cpu.LD(cpu.RAM[cpu.DE.DE], cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x13 => {
cpu.INC(cpu.DE.DE);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x14 => {
cpu.INC_z_h(cpu.DE.D);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x15 => {
cpu.DEC_z_h(cpu.DE.D);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x16 => {
cpu.LD(cpu.DE.D, cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(8);
},
0x17 => {
cpu.RLA_c();
cpu.set_z();
cpu.set_n();
cpu.set_h();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x18 => {
cpu.JR(cpu.immediateI8());
cpu.PC += 2;
cpu.run_cycles(12);
},
0x19 => {
cpu.ADD_h_c(cpu.HL.HL, cpu.DE.DE);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0x1a => {
cpu.LD(cpu.AF.A, cpu.RAM[cpu.DE.DE]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x1b => {
cpu.DEC(cpu.DE.DE);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x1c => {
cpu.INC_z_h(cpu.DE.E);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x1d => {
cpu.DEC_z_h(cpu.DE.E);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x1e => {
cpu.LD(cpu.DE.E, cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(8);
},
0x1f => {
cpu.RRA_c();
cpu.set_z();
cpu.set_n();
cpu.set_h();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x20 => {
cpu.JR(cpu.NZ.NZ, cpu.immediateI8());
cpu.PC += 2;
cpu.run_cycles(12);
},
0x21 => {
cpu.LD(cpu.HL.HL, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(12);
},
0x22 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.AF.A);
cpu.HL.HL += 1;
cpu.PC += 1;
cpu.run_cycles(8);
},
0x23 => {
cpu.INC(cpu.HL.HL);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x24 => {
cpu.INC_z_h(cpu.HL.H);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x25 => {
cpu.DEC_z_h(cpu.HL.H);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x26 => {
cpu.LD(cpu.HL.H, cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(8);
},
0x27 => {
cpu.DAA_z_c();
cpu.set_h();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x28 => {
cpu.JR(cpu.Z.Z, cpu.immediateI8());
cpu.PC += 2;
cpu.run_cycles(12);
},
0x29 => {
cpu.ADD_h_c(cpu.HL.HL, cpu.HL.HL);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0x2a => {
cpu.LD(cpu.AF.A, cpu.RAM[cpu.HL.HL]);
cpu.HL.HL += 1;
cpu.PC += 1;
cpu.run_cycles(8);
},
0x2b => {
cpu.DEC(cpu.HL.HL);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x2c => {
cpu.INC_z_h(cpu.HL.L);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x2d => {
cpu.DEC_z_h(cpu.HL.L);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x2e => {
cpu.LD(cpu.HL.L, cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(8);
},
0x2f => {
cpu.CPL();
cpu.reset_n();
cpu.reset_h();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x30 => {
cpu.JR(cpu.NC.NC, cpu.immediateI8());
cpu.PC += 2;
cpu.run_cycles(12);
},
0x31 => {
cpu.LD(cpu.SP, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(12);
},
0x32 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.AF.A);
cpu.HL.HL -= 1;
cpu.PC += 1;
cpu.run_cycles(8);
},
0x33 => {
cpu.INC(cpu.SP);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x34 => {
cpu.INC_z_h(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(12);
},
0x35 => {
cpu.DEC_z_h(cpu.RAM[cpu.HL.HL]);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(12);
},
0x36 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(12);
},
0x37 => {
cpu.SCF();
cpu.set_n();
cpu.set_h();
cpu.reset_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x38 => {
cpu.JR(cpu.BC.C, cpu.immediateI8());
cpu.PC += 2;
cpu.run_cycles(12);
},
0x39 => {
cpu.ADD_h_c(cpu.HL.HL, cpu.SP);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0x3a => {
cpu.LD(cpu.AF.A, cpu.RAM[cpu.HL.HL]);
cpu.HL.HL -= 1;
cpu.PC += 1;
cpu.run_cycles(8);
},
0x3b => {
cpu.DEC(cpu.SP);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x3c => {
cpu.INC_z_h(cpu.AF.A);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x3d => {
cpu.DEC_z_h(cpu.AF.A);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x3e => {
cpu.LD(cpu.AF.A, cpu.immediateU8());
cpu.PC += 2;
cpu.run_cycles(8);
},
0x3f => {
cpu.CCF_c();
cpu.set_n();
cpu.set_h();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x40 => {
cpu.LD(cpu.BC.B, cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x41 => {
cpu.LD(cpu.BC.B, cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x42 => {
cpu.LD(cpu.BC.B, cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x43 => {
cpu.LD(cpu.BC.B, cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x44 => {
cpu.LD(cpu.BC.B, cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x45 => {
cpu.LD(cpu.BC.B, cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x46 => {
cpu.LD(cpu.BC.B, cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x47 => {
cpu.LD(cpu.BC.B, cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x48 => {
cpu.LD(cpu.BC.C, cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x49 => {
cpu.LD(cpu.BC.C, cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x4a => {
cpu.LD(cpu.BC.C, cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x4b => {
cpu.LD(cpu.BC.C, cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x4c => {
cpu.LD(cpu.BC.C, cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x4d => {
cpu.LD(cpu.BC.C, cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x4e => {
cpu.LD(cpu.BC.C, cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x4f => {
cpu.LD(cpu.BC.C, cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x50 => {
cpu.LD(cpu.DE.D, cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x51 => {
cpu.LD(cpu.DE.D, cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x52 => {
cpu.LD(cpu.DE.D, cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x53 => {
cpu.LD(cpu.DE.D, cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x54 => {
cpu.LD(cpu.DE.D, cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x55 => {
cpu.LD(cpu.DE.D, cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x56 => {
cpu.LD(cpu.DE.D, cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x57 => {
cpu.LD(cpu.DE.D, cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x58 => {
cpu.LD(cpu.DE.E, cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x59 => {
cpu.LD(cpu.DE.E, cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x5a => {
cpu.LD(cpu.DE.E, cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x5b => {
cpu.LD(cpu.DE.E, cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x5c => {
cpu.LD(cpu.DE.E, cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x5d => {
cpu.LD(cpu.DE.E, cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x5e => {
cpu.LD(cpu.DE.E, cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x5f => {
cpu.LD(cpu.DE.E, cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x60 => {
cpu.LD(cpu.HL.H, cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x61 => {
cpu.LD(cpu.HL.H, cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x62 => {
cpu.LD(cpu.HL.H, cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x63 => {
cpu.LD(cpu.HL.H, cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x64 => {
cpu.LD(cpu.HL.H, cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x65 => {
cpu.LD(cpu.HL.H, cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x66 => {
cpu.LD(cpu.HL.H, cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x67 => {
cpu.LD(cpu.HL.H, cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x68 => {
cpu.LD(cpu.HL.L, cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x69 => {
cpu.LD(cpu.HL.L, cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x6a => {
cpu.LD(cpu.HL.L, cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x6b => {
cpu.LD(cpu.HL.L, cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x6c => {
cpu.LD(cpu.HL.L, cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x6d => {
cpu.LD(cpu.HL.L, cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x6e => {
cpu.LD(cpu.HL.L, cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x6f => {
cpu.LD(cpu.HL.L, cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x70 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x71 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x72 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x73 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x74 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x75 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x76 => {
cpu.HALT();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x77 => {
cpu.LD(cpu.RAM[cpu.HL.HL], cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x78 => {
cpu.LD(cpu.AF.A, cpu.BC.B);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x79 => {
cpu.LD(cpu.AF.A, cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x7a => {
cpu.LD(cpu.AF.A, cpu.DE.D);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x7b => {
cpu.LD(cpu.AF.A, cpu.DE.E);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x7c => {
cpu.LD(cpu.AF.A, cpu.HL.H);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x7d => {
cpu.LD(cpu.AF.A, cpu.HL.L);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x7e => {
cpu.LD(cpu.AF.A, cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(8);
},
0x7f => {
cpu.LD(cpu.AF.A, cpu.AF.A);
cpu.PC += 1;
cpu.run_cycles(4);
},
0x80 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.BC.B);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x81 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.BC.C);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x82 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.DE.D);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x83 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.DE.E);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x84 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.HL.H);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x85 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.HL.L);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x86 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0x87 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.AF.A);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x88 => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.BC.B);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x89 => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.BC.C);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x8a => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.DE.D);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x8b => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.DE.E);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x8c => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.HL.H);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x8d => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.HL.L);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x8e => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0x8f => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.AF.A);
cpu.set_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x90 => {
cpu.SUB_z_h_c(cpu.BC.B);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x91 => {
cpu.SUB_z_h_c(cpu.BC.C);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x92 => {
cpu.SUB_z_h_c(cpu.DE.D);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x93 => {
cpu.SUB_z_h_c(cpu.DE.E);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x94 => {
cpu.SUB_z_h_c(cpu.HL.H);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x95 => {
cpu.SUB_z_h_c(cpu.HL.L);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x96 => {
cpu.SUB_z_h_c(cpu.RAM[cpu.HL.HL]);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0x97 => {
cpu.SUB_z_h_c(cpu.AF.A);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x98 => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.BC.B);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x99 => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.BC.C);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x9a => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.DE.D);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x9b => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.DE.E);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x9c => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.HL.H);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x9d => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.HL.L);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0x9e => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.RAM[cpu.HL.HL]);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0x9f => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.AF.A);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa0 => {
cpu.AND_z(cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa1 => {
cpu.AND_z(cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa2 => {
cpu.AND_z(cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa3 => {
cpu.AND_z(cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa4 => {
cpu.AND_z(cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa5 => {
cpu.AND_z(cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa6 => {
cpu.AND_z(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(8);
},
0xa7 => {
cpu.AND_z(cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa8 => {
cpu.XOR_z(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xa9 => {
cpu.XOR_z(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xaa => {
cpu.XOR_z(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xab => {
cpu.XOR_z(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xac => {
cpu.XOR_z(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xad => {
cpu.XOR_z(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xae => {
cpu.XOR_z(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(8);
},
0xaf => {
cpu.XOR_z(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb0 => {
cpu.OR_z(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb1 => {
cpu.OR_z(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb2 => {
cpu.OR_z(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb3 => {
cpu.OR_z(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb4 => {
cpu.OR_z(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb5 => {
cpu.OR_z(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb6 => {
cpu.OR_z(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(8);
},
0xb7 => {
cpu.OR_z(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb8 => {
cpu.CP_z_h_c(cpu.BC.B);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xb9 => {
cpu.CP_z_h_c(cpu.BC.C);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xba => {
cpu.CP_z_h_c(cpu.DE.D);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xbb => {
cpu.CP_z_h_c(cpu.DE.E);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xbc => {
cpu.CP_z_h_c(cpu.HL.H);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xbd => {
cpu.CP_z_h_c(cpu.HL.L);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xbe => {
cpu.CP_z_h_c(cpu.RAM[cpu.HL.HL]);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(8);
},
0xbf => {
cpu.CP_z_h_c(cpu.AF.A);
cpu.reset_n();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xc0 => {
cpu.RET(cpu.NZ.NZ);
cpu.PC += 1;
cpu.run_cycles(20);
},
0xc1 => {
cpu.POP(cpu.BC.BC);
cpu.PC += 1;
cpu.run_cycles(12);
},
0xc2 => {
cpu.JP(cpu.NZ.NZ, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(16);
},
0xc3 => {
cpu.JP(cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(16);
},
0xc4 => {
cpu.CALL(cpu.NZ.NZ, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(24);
},
0xc5 => {
cpu.PUSH(cpu.BC.BC);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xc6 => {
cpu.ADD_z_h_c(cpu.AF.A, cpu.immediateU8());
cpu.set_n();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xc7 => {
cpu.RST(0x00);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xc8 => {
cpu.RET(cpu.Z.Z);
cpu.PC += 1;
cpu.run_cycles(20);
},
0xc9 => {
cpu.RET();
cpu.PC += 1;
cpu.run_cycles(16);
},
0xca => {
cpu.JP(cpu.Z.Z, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(16);
},
0xcb => {
cpu.PREFIX(cpu.CB.CB);
cpu.PC += 1;
cpu.run_cycles(4);
},
0xcc => {
cpu.CALL(cpu.Z.Z, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(24);
},
0xcd => {
cpu.CALL(cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(24);
},
0xce => {
cpu.ADC_z_h_c(cpu.AF.A, cpu.immediateU8());
cpu.set_n();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcf => {
cpu.RST(0x08);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xd0 => {
cpu.RET(cpu.NC.NC);
cpu.PC += 1;
cpu.run_cycles(20);
},
0xd1 => {
cpu.POP(cpu.DE.DE);
cpu.PC += 1;
cpu.run_cycles(12);
},
0xd2 => {
cpu.JP(cpu.NC.NC, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(16);
},
0xd4 => {
cpu.CALL(cpu.NC.NC, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(24);
},
0xd5 => {
cpu.PUSH(cpu.DE.DE);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xd6 => {
cpu.SUB_z_h_c(cpu.immediateU8());
cpu.reset_n();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xd7 => {
cpu.RST(0x10);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xd8 => {
cpu.RET(cpu.BC.C);
cpu.PC += 1;
cpu.run_cycles(20);
},
0xd9 => {
cpu.RETI();
cpu.PC += 1;
cpu.run_cycles(16);
},
0xda => {
cpu.JP(cpu.BC.C, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(16);
},
0xdc => {
cpu.CALL(cpu.BC.C, cpu.immediateU16());
cpu.PC += 3;
cpu.run_cycles(24);
},
0xde => {
cpu.SBC_z_h_c(cpu.AF.A, cpu.immediateU8());
cpu.reset_n();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xdf => {
cpu.RST(0x18);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xe0 => {
cpu.LDH(cpu.RAM[cpu.immediateU8()], cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(12);
},
0xe1 => {
cpu.POP(cpu.HL.HL);
cpu.PC += 1;
cpu.run_cycles(12);
},
0xe2 => {
cpu.LD(cpu.RAM[cpu.BC.C], cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xe5 => {
cpu.PUSH(cpu.HL.HL);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xe6 => {
cpu.AND_z(cpu.immediateU8());
cpu.set_n();
cpu.reset_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xe7 => {
cpu.RST(0x20);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xe8 => {
cpu.ADD_h_c(cpu.SP, cpu.immediateI8());
cpu.set_z();
cpu.set_n();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xe9 => {
cpu.JP(cpu.RAM[cpu.HL.HL]);
cpu.PC += 1;
cpu.run_cycles(4);
},
0xea => {
cpu.LD(cpu.RAM[cpu.immediateU16()], cpu.AF.A);
cpu.PC += 3;
cpu.run_cycles(16);
},
0xee => {
cpu.XOR_z(cpu.immediateU8());
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xef => {
cpu.RST(0x28);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xf0 => {
cpu.LDH(cpu.AF.A, cpu.RAM[cpu.immediateU8()]);
cpu.PC += 2;
cpu.run_cycles(12);
},
0xf1 => {
cpu.POP_z_n_h_c(cpu.AF.AF);
cpu.PC += 1;
cpu.run_cycles(12);
},
0xf2 => {
cpu.LD(cpu.AF.A, cpu.RAM[cpu.BC.C]);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xf3 => {
cpu.DI();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xf5 => {
cpu.PUSH(cpu.AF.AF);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xf6 => {
cpu.OR_z(cpu.immediateU8());
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xf7 => {
cpu.RST(0x30);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xf8 => {
cpu.LD_h_c(cpu.HL.HL, cpu.SP + cpu.immediateI8());
cpu.set_z();
cpu.set_n();
cpu.PC += 2;
cpu.run_cycles(12);
},
0xf9 => {
cpu.LD(cpu.SP, cpu.HL.HL);
cpu.PC += 1;
cpu.run_cycles(8);
},
0xfa => {
cpu.LD(cpu.AF.A, cpu.RAM[cpu.immediateU16()]);
cpu.PC += 3;
cpu.run_cycles(16);
},
0xfb => {
cpu.EI();
cpu.PC += 1;
cpu.run_cycles(4);
},
0xfe => {
cpu.CP_z_h_c(cpu.immediateU8());
cpu.reset_n();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xff => {
cpu.RST(0x38);
cpu.PC += 1;
cpu.run_cycles(16);
},
0xcb0 => {
cpu.RLC_z_c(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb1 => {
cpu.RLC_z_c(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb2 => {
cpu.RLC_z_c(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb3 => {
cpu.RLC_z_c(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb4 => {
cpu.RLC_z_c(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb5 => {
cpu.RLC_z_c(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb6 => {
cpu.RLC_z_c(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb7 => {
cpu.RLC_z_c(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb8 => {
cpu.RRC_z_c(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb9 => {
cpu.RRC_z_c(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba => {
cpu.RRC_z_c(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb => {
cpu.RRC_z_c(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc => {
cpu.RRC_z_c(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd => {
cpu.RRC_z_c(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe => {
cpu.RRC_z_c(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbf => {
cpu.RRC_z_c(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb10 => {
cpu.RL_z_c(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb11 => {
cpu.RL_z_c(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb12 => {
cpu.RL_z_c(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb13 => {
cpu.RL_z_c(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb14 => {
cpu.RL_z_c(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb15 => {
cpu.RL_z_c(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb16 => {
cpu.RL_z_c(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb17 => {
cpu.RL_z_c(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb18 => {
cpu.RR_z_c(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb19 => {
cpu.RR_z_c(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb1a => {
cpu.RR_z_c(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb1b => {
cpu.RR_z_c(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb1c => {
cpu.RR_z_c(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb1d => {
cpu.RR_z_c(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb1e => {
cpu.RR_z_c(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb1f => {
cpu.RR_z_c(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb20 => {
cpu.SLA_z_c(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb21 => {
cpu.SLA_z_c(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb22 => {
cpu.SLA_z_c(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb23 => {
cpu.SLA_z_c(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb24 => {
cpu.SLA_z_c(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb25 => {
cpu.SLA_z_c(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb26 => {
cpu.SLA_z_c(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb27 => {
cpu.SLA_z_c(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb28 => {
cpu.SRA_z(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb29 => {
cpu.SRA_z(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb2a => {
cpu.SRA_z(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb2b => {
cpu.SRA_z(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb2c => {
cpu.SRA_z(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb2d => {
cpu.SRA_z(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb2e => {
cpu.SRA_z(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb2f => {
cpu.SRA_z(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb30 => {
cpu.SWAP_z(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb31 => {
cpu.SWAP_z(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb32 => {
cpu.SWAP_z(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb33 => {
cpu.SWAP_z(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb34 => {
cpu.SWAP_z(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb35 => {
cpu.SWAP_z(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb36 => {
cpu.SWAP_z(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb37 => {
cpu.SWAP_z(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.set_c();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb38 => {
cpu.SRL_z_c(cpu.BC.B);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb39 => {
cpu.SRL_z_c(cpu.BC.C);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb3a => {
cpu.SRL_z_c(cpu.DE.D);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb3b => {
cpu.SRL_z_c(cpu.DE.E);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb3c => {
cpu.SRL_z_c(cpu.HL.H);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb3d => {
cpu.SRL_z_c(cpu.HL.L);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb3e => {
cpu.SRL_z_c(cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb3f => {
cpu.SRL_z_c(cpu.AF.A);
cpu.set_n();
cpu.set_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb40 => {
cpu.BIT_z(0, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb41 => {
cpu.BIT_z(0, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb42 => {
cpu.BIT_z(0, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb43 => {
cpu.BIT_z(0, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb44 => {
cpu.BIT_z(0, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb45 => {
cpu.BIT_z(0, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb46 => {
cpu.BIT_z(0, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb47 => {
cpu.BIT_z(0, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb48 => {
cpu.BIT_z(1, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb49 => {
cpu.BIT_z(1, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb4a => {
cpu.BIT_z(1, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb4b => {
cpu.BIT_z(1, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb4c => {
cpu.BIT_z(1, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb4d => {
cpu.BIT_z(1, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb4e => {
cpu.BIT_z(1, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb4f => {
cpu.BIT_z(1, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb50 => {
cpu.BIT_z(2, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb51 => {
cpu.BIT_z(2, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb52 => {
cpu.BIT_z(2, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb53 => {
cpu.BIT_z(2, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb54 => {
cpu.BIT_z(2, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb55 => {
cpu.BIT_z(2, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb56 => {
cpu.BIT_z(2, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb57 => {
cpu.BIT_z(2, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb58 => {
cpu.BIT_z(3, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb59 => {
cpu.BIT_z(3, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb5a => {
cpu.BIT_z(3, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb5b => {
cpu.BIT_z(3, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb5c => {
cpu.BIT_z(3, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb5d => {
cpu.BIT_z(3, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb5e => {
cpu.BIT_z(3, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb5f => {
cpu.BIT_z(3, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb60 => {
cpu.BIT_z(4, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb61 => {
cpu.BIT_z(4, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb62 => {
cpu.BIT_z(4, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb63 => {
cpu.BIT_z(4, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb64 => {
cpu.BIT_z(4, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb65 => {
cpu.BIT_z(4, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb66 => {
cpu.BIT_z(4, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb67 => {
cpu.BIT_z(4, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb68 => {
cpu.BIT_z(5, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb69 => {
cpu.BIT_z(5, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb6a => {
cpu.BIT_z(5, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb6b => {
cpu.BIT_z(5, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb6c => {
cpu.BIT_z(5, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb6d => {
cpu.BIT_z(5, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb6e => {
cpu.BIT_z(5, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb6f => {
cpu.BIT_z(5, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb70 => {
cpu.BIT_z(6, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb71 => {
cpu.BIT_z(6, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb72 => {
cpu.BIT_z(6, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb73 => {
cpu.BIT_z(6, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb74 => {
cpu.BIT_z(6, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb75 => {
cpu.BIT_z(6, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb76 => {
cpu.BIT_z(6, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb77 => {
cpu.BIT_z(6, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb78 => {
cpu.BIT_z(7, cpu.BC.B);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb79 => {
cpu.BIT_z(7, cpu.BC.C);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb7a => {
cpu.BIT_z(7, cpu.DE.D);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb7b => {
cpu.BIT_z(7, cpu.DE.E);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb7c => {
cpu.BIT_z(7, cpu.HL.H);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb7d => {
cpu.BIT_z(7, cpu.HL.L);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb7e => {
cpu.BIT_z(7, cpu.RAM[cpu.HL.HL]);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb7f => {
cpu.BIT_z(7, cpu.AF.A);
cpu.set_n();
cpu.reset_h();
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb80 => {
cpu.RES(0, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb81 => {
cpu.RES(0, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb82 => {
cpu.RES(0, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb83 => {
cpu.RES(0, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb84 => {
cpu.RES(0, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb85 => {
cpu.RES(0, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb86 => {
cpu.RES(0, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb87 => {
cpu.RES(0, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb88 => {
cpu.RES(1, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb89 => {
cpu.RES(1, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb8a => {
cpu.RES(1, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb8b => {
cpu.RES(1, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb8c => {
cpu.RES(1, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb8d => {
cpu.RES(1, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb8e => {
cpu.RES(1, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb8f => {
cpu.RES(1, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb90 => {
cpu.RES(2, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb91 => {
cpu.RES(2, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb92 => {
cpu.RES(2, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb93 => {
cpu.RES(2, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb94 => {
cpu.RES(2, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb95 => {
cpu.RES(2, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb96 => {
cpu.RES(2, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb97 => {
cpu.RES(2, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb98 => {
cpu.RES(3, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb99 => {
cpu.RES(3, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb9a => {
cpu.RES(3, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb9b => {
cpu.RES(3, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb9c => {
cpu.RES(3, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb9d => {
cpu.RES(3, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcb9e => {
cpu.RES(3, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcb9f => {
cpu.RES(3, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba0 => {
cpu.RES(4, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba1 => {
cpu.RES(4, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba2 => {
cpu.RES(4, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba3 => {
cpu.RES(4, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba4 => {
cpu.RES(4, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba5 => {
cpu.RES(4, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba6 => {
cpu.RES(4, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcba7 => {
cpu.RES(4, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba8 => {
cpu.RES(5, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcba9 => {
cpu.RES(5, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbaa => {
cpu.RES(5, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbab => {
cpu.RES(5, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbac => {
cpu.RES(5, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbad => {
cpu.RES(5, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbae => {
cpu.RES(5, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbaf => {
cpu.RES(5, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb0 => {
cpu.RES(6, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb1 => {
cpu.RES(6, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb2 => {
cpu.RES(6, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb3 => {
cpu.RES(6, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb4 => {
cpu.RES(6, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb5 => {
cpu.RES(6, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb6 => {
cpu.RES(6, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbb7 => {
cpu.RES(6, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb8 => {
cpu.RES(7, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbb9 => {
cpu.RES(7, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbba => {
cpu.RES(7, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbbb => {
cpu.RES(7, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbbc => {
cpu.RES(7, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbbd => {
cpu.RES(7, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbbe => {
cpu.RES(7, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbbf => {
cpu.RES(7, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc0 => {
cpu.SET(0, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc1 => {
cpu.SET(0, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc2 => {
cpu.SET(0, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc3 => {
cpu.SET(0, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc4 => {
cpu.SET(0, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc5 => {
cpu.SET(0, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc6 => {
cpu.SET(0, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbc7 => {
cpu.SET(0, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc8 => {
cpu.SET(1, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbc9 => {
cpu.SET(1, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbca => {
cpu.SET(1, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbcb => {
cpu.SET(1, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbcc => {
cpu.SET(1, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbcd => {
cpu.SET(1, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbce => {
cpu.SET(1, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbcf => {
cpu.SET(1, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd0 => {
cpu.SET(2, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd1 => {
cpu.SET(2, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd2 => {
cpu.SET(2, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd3 => {
cpu.SET(2, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd4 => {
cpu.SET(2, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd5 => {
cpu.SET(2, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd6 => {
cpu.SET(2, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbd7 => {
cpu.SET(2, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd8 => {
cpu.SET(3, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbd9 => {
cpu.SET(3, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbda => {
cpu.SET(3, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbdb => {
cpu.SET(3, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbdc => {
cpu.SET(3, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbdd => {
cpu.SET(3, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbde => {
cpu.SET(3, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbdf => {
cpu.SET(3, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe0 => {
cpu.SET(4, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe1 => {
cpu.SET(4, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe2 => {
cpu.SET(4, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe3 => {
cpu.SET(4, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe4 => {
cpu.SET(4, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe5 => {
cpu.SET(4, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe6 => {
cpu.SET(4, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbe7 => {
cpu.SET(4, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe8 => {
cpu.SET(5, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbe9 => {
cpu.SET(5, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbea => {
cpu.SET(5, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbeb => {
cpu.SET(5, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbec => {
cpu.SET(5, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbed => {
cpu.SET(5, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbee => {
cpu.SET(5, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbef => {
cpu.SET(5, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf0 => {
cpu.SET(6, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf1 => {
cpu.SET(6, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf2 => {
cpu.SET(6, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf3 => {
cpu.SET(6, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf4 => {
cpu.SET(6, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf5 => {
cpu.SET(6, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf6 => {
cpu.SET(6, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbf7 => {
cpu.SET(6, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf8 => {
cpu.SET(7, cpu.BC.B);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbf9 => {
cpu.SET(7, cpu.BC.C);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbfa => {
cpu.SET(7, cpu.DE.D);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbfb => {
cpu.SET(7, cpu.DE.E);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbfc => {
cpu.SET(7, cpu.HL.H);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbfd => {
cpu.SET(7, cpu.HL.L);
cpu.PC += 2;
cpu.run_cycles(8);
},
0xcbfe => {
cpu.SET(7, cpu.RAM[cpu.HL.HL]);
cpu.PC += 2;
cpu.run_cycles(16);
},
0xcbff => {
cpu.SET(7, cpu.AF.A);
cpu.PC += 2;
cpu.run_cycles(8);
},
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment