1
0
mirror of https://github.com/rzzzwilson/pymlac.git synced 2025-06-10 09:32:41 +00:00
2015-05-20 19:02:17 +07:00

73 lines
1.5 KiB
Python

#!/usr/bin/python
"""
The Imlac trace stuff.
"""
import time
from Globals import *
import MainCPU
import DisplayCPU
# module-level state variables
tracing = False
tracefile = None
def init(filename):
global tracing, tracefile
tracing = True
tracefile = open(filename, 'w')
trace('pymlac %s trace\n\n' % PYMLAC_VERSION)
tracing = False
comment = None
def close():
import tracing, tracefile
tracefile.close()
tracing = False
tracefile = None
def trace(msg):
if tracing:
tracefile.write(msg)
def deimtrace(opcode, code):
if tracing:
tracefile.write('%s\t%s\t' % (opcode, code))
def dtrace(opcode, address=None):
if tracing:
if address is None:
tracefile.write('%s\t\t' % opcode)
else:
tracefile.write('%s\t%5.5o\t' % (opcode, address))
def itrace(opcode, indirect=False, address=None):
if tracing:
char = '*' if indirect else ''
if address is None:
tracefile.write('%s\t%s\t' % (opcode, char))
else:
tracefile.write('%s\t%s%5.5o\t' % (opcode, char, address))
def itraceend(dispon):
if dispon:
trace('L=%1.1o AC=%6.6o DX=%5.5o DY=%6.6o\n' %
(MainCPU.L, MainCPU.AC, DisplayCPU.DX, DisplayCPU.DY))
else:
trace('L=%1.1o AC=%6.6o\n' % (MainCPU.L, MainCPU.AC))
def comment(msg):
tracefile.write(msg+'\n')
def settrace(new_tracing):
global tracing
tracing = new_tracing