From ee22cf7ca184c5379d230a93c457dd5b44a2e544 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 30 Nov 2020 22:56:19 -0500 Subject: [PATCH] Ensures that PAGE2 propagates from the state register to video. --- Machines/Apple/AppleIIgs/AppleIIgs.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Machines/Apple/AppleIIgs/AppleIIgs.cpp b/Machines/Apple/AppleIIgs/AppleIIgs.cpp index f22db27cd..a51115e92 100644 --- a/Machines/Apple/AppleIIgs/AppleIIgs.cpp +++ b/Machines/Apple/AppleIIgs/AppleIIgs.cpp @@ -296,6 +296,7 @@ class ConcreteMachine: break; case Write(0xc068): memory_.set_state_register(*value); + video_->set_page2(*value & 0x40); break; // Various independent memory switch reads [TODO: does the IIe-style keyboard provide the low seven?]. @@ -336,7 +337,7 @@ class ConcreteMachine: break; case Read(0xc054): case Read(0xc055): case Write(0xc054): case Write(0xc055): - video_->set_page2(address&1); + video_->set_page2(address & 1); break; case Read(0xc056): case Read(0xc057): case Write(0xc056): case Write(0xc057): @@ -719,8 +720,8 @@ class ConcreteMachine: // printf("%06x %s %02x%s\n", address, isReadOperation(operation) ? "->" : "<-", *value, // operation == CPU::WDC65816::BusOperation::ReadOpcode ? " [*]" : ""); // } - log = (operation == CPU::WDC65816::BusOperation::ReadOpcode) && (address >= 0xff6a2c) && (address < 0xff6a9c); -// log &= !((operation == CPU::WDC65816::BusOperation::ReadOpcode) && ((address >= 0xff9a2c) || (address < 0xff6a2c))); +// log |= (operation == CPU::WDC65816::BusOperation::ReadOpcode) && (address >= 0xff6a2c) && (address < 0xff6a9c); +// log &= !((operation == CPU::WDC65816::BusOperation::ReadOpcode) && ((address < 0xff6a2c) || (address >= 0xff6a9c))); if(log) { printf("%06x %s %02x", address, isReadOperation(operation) ? "->" : "<-", *value); if(operation == CPU::WDC65816::BusOperation::ReadOpcode) {