1
0
mirror of https://github.com/pevans/erc-c.git synced 2024-12-22 14:30:45 +00:00

Use set16 to push items to the stack.

The previous method was not incorrect, but set16 already handles the
little-endian logic for us, and there's no need to do something bespoke
here that we then need to test for separately.
This commit is contained in:
Peter Evans 2018-01-20 23:43:58 -06:00
parent 2f777ce881
commit fcd25f6385

View File

@ -191,13 +191,7 @@ mos6502_free(mos6502 *cpu)
void void
mos6502_push_stack(mos6502 *cpu, vm_16bit addr) mos6502_push_stack(mos6502 *cpu, vm_16bit addr)
{ {
// First we need to set the hi byte, by shifting the address right 8 mos6502_set16(cpu, 0x100 + cpu->S, addr);
// positions and using the base offset of the S register.
mos6502_set(cpu, 0x0100 + cpu->S, addr & 0xff);
// Next we must record the lo byte, this time by using a bitmask to
// capture just the low end of addr, but recording it in S + 1.
mos6502_set(cpu, 0x0100 + cpu->S + 1, addr >> 8);
// And finally we need to increment S by 2 (since we've used two // And finally we need to increment S by 2 (since we've used two
// bytes in the stack). // bytes in the stack).