1 (module $platform_direct
3 (import "env" "memory" (memory 256))
4 (import "env" "memoryBase" (global $memoryBase i32))
6 (import "env" "exit" (func $lib_exit (param i32)))
7 (import "env" "printline" (func $lib_printline (param i32) (result i32)))
8 (import "env" "readline" (func $lib_readline (param i32 i32 i32) (result i32)))
9 (import "env" "read_file" (func $lib_read_file (param i32 i32) (result i32)))
10 (import "env" "get_time_ms" (func $lib_get_time_ms (result i32)))
12 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14 (func $fatal (param $code i32 $msg i32)
19 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
21 (func $print (param $addr i32)
22 (drop ($lib_printline $addr))
25 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
27 (func $readline (param $prompt i32 $buf i32) (result i32)
28 ;; TODO: don't hardcode count to 200
29 ($lib_readline $prompt $buf 200)
32 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34 (func $read_file (param $path i32 $buf i32) (result i32)
35 (LET $size ($lib_read_file $path $buf))
37 (i32.store8 (i32.add $buf $size) 0)
41 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43 (func $get_time_ms (result i32)
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
49 (func $entry (param $argc i32 $argv i32)
51 ($lib_exit ($main $argc $argv))
54 (export "_main" (func $entry))