Skip to content

Latest commit

 

History

History
76 lines (66 loc) · 3.83 KB

File metadata and controls

76 lines (66 loc) · 3.83 KB

Source tree

src/core/screenmachine_semantic.asm is the authoritative whole-program entry. It assembles the complete $7600-$DAFF core from 21 modules in address order.

src/core/screenmachine_core.asm is the independent mechanical preservation baseline. Both top levels must emit exactly the same 25,856 bytes.

Reading order

  1. include/spectrum.inc
  2. include/screenmachine_memory.inc
  3. include/screenmachine_state.inc
  4. subsystem ABI includes under include/
  5. core/screenmachine_semantic.asm
  6. individual modules in the order listed below

Directory map

api/        public jump-vector table
assets/     immutable extracted screen and palette data
basic/      tokenised BASIC payloads retained by media builders
binary/     frozen binary references and installed templates
core/       mechanical and semantic top-level composition
cursor/     pointer renderer and fixed-point movement
data/      initial UNDO screen and selector/workspace images
drivers/   alternative printer and communications overlays
editor/    screen-editor tools and transactions
editors/   font and pattern/cursor editors
graphics/  raster primitives and drawing tools
include/   platform, memory, state and subsystem ABI contracts
input/     compact text rendering and logical input scanner
main/      top-level executive and terminal reserve
patches/   deterministic D80 template patch data
printer/   generic Centronics front end and support
resources/ language-dependent installed resources
ui/        shared panel, stream and field-editing runtime

Address-ordered core modules

Range Source Purpose
$7600-$797E editors/glyph_editor_common.asm common font/pattern editor runtime
$797F-$7CD2 editors/font_editor.asm four-font editor and transforms
$7CD3-$7FFF editors/pattern_cursor_editor.asm cursor/pattern editor and bitmap scrolls
$8000-$9B13 data/initial_undo_demo.asm initial RS2 SCREEN and separator
$9B14-$9C3F printer/centronics_printer.asm generic COPY/DCOPY scheduler
$9C40-$A6FF editor/palette_assets_combine.asm palette assets and OR 1 TO 2
$A700-$A7FF printer/centronics_printer_support.asm sampling and Didaktik backend
$A800-$ABDF data/initial_menu_workspace.asm menu selector plane and workspace
$ABE0-$AC21 api/public_api.asm public jump-vector ABI
$AC22-$ADDE cursor/cursor_engine.asm cursor compositor and movement
$ADDF-$AFFF input/text_input_support.asm compact text and input support
$B000-$B3AF graphics/raster_core.asm point, line, spray, fill and rectangles
$B3B0-$B8A5 editor/screen_editor_shell.asm editor shell, palettes and dispatch
$B8A6-$BE34 editor/magnifier_transaction.asm magnifier and UNDO transaction
$BE35-$C2EA graphics/drawing_tools.asm freehand, line, circle and ellipse
$C2EB-$C52E editor/pattern_colour_tools.asm patterns and attribute painting
$C52F-$CB63 editor/window_tools.asm copy, resize, mirrors and reflection
$CB64-$CEF8 editor/text_tools.asm text composition and font styles
$CEF9-$D3B7 ui/ui_runtime.asm panel compositor and field editor
$D3B8-$DAB5 main/main_program.asm BASIC bridge and main menu
$DAB6-$DAFF main/core_tail.asm terminal zero-filled reserve

Editing rules

  • Keep fixed addresses and exported labels stable unless the complete installed memory model is intentionally changed.
  • Treat self-modified operands as state fields with code-generation side effects.
  • Preserve routine flag, stack and alternate-register contracts.
  • Do not replace typed data with instructions merely because a byte decodes as valid Z80.
  • Run the complete build after every source change; independent module equality is not sufficient without the whole-program check.