cpu: implement LDH instructions
This commit is contained in:
@@ -1338,7 +1338,10 @@ void lr35902_cycle(struct lr35902_state *cpu)
|
|||||||
case 0xdf: /* RST 0x18 */
|
case 0xdf: /* RST 0x18 */
|
||||||
RST(cpu, 0x18);
|
RST(cpu, 0x18);
|
||||||
break;
|
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 */
|
case 0xe1: /* POP HL */
|
||||||
POP_16(cpu, cpu->hl);
|
POP_16(cpu, cpu->hl);
|
||||||
break;
|
break;
|
||||||
@@ -1371,7 +1374,10 @@ void lr35902_cycle(struct lr35902_state *cpu)
|
|||||||
case 0xef: /* RST 0x28 */
|
case 0xef: /* RST 0x28 */
|
||||||
RST(cpu, 0x28);
|
RST(cpu, 0x28);
|
||||||
break;
|
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 */
|
case 0xf1: /* POP AF */
|
||||||
cpu->a = cpu->mem_read(cpu, cpu->sp++);
|
cpu->a = cpu->mem_read(cpu, cpu->sp++);
|
||||||
val = cpu->mem_read(cpu, cpu->sp++);
|
val = cpu->mem_read(cpu, cpu->sp++);
|
||||||
|
|||||||
Reference in New Issue
Block a user