diff --git a/src/main/kotlin/razorvine/ksim65/components/Rom.kt b/src/main/kotlin/razorvine/ksim65/components/Rom.kt index 16084e9..99e3d7c 100644 --- a/src/main/kotlin/razorvine/ksim65/components/Rom.kt +++ b/src/main/kotlin/razorvine/ksim65/components/Rom.kt @@ -27,12 +27,7 @@ class Rom(startAddress: Address, endAddress: Address, initialData: Array? load(bytes) } - fun load(data: Array) = data.forEachIndexed { index, byte -> - this.data[index] = byte - } + fun load(data: Array) = data.copyInto(this.data) - fun load(data: ByteArray) = data.forEachIndexed { index, byte -> - this.data[index] = if (byte >= 0) byte.toShort() - else (256+byte).toShort() - } + fun load(data: ByteArray) = data.map { (it.toInt() and 255).toShort() }.toTypedArray().copyInto(this.data) }