Commit | Line | Data |
---|---|---|
030f725c | 1 | (module $platform_direct |
50eea9ad | 2 | |
ed13313d JM |
3 | (import "env" "memory" (memory 256)) |
4 | (import "env" "memoryBase" (global $memoryBase i32)) | |
5 | ||
76adfab9 | 6 | (import "env" "exit" (func $lib_exit (param i32))) |
ed13313d | 7 | (import "env" "printline" (func $lib_printline (param i32) (result i32))) |
76adfab9 | 8 | (import "env" "readline" (func $lib_readline (param i32 i32 i32) (result i32))) |
76adfab9 | 9 | (import "env" "read_file" (func $lib_read_file (param i32 i32) (result i32))) |
266391c5 | 10 | (import "env" "get_time_ms" (func $lib_get_time_ms (result i32))) |
50eea9ad JM |
11 | |
12 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
13 | ||
14 | (func $fatal (param $code i32 $msg i32) | |
15 | ($print $msg) | |
16 | ($lib_exit $code) | |
17 | ) | |
18 | ||
19 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
20 | ||
21 | (func $print (param $addr i32) | |
ed13313d JM |
22 | (drop ($lib_printline $addr)) |
23 | ) | |
50eea9ad JM |
24 | |
25 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
26 | ||
27 | (func $readline (param $prompt i32 $buf i32) (result i32) | |
50eea9ad | 28 | ;; TODO: don't hardcode count to 200 |
030f725c | 29 | ($lib_readline $prompt $buf 200) |
50eea9ad JM |
30 | ) |
31 | ||
32 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
33 | ||
34 | (func $read_file (param $path i32 $buf i32) (result i32) | |
349faa83 | 35 | (LET $size ($lib_read_file $path $buf)) |
50eea9ad | 36 | ;; Add null to string |
0c62f14e | 37 | (i32.store8 (i32.add $buf $size) 0) |
50eea9ad JM |
38 | (i32.add $size 1) |
39 | ) | |
40 | ||
41 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
42 | ||
50eea9ad | 43 | (func $get_time_ms (result i32) |
266391c5 | 44 | ($lib_get_time_ms) |
50eea9ad JM |
45 | ) |
46 | ||
ed13313d JM |
47 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
48 | ||
49 | (func $entry (param $argc i32 $argv i32) | |
50 | ($init_memory) | |
51 | ($lib_exit ($main $argc $argv)) | |
52 | ) | |
53 | ||
54 | (export "_main" (func $entry)) | |
55 | ||
50eea9ad | 56 | ) |