summaryrefslogtreecommitdiff
path: root/vba.py
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2013-03-01 12:36:17 -0600
committerBryan Bishop <kanzure@gmail.com>2013-03-01 12:36:17 -0600
commit3cdb1a5a8e2f5f52e348008a764466a88d218654 (patch)
treee837c1cef4de5dc8525e9fae8349bd437d5a4b0f /vba.py
parent16aa4af022a61014b04592785b803d7dd81049b0 (diff)
vba - example unit testing of roms
original-commit-id: f0767fb15a2c6364b81f864d8e6c4319da8e2f33
Diffstat (limited to 'vba.py')
-rw-r--r--vba.py49
1 files changed, 35 insertions, 14 deletions
diff --git a/vba.py b/vba.py
index 832a74e..8d20a6e 100644
--- a/vba.py
+++ b/vba.py
@@ -74,6 +74,7 @@ import re
from array import array
import string
from copy import copy
+import unittest
# for converting bytes to readable text
from chars import chars
@@ -558,20 +559,12 @@ def call(bank, address):
print "actual memory values: " + str(get_memory_range(registers.sp , 2))
print "wrong value at " + hex(registers.sp) + " expected " + hex(value) + " but got " + hex(get_memory_at(registers.sp))
- #registers.af = (bank << 8) | (registers.af & 0xff)
- #registers.hl = address
- #registers.pc = 0x2d63 # FarJump
-
- #registers2 = get_registers()
- #registers2[5] = 0xc4a0
- #registers2[4] = 0x1276
- #registers2[0] = address
- #set_registers(registers2)
-
- registers["hl"] = 0xc4a0
- registers["de"] = 0x1276
- registers["pc"] = address
- #print "registers.pc is: " + hex(registers.pc)
+ if bank != 1:
+ registers["af"] = (bank << 8) | (registers["af"] & 0xFF)
+ registers["hl"] = address
+ registers["pc"] = 0x2d63 # FarJump
+ else:
+ registers["pc"] = address
class crystal:
"""
@@ -816,3 +809,31 @@ class crystal:
set_memory(memory)
+class TestEmulator(unittest.TestCase):
+ state = load_state("cheating-12")
+
+ def setUp(self):
+ load_rom()
+ set_state(self.state)
+
+ def tearDown(self):
+ shutdown()
+
+ def test_PlaceString(self):
+ call(1, 0x1078)
+
+ # where to draw the text
+ registers["hl"] = 0xc4a0
+
+ # what text to read from
+ registers["de"] = 0x1276
+
+ nstep(10)
+
+ text = crystal.get_text()
+
+ self.assertTrue("TRAINER" in text)
+
+if __name__ == "__main__":
+ unittest.main()
+