mirror of
https://github.com/st3fan/ewm.git
synced 2026-10-25 02:02:15 +00:00
- Benches: cpu_bench.c and mem_bench.c ported as plain std::time
cargo benches (harness = false, no criterion), same output formats
so C and Rust numbers compare directly. The mem addressing helpers
in ins.rs become pub, mirroring mem.h. Numbers recorded in
REWRITE.md: parity or better on most paths (Rust ADC 2x faster,
JSR 1.7x faster; ind* modes ~2.5x slower from dyn Bus dispatch —
all orders of magnitude beyond the 1.023 MHz requirement).
- --trace wired end to end: Cpu grows a trace sink written before
each step via the fmt.rs formatters ('PC: disassembly state');
both frontends open it from --trace[=file]. In C the write path
was dead code — recorded as a documented divergence. Unit-tested
against exact expected lines, and smoke-tested (767k lines from a
3s replica1 run, matching the Woz monitor reset sequence).
- --strict audited: accepted but inert at runtime in both C and Rust
(the only runtime caller of irq/nmi discards the error) — recorded
as quirk #7.
- REWRITE.md: flag-by-flag and feature-by-feature parity checklist,
a new 'Documented divergences' section (exact --flag parsing, no
PC in unexpected-I/O messages, frame-sampled joystick, working
--trace, Rust-only --screenshot, the skipped dsk.c OOB write,
no Lua), bench numbers, Phase 8 -> Done.
- README: 'Building the Rust version' section.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>