_premortem3_shtest.nx source
↩ module page · 23 lines · 770 B
1import "nx_syscalls.nx"
2func _emit(v: i64) -> i64 {
3 let b: *u8 = sys_mmap(28); var n: i64 = v; var neg: i64 = 0
4 if n < 0 { neg = 1; n = 0 - n }
5 let t2: *u8 = sys_mmap(28); var t: i64 = 0
6 if n == 0 { t2[0] = 48; t = 1 }
7 while n > 0 { t2[t] = 48 + (n % 10); n = n / 10; t = t + 1 }
8 if neg == 1 { t2[t] = 45; t = t + 1 }
9 var i: i64 = 0; while i < t { b[i] = t2[t - 1 - i]; i = i + 1 }
10 b[t] = 32; sys_write(1, b, t + 1); return 0
11}
12func _nl() -> i64 { let z: *u8 = sys_mmap(2); z[0] = 10; sys_write(1, z, 1); return 0 }
13func main() -> i64 {
14 let one: i64 = 1
15 _emit(one << 64)
16 _emit(one << 65)
17 let neg: i64 = 0 - 1
18 _emit(neg >> 1)
19 let big: i64 = 0 - 4294967296
20 _emit(big >> 64)
21 _nl()
22 sys_exit(0); return 0
23}