Commit Graph
3 Commits
Author SHA1 Message Date
CydandClaude Opus 4.8 79eb53253e vPLASMA (standalone): vRIO-style picker, real firmware demo, PD5 fix
- Connection: drop the hardwired COM12; replicate vRIO's endpoint picker —
  a combo of pipe:vplasma (the DOSBox-X namedpipe backend) + the COM ports,
  with Rescan and Open/Close. Nothing opens automatically; baud straps drive
  a COM open.
- Demo (jumper 6) now runs the REAL firmware demonstration, not the vPLASMA
  self-test. The 10 demo screens are extracted verbatim from the ROM demo
  pointer table ($8000) into PlasmaFirmwareDemo.cs and looped through the
  parser. Added ESC I / ESC i (draw/display page select) as 1-operand
  commands — consumed but not acted on in the single-page model — so the
  demo's page commands don't desync the stream.
- Orientation (jumper 4 / PD5) polarity fixed: unstrapped = horizontal
  128x32 (the normal cockpit setup, now the default), installed = vertical.

Verified: 29 unit tests pass (2 new: demo replay, page-select operand); the
real demo screens render with the correct text/positioning/fonts, and the
picker lists pipe:vplasma + COM ports with no auto-open.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 19:42:55 -05:00
CydandClaude Opus 4.8 49e88fbe20 vPLASMA: fold in the real ROM fonts and firmware-confirmed commands
Replaces the guessed font/cursor model with what the firmware dump proved:

- The 8 real Babcock ROM fonts, extracted from tms27pc512.BIN into
  PlasmaFonts.cs (6x8, 6x10, 7x10, 12x16, 12x20). Drops the public-domain
  5x7 stand-in and PlasmaFont.cs.
- Pixel-addressed cursor with the real positioning commands: ESC Q (row Y,
  0-31) and ESC R (column X, 0-127), matching the firmware's range checks.
  Cursor motion (BS/HT/LF/VT/CR) now moves by font pixels, not cells.
- ESC K selects fonts 0-7 (out-of-range ignored, per firmware); ESC H
  attributes are the low 4 bits (half/underline/reverse/flash).

Deferred (documented in FIRMWARE.md): the 10 double-buffered pages
(ESC I/i) and vector-graphics primitives (ESC A-F); vPLASMA keeps a
single-page model for now.

Verified: 24 unit tests pass; the three self-test pages render the real
glyphs (big font 4 banner, full charset in font 0, graphics). Next: begin
the modern-parts hardware replica, with this as the reference firmware.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 17:39:07 -05:00
CydandClaude Fable 5 a1b7dae3da vPLASMA: companion app emulating the cockpit plasma display
The cockpit's second serial device joins vRIO: the 128x32 dot-matrix
plasma on COM2 (9600 8N1) that the game draws mission text and status
graphics on. VPlasma.App opens the device end of a COM port, decodes
the display's command stream, and renders the matrix in plasma orange.

The command set is recovered from two Tesla 4.10 artifacts: the game's
driver (L4PLASMA.CPP — ESC P packed-bitmap row writes, ESC G 0 cursor
hide at boot) and the factory test tool PLASMA.EXE, whose data segment
pairs each command literal with its printf description (BS/HT/LF/VT/CR
motion, ESC @ clear, ESC L home, ESC G cursor, ESC K fonts, ESC H
attributes: intensity/underline/reverse/flash). Text renders through
the classic public-domain 5x7 set standing in for the lost ROM glyphs;
fonts 0-3 give 21x4 cells, fonts 4-7 the doubled 10x2. A Self test
cycles banner/charset/graphics pages through the same parser the wire
feeds, and the wire log shows every decoded command.

Verified end-to-end over the second com0com pair (host writing COM2,
vPLASMA listening on COM12). The verify skill gains the cross-process
combo-box lesson: string-carrying CB_* messages hang across processes,
so select ports by locally computed index via CB_SETCURSEL.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 14:22:00 -05:00