**USE TURBOWARP** turbowarp.org/1194119127 syntax and stuff: --Arithmatic-- ADD R1, R2, R3 : adds r1 and r2 and puts the result in r3 SUB R1, R2, R3 : ditto but subtract MUL R1, R2, R3 : ditto but multiply DIV R1, R2, R3 : ditto but divide MOD R1, R2, R3 : ditto but modulo INC R1 : increment the value in r1 DEC R1 : decrement the value in r1 --Logic-- AND R1, R2, R3 : sets r3 to 1 if r1 and r2 are both non-zero ORR R1, R2, R3 : sets r3 to 1 if either r1 or r2 are non-zero XOR R1, R2, R3 : sets r3 to 1 if either r1 or r2 are non-zero but not both NOT R1, R2 : sets r2 to 1 if r1 is 0 and sets r2 to 0 if r1 is non-zero --Memory-- LDR R1, ADR : loads memory into r1 LDI R1, VAL : loads the immediate value into r1 STR R1, ADR : stores the value in r1 to memory MOV R1, R2 : copies the value in r1 to r2 LDP R1, R2 : loads the value in the memory slot at r2 into r1 STP R1, R2 : stores the value in r1 to the memory slot at r2 --Control Flow-- JMP LOC : jump to label or relative jump JIZ LOC : ditto but if last result == 0 JIP LOC : ditto but if last result > 0 JIN LOC : ditto but if last result < 0 CAL : call subroutine at label RET : return from subroutine FRM : wait until next frame / vsync control HLT : stop --Memory Mappings-- [ 1 - 65536 ] — General Purpose RAM [ 65537 - 65544 ] — Input 65537: D-Pad X (-1 to 1) 65538: D-Pad Y (-1 to 1) 65539: Button A (0 or 1) 65540: Button B (0 or 1) 65541: Button Select (0 or 1) 65542: Button Start (0 or 1) 65543: Mouse X 65544: Mouse Y [ 65545 - 65548 ] — Pixel Drawing 65545: X position (0-199) 65546: Y position (0-199) 65547: Color (0–4095) 65548: Plot trigger (write = draw pixel) 65549: Clear trigger (write = clear screen) [ 65550 ] — Print to console (write value to print to console) [ 65551 - 131072 ] — General Purpose RAM (may be used for other functions later, only use if needed)