Created
May 25, 2018 08:48
-
-
Save Tomcc/f5672739b5397c37c36afe26a6002f9b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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