global str terminal_namespace = "/dev/term/0"; global str prompt = "Enter a string:"; global str new_line = "\n"; function main () int in_mode $11; str in_term $10; load_address terminal_namespace -> in_term; load_immediate 0 -> in_mode; syscall OPEN in_term in_mode -> in_term; // Terminal term = open("/dev/term/0", 0); load_address prompt -> $7; string_length $7 -> $8; syscall WRITE in_term $7 $8; // print prompt str user_string $9; load_immediate 32 -> $8; malloc $8 -> user_string; syscall READ in_term user_string $8; // read in max 32 byte string call pln user_string; exit 0; function pln (str message $0) plex term $1; int msg_length $2; str nl $3; int nl_length $4; int mode $5; str term_ns $6; load_immediate 0 -> mode; load_address terminal_namespace -> term_ns; syscall OPEN term_ns mode -> term; string_length message -> msg_length; syscall WRITE term message msg_length; load_address new_line -> nl; string_length nl -> nl_length; syscall WRITE term nl nl_length; return;