- data Addr
- data Instruction
- type Program = [Instruction]
- readInstruction :: String -> Either ParseError Instruction
- readProgram :: String -> Either ParseError Program
- toNative :: Program -> NativeProgram
- boundary :: Instruction -> Bool
- labels :: F18Word -> Program -> Program
- fixSlot3 :: Program -> Program
- fromNative :: NativeProgram -> Program
- runProgram :: State -> Program -> State
- load :: Program -> State -> State
Represents a single instruction as viewed by the synthesizer. This can be an opcode, a numeric literal or a token representing an unused slot.
Tries to parse the given string as an instruction, which can either be a number, an opcode or _ representing Unused.
Reads a program in the synthesizer's format.
Resolves labels into addresses, assuming the program starts at the given memory location.
Insert extra nops to account for instructions that cannot go into the last slot.
Gets a synthesizer program from a native program. Currently does not support jumps.