From e07981c147b71ddb34ee25fbd236e56a9a7b69a9 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 9 Jan 2016 22:52:08 -0500 Subject: [PATCH] Fixed screen start address. --- Machines/Electron/Electron.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Machines/Electron/Electron.cpp b/Machines/Electron/Electron.cpp index 3292cb8c7..32d45f8db 100644 --- a/Machines/Electron/Electron.cpp +++ b/Machines/Electron/Electron.cpp @@ -79,10 +79,10 @@ unsigned int Machine::perform_bus_operation(CPU6502::BusOperation operation, uin case 0x1: break; case 0x2: - _startScreenAddress = (_startScreenAddress & 0xff00) | ((*value) & 0xe0); + _startScreenAddress = (_startScreenAddress & 0xfe00) | (uint16_t)(((*value) & 0xe0) << 1); break; case 0x3: - _startScreenAddress = (_startScreenAddress & 0x00ff) | (uint16_t)(((*value) & 0x3f) << 8); + _startScreenAddress = (_startScreenAddress & 0x01ff) | (uint16_t)(((*value) & 0x3f) << 9); break; case 0x4: printf("Cassette\n"); @@ -250,8 +250,7 @@ inline void Machine::update_display() for(int c = 0; c < 16; c+=2) { - _currentLine[output_ptr + c] = (pixels&0x80) ? 0 : 7; - _currentLine[output_ptr + c + 1] = (pixels&0x80) ? 0 : 7; + _currentLine[output_ptr + c] = _currentLine[output_ptr + c + 1] = (pixels&0x80) ? 0 : 7; pixels <<= 1; } }