1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-11 04:28:58 +00:00

Resolves potential flaw in POPping here.

This commit is contained in:
Thomas Harte 2021-04-25 13:26:53 -04:00
parent a5098a60ec
commit 9b65d56ed0

View File

@ -70,12 +70,11 @@ std::unique_ptr<Analyser::Static::Target> SNA::load(const std::string &file_name
// 1B 48kb RAM contents // 1B 48kb RAM contents
state->ram = file.read(48*1024); state->ram = file.read(48*1024);
// Establish program counter. // To establish program counter, point it to a RET that
state->z80.registers.program_counter = state->ram[state->z80.registers.stack_pointer]; // I know is in the 16/48kb ROM. This avoids having to
state->ram[state->z80.registers.stack_pointer] = 0; // try to do a pop here, given that the true program counter
state->z80.registers.program_counter |= state->ram[state->z80.registers.stack_pointer+1] << 8; // might currently be in the ROM.
state->ram[state->z80.registers.stack_pointer+1] = 0; state->z80.registers.program_counter = 0x1d83;
state->z80.registers.stack_pointer += 2;
return result; return result;
} }