diff --git a/emulator/devices.py b/emulator/devices.py index a5a065b..7e96d25 100644 --- a/emulator/devices.py +++ b/emulator/devices.py @@ -9,7 +9,7 @@ class tty(Device): def __setitem__(self, index: int, value: int): if index & 0xf == 0xd: if value & 0x800: - print(((~(value & 0x7FF)) + 1) * -1) + print((((value & 0x7FF) ^ 0x7FF) + 1) * -1) else: print(value) elif index & 0xf == 0xe: diff --git a/emulator/main.py b/emulator/main.py index 6dce04b..9c6cdc4 100644 --- a/emulator/main.py +++ b/emulator/main.py @@ -11,7 +11,7 @@ def main(argv: Sequence[str] | None = None): from time import sleep machines = { - 'tty': lambda rom: Computer(Memory(rom, [tty(0x7FE, 0x7FF)])) + 'tty': lambda rom: Computer(Memory(rom, [tty(0x7FD, 0x7FF)])) } parser = argparse.ArgumentParser( diff --git a/language/examples/test1.s b/language/examples/test1.s index 80385a6..522824e 100644 --- a/language/examples/test1.s +++ b/language/examples/test1.s @@ -13,7 +13,7 @@ main: loop: ; Output current value liu 0x1f - lil 0x3E + lil 0x3D str D0 ; Move values down