Skip to content

Commit 51c117a

Browse files
committed
Cycles counter, cycles and DP in info printout.
1 parent 9ce905c commit 51c117a

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

intel4004_emu/executor.py

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def __init__(self):
88
self.dp = 0
99
self.ip = 0
1010
self.stack = []
11+
self.cycles = 0
1112

1213
def run(self, prg):
1314
self.prg = prg
@@ -18,6 +19,7 @@ def step(self, line):
1819
self.ip += line.size
1920
cmd = getattr(self, 'i_' + line.opcode)
2021
cmd(line.params)
22+
self.cycles += line.size
2123

2224
def jump(self, param):
2325
if type(param) != int:
@@ -76,6 +78,7 @@ def i_fin(self, params):
7678
v = self.prg[addr]
7779
self.regs[p] = (v >> 4) & 0xF
7880
self.regs[p + 1] = v & 0xF
81+
self.cycles += 1
7982
else:
8083
raise Exception("Attempt to read the data from uninitialized ROM address %s" % addr[1:])
8184

main.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class EnhancedExecutor(executor.Executor, consolex.Consolex):
88

99
def printRegs(self):
1010
print(' '.join([str(r) for r in self.regs]))
11-
print("acc=%d, cy=%d, ip=%d" % (self.acc, self.cy, self.ip))
11+
print("acc=%d, cy=%d, ip=%d, dp=%d, cycles=%d" % (self.acc, self.cy, self.ip, self.dp, self.cycles))
1212

1313
def printMemory(self, rows, cols):
1414
for row in range(rows):
@@ -53,4 +53,4 @@ def main():
5353

5454

5555
if __name__ == '__main__':
56-
main()
56+
main()

0 commit comments

Comments
 (0)