From a8874fd05a09424d3f83534a15fa1413485d7322 Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Mon, 17 Feb 2020 02:17:34 +0100 Subject: [PATCH] notes --- src/main/kotlin/razorvine/c64emu/Screen.kt | 1 + src/main/kotlin/razorvine/ksim65/Cpu6502.kt | 5 +++++ src/main/kotlin/razorvine/ksim65/Cpu65C02.kt | 2 ++ src/main/resources/version.properties | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/razorvine/c64emu/Screen.kt b/src/main/kotlin/razorvine/c64emu/Screen.kt index 0bd9169..48cf01d 100644 --- a/src/main/kotlin/razorvine/c64emu/Screen.kt +++ b/src/main/kotlin/razorvine/c64emu/Screen.kt @@ -14,6 +14,7 @@ import javax.swing.JPanel * It supports: Character mode, * High res bitmap mode (320*200), Multicolor bitmap mode (160*200). * TODO: Multicolor character mode. Extended background color mode. + * TODO: Horizontal smooth scrolling (+38 col mode). Vertical smooth scrolling (+24 row mode). */ internal class Screen(private val chargen: Rom, val ram: MemoryComponent) : JPanel() { diff --git a/src/main/kotlin/razorvine/ksim65/Cpu6502.kt b/src/main/kotlin/razorvine/ksim65/Cpu6502.kt index 853e306..da05015 100644 --- a/src/main/kotlin/razorvine/ksim65/Cpu6502.kt +++ b/src/main/kotlin/razorvine/ksim65/Cpu6502.kt @@ -232,6 +232,7 @@ open class Cpu6502 : BusComponent() { * Reset the cpu */ override fun reset() { + // TODO don't perform all of the reset logic immediately, handle the reset 'pin' in the regular clock() instead (much like a NMI) regP.I = true regP.C = false regP.Z = false @@ -1074,6 +1075,8 @@ open class Cpu6502 : BusComponent() { regP.I = true // interrupts are now disabled // NMOS 6502 doesn't clear the D flag (CMOS 65C02 version does...) regPC = readWord(IRQ_vector) + + // TODO prevent NMI from triggering immediately after IRQ/BRK... how does that work exactly? } protected open fun handleInterrupt() { @@ -1094,6 +1097,8 @@ open class Cpu6502 : BusComponent() { regPC = readWord(IRQ_vector) irqAsserted = false } + + // TODO prevent NMI from triggering immediately after IRQ/BRK... how does that work exactly? } protected fun iBvc() { diff --git a/src/main/kotlin/razorvine/ksim65/Cpu65C02.kt b/src/main/kotlin/razorvine/ksim65/Cpu65C02.kt index 1dc8efb..e1f77b5 100644 --- a/src/main/kotlin/razorvine/ksim65/Cpu65C02.kt +++ b/src/main/kotlin/razorvine/ksim65/Cpu65C02.kt @@ -633,6 +633,8 @@ class Cpu65C02 : Cpu6502() { regP.I = true // interrupts are now disabled regP.D = false // this is different from NMOS 6502 regPC = readWord(IRQ_vector) + + // TODO prevent NMI from triggering immediately after IRQ/BRK... how does that work exactly? } override fun handleInterrupt() { diff --git a/src/main/resources/version.properties b/src/main/resources/version.properties index 6d34eab..186f6de 100644 --- a/src/main/resources/version.properties +++ b/src/main/resources/version.properties @@ -1 +1 @@ -version=1.7 +version=1.8-SNAPSHOT