updates
This commit is contained in:
78
docs/pt2-iris-mblack-link-rom-trace.md
Normal file
78
docs/pt2-iris-mblack-link-rom-trace.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# PT2 IRIS/M.BLACK LINK ROM Trace
|
||||
|
||||
This note records the ROM evidence for the bench-visible
|
||||
`IRIS/M.BLACK LINK` lamp.
|
||||
|
||||
## Confirmed Host Trigger
|
||||
|
||||
The isolated bench trigger is:
|
||||
|
||||
```text
|
||||
00 00 13 40 00 09 ; command 0, selector 0x0013, value 0x4000
|
||||
```
|
||||
|
||||
Command 0 mirrors nonzero selector writes into both `E000[selector]` and
|
||||
`E800[selector]`, then queues the selector for internal processing. For this
|
||||
frame that means:
|
||||
|
||||
```text
|
||||
E000[0x0013] = 0x4000
|
||||
E800[0x0013] = 0x4000
|
||||
```
|
||||
|
||||
The current-table word is `E800 + 2 * 0x0013 = H'E826`.
|
||||
|
||||
## Selector Handler
|
||||
|
||||
The selector dispatch table maps selector `0x0013` to `H'2E06`.
|
||||
|
||||
Focused linear decode:
|
||||
|
||||
```text
|
||||
H'2E06 BTST.W #15, @H'E826
|
||||
set/clear F791.6 and F713.4
|
||||
|
||||
H'2E1E BTST.W #14, @H'E826
|
||||
set/clear F791.5 and F716.7
|
||||
```
|
||||
|
||||
Bench labels:
|
||||
|
||||
| Selector value | ROM latch bits | Visible result |
|
||||
| --- | --- | --- |
|
||||
| `0x8000` | `F791.6`, `F713.4` | far-right `SLAVE` lamp |
|
||||
| `0x4000` | `F791.5`, `F716.7` | `IRIS/M.BLACK LINK` lamp |
|
||||
| `0x0000` | clears both bit groups through `H'2E06` | both latch groups clear |
|
||||
|
||||
## Other Trigger Path
|
||||
|
||||
There is also a local panel-input path:
|
||||
|
||||
```text
|
||||
F006.7 / F6DB.7 -> H'200E -> H'E826 bit14 -> loc_3E54 queues selector 0x0013
|
||||
```
|
||||
|
||||
At `H'200E`, the ROM checks `F6DB.7` and requires `F731 <= 3`. It then uses
|
||||
`F791.5` as a current-state toggle:
|
||||
|
||||
- if `F791.5` is clear, it sets `H'E826.14`,
|
||||
- if `F791.5` is set, it clears `H'E826.14`,
|
||||
- in both cases it calls `loc_3E54` with selector `0x0013`.
|
||||
|
||||
This is not a separate lamp driver. It feeds the same `E800[0x0013].14`
|
||||
state consumed by the selector handler.
|
||||
|
||||
## Practical Meaning
|
||||
|
||||
The strongest current model is:
|
||||
|
||||
- CCU/host can drive the lamp directly by sending selector `0x0013` value
|
||||
`0x4000` through command 0.
|
||||
- The panel can also toggle/report the same state through a local input lane,
|
||||
but only when the relevant session/page gate is open.
|
||||
- No other decoded selector currently appears to directly set the same
|
||||
`F791.5` plus `F716.7` latch pair.
|
||||
|
||||
Generated semantics now label selector `0x0013`, `E800[0x0013]`, and the
|
||||
`IRIS/M.BLACK LINK` / `SLAVE` bit meanings so pseudo-code output does not leave
|
||||
this as a generic table write.
|
||||
Reference in New Issue
Block a user