mirror of
https://github.com/lloeki/python-dcpu_16.git
synced 2025-12-06 09:54:39 +01:00
log only when debug set
This commit is contained in:
parent
9fcfd9437d
commit
a2d39a818b
1 changed files with 14 additions and 15 deletions
29
dcpu_16.py
29
dcpu_16.py
|
|
@ -183,7 +183,7 @@ 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
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(range(0x08, 0x10))
|
@valcode(range(0x08, 0x10))
|
||||||
|
|
@ -191,7 +191,7 @@ 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)
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(range(0x10, 0x18))
|
@valcode(range(0x10, 0x18))
|
||||||
|
|
@ -199,8 +199,8 @@ 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 + 0x%01X]" % (c.m[c.pc], code-0x0F)
|
v = "c.m[0x%04X + 0x%01X]" % (c.m[c.pc], code-0x0F)
|
||||||
log(v)
|
|
||||||
c.pc += 1
|
c.pc += 1
|
||||||
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x18)
|
@valcode(0x18)
|
||||||
|
|
@ -208,8 +208,8 @@ 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
|
||||||
log(v)
|
|
||||||
c.sp += 1
|
c.sp += 1
|
||||||
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x19)
|
@valcode(0x19)
|
||||||
|
|
@ -217,7 +217,7 @@ 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
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1A)
|
@valcode(0x1A)
|
||||||
|
|
@ -226,7 +226,7 @@ def push(c):
|
||||||
"""PUSH / [--SP]"""
|
"""PUSH / [--SP]"""
|
||||||
c.sp -= 1
|
c.sp -= 1
|
||||||
v = "c.m[0x%04X]" % c.sp
|
v = "c.m[0x%04X]" % c.sp
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1B)
|
@valcode(0x1B)
|
||||||
|
|
@ -234,7 +234,7 @@ def push(c):
|
||||||
def stack_pointer(c):
|
def stack_pointer(c):
|
||||||
"""stack pointer"""
|
"""stack pointer"""
|
||||||
v = "c.sp"
|
v = "c.sp"
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1C)
|
@valcode(0x1C)
|
||||||
|
|
@ -242,7 +242,7 @@ def stack_pointer(c):
|
||||||
def program_counter(c):
|
def program_counter(c):
|
||||||
"""program counter"""
|
"""program counter"""
|
||||||
v = "c.pc"
|
v = "c.pc"
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1D)
|
@valcode(0x1D)
|
||||||
|
|
@ -250,7 +250,7 @@ def program_counter(c):
|
||||||
def overflow(c):
|
def overflow(c):
|
||||||
"""overflow"""
|
"""overflow"""
|
||||||
v = "c.o"
|
v = "c.o"
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1E)
|
@valcode(0x1E)
|
||||||
|
|
@ -259,7 +259,7 @@ 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 += 1
|
c.pc += 1
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(0x1F)
|
@valcode(0x1F)
|
||||||
|
|
@ -268,7 +268,7 @@ 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 += 1
|
c.pc += 1
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
@valcode(range(0x20, 0x40))
|
@valcode(range(0x20, 0x40))
|
||||||
|
|
@ -276,7 +276,7 @@ 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)
|
||||||
log(v)
|
if c.debug: log(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -379,7 +379,7 @@ class CPU(object):
|
||||||
opcode = word & 0xF
|
opcode = word & 0xF
|
||||||
try:
|
try:
|
||||||
op = opcode_map[(opcode,)]
|
op = opcode_map[(opcode,)]
|
||||||
log(op.__name__)
|
if c.debug: log(op.__name__)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise Exception('Invalid opcode %01X at PC=%04X' % (opcode, c.pc))
|
raise Exception('Invalid opcode %01X at PC=%04X' % (opcode, c.pc))
|
||||||
a = c._pointer(word >> 4 & 0x3F)
|
a = c._pointer(word >> 4 & 0x3F)
|
||||||
|
|
@ -388,8 +388,7 @@ class CPU(object):
|
||||||
c.skip = False
|
c.skip = False
|
||||||
else:
|
else:
|
||||||
op(c, a, b)
|
op(c, a, b)
|
||||||
if c.debug:
|
if c.debug: log(c.dump_r())
|
||||||
log(c.dump_r())
|
|
||||||
|
|
||||||
def dump_r(c):
|
def dump_r(c):
|
||||||
"""human-readable register status"""
|
"""human-readable register status"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue