From dfbf83a9a42907063aa5b3789f1ce9606de32e84 Mon Sep 17 00:00:00 2001 From: James Barnett Date: Thu, 28 Jun 2018 21:38:42 +0100 Subject: Add register flags and set from LDHL SP,n op --- src/test/kotlin/RegisterTest.kt | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'src/test/kotlin') diff --git a/src/test/kotlin/RegisterTest.kt b/src/test/kotlin/RegisterTest.kt index 7b9188c..617d6f7 100644 --- a/src/test/kotlin/RegisterTest.kt +++ b/src/test/kotlin/RegisterTest.kt @@ -1,4 +1,6 @@ + import cpu.Registers +import cpu.Registers.Flag import io.kotlintest.shouldBe import io.kotlintest.shouldThrow import io.kotlintest.specs.StringSpec @@ -124,4 +126,56 @@ class RegisterTest : StringSpec({ reg.PC shouldBe 0xAAFE } + "Test flags" { + val reg = Registers() + + reg.getFlag(Flag.ZERO) shouldBe 0 + reg.getFlag(Flag.SUBTRACT) shouldBe 0 + reg.getFlag(Flag.HALF_CARRY) shouldBe 0 + reg.getFlag(Flag.CARRY) shouldBe 0 + + reg.setFlag(Flag.ZERO) + reg.setFlag(Flag.SUBTRACT) + reg.setFlag(Flag.HALF_CARRY) + reg.setFlag(Flag.CARRY) + + reg.getFlag(Flag.ZERO) shouldBe 1 + reg.getFlag(Flag.SUBTRACT) shouldBe 1 + reg.getFlag(Flag.HALF_CARRY) shouldBe 1 + reg.getFlag(Flag.CARRY) shouldBe 1 + reg.F shouldBe 0xF0 + + reg.clearFlag(Flag.ZERO) + reg.clearFlag(Flag.SUBTRACT) + reg.clearFlag(Flag.HALF_CARRY) + reg.clearFlag(Flag.CARRY) + + reg.getFlag(Flag.ZERO) shouldBe 0 + reg.getFlag(Flag.SUBTRACT) shouldBe 0 + reg.getFlag(Flag.HALF_CARRY) shouldBe 0 + reg.getFlag(Flag.CARRY) shouldBe 0 + reg.F shouldBe 0x00 + + reg.setFlag(Flag.ZERO) + reg.setFlag(Flag.HALF_CARRY) + + reg.getFlag(Flag.ZERO) shouldBe 1 + reg.getFlag(Flag.SUBTRACT) shouldBe 0 + reg.getFlag(Flag.HALF_CARRY) shouldBe 1 + reg.getFlag(Flag.CARRY) shouldBe 0 + reg.F shouldBe 0xA0 // 10100000 + + reg.setFlag(Flag.SUBTRACT) + reg.setFlag(Flag.CARRY) + reg.clearFlag(Flag.ZERO) + reg.clearFlag(Flag.HALF_CARRY) + + reg.getFlag(Flag.ZERO) shouldBe 0 + reg.getFlag(Flag.SUBTRACT) shouldBe 1 + reg.getFlag(Flag.HALF_CARRY) shouldBe 0 + reg.getFlag(Flag.CARRY) shouldBe 1 + reg.F shouldBe 0x50 // 01010000 + + } + }) \ No newline at end of file -- cgit v1.2.3