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))
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))
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))
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]))
def test_block_store_word_list(self): self.block[0x0a:0x0c:2] = [0x1234] self.assertEquals(0x1234, vm.word(self.block[0x0a], self.block[0x0b]))
def test_block_store_word(self): self.block[0x0a::2] = 0x1234 self.assertEquals(0x1234, vm.word(self.block[0xa], self.block[0xb]))
def test_word(self): self.assertEquals(0x1234, vm.word(0x34, 0x12))
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))