1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-25 18:30:07 +00:00

Further ensures both ZX80 and ZX81 functionality.

This commit is contained in:
Thomas Harte 2020-07-14 23:45:51 -04:00
parent 371c26251c
commit e1c57b6fbe

View File

@ -251,10 +251,12 @@ template<bool is_zx81> class ConcreteMachine:
}
if(should_autorun_ && address == finished_load_address_) {
type_string("r \n");
type_string(is_zx81 ? "r \n" : "r\n "); // Spaces here are not especially scientific; they merely ensure sufficient pauses for both the ZX80 and 81, empirically.
should_autorun_ = false;
}
if(address >= 0x24d && address < 0x256) printf("PC: %04x\n", address);
// Check for automatic tape control.
if(use_automatic_tape_motor_control_) {
tape_player_.set_motor_control((address >= automatic_tape_motor_start_address_) && (address < automatic_tape_motor_end_address_));
@ -432,7 +434,7 @@ template<bool is_zx81> class ConcreteMachine:
// emulator will automatically RUN whatever has been loaded.
static constexpr uint16_t finished_load_address_ = is_zx81 ?
0x6d1 : // ZX81: this is the routine that prints 0/0 (i.e. success).
0x256; // ZX80: this is the start of the list command; the ZX80 lists a program after loading.
0x203; // ZX80: this is the JR that exits the ZX80's LOAD and returns to MAIN-EXEC.
bool should_autorun_ = false;
std::vector<uint8_t> ram_;