Beispiel #1
0
    def test_linein_empty(self):
        suite.banner(self.test_linein_empty)
        a = self.a
        termin = mock.TerminalInput("\n")
        self.comp.terminal_input.source = termin
        buf = memmap.TERM_INPUT_BUFFER

        self.mem[buf : buf + 8 : 2] = (0xDEAD, 0xBEEF, 0xDEAD, 0xBEEF)

        _
        a(jsr, "LINEIN")

        self.run_test()
        self.assertEquals(0, self.mem[memmap.TERM_INPUT_BUFFER])
        self.assertEquals(buf, vm.word(self.cpu.x, self.cpu.y))
Beispiel #2
0
 def test_inc_word_zp(self):
     suite.banner(self.test_inc_word_zp)
     a = self.a 
     
     _;      a(lda_imm,  0xff)
     _;      a(sta_zp,   'R1')
     _;      a(lda_imm,  0x7f)
     _;      a(sta_zp,   'R2')
     
     _;      a.macro     (inc_zp_word, 'R1')
     _;      a(ldx_zp,   'R1')
     _;      a(ldy_zp,   'R2')
     
     self.run_test() 
     self.assertEquals(0x8000, vm.word(self.cpu.x, self.cpu.y)) 
Beispiel #3
0
    def test_linein(self):
        suite.banner(self.test_linein)
        a = self.a
        termin = mock.TerminalInput("12345\n")
        self.comp.terminal_input.source = termin
        buf = memmap.TERM_INPUT_BUFFER

        self.mem[buf : buf + 8 : 2] = (0xDEAD, 0xBEEF, 0xDEAD, 0xBEEF)

        _
        a(jsr, "LINEIN")

        self.run_test()
        value = "".join(map(chr, self.mem[buf : buf + 6]))
        self.assertEquals("12345\x00", value)
        self.assertEquals(buf, vm.word(self.cpu.x, self.cpu.y))
Beispiel #4
0
 def test_block_store_word_list2(self):
     self.block[0x0a:0x0e:2] = [0x1234, 0x5678]
     self.assertEquals(0x1234, vm.word(self.block[0x0a], self.block[0x0b]))
     self.assertEquals(0x5678, vm.word(self.block[0x0c], self.block[0x0d]))
Beispiel #5
0
 def test_block_store_word_list(self):
     self.block[0x0a:0x0c:2] = [0x1234]
     self.assertEquals(0x1234, vm.word(self.block[0x0a], self.block[0x0b]))
Beispiel #6
0
 def test_block_store_word(self):
     self.block[0x0a::2] = 0x1234
     self.assertEquals(0x1234, vm.word(self.block[0xa], self.block[0xb]))
Beispiel #7
0
 def test_word(self):
     self.assertEquals(0x1234, vm.word(0x34, 0x12))
Beispiel #8
0
 def pull2(self):
     """
     Pulls (pops) a word from the stack. Raises a :class:`StackError` on 
     a stack underflow. 
     """         
     return vm.word(self._pull(STACK_ADDRESS), self._pull(STACK_ADDRESS))