diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2018-06-28 21:38:42 +0100 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2018-06-28 21:38:42 +0100 |
| commit | dfbf83a9a42907063aa5b3789f1ce9606de32e84 (patch) | |
| tree | eea8e2232f9f6b8841bcf4a3a740cf895afdd629 /src/test/kotlin | |
| parent | 6f87feb0c835589adcd566323e058a9158860071 (diff) | |
| download | KGB-dfbf83a9a42907063aa5b3789f1ce9606de32e84.tar.xz KGB-dfbf83a9a42907063aa5b3789f1ce9606de32e84.zip | |
Add register flags and set from LDHL SP,n op
Diffstat (limited to 'src/test/kotlin')
| -rw-r--r-- | src/test/kotlin/RegisterTest.kt | 54 |
1 files changed, 54 insertions, 0 deletions
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 |