1
0
Files
h8-536-decoder/docs/pt2-copy-state-machine.md
2026-05-27 11:50:10 +10:00

4.5 KiB

PT2 Copy State Machine

This is a focused reference for the COPY behavior seen on the RCP LCD and traced in the ROM.

Known Entry Points

Serial Start / Progress

Frame:

05 00 6D 00 00 32
00 00 6D 00 00 37  ; family-00 set/queue form to test

ROM path:

  • Command 5 accepts selector 0x006D at BD80-BDBF.
  • The selector is queued through BE70.
  • Selector 0x006D dispatches to H'3015.

Observed effects from forced decode:

  • Sets F731.7.
  • Sets F795.6/F795.7.
  • Loads F798=H'C8.
  • Sets display selector F732=H'1903.
  • Sets FB02=H'64.
  • Calls the display/report bridge at 48FA.
  • Sets F76E.6.

LCD dispatch:

  • F732 high byte 0x19 selects 493E[0x19] -> H'930A.
  • The local table at H'931C maps substate 0x03 to H'9F6A.
  • H'9F6A builds COPY / IN PROGRESS.

Serial Complete / Exit

Frame:

05 00 6C 00 00 33
00 00 6C 00 00 36  ; family-00 set/queue form observed during active report drain

ROM path:

  • Command 5 accepts selector 0x006C at BD80-BDBF.
  • The selector is queued through BE70.
  • Selector 0x006C dispatches to H'2FAF.

Observed effects from forced decode:

  • Manipulates F76E, F795, F797, and F799.
  • Can set display selector F732=H'1904.
  • Sets FB02=H'14.
  • Calls the display/report bridge at 48FA.

LCD dispatch:

  • F732 high byte 0x19 selects 493E[0x19] -> H'930A.
  • The local table at H'931C maps substate 0x04 to H'9FDA.
  • H'9FDA builds COPY / COMPLETED.

RCP-Side Menu Start

ROM path:

  • OTHERS menu page: 493E[0x01] -> H'631C.
  • Local page table: H'632E.
  • COPY TO SLAVES entry handler: H'6FF0.

Required gates:

  • The entry descriptor before H'6FF0 requires E400[0x0015] != 0.
  • The local COPY action branch requires F770.2 and F791.7.

Local branch effects:

  • Sets F76E.6.
  • Sets F795.7.
  • Sets F731.7.
  • Loads F798=H'C8.
  • Sets F711.7.
  • Loads F726=H'64.
  • Calls loc_5500.
  • Displays COPY TO SLAVES.

If F770.2 is set while F791.7 is clear, the ROM diverts through H'704C to a SET RCP / MASTER display path instead of starting copy.

Working State Model

State Likely indicators Entry Exit
Idle / no copy F731.7 clear Boot, timeout, or completion cleanup 0x006D or local COPY branch
Copy in progress F731.7, F795.6/F795.7, F798 live, F732=H'1903 05 00 6D 00 00 32 or local COPY branch 0x006C in the live window, or timer expiry
Copy completed F732=H'1904 05 00 6C 00 00 33 while copy flags are live Display/session timeout or next state update
Timeout / not active F731.7 cleared by timer path F797 or F798 reaches zero Normal CONNECT recovery traffic

Bench Results

Observed on the real panel:

006C alone                      -> CONNECT OK -> blank
006D alone                      -> CONNECT OK -> COPY IN PROGRESS -> CONNECT NOT ACT
006D -> 006C after 250 ms       -> COPY IN PROGRESS -> COPY COMPLETED
006D -> 006C after 1.0-1.5 s    -> COPY IN PROGRESS -> COPY COMPLETED
006D -> 006C after 2.0-2.5 s    -> COPY IN PROGRESS -> CONNECT NOT ACT
006D repeated, then 006C        -> COPY IN PROGRESS held longer -> COPY COMPLETED
006D repeated without 006C      -> COPY IN PROGRESS -> CONNECT NOT ACT

Family-00 comparison run on 2026-05-27:

00 00 6D 00 00 37 -> 00 00 6C 00 00 36
  -> immediate 04 00 6D / 04 00 6C table readbacks
  -> no command-5-like 01 00 02 / 02 00 04 response rhythm

05 00 6D 00 00 32 -> 05 00 6C 00 00 33
  -> 01 00 02 responses after 006D
  -> 02 00 04 responses after 006C

This suggests the family-00 forms update/read back selector values but should not be treated as equivalent to the command-5 COPY side-effect selectors unless an LCD observation proves otherwise.

Current interpretation:

  • 0x006D is a copy-start/progress-window refresh selector.
  • 0x006C is a completion/exit selector that only behaves cleanly while the copy window is live.
  • The observed 00 00 6C 00 00 36 frame is copy-related, but should not be read as "COPY COMPLETED" by itself.
  • The copy window is transient and timer-controlled.
  • The panel does not treat 0x006C as a stateless "show completed" command.

Open Questions

  • What sets F791.7 during normal CCU/RCP operation?
  • What exact official PT2 name belongs to selectors 0x006C, 0x006D, and 0x006E?
  • Whether 0x006E is a copy cancel/error sibling or an unrelated special selector.
  • Whether the CCU sends repeated progress refreshes during a real COPY TO SLAVES operation.