mirror of
https://github.com/st3fan/ewm.git
synced 2026-10-25 02:02:15 +00:00
ewm two and ewm boo run windowed; the frontend is feature-complete against the C binary (minus Lua, by decision): - ewm/src/scr.rs: scr.c — TEXT with interleaved rows and flashing, LGR 16-color blocks, HGR in green monochrome or color (including the fringing fix from #187: adjacent-pixel white detection and column-parity coloring), mixed mode, page 2. Rendering is pure pixels (no SDL) so the golden screenshot gate runs headless in CI; the loop uploads the buffer as a streaming texture. Includes a dependency-free BMP encoder for --screenshot and the golden test. - ewm/src/snd.rs: snd.c (#188) — the core's cycle-stamped $C030 toggles replay into a square-wave sample buffer queued to SDL, with the same 100ms backpressure check. - ewm/src/two.rs: the SDL loop of two.c — fixed 40 fps step with 1023000/fps cycle bursts, --drive1/--drive2/--color/--fps/--memory/ --trace/--strict/--debug, controller buttons and joystick paddles, the key mapping (with two.c's TAB fallthrough and alt-keyup-only button clearing), Cmd-Esc reset, Cmd-Return fullscreen, Cmd-P pause with the tty overlay, Cmd-I status bar with the fake ~1.023 MHz display (quirk #3) and drive lights, and the hidden --screenshot=<path> debug flag (BMP after 120 frames, then exit). - ewm/src/boo.rs: boo.c — the bootloader menu; main.rs dispatches one/two/boo with no args running boo, as ewm.c does. - Golden gate: rust/ewm/golden/two-boot.bmp is the System Master boot screen rendered after a fixed 100M cycles; the test boot_screen_matches_golden_bmp re-renders and compares byte for byte (regenerate with EWM_WRITE_GOLDEN=1). - Core: Two::ram() read access for the renderers, extra --memory regions (dispatched after base RAM like the C fast path), and Dsk::active_drive() for the drive lights. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>