# Architectural Consolidation: Zero-Overhead Sourceless ColorForth

This document serves as the master blueprint for the research and curation phase, synthesizing the findings from Timothy Lottes, Onat Türkçüoğlu, and related high-performance minimalist systems.

## 1. Core Philosophy
*   **Sourceless:** The "source of truth" is a 32-bit token array, not a text file. No string parsing occurs at runtime.
*   **Zero-Overhead:** Instant iteration (<5ms compilation) by emitting machine code directly from tokens.
*   **Bounded Complexity:** Force complexity into data structures rather than code logic.
*   **Hardware Locality:** Treat the register file as a global namespace; minimize or eliminate the data stack.

## 2. Lottes' x68 Architecture (The Frontend/Editor)
*   **32-Bit Instruction Granularity:** Every x86-64 instruction is padded to exactly 4 bytes (or multiples thereof) using ignored prefixes and multi-byte NOPs.
    *   *Example:* `RET` (0xC3) -> `C3 90 90 90`.
*   **Token Format:** 32-bit words consisting of:
    *   **28 Bits:** Compressed name/string or value.
    *   **4 Bits:** Semantic Tag (Opcode, Abs Addr, Rel Addr, Immediate, etc.).
*   **Annotation Overlay:** A parallel memory layer (e.g., 64-bit per token) stores metadata for the editor (colors, names, formatting tags) without polluting the executable.
*   **Tooling Recommendation:** **ImHex** with a custom `.hexpat` pattern language can serve as the visual frontend for this annotation overlay.

## 3. Onat's VAMP/KYRA Architecture (The Runtime/Codegen)
*   **2-Item Register Stack:** Uses `RAX` and `RDX` as a tiny, hardware-resident stack.
    *   **The Swap / Magenta Pipe:** A definition boundary implicitly emits `RET` (to close the last block) followed by `xchg rax, rdx` (1-byte: `48 87 C2` or `48 92`) to rotate the "top of stack" for the new block.
*   **Aliased Global Namespace:** The CPU register file is treated as a shared, aliased memory space for functions.
*   **Functions as Blocks:** Words are "free of arguments and returns" in the traditional sense.
*   **Preemptive Scatter ("Tape Drive"):** Arguments are pre-placed into fixed, contiguous memory slots ("the tape") by the compiler/loader before execution. This eliminates "argument gathering" during function calls.
*   **The FFI Dance (C-ABI Integration):** To call OS APIs (like WinAPI or Vulkan), the hardware stack pointer (`RSP`) must be strictly 16-byte aligned. Custom macros (like `CCALL`) must save state, align `RSP`, map the 2-register stack into C-ABI registers (`RCX`, `RDX`, `R8`, `R9`), execute the `CALL`, and restore `RSP`.

## 4. Implementation Components
*   **Emitter:** **Zydis Encoder API**. Zero-allocation, sub-5ms instruction generation.
*   **Live Reload:** **Hot Runtime Linking** (Fredriksson style). Atomic pointer swapping at main-loop "safe points" to patch code in-place.
*   **Threading Model:** **Direct Threaded Code (DTC)** for the initial dictionary/execution token (`xt`) baseline.
*   **Wasm Parallels:** WebAssembly's linear memory and binary sectioning provide a modern reference for the "tape drive" and fixed-offset load/store model.

## 5. Visual Semantics (ColorForth Mapping)
*   **RED:** Define new word (Dictionary entry).
*   **GREEN:** Compile word into current definition.
*   **YELLOW/ORANGE:** Immediate execution (Macros/Editor commands).
*   **CYAN/BLUE:** Variables, Addresses, Layout.
*   **WHITE/DIM:** Comments, Annotations, UI.
*   **MAGENTA:** Pointers, State modifiers.

---
*Curation Phase Status: COMPLETE*
*Ready for Strategy Phase: Pending Directive*
