To run a file in debugging mode, pass a --debug flag to the executable.
There are 26 * 26 "registers" with id's like AA, AB, AC, BC, etc. All of them can contain signed 64 bit integers.
Script command arguments are loaded into the registers starting with the A register.
A line of source code cannot not be longer than 128 characters. The source file cannot contain more than 1024 lines.
Comments can be made using ;, they must always come after a space.
Example:
PRINT 123 ; This is a comment
PRINT: prints the value, supports strings
PRINT "Among us\n"
PRINT Y
INPUT: store user input in a register
INPUT X
PRINT X
SET: set a register to a value
SET X, 4
SET Y, X
ADD: same syntaxis as SET, add a value to a register
MUL: same syntaxis as SET, multiply a value in a register
DIV: same syntaxis as SET, divide a value in a register
MOD: perform a modulo operation on a register
SET X, 5
MOD X, 2
PRINT X ; Outputs 1, as it is the result of 5 % 2
JUMP: jump to a line in code, using + or - makes the jump relative to the
current line
.loop ; Label
JUMP 32 ; Jump to line 32
JUMP +1 ; Jump 2 lines further
JUMP -4 ; Jump 4 lines back
JUMP loop ; Jump to the loop label
IFEQ: compare values and skip the next line if they aren't equal
SET A, 33 ; Store 33 in A
IFEQ A, 34 ; Compare
PRINT 123 ; This will never be printed
PRINT 321 ; And this will
IFMR: same as IFEQ but checks whether the first parameter is bigger
PARAM: change the according interpreter setting
PARAM PRINT_NUM_NEWLINE 0 ; Prevents `PRINT` from appending a newline to each integer output
PARAM DEBUG 1 ; Makes the interpreter print debugging information
