From 2ad73432f63875e01aea36160ec8d58ed9ac3af0 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Tue, 18 Feb 2020 02:54:04 +0100 Subject: [PATCH] do not crash anymore when multicolor mode is enabled --- src/main/kotlin/razorvine/c64emu/Screen.kt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/kotlin/razorvine/c64emu/Screen.kt b/src/main/kotlin/razorvine/c64emu/Screen.kt index 48cf01d..dbbc70b 100644 --- a/src/main/kotlin/razorvine/c64emu/Screen.kt +++ b/src/main/kotlin/razorvine/c64emu/Screen.kt @@ -148,17 +148,17 @@ internal class Screen(private val chargen: Rom, val ram: MemoryComponent) : JPan private fun renderCharacterMode(vicBank: Address, vicVMCSB: Int, multiColorMode: Boolean) { if (multiColorMode) { - TODO("multicolor character mode") - } else { - // normal character mode - val screenAddress = vicBank+(vicVMCSB ushr 4) shl 10 - val charsetAddress = (vicVMCSB and 0b00001110) shl 10 - for (y in 0 until ScreenDefs.SCREEN_HEIGHT_CHARS) { - for (x in 0 until ScreenDefs.SCREEN_WIDTH_CHARS) { - val char = ram[screenAddress+x+y*ScreenDefs.SCREEN_WIDTH_CHARS].toInt() - val color = ram[0xd800+x+y*ScreenDefs.SCREEN_WIDTH_CHARS].toInt() // colors always at $d800 - drawColoredChar(x, y, char, color, vicBank+charsetAddress) - } + // TODO multicolor character mode, for now, falls back to normal char mode + } + + // normal character mode + val screenAddress = vicBank+(vicVMCSB ushr 4) shl 10 + val charsetAddress = (vicVMCSB and 0b00001110) shl 10 + for (y in 0 until ScreenDefs.SCREEN_HEIGHT_CHARS) { + for (x in 0 until ScreenDefs.SCREEN_WIDTH_CHARS) { + val char = ram[screenAddress+x+y*ScreenDefs.SCREEN_WIDTH_CHARS].toInt() + val color = ram[0xd800+x+y*ScreenDefs.SCREEN_WIDTH_CHARS].toInt() // colors always at $d800 + drawColoredChar(x, y, char, color, vicBank+charsetAddress) } } }