Beispiel #1
0
    def __init__(self):
        '''controls and connects everything'''
        self.Instructions_memory = Reader.CardReader()
        print("Ingresa nombre del codigo (sin el .code)")
        file_name = input()
        data = [""] * 8  #creating data

        self.Instructions_memory.change_file(file_name)

        self.ALU = ALU.ALU()
        self.ram = RAM()
        self.registerA = Registers(data)
        self.registerB = Registers(data)
        self.registerC = Registers(data)
        self.registerD = Registers(data)

        self.instruction_register = Registers(
            data, 8)  #shows the selected data that was located in RAM

        self.output_register = Registers(data)

        data_bios = Reader.YamlReader().yaml_loader()
        ### variables to assign to CPU parts
        ramdata = data_bios.get('RAM_NUMBERS')
        ramdata = ramdata.split(' ')
        clockdata = data_bios.get('clock')
        self.clock_time = int(clockdata)
        visualizationdata = data_bios.get('visualization')
        ##asigns all ram data to each ram space
        for i in range(16):
            adress = bin(i)[2:]
            if len(adress) < 4:
                if len(adress) == 1:
                    adress = "000" + adress
                if len(adress) == 2:
                    adress = "00" + adress
                if len(adress) == 3:
                    adress = "0" + adress
            self.ram.write_enable(adress, ramdata[i])
        self.visualization_code = visualizationdata['code']
        self.visualization_ram = visualizationdata['RAM']
        self.visualization_registers = visualizationdata['Registers']
        self.visualization_clock = visualizationdata['clock']
        self.visualization_alu = visualizationdata['ALU']