From 734b575d30b014d2d961ab1d2fa41480c8e8fba9 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Wed, 19 Oct 2016 21:17:27 -0400 Subject: [PATCH] Ensured no attempt to write to pixel storage if none was available. --- Machines/Oric/Video.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Machines/Oric/Video.cpp b/Machines/Oric/Video.cpp index 68c456cca..64fb5ae7d 100644 --- a/Machines/Oric/Video.cpp +++ b/Machines/Oric/Video.cpp @@ -105,14 +105,17 @@ void VideoOutput::run_for_cycles(int number_of_cycles) if((control_byte & 0x7f) >= 32) { - uint8_t colours[2] = { - (uint8_t)(_paper ^ inverse_mask), - (uint8_t)(_ink ^ inverse_mask), - }; + if(_pixel_target) + { + uint8_t colours[2] = { + (uint8_t)(_paper ^ inverse_mask), + (uint8_t)(_ink ^ inverse_mask), + }; - _pixel_target[0] = (colours[(pixels >> 4)&1] & 0x0f) | (colours[(pixels >> 5)&1] & 0xf0); - _pixel_target[1] = (colours[(pixels >> 2)&1] & 0x0f) | (colours[(pixels >> 3)&1] & 0xf0); - _pixel_target[2] = (colours[(pixels >> 0)&1] & 0x0f) | (colours[(pixels >> 1)&1] & 0xf0); + _pixel_target[0] = (colours[(pixels >> 4)&1] & 0x0f) | (colours[(pixels >> 5)&1] & 0xf0); + _pixel_target[1] = (colours[(pixels >> 2)&1] & 0x0f) | (colours[(pixels >> 3)&1] & 0xf0); + _pixel_target[2] = (colours[(pixels >> 0)&1] & 0x0f) | (colours[(pixels >> 1)&1] & 0xf0); + } } else { @@ -152,9 +155,9 @@ void VideoOutput::run_for_cycles(int number_of_cycles) default: break; } - _pixel_target[0] = _pixel_target[1] = _pixel_target[2] = (uint8_t)(_paper ^ inverse_mask); + if(_pixel_target) _pixel_target[0] = _pixel_target[1] = _pixel_target[2] = (uint8_t)(_paper ^ inverse_mask); } - _pixel_target += 3; + if(_pixel_target) _pixel_target += 3; } } }