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}