Here is a summary of orgams modules.
For a module toto
In bold: generic modules (not orgams specific).


In bricbrac rom.

  • Burn (Not an orgams module!) |burn, . Allow to write arbitrary number of bytes in rom.
  • Bitset: Like set A,(hl) / bit A,(hl) with A in [0..255]. Comes with init function, thus implementing a small set (collection) with immediate insertion / test of presence.
  • String: Low-level routines for string manipulation (well, just copying for now + get_len).
  • LISZT: Chained list with nodes of constant sizes.
  • Chunks: Memory (de)allocation of &100 chunks in bank.
  • Heap: Raw read/append in chunks.
  • Field: Field editor with handling of CLR, DEL, Left, Right (display not done here)
  • Histrion: Field editor with handling of history (past commands).
  • Disp: Ultra-fast text display routines. Comes with hexa->asciii, dec->ascii convertions…
  • Aap: Label store. Id to name conversion, and vice-versa (very slow)
  • Cue: Auto-completion engine. Tied to aap internal data-structure, but can be easily expended.
  • io: Fast read by block (arbitrary length like with cas_in_char, but with the speed of cas_in_direct)
  • Asset: Load and cache binary file. (For load directive). Used via asseto in Orgext rom.
  • Status: Display info in status bar (editor and monogams).
  • Screen: CRTC ("rupture") handling of status under interruption (firmware friendly, since keyboard handling is still performed through km_* routines).
  • Parse: Transform text line in pre-assembled opcodes (or special codes) for codec. (Cf Disp)

In orgasm rom.

  • Ch: Chef. Rom Entry point (RSXs).
  • Init: Check if Orgams was already init (for persistence), or do all required init.
  • Ed: Editor. Almost generic (knows nothing about source encoding for instance). Could be reused for text editing or BASIC program editing.
  • upd-scr: Sub module editor: refresh line with shaded comments, handle screen page (must we scroll, how much?).
  • synhigh: "syntax highlighting". For now, just localise comment in a line. (using parse would be too slow)
  • Token: For now, just delimits currently typed label. (using parse would be too slow)
  • Disa: Disassemble opcodes or encoded source line (Inverse of parse).
  • * Mulf: WIP. Interaction with Multiface 2.

In orgext rom.

  • Org: Codec source. Bridge between editor and parse, disp, memory handling. Also handle load/save.
  • filename: Mini helpers to handle opened sources' filename.
  • Except: "Exceptions" handling. Allow to abort/exit a routine from any point, without having to care about the stack.
  • Ass: Assembly + navigation in encoded source.
  • Asseva: Evalution of (arithmetic) expressions. Used by ass and monogams (e.g. to evaluate a label).
  • Evacmd: Evaluate monogams commands. Needs parse to interpret command and ass to resolve expressions (labels, arithmetic expressions)
  • Cache: Check whether source assembly is up to date.
  • Import: Handling of IMPORT directive itself (load source if needed, assemble it in isolation…).
  • Impeva: Evaluation of label not found in host source: check if it's defined in one imported source.
  • Deps (right now part of cache?): Track dependencies (which source are imported from host source, transitively).
  • Symb: Symbol table. Not the symbols themselves (see aap for that), but ID -> Value table.
  • Visu: Find back to which source line a given address correspond (for source view in trace).
  • Asseto: Link between ass and asset in bricbrac rom, for LOAD directive. + Case insensitive NT string comparison
  • Cocopy: Handle code cache.

In monogams rom.

  • tr: transparent z80 emulation for trace.
  • trui: trqce/debugeur UI.
  • mon: Monogams main loop (command handling).
  • monui: UI routines for mon.
  • monhelp: Utility routines for mon (memory handling, far calls to other modules).
  • rsx: execution RSX.
Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License