docs(architecture): package map reflects the io/format/flow extraction
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Thu, 3 Sep 2026 21:09:29 +0000 (00:09 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Thu, 3 Sep 2026 21:09:29 +0000 (00:09 +0300)
Adds the io package row (IoSubsystem/Channel/FileHandle/DosPaths/
QbBinaryCodec), lists PrintFormat/Jumps/LabelSearch under interp, and
fills in the previously undocumented machine and capture packages.
The audio row no longer claims "no audio yet".

Documentation/architecture/index.org

index d5d52fb..7e46b17 100644 (file)
@@ -38,10 +38,13 @@ human watches it in a window or an agent samples it offscreen.
 | =lexer=     | =Lexer=, =Token=                              | Source text → token stream |
 | =parser=    | =Parser=                                      | Tokens → AST, recursive descent |
 | =ast=       | =Ast= (sealed =Stmt= / =Expr= records)        | Typed syntax tree, every node carries its source line |
-| =interp=    | =Interpreter=                                 | Executes the AST (interim tree-walker) |
+| =interp=    | =Interpreter=, =PrintFormat=, =Jumps=, =LabelSearch= | Executes the AST (tree-walker); PRINT/USING formatting, control-flow signals and nested-label search are factored out |
+| =io=        | =IoSubsystem=, =Channel=, =FileHandle=, =DosPaths=, =QbBinaryCodec= | The OPEN channel table (text/BINARY/RANDOM/CON/COM), DOS path resolution, GET/PUT byte layout, NAME/KILL/SHELL DIR |
 | =video=     | =VgaDevice=, =Framebuffer=, =TextConsole=, =ScreenMode=, =VgaFont=, =DefaultPalettes=, =CapturedRegion= | The virtual VGA card |
 | =input=     | =KeyboardQueue=                               | Single input path for all frontends |
-| =audio=     | =SoundQueue=                                  | SOUND timing model (no audio yet) |
+| =machine=   | =MachineMemory=, =QbextMouseTsr=              | Emulated RAM (DEF SEG/PEEK/POKE) and the mouse TSR |
+| =audio=     | =SoundQueue=                                  | SOUND/BEEP: audible square wave in GUI mode, timing-only headless |
+| =capture=   | =ScreenRecorder=, =CrtrecEncoder=             | 30 Hz .crtrec capture and ffmpeg-based MP4 encoding |
 | =frontend=  | =SwingFrontend=                               | Interactive window: live screen + key capture |
 
 Test sources additionally carry the JUnit suites, the