mirror of
https://github.com/st3fan/ewm.git
synced 2026-10-25 02:02:15 +00:00
* Rename the Enhanced //e identifiers (E3 prep) Mechanical prep for the original //e: the Rust variants that name the Enhanced machine become `TwoType::Apple2EEnhanced` / `Model::TwoEEnhanced`, freeing the plain `Apple2E` / `TwoE` for the original //e that the next commit adds. Kickoff decision (owner): the plain name is the *original* machine, matching `Two` = original ][ and the config tokens (apple2e = original, apple2enhanced = Enhanced). Word-boundary-guarded rename across ewm/src + ewm/tests (86 Apple2E, 11 TwoE). No behavior change: the serde tokens are untouched (Model::TwoEEnhanced keeps rename = "apple2enhanced"), so the schema is byte-unchanged, and the golden-BMP //e screenshots are identical. cargo test 361 pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Add the original (unenhanced) //e machine (//e original-plan E3) `model: apple2e` is now a real machine: a 6502 //e with the unenhanced 342-0134/0135 system ROMs and the 342-0133 video ROM, alongside the Enhanced //e (65C02, 342-0303/0304, MouseText). Kickoff naming (owner): `Model::TwoE` / `TwoType::Apple2E` = the original (the plain name), the Enhanced kept the `*Enhanced` names from the prep commit. - config: `Model::TwoE` (token `apple2e`) joins the enum; family / token / two_type / the aux + slot-0 //e validation all cover both //e models. - two.rs: `TwoType::Apple2E` + `TwoType::is_iie()`; `new_2e` takes the variant and selects (6502, unenhanced ROMs) or (65C02, Enhanced ROMs); `IouE::new` takes the CD/EF halves. The `Persist` INFO string and `--print-config` mapping gain the `apple2e` arm. Schemas regenerated. - rendering: `Scr` holds both //e glyph sets and picks by variant; the five `== Apple2E` //e-detection sites become `is_iie()` (the original and Enhanced //e render identically apart from the character ROM). The one real subtlety — the original //e is NOT a plain ROM swap. Its video ROM stores plain upper case at `$40-$5F`, but the original //e *displays* inverse upper case there (the glyphs Apple later replaced with MouseText). So `alternate_index` gains a `mousetext` flag: the Enhanced set reads MouseText straight from ROM, the original inverts the upper-case glyph — the same steady inverse glyph the primary set flashes. (`render_txt_row_80` also dropped its redundant `line_offset` arg, derived from `row`, to stay under clippy's argument limit.) Gates (all green): the Enhanced //e is byte-identical — the golden-BMP screenshots don't move; a golden pins the composed original-//e $E000-$FFFF to the unenhanced EF half (and different from the Enhanced); the bare original //e cold-boots to `]` on the 6502; and a char test proves the alternate $40-$5F is inverse upper case, distinct from Enhanced MouseText. cargo fmt / clippy -D warnings / cargo test (364 pass). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>