[pypy-svn] r54472 - in pypy/branch/gameboy-emulator/pypy/lang: gameboy test
cami at codespeak.net
cami at codespeak.net
Tue May 6 12:10:54 CEST 2008
Author: cami
Date: Tue May 6 12:10:52 2008
New Revision: 54472
Modified:
pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py
pypy/branch/gameboy-emulator/pypy/lang/test/test_translation.py
Log:
changed changes back for register inheritence
Modified: pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py (original)
+++ pypy/branch/gameboy-emulator/pypy/lang/gameboy/cpu.py Tue May 6 12:10:52 2008
@@ -27,7 +27,7 @@
# ------------------------------------------------------------------------------
-class DoubleRegister(Register):
+class DoubleRegister(object):
def __init__(self, cpu, hi=None, lo=None, resetValue=0):
self.cpu = cpu
@@ -42,7 +42,7 @@
self.resetValue = resetValue
def set(self, hi=0, lo=None, useCycles=True):
- if (lo is None):
+ if lo is None:
self.setHi(hi >> 8, useCycles)
self.setLo(hi & 0xFF, useCycles)
if useCycles:
@@ -52,7 +52,7 @@
self.setLo(lo, useCycles)
def reset(self):
- self.set(self.resetValue, None, useCycles=False)
+ self.set(self.resetValue, useCycles=False)
def setHi(self, hi=0, useCycles=True):
self.hi.set(hi, useCycles)
@@ -70,17 +70,17 @@
return self.lo.get(useCycles)
def inc(self, useCycles=True):
- self.set(self.get(useCycles) +1, None, useCycles)
+ self.set(self.get(useCycles) +1, useCycles=useCycles)
if useCycles:
self.cpu.cycles -= 1
def dec(self, useCycles=True):
- self.set(self.get(useCycles) - 1, None, useCycles)
+ self.set(self.get(useCycles) - 1, useCycles=useCycles)
if useCycles:
self.cpu.cycles -= 1
def add(self, n=2, useCycles=True):
- self.set(self.get(useCycles) + n, None, useCycles)
+ self.set(self.get(useCycles) + n, useCycles=useCycles)
if useCycles:
self.cpu.cycles -= 2
@@ -92,18 +92,18 @@
self.hl = hl
def set(self, value, useCycles=True):
- self.cpu.write(self.hl.get(useCycles), value) # 2 + 0
+ self.cpu.write(self.hl.get(useCycles=useCycles), value) # 2 + 0
if not useCycles:
self.cpu.cycles += 2
def get(self, useCycles=True):
if not useCycles:
self.cpu.cycles += 1
- return self.cpu.read(self.hl.get(useCycles)) # 1
+ return self.cpu.read(self.hl.get(useCycles=useCycles)) # 1
# ------------------------------------------------------------------------------
-class FlagRegister(Register):
+class FlagRegister(object):
def __init__(self, cpu):
self.cpu = cpu
@@ -156,18 +156,10 @@
self.cFlag = True
def hFlagCompare(self, a, b):
- if isinstance(a, (Register)):
- a = a.get()
- if isinstance(b, (Register)):
- b = b.get()
if (a & 0x0F) < (b & 0x0F):
self.hFlag = True
def cFlagCompare(self, a, b):
- if isinstance(a, (Register)):
- a = a.get()
- if isinstance(b, (Register)):
- b = b.get()
if a < b:
self.cFlag = True
@@ -411,7 +403,7 @@
# 4 cycles
self.push(self.pc.getHi(useCycles), useCycles) # 2 cycles
self.push(self.pc.getLo(useCycles), useCycles) # 2 cycles
- self.pc.set(address, None, useCycles) # 1 cycle
+ self.pc.set(address, useCycles=useCycles) # 1 cycle
if useCycles:
self.cycles += 1
@@ -433,16 +425,17 @@
# ALU, 1 cycle
added = (self.a.get() + getter()) & 0xFF
self.f.zFlagCompare(added, reset=True)
- self.f.hFlagCompare(added, self.a)
- self.f.cFlagCompare(added, self.a)
+ self.f.hFlagCompare(added, self.a.get())
+ self.f.cFlagCompare(added, self.a.get())
self.a.set(added) # 1 cycle
def addHL(self, register):
# 2 cycles
+ a=1
added = (self.hl.get() + register.get()) & 0xFFFF # 1 cycle
self.f.reset(keepZ=True)
- self.f.hFlagCompare((added >> 8), self.hl)
- self.f.cFlagCompare(added, self.hl)
+ self.f.hFlagCompare((added >> 8), self.hl.get())
+ self.f.cFlagCompare(added, self.hl.get())
self.hl.set(added)
self.cycles -= 1
@@ -494,22 +487,22 @@
def hcFlagFinish(self, data):
if data > self.a.get():
self.f.cFlag = True
- self.f.hFlagCompare(self.a, data)
+ self.f.hFlagCompare(self.a.get(), data)
def AND(self, getter, setter=None):
# 1 cycle
self.a.set(self.a.get() & getter()) # 1 cycle
- self.f.zFlagCompare(self.a, reset=True)
+ self.f.zFlagCompare(self.a.get(), reset=True)
def XOR(self, getter, setter=None):
# 1 cycle
self.a.set( self.a.get() ^ getter()) # 1 cycle
- self.f.zFlagCompare(self.a, reset=True)
+ self.f.zFlagCompare(self.a.get(), reset=True)
def OR(self, getter, setter=None):
# 1 cycle
self.a.set(self.a.get() | getter()) # 1 cycle
- self.f.zFlagCompare(self.a, reset=True)
+ self.f.zFlagCompare(self.a.get(), reset=True)
def incDoubleRegister(self, doubleRegister):
doubleRegister.inc()
@@ -728,7 +721,7 @@
self.f.reset(keepN=True)
if delta >= 0x60:
self.f.cFlag = True
- self.f.zFlagCompare(self.a)
+ self.f.zFlagCompare(self.a.get())
def incDoubleRegister(self, register):
# INC rr
Modified: pypy/branch/gameboy-emulator/pypy/lang/test/test_translation.py
==============================================================================
--- pypy/branch/gameboy-emulator/pypy/lang/test/test_translation.py (original)
+++ pypy/branch/gameboy-emulator/pypy/lang/test/test_translation.py Tue May 6 12:10:52 2008
@@ -24,11 +24,14 @@
drv.exe_name = None
drv.proceed('compile')
- def test_scheme(self):
- self.translate('targetscheme')
+ #def test_scheme(self):
+ # self.translate('targetscheme')
- def test_js(self):
- self.translate('targetjsstandalone')
+ #def test_js(self):
+ # self.translate('targetjsstandalone')
- def test_prolog(self):
- self.translate('targetprologstandalone')
+ #def test_prolog(self):
+ # self.translate('targetprologstandalone')
+
+ def test_gameboy(self):
+ self.translate('targetgameboytest')
More information about the Pypy-commit
mailing list