diff --git a/dcpu_16.py b/dcpu_16.py index 5d2a9e3..b0e60c1 100644 --- a/dcpu_16.py +++ b/dcpu_16.py @@ -334,6 +334,7 @@ class Memory(object): class CPU(object): """DCPU-16""" def __init__(c, memory=Memory(), debug=False): + """If you don't specify memory, CPUs will share the same, default memory object""" c.m = memory c.clear() c.reset() @@ -414,8 +415,10 @@ class CPU(object): def run(c): """step until PC is constant""" last_pc = 0xFFFF - while c.pc != last_pc: + last_sp = 0xFFFF + while c.pc != last_pc or c.sp != last_sp: last_pc = c.pc + last_sp = c.sp c.step() log("Infinite loop")