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