def barcamp2(challenge, student, code, completed): a = Assembler() preamble = ".org $C000\n.define BALL_X=$200\n.define BALL_Y=$201\n.define BALL_DX=$202\n.define BALL_DY=$203\n" postamble = "\nforever:\n jmp forever\n.org $fffa\n.dw $C000\n.dw $C000\n.dw $C000" rom, errors = a.assemble( preamble+code + postamble ) if errors: return None for test in [[54,32,1,1],[0,99,0xff,0xff],[55,0xff,0xff,1]]: e = Emulator( rom[0x10:0x4010], rom[0x4010:] ) e.write( test[0], 0x200 ) e.write( test[1], 0x201 ) e.X = test[2] e.Y = test[3] for i in range(0x100): e.step() if e.last_op == 0x60: break if e.read(0x200) != (test[0]+test[2])&0xff or e.read(0x201) != (test[1]+test[3])&0xff: return None return rom_size(rom), 100
def barcamp2(challenge, student, code, completed): a = Assembler() preamble = ".org $C000\n.define BALL_X=$200\n.define BALL_Y=$201\n.define BALL_DX=$202\n.define BALL_DY=$203\n" postamble = "\nforever:\n jmp forever\n.org $fffa\n.dw $C000\n.dw $C000\n.dw $C000" rom, errors = a.assemble(preamble + code + postamble) if errors: return None for test in [[54, 32, 1, 1], [0, 99, 0xff, 0xff], [55, 0xff, 0xff, 1]]: e = Emulator(rom[0x10:0x4010], rom[0x4010:]) e.write(test[0], 0x200) e.write(test[1], 0x201) e.X = test[2] e.Y = test[3] for i in range(0x100): e.step() if e.last_op == 0x60: break if e.read(0x200) != (test[0] + test[2]) & 0xff or e.read( 0x201) != (test[1] + test[3]) & 0xff: return None return rom_size(rom), 100