mirror of
https://github.com/irmen/ksim65.git
synced 2024-06-01 06:41:34 +00:00
44 lines
1.0 KiB
Kotlin
44 lines
1.0 KiB
Kotlin
import razorvine.ksim65.*
|
|
import razorvine.ksim65.components.Ram
|
|
import kotlin.test.*
|
|
|
|
|
|
class TestAssembler {
|
|
|
|
@Test
|
|
fun testAssembleSingleInstruction() {
|
|
val cpu = Cpu6502()
|
|
val ram = Ram(0, 0xffff)
|
|
val assembler = Assembler(cpu, ram)
|
|
|
|
val result = assembler.assemble("${'$'}c000 jmp ${'$'}ea31")
|
|
assertTrue(result.success)
|
|
assertEquals("", result.error)
|
|
assertEquals(0xc000, result.startAddress)
|
|
assertEquals(3, result.numBytes)
|
|
assertEquals(0x4c, ram[0xc000])
|
|
assertEquals(0x31, ram[0xc001])
|
|
assertEquals(0xea, ram[0xc002])
|
|
}
|
|
|
|
@Test
|
|
fun testAssembleMulti() {
|
|
val cpu = Cpu6502()
|
|
val ram = Ram(0, 0xffff)
|
|
val assembler = Assembler(cpu, ram)
|
|
val result = assembler.assemble("""
|
|
*=${'$'}a2b3
|
|
nop
|
|
jmp ${'$'}ea31
|
|
bne *-2
|
|
""".lines())
|
|
assertEquals("", result.error)
|
|
assertTrue(result.success)
|
|
assertEquals(0xa2b3, result.startAddress)
|
|
assertEquals(6, result.numBytes)
|
|
}
|
|
|
|
}
|
|
|
|
|