Esempio n. 1
0
 def tixr(self):
     alu.addrm(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
               self.mem,
               1,
               True)
     alu.comprr(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
                reg.getRegister(getRegister1(self.instruction)),
                reg.getRegister(reg.SICXE_NUM_REGISTER_SW))
Esempio n. 2
0
    def fetch(self):
        pc = reg.getRegister(reg.SICXE_NUM_REGISTER_PC)
        b = reg.getRegister(reg.SICXE_NUM_REGISTER_B)
        x = reg.getRegister(reg.SICXE_NUM_REGISTER_X)

        ta = getTargetAddress(self.instruction, pc, b, x, self.mem)

        return ta.dec
Esempio n. 3
0
 def tix(self):
     alu.addrm(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
               self.mem,
               1,
               True)
     alu.comprm(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
                reg.getRegister(reg.SICXE_NUM_REGISTER_SW),
                self.mem,
                self.fetch(),
                isImidiateInstr(self.instruction))
Esempio n. 4
0
 def norm(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_F).normalize(setSelf=True)
Esempio n. 5
0
 def wd(self):
     device = self.fetch() if isImidiateInstr(self.instruction) else self.mem.getbyte(self.fetch())
     self.devices[device].write(reg.getRegister(reg.SICXE_NUM_REGISTER_A))
Esempio n. 6
0
 def subr(self):
     alu.subrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Esempio n. 7
0
 def stx(self):
     alu.st(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
            self.mem,
            self.fetch())
Esempio n. 8
0
 def rsub(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_PC).set(reg.getRegister(reg.SICXE_NUM_REGISTER_L))
Esempio n. 9
0
 def j(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_PC).set(self.fetch())
Esempio n. 10
0
 def float(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_F).set(reg.getRegister(reg.SICXE_NUM_REGISTER_A))
Esempio n. 11
0
 def fix(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_A).set(reg.getRegister(reg.SICXE_NUM_REGISTER_F))
Esempio n. 12
0
 def divr(self):
     alu.divrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Esempio n. 13
0
 def compr(self):
     alu.comprr(reg.getRegister(getRegister1(self.instruction)),
                reg.getRegister(getRegister2(self.instruction)),
                reg.getRegister(reg.SICXE_NUM_REGISTER_SW))
Esempio n. 14
0
 def clear(self):
     reg.getRegister(getRegister1(self.instruction)).set(0)
Esempio n. 15
0
 def addr(self):
     alu.addrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Esempio n. 16
0
 def orr(self):
     alu.orrm(reg.getRegister(reg.SICXE_NUM_REGISTER_A),
              self.mem,
              self.fetch(),
              isImidiateInstr(self.instruction))
Esempio n. 17
0
 def rmo(self):
     reg.getRegister(getRegister2(self.instruction)).set(reg.getRegister(getRegister1(self.instruction)))
Esempio n. 18
0
 def jlt(self):
     cc = reg.getRegister(reg.SICXE_NUM_REGISTER_SW).getbits((6, 8), BIG)
     if cc == alu.SICXE_CC_LT: self.j()
Esempio n. 19
0
 def shiftr(self):
     alu.shiftr(reg.getRegister(getRegister1(self.instruction)),
                getRegister2(self.instruction))
Esempio n. 20
0
 def setStartingAddress(self, addr):
     reg.getRegister(reg.SICXE_NUM_REGISTER_PC).set(addr)
Esempio n. 21
0
 def subf(self):
     alu.subfrm(reg.getRegister(reg.SICXE_NUM_REGISTER_F),
                self.mem,
                self.fetch(),
                isImidiateInstr(self.instruction))
Esempio n. 22
0
 def jne(self):
     cc = reg.getRegister(reg.SICXE_NUM_REGISTER_SW).getbits((6, 8), BIG)
     if cc != alu.SICXE_CC_EQ: self.j()
Esempio n. 23
0
 def td(self):
     device = self.mem.getbyte(self.fetch())
     self.devices[device].test(reg.getRegister(reg.SICXE_NUM_REGISTER_SW))
Esempio n. 24
0
 def jsub(self):
     reg.getRegister(reg.SICXE_NUM_REGISTER_L).set(reg.getRegister(reg.SICXE_NUM_REGISTER_PC))
     self.j()
Esempio n. 25
0
 def ldx(self):
     alu.ld(reg.getRegister(reg.SICXE_NUM_REGISTER_X),
            self.mem,
            self.fetch(),
            isImidiateInstr(self.instruction))
Esempio n. 26
0
 def mulr(self):
     alu.mulrr(reg.getRegister(getRegister1(self.instruction)),
               reg.getRegister(getRegister2(self.instruction)))
Esempio n. 27
0
 def ontick(self):
     self.instruction = self.getInstruction()
     pc = reg.getRegister(reg.SICXE_NUM_REGISTER_PC)
     pc.add(len(self.getInstruction()), setSelf=True)
Esempio n. 28
0
 def getInstruction(self):
     pc = reg.getRegister(reg.SICXE_NUM_REGISTER_PC)
     instr = self.mem.get(int(pc), 2, asbytearr=True)
     length = getFormat(instr)
     return self.mem.get(int(pc), length, asbytearr=True)