class BaseProcessor(UpdateBroadcaster, LoggerClient): def __init__(self, registers, memory, api, instructions): pass def cycle(self): """Updates the processor's state""" pass def reset(self): """Resets the processor's state""" pass def get_registers(self): """Returns a reference or copy of processor registers""" pass def get_memory(self): """Returns a reference or copy of memory""" pass def get_pipeline(self): """Returns a reference or copy of processor pipeline""" pass def get_pipeline_length(self): """Returns the number of stages in the pipeline.""" pass def get_pc_value(self): """Returns the value of the program counter.""" pass def add_break_point(self, offset): """Add a breakpoint to halt execution.""" pass def remove_break_point(self, number): """Remove a breakpoint.""" pass def get_break_points(self): """Returns a list of breakpoints.""" pass def set_traps_off(self): """Disables break points.""" pass def open_log(self, logger): self._log = CpuLogger(logger) self._log.buffer(self, "created a cpu, `{:}'" .format(self.__class__.__name__), level.INFO) self._log.buffer(self, "pc is register {0}".format(hex(self._pc)), level.FINE) self._log.buffer(self, "pipeline: {0}" .format(", ".join(self._pipeline_stages)), level.INFO) self._log.buffer(self, "pipeline flags: {0}" .format(self._pipeline_flags.replace(' ', ', ')), level.FINE) def open_monitor(self, monitor): self.log.write("Attempted to attach monitor", level.ERROR)
def open_log(self, logger): self._log = CpuLogger(logger) self._log.buffer(self, "created a cpu, `{:}'" .format(self.__class__.__name__), level.INFO) self._log.buffer(self, "pc is register {0}".format(hex(self._pc)), level.FINE) self._log.buffer(self, "pipeline: {0}" .format(", ".join(self._pipeline_stages)), level.INFO) self._log.buffer(self, "pipeline flags: {0}" .format(self._pipeline_flags.replace(' ', ', ')), level.FINE)