mirror of
https://github.com/lloeki/python-dcpu_16.git
synced 2025-12-06 09:54:39 +01:00
log outside of valcodes
This commit is contained in:
parent
39ac76aa4f
commit
4d2d914712
1 changed files with 3 additions and 12 deletions
15
dcpu_16.py
15
dcpu_16.py
|
|
@ -197,7 +197,6 @@ def pointerize(f):
|
||||||
def register(c, code):
|
def register(c, code):
|
||||||
"""register"""
|
"""register"""
|
||||||
v = "c.r[0x%01X]" % code
|
v = "c.r[0x%01X]" % code
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(range(0x08, 0x10))
|
@valcode(range(0x08, 0x10))
|
||||||
|
|
@ -205,7 +204,6 @@ def register(c, code):
|
||||||
def register_value(c, code):
|
def register_value(c, code):
|
||||||
"""[register]"""
|
"""[register]"""
|
||||||
v = "c.m[c.r[0x%01X]]" % (code-0x07)
|
v = "c.m[c.r[0x%01X]]" % (code-0x07)
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(range(0x10, 0x18))
|
@valcode(range(0x10, 0x18))
|
||||||
|
|
@ -213,7 +211,6 @@ def register_value(c, code):
|
||||||
def next_word_plus_register_value(c, code):
|
def next_word_plus_register_value(c, code):
|
||||||
"""[next word + register]"""
|
"""[next word + register]"""
|
||||||
v = "c.m[0x%04X + c.r[0x%01X]]" % (c.m[c.pc], code-0x0F)
|
v = "c.m[0x%04X + c.r[0x%01X]]" % (c.m[c.pc], code-0x0F)
|
||||||
if c.debug: log(v)
|
|
||||||
c.pc = (c.pc + 1) & wmask
|
c.pc = (c.pc + 1) & wmask
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
@ -222,7 +219,6 @@ def next_word_plus_register_value(c, code):
|
||||||
def pop(c):
|
def pop(c):
|
||||||
"""POP / [SP++]"""
|
"""POP / [SP++]"""
|
||||||
v = "c.m[0x%04X]" % c.sp
|
v = "c.m[0x%04X]" % c.sp
|
||||||
if c.debug: log(v)
|
|
||||||
c.sp = (c.sp + 1) & wmask
|
c.sp = (c.sp + 1) & wmask
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
@ -231,7 +227,6 @@ def pop(c):
|
||||||
def peek(c):
|
def peek(c):
|
||||||
"""PEEK / [SP]"""
|
"""PEEK / [SP]"""
|
||||||
v = "c.m[0x%04X]" % c.sp
|
v = "c.m[0x%04X]" % c.sp
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1A)
|
@valcode(0x1A)
|
||||||
|
|
@ -240,7 +235,6 @@ def push(c):
|
||||||
"""PUSH / [--SP]"""
|
"""PUSH / [--SP]"""
|
||||||
c.sp = (c.sp - 1) & wmask
|
c.sp = (c.sp - 1) & wmask
|
||||||
v = "c.m[0x%04X]" % c.sp
|
v = "c.m[0x%04X]" % c.sp
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1B)
|
@valcode(0x1B)
|
||||||
|
|
@ -248,7 +242,6 @@ def push(c):
|
||||||
def stack_pointer(c):
|
def stack_pointer(c):
|
||||||
"""stack pointer"""
|
"""stack pointer"""
|
||||||
v = "c.sp"
|
v = "c.sp"
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1C)
|
@valcode(0x1C)
|
||||||
|
|
@ -256,7 +249,6 @@ def stack_pointer(c):
|
||||||
def program_counter(c):
|
def program_counter(c):
|
||||||
"""program counter"""
|
"""program counter"""
|
||||||
v = "c.pc"
|
v = "c.pc"
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1D)
|
@valcode(0x1D)
|
||||||
|
|
@ -264,7 +256,6 @@ def program_counter(c):
|
||||||
def overflow(c):
|
def overflow(c):
|
||||||
"""overflow"""
|
"""overflow"""
|
||||||
v = "c.o"
|
v = "c.o"
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1E)
|
@valcode(0x1E)
|
||||||
|
|
@ -273,7 +264,6 @@ def next_word_value(c):
|
||||||
"""[next_word]"""
|
"""[next_word]"""
|
||||||
v = "c.m[0x%04X]" % c.m[c.pc]
|
v = "c.m[0x%04X]" % c.m[c.pc]
|
||||||
c.pc = (c.pc + 1) & wmask
|
c.pc = (c.pc + 1) & wmask
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1F)
|
@valcode(0x1F)
|
||||||
|
|
@ -282,7 +272,6 @@ def next_word(c):
|
||||||
"""next_word (literal)"""
|
"""next_word (literal)"""
|
||||||
v = "c.m[0x%04X]" % c.pc
|
v = "c.m[0x%04X]" % c.pc
|
||||||
c.pc = (c.pc + 1) & wmask
|
c.pc = (c.pc + 1) & wmask
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(range(0x20, 0x40))
|
@valcode(range(0x20, 0x40))
|
||||||
|
|
@ -290,7 +279,6 @@ def next_word(c):
|
||||||
def literal(c, code):
|
def literal(c, code):
|
||||||
"""literal value 0x00-0x1F (literal)"""
|
"""literal value 0x00-0x1F (literal)"""
|
||||||
v = "0x%04X" % (code - 0x20)
|
v = "0x%04X" % (code - 0x20)
|
||||||
if c.debug: log(v)
|
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -383,6 +371,9 @@ class CPU(object):
|
||||||
c._pointer(b_code))
|
c._pointer(b_code))
|
||||||
else:
|
else:
|
||||||
args = (c._pointer(b_code),)
|
args = (c._pointer(b_code),)
|
||||||
|
finally:
|
||||||
|
if c.debug:
|
||||||
|
log(' '.join([op.__name__] + [arg.codestr for arg in args]))
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise Exception('Invalid opcode %s at PC=%04X' % (["%02X"%x for x in opcode], c.pc))
|
raise Exception('Invalid opcode %s at PC=%04X' % (["%02X"%x for x in opcode], c.pc))
|
||||||
return op, args
|
return op, args
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue