# code-navigator > Static analysis tool for ASM codebases. Builds call graphs, finds callers/callees, and identifies memory write locations. - Author: scawful - Repository: scawful/afs_scawful - Version: 20260127230830 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/scawful/afs_scawful - Web: https://mule.run/skillshub/@@scawful/afs_scawful~code-navigator:20260127230830 --- --- name: code-navigator description: Static analysis tool for ASM codebases. Builds call graphs, finds callers/callees, and identifies memory write locations. --- # Code Navigator ## Scope - Static analysis of 65816 ASM. - Call hierarchy resolution (`JSL`, `JSR`, `JML`). - RAM usage tracking (`STA`, `STX`, `STY`). ## Core Capabilities ### 1. Find Callers Who calls a specific routine? - `callers Link_Hurt` -> Returns list of routines and file locations. ### 2. Find Writes Who writes to a specific RAM address? - `writes 7E0010` -> Returns routines that modify GameMode. ### 3. Graph Export Generate a JSON call graph for visualization or LLM context. - `graph --out codebase.json` ## Dependencies - **Tool**: `~/src/hobby/yaze/scripts/ai/code_graph.py`. - **Repo**: `~/src/hobby/oracle-of-secrets` (or any ASM folder). ## Example Prompts - "Who calls `Link_ResetProperties`?" - "Which routines write to the Ocarina flag at `$7E0300`?" - "Generate a call graph of the Music subsystem." ## Limitations - **Regex-based**: Does not evaluate macros or conditional assembly (`if`). - **Indirect Calls**: Cannot resolve `JSR ($0000,X)`.