code wiki / _hdl_build / nx_game_pong_gate.nx

nx_game_pong_gate.nx

buildroot/runtime/_hdl_build/nx_game_pong_gate.nx

6150 B95 linesdepth 4pulls 7 transitivereach 0 importersview sourcekind gate/prooftopic game
docsdependenciesstructsconstsfunctions

dependencies 5 imports · 0 importers

nx_gate_gn.nx nx_gate_base.nx nx_game_raster.nx nx_png.nx nx_syscalls.nx nx_game_pong_gate.nx

imports: nx_gate_gn.nxnx_gate_base.nxnx_game_raster.nxnx_png.nxnx_syscalls.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gw sys_write sys_mmap pong_full_reset pong_reset pong_tick p_clamp p_abs pong_reset ↻ gn pong_render gr_clear gr_pack gr_rect gr_disc gr_px write_png sys_mmap ↻ png_g png_paeth png_sabs dfe_compress sys_mmap ↻ dfe_fill_tables dfe_deflate sys_mmap ↻ dfe_bits dfe_hash dfe_matchlen dfe_sym dfe_bits ↻ dfe_rev dfe_rev ↻ sys_munmap sys_munmap ↻ png_be32 png_adler32 png_crc32 sys_openat_wr

structs

none

consts

none

functions

15func grow(name: *u8, ok: i64) -> i64 { if ok==1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw("
calls 1: gw
17func p_abs(v: i64) -> i64 { if v<0 { return 0-v } return v }
called by 1: pong_tick
18func p_clamp(v: i64, lo: i64, hi: i64) -> i64 { if v<lo {return lo} if v>hi {return hi} return v }
21func pong_reset(s: *i64, dir: i64) -> i64 { s[0]=70; s[1]=48; s[2]=dir*2; s[3]=1; return 0 }
called by 1: main calls 1: pong_reset
22func pong_full_reset(s: *i64) -> i64 { pong_reset(s, 1); s[4]=12; s[5]=12; s[6]=0; s[7]=0; return 0 }
called by 1: main calls 3: p_clampp_abspong_reset
23func pong_tick(s: *i64, w: i64, h: i64, padh: i64, ltrack: i64, rtrack: i64) -> i64
36func pong_render(fb: *i64, w: i64, h: i64, padh: i64, s: *i64) -> i64
46func main() -> i64