Symphony ISA specs for use in stdlib # `default.isa` The stock game ISA. Production code must comply to this. Taken from `symphony_11_functions` in game version 2.1.330A # `test.isa` ISA with additional instructions. These additional instructions may be used in the tests directory only. Some of these instructions require hardware changes. ## Labels in more instructions `cmp`, `load`, and `store` instructions (but not `pload` and `pstore`) now also accept labels. ## `qcall %a(label)` Performs a jump-and-link function call, with label size up to 32 bits. _HARDWARE:_ Store PC+4 in the result register when in jump mode. ## `li %a(register) %b:U32(immediate | label)` Loads an immediate up to 32 bits long _HARDWARE:_ No requirements ## `halt%c(condition)` Halts if `flags` matches the condition. _HARDWARE:_ Halt if instruction bit 31 is set AND the condition block is true. ``` condition "" 1000 ".all" 1000 ".e" 0001 ".ne" 1001 ".b" 0010 ".ae" 1010 ".be" 0011 ".a" 1011 ".l" 0100 ".ge" 1100 ".le" 0101 ".g" 1101 ```