Exemple #1
0
def test_decimal_suite(compiled_decimal_test):
    cpu6502.init()
    for (index, byte) in enumerate(compiled_decimal_test):
        cpu6502.write(index, byte)
    cpu6502.set_pc(0x0200)

    cpu6502.run_until_break()
    time.sleep(1)
    while cpu6502.is_running():
        time.sleep(1)

    assert 0x00 == cpu6502.read(0x000B)
Exemple #2
0
def test_functional_suite(compiled_functional_test):
    cpu6502.init()
    for (index, byte) in enumerate(compiled_functional_test):
        cpu6502.write(index, byte)
    cpu6502.set_pc(0x0400)

    cpu6502.run_until_break()
    time.sleep(1)
    while cpu6502.is_running():
        time.sleep(1)

    assert 13417 == cpu6502.get_pc()
Exemple #3
0
def lvdc_main_loop():
    cpu6502.init()

    with open(sys.argv[1], 'rb') as f:
        data = f.read()

    for (index, byte) in enumerate(data):
        cpu6502.write(0x4000 + index, byte)

    cpu6502.set_pc(0x4000)

    gtk_interface()
Exemple #4
0
def simulation_thread():
    global x, y, vx, vy, dt, g, a, fuel, cmd
    while True:
        cpu6502.write(0xE002, int(fuel[0] * 0xFF))
        cpu6502.write(0xE003, int(fuel[1] * 0xFF))
        cpu6502.write(0xE004, int(fuel[2] * 0xFF))

        time.sleep(0.1)
        cmd = cpu6502.read(0xE010)

        burn_speed = cmd / 255
        a = burn_speed * 10
        fuel[0] = max(fuel[0] - burn_speed * 0.001, 0)
        if fuel[0] == 0:
            a = 0

        vy = vy + (a - g) * dt
        y = y + vy * dt

        if y < 0:
            y = 0
            vy = 0
Exemple #5
0
def test_can_read_and_write():
    cpu6502.write(0x0013, 0x99)
    assert 0x99 == cpu6502.read(0x0013)
Exemple #6
0
def test_raises_on_write_range_error():
    with pytest.raises(ValueError):
        cpu6502.write(0x10000, 0x00)

    with pytest.raises(ValueError):
        cpu6502.write(0x0010, 0xFF + 1)
Exemple #7
0
import cpu6502
import time

with open('fib.bin', 'rb') as f:
    data = f.read()

cpu6502.init()
for (index, byte) in enumerate(data):
    cpu6502.write(0x4000 + index, byte)
cpu6502.set_pc(0x4000)
cpu6502.run_until_break()

time.sleep(0.1)
while cpu6502.is_running():
    time.sleep(0.1)

print("There are the last two fibonacci numbers computed:")
for i in range(0, 256):
    if i % 32 == 0:
        print()
    print('{:02x}'.format(cpu6502.read(0x1000 + i)), end='')
print()
for i in range(0, 256):
    if i % 32 == 0:
        print()
    print('{:02x}'.format(cpu6502.read(0x2000 + i)), end='')
print()