Example #1
0
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
Example #2
0
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
Example #3
0
 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()
Example #4
0
    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
Example #5
0
 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()