Beispiel #1
0
 def test_assemble_rect(self):
     from assembler import assemble_file
     assemble_file('rect/rect.asm', 'rect/rect.hack')
     with open('rect/rect.hack', 'r') as f:
         observed = f.readlines()
     with open('rect/rect.cmp', 'r') as f:
         expected = f.readlines()
     self.assertEqual(observed, expected)
Beispiel #2
0
 def test_assemble_pongL(self):
     from assembler import assemble_file
     assemble_file('pong/pongL.asm', 'pong/pongL.hack')
     with open('pong/pongL.hack', 'r') as f:
         observed = f.readlines()
     with open('pong/pongL.cmp', 'r') as f:
         expected = f.readlines()
     self.assertEqual(observed, expected)
Beispiel #3
0
def benchmark(name, module, program):
    print 'Benchmarking "%s" emulator using "%s"...' % (name, program)
    emu = module.Emulator()
    emu.load(assembler.assemble_file(program))
    duration = 10
    cycles = 0
    batch = 100000
    start = time.time()
    while True:
        emu.n_cycles(batch)
        cycles += batch
        elapsed = time.time() - start
        if elapsed > duration:
            break
    cycles_per_second = int(cycles / elapsed)
    print 'Result: %d cycles per second' % cycles_per_second
    print
Beispiel #4
0
if __name__ == "__main__":
    import sys
    
    if len(sys.argv) != 3:
        print "Usage: %s PCM_FILE_PREFIX CODE_FILE" % sys.argv[0]
        sys.exit()

    try:
        asm_file = open(sys.argv[2], "rt")
    except IOError, e:
        print "Error opening %s: %s" % (sys.argv[2], e.message)
        sys.exit()

    try:
        asm_code, num_lines = assembler.assemble_file(asm_file)
    except ValueError, e:
        print "Error assembling %s: %s" % (sys.argv[2], e.message)
        sys.exit()

    asm_file.close()

    # get all the files that start with the same prefix
    dirname = os.path.dirname(sys.argv[1]) or "."
    file_prefix = os.path.basename(sys.argv[1])
    dirlist = os.listdir(dirname)
    dirlist = filter(
        lambda x: x.startswith(file_prefix) and x.endswith(".wav"),
        dirlist
    )
    dirlist.sort()