code wiki / _hdl_build / nx_video_ver_emit.nx
nx_video_ver_emit.nx source
↩ module page · 31 lines · 1184 B
1// nx_video_ver_emit.nx -- GENERATED EMITTER (nx_asset_emit_gen). THIS ORGAN IS THE SSOT for
2// sites/nishifamily/video/ver.txt -- edit HERE (or regenerate), NEVER the emitted artifact.
3// argv[1] overrides the target (the drift-kill seam: emit to a compare path + byte-diff).
4// license_tier: ORIGINAL
5import "nx_syscalls.nx"
6
7const P0: *u8 = "761\n"
8
9func ep(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return n }
10
11func main(argc: i64, argv: *i64) -> i64 {
12 var tgt: *u8 = "sites/nishifamily/video/ver.txt" as *u8
13 if argc >= 2 { tgt = argv[1] as *u8 }
14 let fd: i64 = sys_openat_wr(tgt, 0x1a4)
15 if fd < 0 { sys_write(1, "emit: cannot open target\n" as *u8, 25); return 1 }
16 var n: i64 = 0
17 n = n + ep(fd, P0)
18 sys_close(fd)
19 sys_write(1, "EMITTED " as *u8, 8)
20 let b: *u8 = sys_mmap(28)
21 var m: i64 = n
22 let t: *u8 = sys_mmap(28)
23 var k: i64 = 0
24 if m == 0 { t[0] = 48 as u8; k = 1 }
25 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
26 var i: i64 = 0
27 while i < k { b[i] = t[k-1-i]; i = i + 1 }
28 sys_write(1, b, k)
29 sys_write(1, " bytes\n" as *u8, 7)
30 return 0
31}