1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-08-07 23:25:00 +00:00

Enables fuzzing, adds a definite no-op write.

This commit is contained in:
Thomas Harte
2020-11-25 23:33:55 -05:00
parent c6c12209e8
commit cdc2311045

View File

@@ -122,8 +122,8 @@ class ConcreteMachine:
iwm_->set_drive(0, &drives35_[0]); iwm_->set_drive(0, &drives35_[0]);
iwm_->set_drive(1, &drives35_[1]); iwm_->set_drive(1, &drives35_[1]);
// TODO: enable once machine is otherwise sane. // Randomise RAM contents.
// Memory::Fuzz(ram_); Memory::Fuzz(ram_);
// Sync up initial values. // Sync up initial values.
memory_.set_speed_register(speed_register_); memory_.set_speed_register(speed_register_);
@@ -533,6 +533,10 @@ class ConcreteMachine:
} }
break; break;
// Addresses on other Apple II devices which do nothing on the GS.
case Write(0xc07e):
break;
default: default:
// Update motor mask bits. // Update motor mask bits.
switch(address_suffix) { switch(address_suffix) {
@@ -650,17 +654,12 @@ class ConcreteMachine:
if(operation == CPU::WDC65816::BusOperation::ReadOpcode) { if(operation == CPU::WDC65816::BusOperation::ReadOpcode) {
assert(address); assert(address);
} }
// if((address > 0x200 && address < 0x2000) || (address > 0x010200 && address < 0x012000)) { // if(address == 0xe115fe || address == 0xe115ff) {
// printf("%06x %s %02x%s\n", address, isReadOperation(operation) ? "->" : "<-", *value, // printf("%06x %s %02x%s\n", address, isReadOperation(operation) ? "->" : "<-", *value,
// operation == CPU::WDC65816::BusOperation::ReadOpcode ? " [*]" : ""); // operation == CPU::WDC65816::BusOperation::ReadOpcode ? " [*]" : "");
// } // }
// log |= (address >= 0xff9b00) && (address < 0xff9b32); // log |= (operation == CPU::WDC65816::BusOperation::ReadOpcode) && (address == 0xfc0d50);
// log |= (operation == CPU::WDC65816::BusOperation::ReadOpcode) && (address < 0x100); // log &= !((operation == CPU::WDC65816::BusOperation::ReadOpcode) && ((address >= 0xfc0d5b) || (address < 0xfc0d50)));
// log |= total >= 77750000;
// log |= (address == 0x1f6) && (total >= 60000000);
// log |= (address == 0x48) && (*value == 0x02);
// log |= (operation == CPU::WDC65816::BusOperation::ReadOpcode) && (address >= 0x800) && (address < 0x900);
// log &= !((operation == CPU::WDC65816::BusOperation::ReadOpcode) && (address == 0x0002));
if(log) { if(log) {
printf("%06x %s %02x", address, isReadOperation(operation) ? "->" : "<-", *value); printf("%06x %s %02x", address, isReadOperation(operation) ? "->" : "<-", *value);
if(operation == CPU::WDC65816::BusOperation::ReadOpcode) { if(operation == CPU::WDC65816::BusOperation::ReadOpcode) {