cpu: implement LDH instructions

This commit is contained in:
2018-02-19 06:51:28 +00:00
parent bd95e66280
commit 1a0dcbdb81

View File

@@ -1338,7 +1338,10 @@ void lr35902_cycle(struct lr35902_state *cpu)
case 0xdf: /* RST 0x18 */
RST(cpu, 0x18);
break;
case 0xe0:
case 0xe0: /* LDH (a8), A / LD ($FF00+a8),A */
val = cpu->mem_read(cpu, cpu->pc++);
cpu->mem_write(cpu, 0xff00 + val, cpu->a);
break;
case 0xe1: /* POP HL */
POP_16(cpu, cpu->hl);
break;
@@ -1371,7 +1374,10 @@ void lr35902_cycle(struct lr35902_state *cpu)
case 0xef: /* RST 0x28 */
RST(cpu, 0x28);
break;
case 0xf0:
case 0xf0: /* LDH A,(a8) / LD A,($FF00+a8) */
val = cpu->mem_read(cpu, cpu->pc++);
cpu->a = cpu->mem_read(cpu, 0xff00 + val);
break;
case 0xf1: /* POP AF */
cpu->a = cpu->mem_read(cpu, cpu->sp++);
val = cpu->mem_read(cpu, cpu->sp++);