diff --git a/build.gradle.kts b/build.gradle.kts index a0429d4..865a3c7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ import kotlin.math.max plugins { // Apply the Kotlin JVM plugin to add support for Kotlin on the JVM. - kotlin("jvm") version "1.3.61" + kotlin("jvm") version "1.3.70" `maven-publish` application id("org.jetbrains.dokka") version "0.10.0" @@ -32,6 +32,9 @@ allprojects { dependencies { + // Align versions of all Kotlin components + implementation(platform("org.jetbrains.kotlin:kotlin-bom")) + // Use the Kotlin JDK 8 standard library. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") diff --git a/src/main/kotlin/razorvine/ksim65/Utils.kt b/src/main/kotlin/razorvine/ksim65/Utils.kt index a3133b4..0de8330 100644 --- a/src/main/kotlin/razorvine/ksim65/Utils.kt +++ b/src/main/kotlin/razorvine/ksim65/Utils.kt @@ -2,20 +2,16 @@ package razorvine.ksim65 import razorvine.ksim65.components.Address -fun hexW(number: Address, allowSingleByte: Boolean = false): String { - val msb = number ushr 8 - val lsb = number and 0xff - return if (msb == 0 && allowSingleByte) hexB(lsb) - else hexB(msb)+hexB(lsb) -} +fun hexW(number: Int, allowSingleByte: Boolean = false) = + if(allowSingleByte && (number and 0xff00 == 0)) { + number.toString(16).padStart(2, '0') + } else { + number.toString(16).padStart(4, '0') + } -fun hexB(number: Short): String = hexB(number.toInt()) -fun hexB(number: Int): String { - val hexdigits = "0123456789abcdef" - val loNibble = number and 15 - val hiNibble = (number and 65535) ushr 4 - return hexdigits[hiNibble].toString()+hexdigits[loNibble] -} +fun hexB(number: Int) = number.toString(16).padStart(2, '0') + +fun hexB(number: Short) = hexB(number.toInt()) typealias BreakpointHandler = (cpu: Cpu6502, pc: Address) -> Cpu6502.BreakpointResultAction diff --git a/src/test/kotlin/TestDisassembler.kt b/src/test/kotlin/TestDisassembler.kt index 4ef21d9..e95304c 100644 --- a/src/test/kotlin/TestDisassembler.kt +++ b/src/test/kotlin/TestDisassembler.kt @@ -33,7 +33,7 @@ class TestDisassembler { val cpu = Cpu65C02() val disassembler = Disassembler(cpu) val memory = Ram(0, 0x0fff) - val source = javaClass.classLoader.getResource("disassem_r65c02.bin").readBytes() + val source = javaClass.classLoader.getResource("disassem_r65c02.bin")?.readBytes()!! memory.load(source, 0x0200) val disassem = disassembler.disassemble(memory.data, 0x0200..0x0250, 0) assertEquals(0x251, disassem.second) @@ -80,7 +80,7 @@ ${'$'}0250 00 brk""", result) val cpu = Cpu65C02() val disassembler = Disassembler(cpu) val memory = Ram(0, 0x0fff) - val source = javaClass.classLoader.getResource("disassem_wdc65c02.bin").readBytes() + val source = javaClass.classLoader.getResource("disassem_wdc65c02.bin")?.readBytes()!! memory.load(source, 0x200) val disassem = disassembler.disassemble(memory.data, 0x0200..0x0215, 0) assertEquals(0x216, disassem.second)