boo-os/util.asm

39 lines
874 B
NASM

label _scratch_print_var:
nop
label print_addr:
rload 4 3; Load Arg 1 in 3
store $3 _scratch_print_var ; preserve rax
loadi $7 $1C
label print_rax_digit:
loadi $2 8
add $2 $9 $9; // X = X + 9
call set_pos
load $3 _scratch_print_var
shift $3 $7 $4
loadi $2 $00000F
and $2 $4 $4
call num_to_charset;
call draw_char;
loadi $2 4
sub $7 $2 $7
tx $2 $7
loadi $1 0
jneq print_rax_digit
loadi $2 8
add $2 $9 $9; // X = X + 9
call set_pos
load $3 _scratch_print_var
shift $3 $7 $4
loadi $2 $00000F
and $2 $4 $4
call num_to_charset;
call draw_char;
ret