code wiki / _hdl_build / _pe_lane_riff.nx
_pe_lane_riff.nx source
↩ module page · 40 lines · 1392 B
1// AUTHORED BY THE NISHI BUILDER (pattern: IO_CONTRACT census lane) -- no Claude logic
2import "_pe_riff.nx"
3import "nx_syscalls.nx"
4func lc_dec(label: *u8, v: i64) -> i64 {
5 var n: i64 = 0
6 while label[n] != (0 as u8) { n = n + 1 }
7 sys_write(1, label, n)
8 var av: i64 = v
9 if av < 0 { sys_write(1, "-" as *u8, 1); av = 0 - av }
10 if av == 0 { sys_write(1, "0" as *u8, 1) }
11 if av > 0 {
12 let buf: *u8 = sys_mmap(32)
13 var pos: i64 = 0
14 var x: i64 = av
15 while x > 0 { buf[pos] = (48 + (x % 10)) as u8; x = x / 10; pos = pos + 1 }
16 let outb: *u8 = sys_mmap(32)
17 var oi: i64 = 0
18 while oi < pos { outb[oi] = buf[pos - 1 - oi]; oi = oi + 1 }
19 sys_write(1, outb, pos)
20 }
21 sys_write(1, "\n" as *u8, 1)
22 return 0
23}
24func main() -> i64 {
25 let lenp: *i64 = sys_mmap(16) as *i64
26 let b: *u8 = sys_read_file("/tmp/race_input.bin\x00" as *u8, lenp)
27 let n: i64 = lenp[0]
28 let c: i64 = _pe_riff_count(b, n)
29 lc_dec("NCHK=\x00" as *u8, c)
30 if c < 0 {
31 lc_dec("FMT=\x00" as *u8, 0 - 2)
32 lc_dec("DATA=\x00" as *u8, 0 - 2)
33 lc_dec("LIST=\x00" as *u8, 0 - 2)
34 return 0
35 }
36 lc_dec("FMT=\x00" as *u8, _pe_riff_find(b, n, 1718449184))
37 lc_dec("DATA=\x00" as *u8, _pe_riff_find(b, n, 1684108385))
38 lc_dec("LIST=\x00" as *u8, _pe_riff_find(b, n, 1279873876))
39 return 0
40}