-
-
Notifications
You must be signed in to change notification settings - Fork 4
GUI Subsystem
kazah-png edited this page Jul 11, 2026
·
2 revisions
Windowed compositor with 1024×768 32bpp framebuffer, 32 windows, taskbar, Start menu, 4 workspaces.
See also: Drivers, Filesystem, Architecture, Boot Process
Bochs VBE extensions, LFB at 0xE0000000. fb.c provides put_pixel, fill_rect, blit, draw_char.
IBM VGA 8×16 ROM font, 256 glyphs.
Windows in z-order, per-workspace, with titlebar drag, resize, minimize, close. Yields CPU when idle (sleep 5 ms). Foreground TUI programs (exec) now render live — the compositor repaints the desktop at ~16 fps while the child runs preemptively, so top and edit are visible in the GUI window in real time.
The GUI terminal supports cursor-addressed "screen mode" for full-screen TUIs:
-
CSI parser: collects numeric params inside
ESC[...sequences; recognizesESC[row;colH(position),ESC[2J(clear),ESC[K(clear to EOL) - Block cursor: the editing point is rendered as an inverted cell
- Reset: when the command exits, the terminal reverts to scrollback mode
- Ctrl keys mapped: Ctrl-A..Z → 0x01..0x1A (Ctrl-C → SIGINT) for editor bindings
- Terminal: 80×24 grid, scrollback, tab-completion, per-shell CWD, command history, CSI screen mode for TUIs. See Shell.
- Text Editor: File open/save, cursor nav, click-to-position, scroll
- File Manager: VFS browsing, copy/paste, drag-drop into folders, context menu, search
- Image Viewer: Test pattern, zoom/pan, grid overlay
- Sound Test: PC speaker beep/melody/alarm + SB16 sine/square/sweep
- Calculator: Basic arithmetic
- Task Manager: Process list
- DOOM: VGA mode 13h port (requires doom1.wad)
- Paint: Freehand drawing with mouse
Contact: uselessalter on Discord | nyxos@inbox.lv | GitHub