Created
July 21, 2022 15:51
-
-
Save EwanFox/d6aead96477fc16ece5e1f0f9de1b820 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BITS == 32 | |
MINHEAP 4096 | |
MINSTACK 1024 | |
MOV R1 SP | |
CAL ._Hx4maini8 | |
MOV SP R1 | |
HLT | |
._Hx5inputvs | |
PSH R1 | |
MOV R1 SP | |
LLOD R3 R1 2 | |
.input_loop | |
IN R2 %TEXT | |
BRZ .input_end R2 | |
STR R3 R2 | |
INC R3 R3 | |
JMP .input_loop | |
.input_end | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx5inputvi32 | |
PSH R1 | |
MOV R1 SP | |
PSH .input_int32_str | |
CAL ._Hx5inputvs | |
ADD SP SP 1 | |
IMM R3 0 | |
IMM R4 0 | |
.input_int32_loop | |
LLOD R5 .input_int32_str R4 | |
MLT R3 R3 10 | |
ADD R3 R3 R5 | |
INC R4 R4 | |
BRL .input_int32_loop R4 20 | |
LSTR R1 2 R3 | |
.input_int32_str | |
DW [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ] | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx7printlnvs | |
PSH R1 | |
MOV R1 SP | |
LLOD R2 R1 2 | |
.println_loop | |
LOD R3 R2 | |
INC R2 R2 | |
BRZ .println_end R3 | |
OUT %TEXT R3 | |
JMP .println_loop | |
.println_end | |
OUT %TEXT '\n' | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx7printlnvi32 | |
PSH R1 | |
MOV R1 SP | |
LLOD R2 R1 2 | |
OUT %INT R2 | |
OUT %TEXT '\n' | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx7printlnvu32 | |
PSH R1 | |
MOV R1 SP | |
LLOD R2 R1 2 | |
OUT %UINT R2 | |
OUT %TEXT '\n' | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx5printvs | |
PSH R1 | |
MOV R1 SP | |
LLOD R2 R1 2 | |
.print_loop | |
LOD R3 R2 | |
INC R2 R2 | |
BRZ .print_end R3 | |
OUT %TEXT R3 | |
JMP .print_loop | |
.print_end | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx5printvi32 | |
PSH R1 | |
MOV R1 SP | |
LLOD R2 R1 2 | |
OUT %INT R2 | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx5printvu32 | |
PSH R1 | |
MOV R1 SP | |
LLOD R2 R1 2 | |
OUT %UINT R2 | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx9isgamepadi32 | |
PSH R1 | |
MOV R1 SP | |
IN R2 %GAMEPAD_INFO | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx13enablegamepadv | |
PSH R1 | |
MOV R1 SP | |
OUT %GAMEPAD 1 | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx14disablegamepadv | |
PSH R1 | |
MOV R1 SP | |
OUT %GAMEPAD 0 | |
MOV SP R1 | |
POP R1 | |
RET | |
._Hx4maini8 | |
PSH R1 | |
MOV R1 SP | |
AND R2 0 0xffffffff | |
PSH R2 | |
CAL ._Hx9isgamepadi32 | |
ADD SP SP 0 | |
pop r0 | |
psh r2 | |
LLOD R2 R1 -1 | |
IMM R3 0 | |
BRE .if1 R2 R3 | |
JMP .endif1 | |
.if1 | |
PSH .str0 | |
CAL ._Hx7printlnvs | |
ADD SP SP 1 | |
ADD SP SP 0 | |
.endif1 | |
LLOD R2 R1 -1 | |
IMM R3 1 | |
BRE .if2 R2 R3 | |
JMP .endif2 | |
.if2 | |
PSH .str1 | |
CAL ._Hx7printlnvs | |
ADD SP SP 1 | |
ADD SP SP 0 | |
.endif2 | |
ADD SP SP 1 | |
MOV SP R1 | |
POP R1 | |
RET | |
.str0 | |
DW [ "0" 0 ] | |
.str1 | |
DW [ "1" 0 ] | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment