From 5810f9b3f903cf5b2a6f499f6a6a28b9607b8341 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 30 Jul 2018 23:23:18 -0400 Subject: [PATCH] Fixes high resolution address range and switching logic. --- Machines/AppleII/AppleII.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Machines/AppleII/AppleII.cpp b/Machines/AppleII/AppleII.cpp index 8ca3b4e63..47b607992 100644 --- a/Machines/AppleII/AppleII.cpp +++ b/Machines/AppleII/AppleII.cpp @@ -243,10 +243,10 @@ template class ConcreteMachine: use_aux_ram ? &aux_ram_[0x0400] : &ram_[0x0400], use_aux_ram ? &aux_ram_[0x0400] : &ram_[0x0400]); - if(!video_->get_text()) { - page(0x10, 0x20, - use_aux_ram ? &aux_ram_[0x1000] : &ram_[0x1000], - use_aux_ram ? &aux_ram_[0x1000] : &ram_[0x1000]); + if(video_->get_high_resolution()) { + page(0x20, 0x40, + use_aux_ram ? &aux_ram_[0x2000] : &ram_[0x2000], + use_aux_ram ? &aux_ram_[0x2000] : &ram_[0x2000]); } } } @@ -664,7 +664,6 @@ template class ConcreteMachine: case 0xc051: update_video(); video_->set_text(!!(address&1)); - set_main_paging(); break; case 0xc052: update_video(); video_->set_mixed(false); break; case 0xc053: update_video(); video_->set_mixed(true); break; @@ -674,8 +673,12 @@ template class ConcreteMachine: video_->set_page2(!!(address&1)); set_main_paging(); break; - case 0xc056: update_video(); video_->set_high_resolution(false); break; - case 0xc057: update_video(); video_->set_high_resolution(true); break; + case 0xc056: + case 0xc057: + update_video(); + video_->set_high_resolution(!!(address&1)); + set_main_paging(); + break; case 0xc010: keyboard_input_ &= 0x7f;