vPLASMA: make jumpers 4 (orientation) and 5 (display test) functional

Both now do what the firmware does, at the device level so the shared
PlasmaCanvas (and vRIO's embedded glass) are untouched:

- Jumper 4 → display orientation. VPlasmaDevice gains a PlasmaOrientation
  property; in Vertical the logical space is 32x128 and every dot is rotated
  onto the physical 128x32 glass via a new Plot() helper that all drawing
  (text, cursor, ESC P graphics, ESC Q/R bounds) now goes through. Jumper 4
  installed = horizontal (the normal cockpit setup, default), removed =
  vertical. Changing it re-inits the panel, like the boot strap read.
- Jumper 5 → ShowTestPattern(): lights every dot (the power-on dead-dot
  check the firmware runs at $B888). Removing the jumper clears it.

The config panel wires both up and shows the live orientation in the
counters. 27 unit tests pass (3 new: vertical rotation mapping, orientation
re-init, test pattern), including the unchanged horizontal path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-16 18:26:51 -05:00
co-authored by Claude Opus 4.8
parent d8ab0ffe49
commit 95b701ae0a
4 changed files with 193 additions and 53 deletions
+7 -4
View File
@@ -131,10 +131,13 @@ at `$8000`). It's how the new `ESC R/I/Q/i/K` commands were first spotted, e.g.
guessed behavior. vPLASMA now uses the **8 real ROM fonts** (extracted to
`src/VPlasma.Core/Device/PlasmaFonts.cs`), a **pixel-addressed cursor** with
the real `ESC Q` (row) / `ESC R` (column) positioning, `ESC K` 07 font
select, and `ESC H` attributes as the low 4 bits. Verified: 24 unit tests +
the three self-test pages render the real glyphs. Still deferred (documented,
single-page model retained): the 10 double-buffered pages (`ESC I`/`ESC i`)
and the vector-graphics primitives (`ESC A``F`).
select, and `ESC H` attributes as the low 4 bits. The standalone app also
implements the functional JP1 jumpers — baud (1+2), **orientation (4:
horizontal 128×32 / vertical 32×128)**, **display test (5: all-dot pattern)**,
and demo (6). Verified: 27 unit tests + the self-test pages render the real
glyphs. Still deferred (documented, single-page model retained): the 10
double-buffered pages (`ESC I`/`ESC i`) and the vector-graphics primitives
(`ESC A``F`).
**For the replica:** this *is* the spec. The firmware confirms a clean model —
a byte-stream command parser, a 512-byte-per-page frame buffer, 10 pages with