class Cli(object): """Mini PowerPC Usage: minipowerpc-cli.py compile [-d|--debug] <file> [--out=<out>] minipowerpc-cli.py run [-d|--debug] <file> """ def __init__(self, argv): self.arguments = docopt(self.__doc__, argv=argv, help=True, version=None) print self.arguments self.pc = MiniPC() if self.arguments['-d']: self.pc.setDebug() def run(self): if self.arguments['compile']: if self.arguments['--out']: out = self.pc.compiler.compile(self.arguments['<file>'], self.arguments['--out']) else: out = self.pc.compiler.compile(self.arguments['<file>']) print "file {} comiled to file {}".format(self.arguments['<file>'], out) elif self.arguments['run']: self.pc.cpu.mem.load(self.arguments['<file>']) self.pc.cpu.run() print self.pc.cpu
def __init__(self, argv): self.arguments = docopt(self.__doc__, argv=argv, help=True, version=None) print self.arguments self.pc = MiniPC() if self.arguments['-d']: self.pc.setDebug()
def __init__(self): self.pc = MiniPC() #GObject.threads_init() self.gladefile = "minipowerpc.glade" self.gladefile_path = os.path.join( os.path.dirname(os.path.dirname(__file__)), "res", self.gladefile) self.builder = Gtk.Builder() self.builder.add_from_file(self.gladefile_path) self.builder.connect_signals(self) self.window = self.builder.get_object("mppc_gui") #prog view self.progview = self.builder.get_object("treeview_prog") self.cell_prog_num = Gtk.CellRendererText() self.col_prog_num = Gtk.TreeViewColumn("pos", self.cell_prog_num, text=0) self.progview.append_column(self.col_prog_num) self.cell_prog_bin = Gtk.CellRendererText() self.col_prog_bin = Gtk.TreeViewColumn("bin", self.cell_prog_bin, text=1) self.progview.append_column(self.col_prog_bin) self.cell_prog_code = Gtk.CellRendererText() self.col_prog_code = Gtk.TreeViewColumn("decompiled", self.cell_prog_code, text=2) self.progview.append_column(self.col_prog_code) self.cell_prog_int = Gtk.CellRendererText() self.col_prog_int = Gtk.TreeViewColumn("int value", self.cell_prog_int, text=3) self.progview.append_column(self.col_prog_int) self.cell_prog_hex = Gtk.CellRendererText() self.col_prog_hex = Gtk.TreeViewColumn("hex value", self.cell_prog_hex, text=4) self.progview.append_column(self.col_prog_hex) #mem view self.memview = self.builder.get_object("treeview_mem") self.cell_mem_num = Gtk.CellRendererText() self.col_mem_num = Gtk.TreeViewColumn("pos", self.cell_mem_num, text=0) self.memview.append_column(self.col_mem_num) self.cell_mem_bin = Gtk.CellRendererText() self.cell_mem_bin.set_property("editable", True) self.cell_mem_bin.connect("edited", self.mem_edited_bin) self.col_mem_bin = Gtk.TreeViewColumn("bin", self.cell_mem_bin, text=1) self.memview.append_column(self.col_mem_bin) self.cell_mem_int = Gtk.CellRendererText() self.cell_mem_int.set_property("editable", True) self.cell_mem_int.connect("edited", self.mem_edited_int) self.col_mem_int = Gtk.TreeViewColumn("int value", self.cell_mem_int, text=2) self.memview.append_column(self.col_mem_int) self.cell_mem_uint = Gtk.CellRendererText() self.cell_mem_uint.set_property("editable", True) self.cell_mem_uint.connect("edited", self.mem_edited_uint) self.col_mem_uint = Gtk.TreeViewColumn("uint value", self.cell_mem_uint, text=3) self.memview.append_column(self.col_mem_uint) self.cell_mem_hex = Gtk.CellRendererText() self.cell_mem_hex.set_property("editable", True) self.cell_mem_hex.connect("edited", self.mem_edited_hex) self.col_mem_hex = Gtk.TreeViewColumn("hex value", self.cell_mem_hex, text=4) self.memview.append_column(self.col_mem_hex) self.txt_steps = self.builder.get_object("txt_steps") self.txt_mempos = self.builder.get_object("txt_mempos") self.txt_jumps = self.builder.get_object("txt_jumps") self.txt_runtime_real = self.builder.get_object("txt_runtime_real") self.img_accu_curry = self.builder.get_object("img_accu_curry") self.txt_accu_bin = self.builder.get_object("txt_accu_bin") self.txt_accu_int = self.builder.get_object("txt_accu_int") self.txt_accu_hex = self.builder.get_object("txt_accu_hex") self.txt_reg1_bin = self.builder.get_object("txt_reg1_bin") self.txt_reg1_int = self.builder.get_object("txt_reg1_int") self.txt_reg1_hex = self.builder.get_object("txt_reg1_hex") self.txt_reg2_bin = self.builder.get_object("txt_reg2_bin") self.txt_reg2_int = self.builder.get_object("txt_reg2_int") self.txt_reg2_hex = self.builder.get_object("txt_reg2_hex") self.txt_reg3_bin = self.builder.get_object("txt_reg3_bin") self.txt_reg3_int = self.builder.get_object("txt_reg3_int") self.txt_reg3_hex = self.builder.get_object("txt_reg3_hex") self.init_gui() self.window.show() Gtk.main() self.loaded = False