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}