code wiki / _hdl_build / _nv1l_rtgate_sa.nx
_nv1l_rtgate_sa.nx source
↩ module page · 32 lines · 1129 B
1// AUTHORED BY THE NISHI BUILDER (pattern: GATE_HARNESS round-trip; declared-scaffold author=tutor) -- composes encode/decode, no Claude logic
2import "nx_nv1_lpc.nx"
3import "nx_syscalls.nx"
4func _nv1l_rtgate_sa_check() -> i64 {
5 let NB: i64 = 64
6 let src: *u8 = sys_mmap(128)
7 var i: i64 = 0
8 while i < NB { src[i] = ((i * 7 + 3) & 255) as u8; i = i + 1 }
9 let cap: i64 = 320
10 let enc: *u8 = sys_mmap(384)
11 let dec: *u8 = sys_mmap(128)
12 let m: i64 = nv1l_encode(src, 32, enc, cap)
13 var ok: i64 = 1
14 if m <= 0 { ok = 0 }
15 if m > 0 {
16 let k: i64 = nv1l_decode(enc, m, dec, 128)
17 if k != 32 { ok = 0 }
18 var j: i64 = 0
19 while j < NB { if dec[j] != src[j] { ok = 0 } j = j + 1 }
20 if m >= 4 {
21 let ti: i64 = m / 2
22 enc[ti] = (255 - (enc[ti] & 255)) as u8
23 let k2: i64 = nv1l_decode(enc, m, dec, 128)
24 var same: i64 = 1
25 if k2 != 32 { same = 0 }
26 var t: i64 = 0
27 while t < NB { if dec[t] != src[t] { same = 0 } t = t + 1 }
28 if same == 1 { ok = 0 }
29 }
30 }
31 return ok
32}