fix/serial-protocol #1

Merged
colorful merged 3 commits from fix/serial-protocol into master 2026-10-30 03:54:16 -07:00
Owner
No description provided.
- Discard unread input before each operation and drain the line after C0.
  The box sends one extra line after a micro-ROM refresh (capture §11.1),
  which previously broke the next step/refresh/handshake.
- Send one byte at a time with a 10 ms pause by default, matching the
  original SendData + Sleep(10); uploads are unacknowledged and have no
  flow control.
- Keep received bytes unchanged (ParityReplace = 0) and fail the operation
  when the port reports parity/framing/overrun errors instead of silently
  turning a byte into 0x3F.
- Simulator now parses a byte stream, models the lagging ROM replies and
  remembers A0/A1 uploads; it no longer leaks semaphore counts on reconnect.
- Add cross-platform DvccLab.Tests (net10.0, C# 7.3) outside the solution.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- $P is a program-RAM byte (address 2 + value 2, sent as A0+4 chars) and
  $M a micro-ROM row (row address 2 + microinstruction 6, sent as A1+8
  chars). Every sample file numbers both contiguously from 00, and ROM row
  n reads back as the 6 data digits. Bytes on the wire are unchanged; the
  records are renamed ProgramRamWriteRecord / MicroRomWriteRecord.
- RefreshAsync takes a row count (RAM <= 256, ROM <= 255). The UI keeps
  21/16 as defaults and reads up to the highest address the loaded or
  uploaded file writes, so uploads can be verified by reading them back.
- Handshake retries send C0O like the original; connect and the
  post-upload handshake share one implementation.
- Tests: all 12 sample files parse, round-trip and are contiguous; 8259T
  upload matches the captured A1 bytes. Add Net48Check, a compile-only
  net48 build of all sources (including WinForms) for non-Windows hosts.
- README / help text / analysis doc §13.11 updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- After a program-RAM refresh, drop table rows beyond the rows just read so
  values from an earlier, longer refresh are not shown as current results.
- Define the highest address on the record types (program RAM FF,
  micro-ROM FE) and derive DeviceSession's refresh limits from them.
  Micro-ROM row n is read as @(101+n), so row FF would need @200, outside
  the captured @1xx range; $MFF is now rejected when reading, editing,
  saving and uploading instead of being uploaded but never readable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
colorful merged commit 823ec00bb7 into master 2026-10-30 03:54:16 -07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
colorful/DVCC!1
No description provided.