global str terminal_namespace = "/dev/term/0"; global str prompt = "Enter a string:"; global str new_line = "\n"; function main (); real a $0; int i $1; int mode $11; str term $10; load_immediate 5.0 -> a; load_immediate 5000 -> i; load_immediate 0 -> $2; load_immediate -1 -> $3; load_immediate 5.0 -> $5; loop loop_body; add_real a $5 -> a; add_int i $3 -> i; jump_ge_int loop_body i $2; load_immediate terminal_namespace -> term; load_immediate 0 -> mode; syscall OPEN term mode -> term; // Terminal term = open("/dev/term/0", 0); nat b $1; real_to_nat a -> b; load_immediate prompt -> $7; string_length $7 -> $8; syscall WRITE term $7 $8; // print prompt str user_string $9; load_immediate 32 -> $8; malloc $8 -> user_string; syscall READ term user_string; $8 // read in max 32 byte string call pln user_string -> void; nat_to_string b -> $4; call pln $4 -> void; real_to_string a -> $3; call pln $3 -> void; exit 0; function pln (str message $0); str ts $1; int mode $5; int msg_length $2; str nl $3; int nl_length $4; load_immediate terminal_namespace -> ts; load_immediate 0 -> mode; syscall OPEN ts mode -> ts; strlen message -> msg_length; syscall WRITE ts message msg_length ; load_immediate new_line -> nl; strlen nl -> nl_length; syscall WRITE ts nl nl_length; return;