Example #1
0
    def load_button(self, w):
        tb = self.textEditor.get_buffer()
        string = tb.get_text(tb.get_start_iter(), tb.get_end_iter(), False)
        asm = Assembler()
        try:
            asm.Lex(string)
            try:
                addr = int(self.loadaddr.get_text(), 16)
            except:
                addr = 0
            asm.Parse(addr)
            for byte_list in asm.bytes_list:
                ad = byte_list["address"]
                i = 0
                for byte in byte_list["bytes"]:
                    ram.Write(ad + i, byte)
                    i += 1

            strlbl = ""
            for lbl in asm.labels:
                strlbl += "\n" + lbl + " : " + hex(asm.labels[lbl])
            self.lblLabel.set_text(strlbl)
            self.Clear()
            print("Assembled and loaded succesfully")
            return True

        except Exception as ex:
            self.lblLabel.set_text("")
            self.Clear()
            print("Assembling Error: ")
            print("=======")
            print(ex)
            print("at line: \n\t" + asm.line + "\nline no.: " +
                  str(asm.line_no))
            return False
Example #2
0
    def Export(self, filename, withAsm=False):
        fp = open(filename, 'w')
        tb = self.textEditor.get_buffer()
        string = tb.get_text(tb.get_start_iter(), tb.get_end_iter(), False)
        asm = Assembler()
        try:
            asm.Lex(string)
            try:
                addr = int(self.loadaddr.get_text(), 16)
            except:
                addr = 0
            asm.Parse(addr)
            for byte_list in asm.bytes_list:
                ad = byte_list["address"]
                i = 0
                if withAsm:
                    fp.write(byte_list["asm"] + "\t;")
                else:
                    fp.write('{:04x}'.format(ad) + ": ")
                for byte in byte_list["bytes"]:
                    fp.write('{:02x}'.format(byte) + " ")
                    i += 1
                if not withAsm:
                    fp.write("\t\t;" + byte_list["asm"])
                fp.write("\n")
            strlbl = ""
            for lbl in asm.labels:
                strlbl += "\n" + lbl + " : " + hex(asm.labels[lbl])
            self.lblLabel.set_text(strlbl)
            self.Clear()
            print("Assembled and exported succesfully")

        except Exception as ex:
            self.lblLabel.set_text("")
            self.Clear()
            print("Assembling Error: ")
            print("=======")
            print(ex)
            print("at line: \n\t" + asm.line + "\nline no.: " +
                  str(asm.line_no))
        fp.close()
Example #3
0
#            print("\n")
#            ppi.Show()

    ram.ShowRange(parser.labels["TABLE"], parser.labels["TABLE"]+0x63)
    alu.Show()


from Assembler import Assembler
parser = Assembler()
try:
    #main()
    filep = open("samples/testlbl.asm", "r")
    asm = filep.read()
    filep.close()
    parser.Lex(asm)
    parser.Parse()
    
    #filep = open("random.bin", "w")
    for bytes in parser.bytes_list:
        print(hex(bytes["address"]))
        for byte in bytes["bytes"]:
            print(hex(byte))
    #    filep.write('{0:02x}'.format(byte) + "\n")
    #filep.close()

    #main()

except (KeyboardInterrupt, SystemExit):
    print("")

except Exception as ex: