From 7374c665e85f60c38fc588d269c0f7a1d8384a27 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 11 Aug 2018 19:57:39 -0400 Subject: [PATCH 1/3] Corrects regression in video flushing. --- Machines/AppleII/AppleII.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Machines/AppleII/AppleII.cpp b/Machines/AppleII/AppleII.cpp index 25168b059..df967a4fe 100644 --- a/Machines/AppleII/AppleII.cpp +++ b/Machines/AppleII/AppleII.cpp @@ -427,7 +427,10 @@ template class ConcreteMachine: bool has_updated_cards = false; if(read_pages_[address >> 8]) { if(isReadOperation(operation)) *value = read_pages_[address >> 8][address & 0xff]; - else if(write_pages_[address >> 8]) write_pages_[address >> 8][address & 0xff] = *value; + else { + if(address >= 0x200 && address < 0x6000) update_video(); + if(write_pages_[address >> 8]) write_pages_[address >> 8][address & 0xff] = *value; + } if(is_iie() && address >= 0xc300 && address < 0xd000) { bool internal_c8_rom = internal_c8_rom_; From 434d184503ddedd22087ef1b66f1df49bd856dd5 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 11 Aug 2018 22:53:06 -0400 Subject: [PATCH 2/3] Corrects deserialisation order in double low res mode. --- Machines/AppleII/Video.hpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Machines/AppleII/Video.hpp b/Machines/AppleII/Video.hpp index f03bb721e..b17e3ae21 100644 --- a/Machines/AppleII/Video.hpp +++ b/Machines/AppleII/Video.hpp @@ -332,13 +332,13 @@ template class Video: public VideoBase { case GraphicsMode::DoubleLowRes: { const int row_shift = (row_&4); for(int c = column_; c < pixel_end; ++c) { - const uint16_t nibble = (bus_handler_.perform_aux_read(static_cast(text_address + c)) >> row_shift) & 0xf0f; + const uint16_t nibble = bus_handler_.perform_aux_read(static_cast(text_address + c)) >> row_shift; if(c&1) { - pixel_pointer_[0] = pixel_pointer_[4] = (nibble >> 8) & 4; - pixel_pointer_[1] = pixel_pointer_[5] = (nibble >> 8) & 8; - pixel_pointer_[2] = pixel_pointer_[6] = (nibble >> 8) & 1; - pixel_pointer_[3] = (nibble >> 8) & 2; + pixel_pointer_[0] = pixel_pointer_[4] = (nibble >> 8) & 2; + pixel_pointer_[1] = pixel_pointer_[5] = (nibble >> 8) & 4; + pixel_pointer_[2] = pixel_pointer_[6] = (nibble >> 8) & 8; + pixel_pointer_[3] = (nibble >> 8) & 1; pixel_pointer_[8] = pixel_pointer_[12] = nibble & 4; pixel_pointer_[9] = pixel_pointer_[13] = nibble & 8; @@ -346,10 +346,10 @@ template class Video: public VideoBase { pixel_pointer_[7] = pixel_pointer_[11] = nibble & 2; graphics_carry_ = nibble & 8; } else { - pixel_pointer_[0] = pixel_pointer_[4] = (nibble >> 8) & 1; - pixel_pointer_[1] = pixel_pointer_[5] = (nibble >> 8) & 2; - pixel_pointer_[2] = pixel_pointer_[6] = (nibble >> 8) & 4; - pixel_pointer_[3] = (nibble >> 8) & 8; + pixel_pointer_[0] = pixel_pointer_[4] = (nibble >> 8) & 8; + pixel_pointer_[1] = pixel_pointer_[5] = (nibble >> 8) & 1; + pixel_pointer_[2] = pixel_pointer_[6] = (nibble >> 8) & 2; + pixel_pointer_[3] = (nibble >> 8) & 4; pixel_pointer_[8] = pixel_pointer_[12] = nibble & 1; pixel_pointer_[9] = pixel_pointer_[13] = nibble & 2; From cb47575860fa9432528674173176536e8c439c88 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 11 Aug 2018 22:57:54 -0400 Subject: [PATCH 3/3] Eliminates stdout chatter. --- Machines/AppleII/AppleII.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Machines/AppleII/AppleII.cpp b/Machines/AppleII/AppleII.cpp index df967a4fe..bce8d2171 100644 --- a/Machines/AppleII/AppleII.cpp +++ b/Machines/AppleII/AppleII.cpp @@ -20,6 +20,7 @@ #include "../../Components/AudioToggle/AudioToggle.hpp" #include "../../Outputs/Speaker/Implementation/LowpassSpeaker.hpp" +#include "../../Outputs/Log.hpp" #include "Card.hpp" #include "DiskIICard.hpp" @@ -529,7 +530,7 @@ template class ConcreteMachine: // Write-only switches. All IIe as currently implemented. if(is_iie()) { switch(address) { - default: printf("Write %04x?\n", address); break; + default: break; case 0xc000: case 0xc001: