code wiki / _hdl_build / _dfl_specgate.nx
_dfl_specgate.nx source
↩ module page · 32 lines · 1130 B
1// AUTHORED BY THE NISHI BUILDER (pattern: GATE_HARNESS round-trip; declared-scaffold author=tutor) -- composes encode/decode, no Claude logic
2import "nx_deflate_fixed.nx"
3import "nx_syscalls.nx"
4func _dfl_specgate_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 = dfl_encode(src, 64, enc, cap)
13 var ok: i64 = 1
14 if m <= 0 { ok = 0 }
15 if m > 0 {
16 let k: i64 = dfl_decode(enc, m, dec, 128)
17 if k != 64 { 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 = dfl_decode(enc, m, dec, 128)
24 var same: i64 = 1
25 if k2 != 64 { 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}