How ilcde/nandstudio-native works
NandStudio is a native C++/Qt Quick Nand2Tetris workspace. Its main workflow is to edit course files, build or load them into the relevant tool, run a simulator or test script, and inspect results. The graph highlights the GUI coordinator, course-language tools, simulators, workspace storage, and result views. The README documents additional editor and workspace capabilities; sampled excerpts do not expose every Studio-to-tool call, so subsystem links reflect documented workflow rather than uninspected implementation details.
Main entry points: studio.cpp Studio coordinator · script.cpp Test script runner · ConsolePane.qml Console and inspectors · Main.qml Qt Quick UI
Components 14
Workspace interface
- Qt Quick UI
src/app/Main.qml - Studio coordinator
src/app/studio.cpp - Editor services
src/app/editor_services.cpp - Console and inspectors
src/app/ConsolePane.qml
Language tools
- Assembler and CPU
src/core.cpp - Jack compiler
src/jack.cpp - VM translator
src/vm_translate.cpp
Simulation runtime
- HDL simulator
src/hdl.cpp - VM runtime
src/vm.cpp - Test script runner
src/script.cpp
Workspace services
- Workspace storage
src/app/storage.cpp - Course starters
resources/starters/README.md
Other components
- Learner
- Local and provider storage
Connections 19
- Learner → Qt Quick UI: uses
- Qt Quick UI → Studio coordinator: dispatches
- Qt Quick UI → Editor services: edits with
- Studio coordinator → Workspace storage: manages workspace
- Workspace storage → Local and provider storage: reads and writes
- Workspace storage → Course starters: copies starters
- Studio coordinator → Jack compiler: builds Jack
- Studio coordinator → VM translator: translates VM
- Studio coordinator → Assembler and CPU: builds ASM
- Studio coordinator → HDL simulator: loads and evaluates HDL
- Studio coordinator → VM runtime: runs VM
- Studio coordinator → Test script runner: runs test scripts
- Test script runner → HDL simulator: drives hardware
- Test script runner → VM runtime: drives VM
- Test script runner → Assembler and CPU: drives CPU
- Studio coordinator → Console and inspectors: presents results
- HDL simulator → Console and inspectors: supplies state
- VM runtime → Console and inspectors: supplies state
- Assembler and CPU → Console and inspectors: supplies state