code wiki / _hdl_build / _rt_addk_gate.nx

_rt_addk_gate.nx source

↩ module page · 28 lines · 947 B

1// AUTHORED BY THE NISHI BUILDER (pattern: GATE_HARNESS round-trip; declared-scaffold author=tutor) -- composes <uut>_encode/_decode, no Claude logic 2import "_rt_addk.nx" 3import "nx_syscalls.nx" 4func _rt_addk_gate_check() -> i64 { 5 let src: *u8 = sys_mmap(68) 6 src[0] = 17 as u8 7 src[1] = 42 as u8 8 src[2] = 200 as u8 9 src[3] = 99 as u8 10 let enc: *u8 = sys_mmap(80) 11 let dec: *u8 = sys_mmap(68) 12 let m: i64 = _rt_addk_encode(src, 4, enc) 13 let k: i64 = _rt_addk_decode(enc, m, dec) 14 var ok: i64 = 1 15 if k != 4 { ok = 0 } 16 var i: i64 = 0 17 while i < 4 { if dec[i] != src[i] { ok = 0 } i = i + 1 } 18 if m > 0 { 19 enc[0] = (255 - (enc[0] & 255)) as u8 20 let k2: i64 = _rt_addk_decode(enc, m, dec) 21 var same: i64 = 1 22 if k2 != 4 { same = 0 } 23 var j: i64 = 0 24 while j < 4 { if dec[j] != src[j] { same = 0 } j = j + 1 } 25 if same == 1 { ok = 0 } 26 } 27 return ok 28}