1
0
This commit is contained in:
Aiden
2026-05-27 21:37:50 +10:00
parent 21f0e455ee
commit 4364d0ed48
54 changed files with 30241 additions and 191 deletions

View File

@@ -1820,7 +1820,7 @@
]
},
"is_noop": false,
"known_report": "0x0013",
"known_report": "IRIS/M.BLACK LINK",
"shadow": "F6DB",
"source": "F006",
"table_address": 10180,
@@ -2881,6 +2881,38 @@
"table_address_hex": "H'274C",
"table_offset": 70
},
{
"bank": "IRQ3 A8 panel byte path",
"bit": 7,
"dirty": "F6F3.3",
"dispatcher": "1BF8",
"handler": 8206,
"handler_hex": "H'200E",
"handler_summary": {
"instruction_count_scanned": 20,
"level_tests": [
"F6DB.7"
],
"report_selectors": [
19
],
"report_selectors_hex": [
"0x0013"
],
"state_writes": [
"E826"
]
},
"is_noop": false,
"known_report": "IRIS/M.BLACK LINK",
"name": "IRIS/M.BLACK LINK",
"selector": 19,
"shadow": "F6DB",
"source": "F006",
"table_address": 10180,
"table_address_hex": "H'27C4",
"table_offset": 190
},
{
"bank": "IRQ3 A8 panel byte path",
"bit": 5,

View File

@@ -15,6 +15,16 @@ The key table is the indirect handler table at `H'2706`, used by `loc_1C0E` afte
- Current-level tests: F6D4.3
- State writes: E80E
### IRIS/M.BLACK LINK
- Emitted selector: `0x0013`
- Handler: `H'200E`
- Edge source: `F006 -> F6DB` via `F6F3.3`
- Trigger bit: `F6DB.7`
- Table slot: `H'27C4` -> `H'200E`
- Current-level tests: F6DB.7
- State writes: E826
### CALL
- Emitted selector: `0x0015`

View File

@@ -0,0 +1,200 @@
; H8/536 ROM disassembly
; input: ROM\M27C512@DIP28_1.BIN
; bytes: 65536
; vector mode: min
; analysis: linear sweep
;
; Notes from the manual:
; - H8/536 uses the H8/500 CPU instruction set.
; - In minimum mode the reset vector at H'0000-H'0001 is a 16-bit PC.
; - The register field is H'FE80-H'FFFF; names below come from appendix B.
; - @aa:8 short absolute operands use BR as the upper address byte.
; - SCI baud inference uses section 14.2.8 BRR formulas when SMR/BRR are known.
; - LCD inference treats E-clock H'F200/H'F201 accesses as status/control and data candidates.
; Memory Map
; H'0000-H'009F exception_vectors vectors
; H'00A0-H'00FF dtc_vectors dtc_vectors
; H'0100-H'F67F program_or_external program
; H'F680-H'FE7F on_chip_ram ram
; H'FE80-H'FFFF register_field registers
; Vectors
; H'0000 reset -> vec_reset_1000 (H'1000)
; H'0004 invalid_instruction -> vec_reset_1000 (H'1000)
; H'0006 zero_divide -> vec_reset_1000 (H'1000)
; H'0008 trap_vs -> vec_reset_1000 (H'1000)
; H'0010 address_error -> vec_reset_1000 (H'1000)
; H'0012 trace -> vec_reset_1000 (H'1000)
; H'0016 nmi -> vec_nmi_4393 (H'4393)
; H'0020 trapa_0 -> vec_reset_1000 (H'1000)
; H'0022 trapa_1 -> vec_reset_1000 (H'1000)
; H'0024 trapa_2 -> vec_reset_1000 (H'1000)
; H'0026 trapa_3 -> vec_reset_1000 (H'1000)
; H'0028 trapa_4 -> vec_reset_1000 (H'1000)
; H'002A trapa_5 -> vec_reset_1000 (H'1000)
; H'002C trapa_6 -> vec_reset_1000 (H'1000)
; H'002E trapa_7 -> vec_reset_1000 (H'1000)
; H'0030 trapa_8 -> vec_reset_1000 (H'1000)
; H'0032 trapa_9 -> vec_reset_1000 (H'1000)
; H'0034 trapa_a -> vec_reset_1000 (H'1000)
; H'0036 trapa_b -> vec_reset_1000 (H'1000)
; H'0038 trapa_c -> vec_reset_1000 (H'1000)
; H'003A trapa_d -> vec_reset_1000 (H'1000)
; H'003C trapa_e -> vec_reset_1000 (H'1000)
; H'003E trapa_f -> vec_reset_1000 (H'1000)
; H'0040 irq0 -> vec_reset_1000 (H'1000)
; H'0042 interval_timer -> vec_interval_timer_BFC4 (H'BFC4)
; H'0048 irq1 -> vec_reset_1000 (H'1000)
; H'0050 irq2 -> vec_reset_1000 (H'1000)
; H'0052 irq3 -> vec_irq3_3C30 (H'3C30)
; H'0058 irq4 -> vec_irq4_3AC7 (H'3AC7)
; H'005A irq5 -> vec_reset_1000 (H'1000)
; H'0062 frt1_ocia -> vec_frt1_ocia_BEEA (H'BEEA)
; H'006A frt2_ocia -> vec_frt2_ocia_BF23 (H'BF23)
; H'0080 sci1_eri -> vec_sci1_eri_BB57 (H'BB57)
; H'0082 sci1_rxi -> vec_sci1_rxi_BB67 (H'BB67)
; H'0084 sci1_txi -> vec_sci1_txi_BA84 (H'BA84)
; H'0090 ad_adi -> vec_ad_adi_3D99 (H'3D99)
; Symbols
; mem_E026 H'E026 program_or_external memory r=4 w=0 width=word
; mem_E02A H'E02A program_or_external memory r=1 w=0 width=word
; mem_E046 H'E046 program_or_external memory r=0 w=1 width=word
; mem_E110 H'E110 program_or_external memory r=1 w=0 width=word
; mem_E134 H'E134 program_or_external memory r=1 w=0 width=word
; mem_E824 H'E824 program_or_external memory r=0 w=1 width=word
; mem_E826 H'E826 program_or_external memory r=0 w=4 width=word
; mem_E82A H'E82A program_or_external memory r=0 w=1 width=word
; mem_E8D6 H'E8D6 program_or_external memory r=0 w=1 width=word
; ram_F6D4 H'F6D4 on_chip_ram ram r=1 w=0 width=byte
; ram_F6DB H'F6DB on_chip_ram ram r=3 w=0 width=byte
; ram_F713 H'F713 on_chip_ram ram r=2 w=2 width=byte
; ram_F726 H'F726 on_chip_ram ram r=0 w=1 width=byte
; ram_F730 H'F730 on_chip_ram ram r=1 w=0 width=byte
; ram_F731 H'F731 on_chip_ram ram r=5 w=2 width=byte
; ram_F732 H'F732 on_chip_ram ram r=0 w=1 width=word
; ram_F76A H'F76A on_chip_ram ram r=0 w=1 width=word
; ram_F76E H'F76E on_chip_ram ram r=1 w=1 width=byte
; ram_F791 H'F791 on_chip_ram ram r=2 w=1 width=byte
; ram_F798 H'F798 on_chip_ram ram r=0 w=2 width=byte
; ram_FB03 H'FB03 on_chip_ram ram r=1 w=1 width=byte
; Board Profile
; Board trace ties the H8/536 SCI1 pins to a MAX202 RS232 transceiver.
; H8 pin 66 P95/TXD (TXD) -> MAX202 pin 11
; H8 pin 67 P96/RXD (RXD) -> MAX202 pin 12
; SCI2 pin routing is disabled by SYSCR2.P9SCI2E=0 in the observed setup.
; LCD/Text Scan
; search 'CONNECT': not literal, hits=0
1FC0: F7 13 C5 1D ROTR.B @(H'13C5,R7)
1FC4: E8 24 07 80 00 MOV:G.W #H'8000, @(H'24,R0)
1FC9: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
1FCB: 5B 40 12 MOV:I.W #H'4012, R3 ; dataflow R3=H'4012
1FCE: 1E 1E 83 BSR loc_3E54
1FD1: 19 RTS
1FD2: 15 F7 91 D7 BCLR.B #7, @H'F791 ; refs ram_F791 in on_chip_ram
1FD6: 15 F7 13 D5 BCLR.B #5, @H'F713 ; refs ram_F713 in on_chip_ram
1FDA: 1D E8 24 06 00 MOV:G.W #H'00, @H'E824 ; refs mem_E824 in program_or_external
1FDF: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
1FE1: 5B 40 12 MOV:I.W #H'4012, R3 ; dataflow R3=H'4012
1FE4: 1E 1E 6D BSR loc_3E54
1FE7: 19 RTS
1FE8: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external
1FEC: A8 CF BSET.W #15, R0
1FEE: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external
1FF2: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
1FF4: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013
1FF7: 1E 1E 5A BSR loc_3E54
1FFA: 19 RTS
1FFB: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external
1FFF: A8 DF BCLR.W #15, R0
2001: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external
2005: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
2007: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013
200A: 1E 1E 47 BSR loc_3E54
200D: 19 RTS
200E: 15 F6 DB F7 BTST.B #7, @H'F6DB ; refs ram_F6DB in on_chip_ram
2012: 27 33 BEQ loc_2047
2014: 15 F7 31 04 03 CMP:G.B #H'03, @H'F731 ; refs ram_F731 in on_chip_ram
2019: 22 2C BHI loc_2047
201B: 15 F7 91 F5 BTST.B #5, @H'F791 ; refs ram_F791 in on_chip_ram
201F: 26 14 BNE loc_2035
2021: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external
2025: A8 CE BSET.W #14, R0
2027: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external
202B: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
202D: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013
2030: 1E 1E 21 BSR loc_3E54
2033: 20 12 BRA loc_2047
loc_2035:
2035: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external
2039: A8 DE BCLR.W #14, R0
203B: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external
203F: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
2041: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013
2044: 1E 1E 0D BSR loc_3E54
loc_2047:
2047: 19 RTS
2048: 15 F6 D4 F6 BTST.B #6, @H'F6D4 ; refs ram_F6D4 in on_chip_ram
204C: 27 52 BEQ loc_20A0
204E: 15 F7 31 04 02 CMP:G.B #H'02, @H'F731 ; refs ram_F731 in on_chip_ram
2053: 22 4B BHI loc_20A0
2055: 15 F7 30 F7 BTST.B #7, @H'F730 ; refs ram_F730 in on_chip_ram
2059: 27 19 BEQ loc_2074
205B: 1D E8 D6 07 80 00 MOV:G.W #H'8000, @H'E8D6 ; refs mem_E8D6 in program_or_external
2061: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
2063: 5B 00 6B MOV:I.W #H'006B, R3 ; dataflow R3=H'006B
2066: 1E 1D EB BSR loc_3E54
2069: 15 F7 31 C7 BSET.B #7, @H'F731 ; refs ram_F731 in on_chip_ram
206D: 15 F7 98 06 C8 MOV:G.B #H'C8, @H'F798 ; refs ram_F798 in on_chip_ram
2072: 20 2C BRA loc_20A0
loc_2074:
2074: 1D F7 32 13 CLR.W @H'F732 ; refs ram_F732 in on_chip_ram
2078: 15 FB 03 D7 BCLR.B #7, @H'FB03 ; refs ram_FB03 in on_chip_ram
207C: 1D E0 46 13 CLR.W @H'E046 ; refs mem_E046 in program_or_external
2080: 1D F7 6A 13 CLR.W @H'F76A ; refs ram_F76A in on_chip_ram
2084: 1E 28 73 BSR loc_48FA
2087: 15 F7 13 C6 BSET.B #6, @H'F713 ; refs ram_F713 in on_chip_ram
208B: 15 F7 26 06 1E MOV:G.B #H'1E, @H'F726 ; refs ram_F726 in on_chip_ram
2090: 15 F7 6E C6 BSET.B #6, @H'F76E ; refs ram_F76E in on_chip_ram
2094: 15 F7 31 C7 BSET.B #7, @H'F731 ; refs ram_F731 in on_chip_ram
2098: 15 F7 98 06 C8 MOV:G.B #H'C8, @H'F798 ; refs ram_F798 in on_chip_ram
209D: 1E 36 38 BSR loc_56D8
loc_20A0:
20A0: 19 RTS
20A1: 1D E0 2A 80 MOV:G.W @H'E02A, R0 ; refs mem_E02A in program_or_external
20A5: 15 F6 DB F5 BTST.B #5, @H'F6DB ; refs ram_F6DB in on_chip_ram
20A9: 27 04 BEQ loc_20AF
20AB: A8 CF BSET.W #15, R0
20AD: 20 02 BRA loc_20B1
loc_20AF:
20AF: A8 DF BCLR.W #15, R0
loc_20B1:
20B1: 1D E8 2A 90 MOV:G.W R0, @H'E82A ; refs mem_E82A in program_or_external
20B5: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
20B7: 5B 00 15 MOV:I.W #H'0015, R3 ; dataflow R3=H'0015
20BA: 1E 1D 97 BSR loc_3E54
20BD: 19 RTS
20BE: 15 F6 DB F3 BTST.B #3, @H'F6DB ; refs ram_F6DB in on_chip_ram
20C2: 27 2C BEQ loc_20F0
20C4: 15 F7 31 04 03 CMP:G.B #H'03, @H'F731 ; refs ram_F731 in on_chip_ram
20C9: 22 25 BHI loc_20F0
20CB: 1D E1 10 16 TST.W @H'E110 ; refs mem_E110 in program_or_external
20CF: 27 05 BEQ loc_20D6
20D1: 1E 06 14 BSR loc_26E8
20D4: 20 1A BRA loc_20F0
loc_20D6:
20D6: 1D E1 34 80 MOV:G.W @H'E134, R0 ; refs mem_E134 in program_or_external
20DA: A8 FB BTST.W #11, R0
20DC: 27 04 BEQ loc_20E2
20DE: A8 DB BCLR.W #11, R0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,135 @@
; H8/536 ROM disassembly
; input: ROM\M27C512@DIP28_1.BIN
; bytes: 65536
; vector mode: min
; analysis: linear sweep
;
; Notes from the manual:
; - H8/536 uses the H8/500 CPU instruction set.
; - In minimum mode the reset vector at H'0000-H'0001 is a 16-bit PC.
; - The register field is H'FE80-H'FFFF; names below come from appendix B.
; - @aa:8 short absolute operands use BR as the upper address byte.
; - SCI baud inference uses section 14.2.8 BRR formulas when SMR/BRR are known.
; - LCD inference treats E-clock H'F200/H'F201 accesses as status/control and data candidates.
; Memory Map
; H'0000-H'009F exception_vectors vectors
; H'00A0-H'00FF dtc_vectors dtc_vectors
; H'0100-H'F67F program_or_external program
; H'F680-H'FE7F on_chip_ram ram
; H'FE80-H'FFFF register_field registers
; Vectors
; H'0000 reset -> vec_reset_1000 (H'1000)
; H'0004 invalid_instruction -> vec_reset_1000 (H'1000)
; H'0006 zero_divide -> vec_reset_1000 (H'1000)
; H'0008 trap_vs -> vec_reset_1000 (H'1000)
; H'0010 address_error -> vec_reset_1000 (H'1000)
; H'0012 trace -> vec_reset_1000 (H'1000)
; H'0016 nmi -> vec_nmi_4393 (H'4393)
; H'0020 trapa_0 -> vec_reset_1000 (H'1000)
; H'0022 trapa_1 -> vec_reset_1000 (H'1000)
; H'0024 trapa_2 -> vec_reset_1000 (H'1000)
; H'0026 trapa_3 -> vec_reset_1000 (H'1000)
; H'0028 trapa_4 -> vec_reset_1000 (H'1000)
; H'002A trapa_5 -> vec_reset_1000 (H'1000)
; H'002C trapa_6 -> vec_reset_1000 (H'1000)
; H'002E trapa_7 -> vec_reset_1000 (H'1000)
; H'0030 trapa_8 -> vec_reset_1000 (H'1000)
; H'0032 trapa_9 -> vec_reset_1000 (H'1000)
; H'0034 trapa_a -> vec_reset_1000 (H'1000)
; H'0036 trapa_b -> vec_reset_1000 (H'1000)
; H'0038 trapa_c -> vec_reset_1000 (H'1000)
; H'003A trapa_d -> vec_reset_1000 (H'1000)
; H'003C trapa_e -> vec_reset_1000 (H'1000)
; H'003E trapa_f -> vec_reset_1000 (H'1000)
; H'0040 irq0 -> vec_reset_1000 (H'1000)
; H'0042 interval_timer -> vec_interval_timer_BFC4 (H'BFC4)
; H'0048 irq1 -> vec_reset_1000 (H'1000)
; H'0050 irq2 -> vec_reset_1000 (H'1000)
; H'0052 irq3 -> vec_irq3_3C30 (H'3C30)
; H'0058 irq4 -> vec_irq4_3AC7 (H'3AC7)
; H'005A irq5 -> vec_reset_1000 (H'1000)
; H'0062 frt1_ocia -> vec_frt1_ocia_BEEA (H'BEEA)
; H'006A frt2_ocia -> vec_frt2_ocia_BF23 (H'BF23)
; H'0080 sci1_eri -> vec_sci1_eri_BB57 (H'BB57)
; H'0082 sci1_rxi -> vec_sci1_rxi_BB67 (H'BB67)
; H'0084 sci1_txi -> vec_sci1_txi_BA84 (H'BA84)
; H'0090 ad_adi -> vec_ad_adi_3D99 (H'3D99)
; Symbols
; mem_E02E H'E02E program_or_external memory r=1 w=0 width=word
; mem_E030 H'E030 program_or_external memory r=1 w=0 width=word
; mem_E826 H'E826 program_or_external memory r=2 w=0 width=word
; mem_E82E H'E82E program_or_external memory r=0 w=1 width=word
; ram_F711 H'F711 on_chip_ram ram r=4 w=4 width=byte
; ram_F713 H'F713 on_chip_ram ram r=2 w=2 width=byte
; ram_F716 H'F716 on_chip_ram ram r=4 w=4 width=byte
; ram_F791 H'F791 on_chip_ram ram r=4 w=4 width=byte
; Board Profile
; Board trace ties the H8/536 SCI1 pins to a MAX202 RS232 transceiver.
; H8 pin 66 P95/TXD (TXD) -> MAX202 pin 11
; H8 pin 67 P96/RXD (RXD) -> MAX202 pin 12
; SCI2 pin routing is disabled by SYSCR2.P9SCI2E=0 in the observed setup.
; LCD/Text Scan
; search 'CONNECT': not literal, hits=0
2E00: 30 FE A3 BRA loc_2CA6
2E03: 30 FE A0 BRA loc_2CA6
2E06: 1D E8 26 FF BTST.W #15, @H'E826 ; refs mem_E826 in program_or_external
2E0A: 27 0A BEQ loc_2E16
2E0C: 15 F7 91 C6 BSET.B #6, @H'F791 ; refs ram_F791 in on_chip_ram
2E10: 15 F7 13 C4 BSET.B #4, @H'F713 ; refs ram_F713 in on_chip_ram
2E14: 20 08 BRA loc_2E1E
loc_2E16:
2E16: 15 F7 91 D6 BCLR.B #6, @H'F791 ; refs ram_F791 in on_chip_ram
2E1A: 15 F7 13 D4 BCLR.B #4, @H'F713 ; refs ram_F713 in on_chip_ram
loc_2E1E:
2E1E: 1D E8 26 FE BTST.W #14, @H'E826 ; refs mem_E826 in program_or_external
2E22: 27 0A BEQ loc_2E2E
2E24: 15 F7 91 C5 BSET.B #5, @H'F791 ; refs ram_F791 in on_chip_ram
2E28: 15 F7 16 C7 BSET.B #7, @H'F716 ; refs ram_F716 in on_chip_ram
2E2C: 20 08 BRA loc_2E36
loc_2E2E:
2E2E: 15 F7 91 D5 BCLR.B #5, @H'F791 ; refs ram_F791 in on_chip_ram
2E32: 15 F7 16 D7 BCLR.B #7, @H'F716 ; refs ram_F716 in on_chip_ram
loc_2E36:
2E36: 30 FE 6D BRA loc_2CA6
2E39: FC E0 00 81 MOV:G.W @(-H'2000,R4), R1
2E3D: A9 FF BTST.W #15, R1
2E3F: 26 0E BNE loc_2E4F
2E41: A9 FE BTST.W #14, R1
2E43: 26 0A BNE loc_2E4F
2E45: 15 F7 11 D0 BCLR.B #0, @H'F711 ; refs ram_F711 in on_chip_ram
2E49: 15 F7 16 D5 BCLR.B #5, @H'F716 ; refs ram_F716 in on_chip_ram
2E4D: 20 08 BRA loc_2E57
loc_2E4F:
2E4F: 15 F7 11 C0 BSET.B #0, @H'F711 ; refs ram_F711 in on_chip_ram
2E53: 15 F7 16 C5 BSET.B #5, @H'F716 ; refs ram_F716 in on_chip_ram
loc_2E57:
2E57: 30 FE 4C BRA loc_2CA6
2E5A: FC E0 00 81 MOV:G.W @(-H'2000,R4), R1
2E5E: A9 FF BTST.W #15, R1
2E60: 26 06 BNE loc_2E68
2E62: 15 F7 11 D1 BCLR.B #1, @H'F711 ; refs ram_F711 in on_chip_ram
2E66: 20 04 BRA loc_2E6C
loc_2E68:
2E68: 15 F7 11 C1 BSET.B #1, @H'F711 ; refs ram_F711 in on_chip_ram
loc_2E6C:
2E6C: 30 FE 37 BRA loc_2CA6
2E6F: 1D E0 30 81 MOV:G.W @H'E030, R1 ; refs mem_E030 in program_or_external
2E73: 1D E0 2E 71 CMP:G.W @H'E02E, R1 ; refs mem_E02E in program_or_external
2E77: 27 0C BEQ loc_2E85
2E79: 1D E8 2E 91 MOV:G.W R1, @H'E82E ; refs mem_E82E in program_or_external
2E7D: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80
2E7F: 5B 00 17 MOV:I.W #H'0017, R3 ; dataflow R3=H'0017

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
Table/Index Cross-Reference Report for build\rom_0013_handler_linear.json
=========================================================================
Static offsets are emitted only when an index register value can be derived from nearby immediate loads in the current JSON. Other indexed accesses are dynamic.
LCD correlation hints
term 'CONNECT': no LCD/text candidate hits in current decompile
term 'CONNECT: OK': no LCD/text candidate hits in current decompile
term 'CONNECT: NOT ACT': no LCD/text candidate hits in current decompile
term 'NOT ACT': no LCD/text candidate hits in current decompile
term 'COMM LINK': no LCD/text candidate hits in current decompile
term 'COMPLETED': no LCD/text candidate hits in current decompile
caveat: LCD strings can be builder/script output; absence of a literal term does not disprove runtime composition.
primary_value_table_candidate H'E000-H'E3FF (negative H'2000; direct H'F900-H'F91F)
accesses=4 reads=4 writes=0 dynamic=2
static offsets: H'002E, H'0030
functions: <no function>:4
- H'2E39 read index dynamic via R4 operand @(-H'2000,R4); <no function>; MOV:G.W @(-H'2000,R4), R1
- H'2E5A read index dynamic via R4 operand @(-H'2000,R4); <no function>; MOV:G.W @(-H'2000,R4), R1
- H'2E6F read offset H'0030 selector 0x018 -> H'E030; <no function>; MOV:G.W @H'E030, R1
- H'2E73 read offset H'002E selector 0x017 -> H'E02E; <no function>; CMP:G.W @H'E02E, R1
secondary_value_table_candidate H'E400-H'E7FF (negative H'1C00; direct H'F940-H'F95F)
accesses=0 reads=0 writes=0 dynamic=0
no references found in current JSON
current_value_table_candidate H'E800-H'EBFF (negative H'1800; direct H'F920-H'F93F)
accesses=3 reads=2 writes=1 dynamic=0
static offsets: H'0026, H'002E
functions: <no function>:3
- H'2E06 read offset H'0026 selector 0x013 -> H'E826; <no function>; BTST.W #15, @H'E826
- H'2E1E read offset H'0026 selector 0x013 -> H'E826; <no function>; BTST.W #14, @H'E826
- H'2E79 write offset H'002E selector 0x017 -> H'E82E; <no function>; MOV:G.W R1, @H'E82E
flag_table_candidate H'EC00-H'EFFF (negative H'1400; direct H'F980-H'F99F)
accesses=0 reads=0 writes=0 dynamic=0
no references found in current JSON

View File

@@ -793,6 +793,83 @@
]
},
"selector_candidates": [
{
"accesses": [
{
"access": "read",
"address_hex": "H'17D0",
"function": "loc_17C9",
"instruction": "BTST.W #12, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'1802",
"function": "loc_17FB",
"instruction": "BTST.W #12, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'183A",
"function": "loc_182D",
"instruction": "BTST.W #5, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'189E",
"function": "loc_1891",
"instruction": "BTST.W #5, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'18F4",
"function": "loc_18E7",
"instruction": "BTST.W #5, @H'E126",
"table": "primary_value_table_candidate"
}
],
"cmd1_read_frame": "01 01 13 00 00 49",
"name": "white_balance_black_flare_mode_lane",
"reasons": [
"primary_value_table_candidate read in loc_17C9: BTST.W #12, @H'E126",
"primary_value_table_candidate read in loc_17FB: BTST.W #12, @H'E126",
"primary_value_table_candidate read in loc_182D: BTST.W #5, @H'E126",
"primary_value_table_candidate read in loc_1891: BTST.W #5, @H'E126",
"primary_value_table_candidate read in loc_18E7: BTST.W #5, @H'E126",
"Bench-visible white-balance and black/flare lamp lane."
],
"score": 19,
"seed_frames": [
{
"cmd0_frame": "00 01 13 80 00 C8",
"value": 32768,
"value_hex": "0x8000"
},
{
"cmd0_frame": "00 01 13 40 00 08",
"value": 16384,
"value_hex": "0x4000"
},
{
"cmd0_frame": "00 01 13 20 00 68",
"value": 8192,
"value_hex": "0x2000"
},
{
"cmd0_frame": "00 01 13 00 00 48",
"value": 0,
"value_hex": "0x0000"
}
],
"selector": 147,
"selector_hex": "0x093",
"tables": [
"primary_value_table_candidate"
]
},
{
"accesses": [
{
@@ -859,61 +936,6 @@
"flag_table_candidate"
]
},
{
"accesses": [
{
"access": "read",
"address_hex": "H'17D0",
"function": "loc_17C9",
"instruction": "BTST.W #12, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'1802",
"function": "loc_17FB",
"instruction": "BTST.W #12, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'183A",
"function": "loc_182D",
"instruction": "BTST.W #5, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'189E",
"function": "loc_1891",
"instruction": "BTST.W #5, @H'E126",
"table": "primary_value_table_candidate"
},
{
"access": "read",
"address_hex": "H'18F4",
"function": "loc_18E7",
"instruction": "BTST.W #5, @H'E126",
"table": "primary_value_table_candidate"
}
],
"cmd1_read_frame": "01 01 13 00 00 49",
"name": "state_selector_candidate",
"reasons": [
"primary_value_table_candidate read in loc_17C9: BTST.W #12, @H'E126",
"primary_value_table_candidate read in loc_17FB: BTST.W #12, @H'E126",
"primary_value_table_candidate read in loc_182D: BTST.W #5, @H'E126",
"primary_value_table_candidate read in loc_1891: BTST.W #5, @H'E126",
"primary_value_table_candidate read in loc_18E7: BTST.W #5, @H'E126"
],
"score": 15,
"seed_frames": [],
"selector": 147,
"selector_hex": "0x093",
"tables": [
"primary_value_table_candidate"
]
},
{
"accesses": [
{
@@ -1199,6 +1221,85 @@
"selector_hex": "0x06D",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 00 13 00 00 48",
"dispatch_target": {
"decoded_code": false,
"dispatch_index": 19,
"dispatch_index_hex": "0x013",
"entry_address_hex": "H'28CC",
"selector": 19,
"selector_hex": "0x013",
"target": 11782,
"target_hex": "H'2E06",
"target_label_or_hex": "H'2E06"
},
"name": "slave_and_iris_mblack_link_lamps",
"reasons": [
"Selector 0x0013 is a two-bit lamp/status word. ROM dispatch H'2E06 reads current table word H'E826 and fans bit 15 and bit 14 into panel latch RAM.",
"0x8000 SLAVE lamp: sets F791.6 and F713.4",
"0x4000 IRIS/M.BLACK LINK lamp: sets F791.5 and F716.7",
"selector dispatches to H'2E06"
],
"score": 6,
"seed_frames": [
{
"cmd0_frame": "00 00 13 80 00 C9",
"value": 32768,
"value_hex": "0x8000"
},
{
"cmd0_frame": "00 00 13 40 00 09",
"value": 16384,
"value_hex": "0x4000"
},
{
"cmd0_frame": "00 00 13 00 00 49",
"value": 0,
"value_hex": "0x0000"
}
],
"selector": 19,
"selector_hex": "0x013",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 00 24 00 00 7F",
"dispatch_target": {
"decoded_code": false,
"dispatch_index": 36,
"dispatch_index_hex": "0x024",
"entry_address_hex": "H'28EE",
"selector": 36,
"selector_hex": "0x024",
"target": 12044,
"target_hex": "H'2F0C",
"target_label_or_hex": "H'2F0C"
},
"name": "lcd_selector_button_lamp",
"reasons": [
"Bench-visible LCD selector-button lamp lane.",
"selector dispatches to H'2F0C"
],
"score": 6,
"seed_frames": [
{
"cmd0_frame": "00 00 24 80 00 FE",
"value": 32768,
"value_hex": "0x8000"
},
{
"cmd0_frame": "00 00 24 00 00 7E",
"value": 0,
"value_hex": "0x0000"
}
],
"selector": 36,
"selector_hex": "0x024",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 00 07 00 00 5C",
@@ -1349,6 +1450,59 @@
"selector_hex": "0x0F8",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 01 02 00 00 58",
"name": "iris_readout_lane",
"reasons": [
"Bench-visible IRIS seven-segment/display lane."
],
"score": 4,
"seed_frames": [
{
"cmd0_frame": "00 01 02 80 00 D9",
"value": 32768,
"value_hex": "0x8000"
},
{
"cmd0_frame": "00 01 02 40 00 19",
"value": 16384,
"value_hex": "0x4000"
},
{
"cmd0_frame": "00 01 02 00 00 59",
"value": 0,
"value_hex": "0x0000"
}
],
"selector": 130,
"selector_hex": "0x082",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 01 03 00 00 59",
"name": "combined_iris_shutter_master_gain_status_lane",
"reasons": [
"Bench-visible combined status/readout lane; clear behavior appears latched or copied elsewhere."
],
"score": 4,
"seed_frames": [
{
"cmd0_frame": "00 01 03 80 00 D8",
"value": 32768,
"value_hex": "0x8000"
},
{
"cmd0_frame": "00 01 03 00 00 58",
"value": 0,
"value_hex": "0x0000"
}
],
"selector": 131,
"selector_hex": "0x083",
"tables": []
},
{
"accesses": [
{
@@ -1488,30 +1642,6 @@
"selector_hex": "0x012",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 00 13 00 00 48",
"dispatch_target": {
"decoded_code": false,
"dispatch_index": 19,
"dispatch_index_hex": "0x013",
"entry_address_hex": "H'28CC",
"selector": 19,
"selector_hex": "0x013",
"target": 11782,
"target_hex": "H'2E06",
"target_label_or_hex": "H'2E06"
},
"name": "state_selector_candidate",
"reasons": [
"selector dispatches to H'2E06"
],
"score": 2,
"seed_frames": [],
"selector": 19,
"selector_hex": "0x013",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 00 16 00 00 4D",
@@ -1608,30 +1738,6 @@
"selector_hex": "0x01A",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 00 24 00 00 7F",
"dispatch_target": {
"decoded_code": false,
"dispatch_index": 36,
"dispatch_index_hex": "0x024",
"entry_address_hex": "H'28EE",
"selector": 36,
"selector_hex": "0x024",
"target": 12044,
"target_hex": "H'2F0C",
"target_label_or_hex": "H'2F0C"
},
"name": "state_selector_candidate",
"reasons": [
"selector dispatches to H'2F0C"
],
"score": 2,
"seed_frames": [],
"selector": 36,
"selector_hex": "0x024",
"tables": []
},
{
"accesses": [],
"cmd1_read_frame": "01 00 25 00 00 7E",
@@ -1898,7 +2004,7 @@
}
],
"summary": {
"candidate_count": 41,
"candidate_count": 43,
"confidence": "medium",
"core_model": "The RCP likely waits for the CCU to seed mirrored state tables, then uses those selector values to update LCD text, panel lamps, and report state changes."
},

View File

@@ -10,6 +10,13 @@ Table Model:
- flag_table_candidate: H'EC00-H'EFFF; accesses=6 static selectors=0x000
Highest-Value Selector Candidates:
- 0x093 white_balance_black_flare_mode_lane: score=19 tables=primary_value_table_candidate
- primary_value_table_candidate read in loc_17C9: BTST.W #12, @H'E126
- primary_value_table_candidate read in loc_17FB: BTST.W #12, @H'E126
- primary_value_table_candidate read in loc_182D: BTST.W #5, @H'E126
- primary_value_table_candidate read in loc_1891: BTST.W #5, @H'E126
seed frames: 0x8000 -> 00 01 13 80 00 C8; 0x4000 -> 00 01 13 40 00 08; 0x2000 -> 00 01 13 20 00 68
readback frame: 01 01 13 00 00 49
- 0x000 heartbeat_or_idle_report_candidate: score=18 tables=primary_value_table_candidate, current_value_table_candidate, flag_table_candidate
- primary_value_table_candidate write in loc_4096: MOV:G.W #H'0080, @H'E000
- current_value_table_candidate write in loc_4096: MOV:G.W #H'0080, @H'E800
@@ -17,12 +24,6 @@ Highest-Value Selector Candidates:
- idle report selector and CONNECT OK emulator condition both center on selector zero
seed frames: 0x0080 -> 00 00 00 00 80 DA; 0x8080 -> 00 00 00 80 80 5A
readback frame: 01 00 00 00 00 5B
- 0x093 state_selector_candidate: score=15 tables=primary_value_table_candidate
- primary_value_table_candidate read in loc_17C9: BTST.W #12, @H'E126
- primary_value_table_candidate read in loc_17FB: BTST.W #12, @H'E126
- primary_value_table_candidate read in loc_182D: BTST.W #5, @H'E126
- primary_value_table_candidate read in loc_1891: BTST.W #5, @H'E126
readback frame: 01 01 13 00 00 49
- 0x0F6 active_status_bridge_candidate: score=14 tables=primary_value_table_candidate, current_value_table_candidate
- primary_value_table_candidate read in loc_48FA: BTST.W #13, @H'E1EC
- primary_value_table_candidate read in loc_48FA: MOV:G.W @H'E1EC, R0
@@ -64,6 +65,18 @@ Highest-Value Selector Candidates:
- continuation command 5 calls BE70 for selector 0x006D
- selector dispatches to H'3015
readback frame: 01 00 6D 00 00 36
- 0x013 slave_and_iris_mblack_link_lamps: score=6 tables=none
- Selector 0x0013 is a two-bit lamp/status word. ROM dispatch H'2E06 reads current table word H'E826 and fans bit 15 and bit 14 into panel latch RAM.
- 0x8000 SLAVE lamp: sets F791.6 and F713.4
- 0x4000 IRIS/M.BLACK LINK lamp: sets F791.5 and F716.7
- selector dispatches to H'2E06
seed frames: 0x8000 -> 00 00 13 80 00 C9; 0x4000 -> 00 00 13 40 00 09; 0x0000 -> 00 00 13 00 00 49
readback frame: 01 00 13 00 00 48
- 0x024 lcd_selector_button_lamp: score=6 tables=none
- Bench-visible LCD selector-button lamp lane.
- selector dispatches to H'2F0C
seed frames: 0x8000 -> 00 00 24 80 00 FE; 0x0000 -> 00 00 24 00 00 7E
readback frame: 01 00 24 00 00 7F
- 0x007 camera_power_report_candidate: score=5 tables=none
- observed RCP autonomous report frame(s): 00 00 07 80 00 DD
- selector dispatches to H'2DC3
@@ -91,24 +104,20 @@ Highest-Value Selector Candidates:
- 0x0F8 connection_latch_clear_candidate: score=5 tables=none
- when F731.7 is set, command 5 on this selector clears F731.7/F790.7
readback frame: 01 01 78 00 00 22
- 0x082 iris_readout_lane: score=4 tables=none
- Bench-visible IRIS seven-segment/display lane.
seed frames: 0x8000 -> 00 01 02 80 00 D9; 0x4000 -> 00 01 02 40 00 19; 0x0000 -> 00 01 02 00 00 59
readback frame: 01 01 02 00 00 58
- 0x083 combined_iris_shutter_master_gain_status_lane: score=4 tables=none
- Bench-visible combined status/readout lane; clear behavior appears latched or copied elsewhere.
seed frames: 0x8000 -> 00 01 03 80 00 D8; 0x0000 -> 00 01 03 00 00 58
readback frame: 01 01 03 00 00 59
- 0x002 state_selector_candidate: score=3 tables=primary_value_table_candidate
- primary_value_table_candidate read in loc_2650: BTST.W #13, @H'E004
readback frame: 01 00 02 00 00 59
- 0x0A7 state_selector_candidate: score=3 tables=primary_value_table_candidate
- primary_value_table_candidate read in loc_1705: BTST.W #15, @H'E14E
readback frame: 01 01 27 00 00 7D
- 0x0B7 state_selector_candidate: score=3 tables=primary_value_table_candidate
- primary_value_table_candidate read in loc_174D: BTST.W #13, @H'E16E
readback frame: 01 01 37 00 00 6D
- 0x0B9 state_selector_candidate: score=3 tables=primary_value_table_candidate
- primary_value_table_candidate read in loc_1795: BTST.W #13, @H'E172
readback frame: 01 01 39 00 00 63
- 0x110 state_selector_candidate: score=3 tables=primary_value_table_candidate
- primary_value_table_candidate read in loc_1795: BTST.W #15, @H'E220
readback frame: 01 01 90 00 00 CA
- 0x012 state_selector_candidate: score=2 tables=none
- selector dispatches to H'2E03
readback frame: 01 00 12 00 00 49
Display Text Hints:
- CONNECT: 0 hit(s)

View File

@@ -67,6 +67,7 @@
typedef uint8_t u8;
typedef uint16_t u16;
#define BIT(n) (1u << (n))
extern volatile u8 MEM8[0x10000];
#define SCI1_SCR MEM8[0xFEDAu]
@@ -193,6 +194,28 @@ extern volatile u8 MEM8[0x10000];
* evidence: H'1A09, H'1A71, H'3F90, H'407F, H'BB35, H'BC79, H'BC99, H'BD1E
* - flag_table_candidate at H'EC00 (bit_flags); observed write
* evidence: H'4088, H'BC82, H'BC9D, H'BD22, H'BD39, H'BDE9
* panel selector semantics:
* - 0x0013 slave_and_iris_mblack_link_lamps: Selector 0x0013 is a two-bit lamp/status word. ROM dispatch H'2E06 reads current table word H'E826 and fans bit 15 and bit 14 into panel latch RAM.
* current word: H'E826; dispatch: H'2E06
* 0x8000 -> SLAVE lamp: sets F791.6 and F713.4; RAM F791.6, F713.4
* 0x4000 -> IRIS/M.BLACK LINK lamp: sets F791.5 and F716.7; RAM F791.5, F716.7
* observed values: 0x8000 SLAVE lamp on; 0x4000 IRIS/M.BLACK LINK lamp on; 0x0000 SLAVE and IRIS/M.BLACK LINK latch bits clear through H'2E06
* state machine: iris_mblack_link_closed_loop_state_candidate: Bench-proven closed loop: the RCP reports local IRIS/M.BLACK LINK intent, the CCU ACKs selector 0x0013, then the CCU mirrors the accepted selector state back with command 0. The mirrored state controls the next toggle direction.
* frames: active report 00 00 13 40 00 09; clear report 00 00 13 00 00 49; ACK 05 00 13 00 00 4C; mirror active 00 00 13 40 00 09; mirror clear 00 00 13 00 00 49
* local trigger candidates: provisional_iris_mblack_link_button_toggle_report F006.7 / F6DB.7: When F6DB.7 is asserted and F731 <= 3, the ROM toggles current-table bit 14 at H'E826 based on F791.5, then queues selector 0x0013 through loc_3E54.; H'1FE8/H'1FFB: Adjacent local helpers set or clear current-table bit 15 at H'E826 and queue selector 0x0013.
* evidence: bench: 00 00 13 80 00 C9 lights far-right SLAVE lamp, bench: 00 00 13 40 00 09 lights IRIS/M.BLACK LINK lamp, ROM: H'2E06-H'2E32 tests H'E826 bits 15/14 and sets/clears F791/F713/F716 latch bits
* - 0x0024 lcd_selector_button_lamp: Bench-visible LCD selector-button lamp lane.
* current word: H'E848; dispatch: dispatch unknown
* observed values: 0x8000 LCD selector-button lamp visible; 0x0000 lamp remained visible at 0.5 s in isolation run
* - 0x0082 iris_readout_lane: Bench-visible IRIS seven-segment/display lane.
* current word: H'E904; dispatch: dispatch unknown
* observed values: 0x8000 IRIS display OP; 0x4000 IRIS display 1.4; 0x0000 IRIS display blank
* - 0x0083 combined_iris_shutter_master_gain_status_lane: Bench-visible combined status/readout lane; clear behavior appears latched or copied elsewhere.
* current word: H'E906; dispatch: dispatch unknown
* observed values: 0x8000 IRIS AUTO, SHUTTER OFF, MASTER GAIN -3; 0x0000 same visible state remained at 0.5 s
* - 0x0093 white_balance_black_flare_mode_lane: Bench-visible white-balance and black/flare lamp lane.
* current word: H'E926; dispatch: dispatch unknown
* observed values: 0x8000 BLACK/FLARE MANUAL plus white-balance PRESET; 0x4000 BLACK/FLARE MANUAL plus white-balance AUTO; 0x2000 BLACK/FLARE MANUAL plus white-balance MANUAL; 0x0000 BLACK/FLARE MANUAL plus white-balance MANUAL
* state variable candidates:
* - event_queue_read_cursor_candidate H'F9B4: reads 1, writes 2; bits 5
* evidence: H'BE78, H'BE95, H'BE99
@@ -357,12 +380,110 @@ void frt2_ocia_candidate_tick_isr(void)
}
static void sci1_candidate_panel_selector_annotation(u16 logical_index, u16 value)
{
/* Known bench/ROM selector labels. This helper is commentary for the decompile. */
switch (logical_index) {
case 0x0013u:
/* 0x0013 slave_and_iris_mblack_link_lamps; current word H'E826; H'2E06. */
if ((value & 0x8000u) != 0u) {
/* SLAVE lamp: sets F791.6 and F713.4. */
} else {
/* SLAVE lamp: clears F791.6 and F713.4. */
}
if ((value & 0x4000u) != 0u) {
/* IRIS/M.BLACK LINK lamp: sets F791.5 and F716.7. */
} else {
/* IRIS/M.BLACK LINK lamp: clears F791.5 and F716.7. */
}
if (value == 0x8000u) {
/* SLAVE lamp on. */
}
if (value == 0x4000u) {
/* IRIS/M.BLACK LINK lamp on. */
}
if (value == 0x0000u) {
/* SLAVE and IRIS/M.BLACK LINK latch bits clear through H'2E06. */
}
break;
case 0x0024u:
/* 0x0024 lcd_selector_button_lamp; current word H'E848; dispatch unknown. */
if (value == 0x8000u) {
/* LCD selector-button lamp visible. */
}
if (value == 0x0000u) {
/* lamp remained visible at 0.5 s in isolation run. */
}
break;
case 0x0082u:
/* 0x0082 iris_readout_lane; current word H'E904; dispatch unknown. */
if (value == 0x8000u) {
/* IRIS display OP. */
}
if (value == 0x4000u) {
/* IRIS display 1.4. */
}
if (value == 0x0000u) {
/* IRIS display blank. */
}
break;
case 0x0083u:
/* 0x0083 combined_iris_shutter_master_gain_status_lane; current word H'E906; dispatch unknown. */
if (value == 0x8000u) {
/* IRIS AUTO, SHUTTER OFF, MASTER GAIN -3. */
}
if (value == 0x0000u) {
/* same visible state remained at 0.5 s. */
}
break;
case 0x0093u:
/* 0x0093 white_balance_black_flare_mode_lane; current word H'E926; dispatch unknown. */
if (value == 0x8000u) {
/* BLACK/FLARE MANUAL plus white-balance PRESET. */
}
if (value == 0x4000u) {
/* BLACK/FLARE MANUAL plus white-balance AUTO. */
}
if (value == 0x2000u) {
/* BLACK/FLARE MANUAL plus white-balance MANUAL. */
}
if (value == 0x0000u) {
/* BLACK/FLARE MANUAL plus white-balance MANUAL. */
}
break;
default:
break;
}
}
void provisional_iris_mblack_link_button_toggle_report(void)
{
/* Provisional name for ROM H'200E: When F6DB.7 is asserted and F731 <= 3, the ROM toggles current-table bit 14 at H'E826 based on F791.5, then queues selector 0x0013 through loc_3E54. */
/* Source F006.7 / F6DB.7; gate F731 <= 3; current state F791.5. */
if ((MEM8[0xF6DBu] & BIT(7)) == 0u) {
return;
}
if (MEM8[0xF731u] > 3u) {
return;
}
if ((MEM8[0xF791u] & BIT(5)) == 0u) {
/* Requests selector 0x0013=0x4000: 00 00 13 40 00 09. */
/* CCU should ACK 05 00 13 00 00 4C, then mirror 00 00 13 40 00 09. */
} else {
/* Requests selector 0x0013=0x0000: 00 00 13 00 00 49. */
/* CCU should ACK 05 00 13 00 00 4C, then mirror 00 00 13 00 00 49. */
}
}
void sci1_process_candidate_protocol_command(void)
{
u8 command = sci1_rx_candidate_command();
u16 logical_index = sci1_rx_candidate_logical_index();
u16 value = sci1_rx_candidate_value();
sci1_candidate_panel_selector_annotation(logical_index, value);
bool session_active = MEM8[0xFAA2u] != 0u;
if (!session_active) {

View File

@@ -18,32 +18,32 @@ primary_value_table_candidate H'E000-H'E3FF (negative H'2000; direct H'F900-H'F9
accesses=31 reads=21 writes=10 dynamic=11
static offsets: H'0000, H'0004, H'0006, H'0046, H'0080, H'0102, H'0124, H'0126, H'014E, H'016E, H'0172, H'01EC, H'0220
functions: loc_BBAB:5, loc_2650:3, loc_4096:3, loc_1795:2, loc_19DB:2, loc_1A35:2, loc_48FA:2, vec_ad_adi_3D99:2, <no function>:1, loc_1705:1, loc_174D:1, loc_17C9:1
- H'170C read offset H'014E -> H'E14E; loc_1705; BTST.W #15, @H'E14E
- H'175A read offset H'016E -> H'E16E; loc_174D; BTST.W #13, @H'E16E
- H'179C read offset H'0172 -> H'E172; loc_1795; BTST.W #13, @H'E172
- H'17A7 read offset H'0220 -> H'E220; loc_1795; BTST.W #15, @H'E220
- H'17D0 read offset H'0126 -> H'E126; loc_17C9; BTST.W #12, @H'E126
- H'1802 read offset H'0126 -> H'E126; loc_17FB; BTST.W #12, @H'E126
- H'183A read offset H'0126 -> H'E126; loc_182D; BTST.W #5, @H'E126
- H'189E read offset H'0126 -> H'E126; loc_1891; BTST.W #5, @H'E126
- H'18F4 read offset H'0126 -> H'E126; loc_18E7; BTST.W #5, @H'E126
- H'170C read offset H'014E selector 0x0A7 -> H'E14E; loc_1705; BTST.W #15, @H'E14E
- H'175A read offset H'016E selector 0x0B7 -> H'E16E; loc_174D; BTST.W #13, @H'E16E
- H'179C read offset H'0172 selector 0x0B9 -> H'E172; loc_1795; BTST.W #13, @H'E172
- H'17A7 read offset H'0220 selector 0x110 -> H'E220; loc_1795; BTST.W #15, @H'E220
- H'17D0 read offset H'0126 selector 0x093 -> H'E126; loc_17C9; BTST.W #12, @H'E126
- H'1802 read offset H'0126 selector 0x093 -> H'E126; loc_17FB; BTST.W #12, @H'E126
- H'183A read offset H'0126 selector 0x093 -> H'E126; loc_182D; BTST.W #5, @H'E126
- H'189E read offset H'0126 selector 0x093 -> H'E126; loc_1891; BTST.W #5, @H'E126
- H'18F4 read offset H'0126 selector 0x093 -> H'E126; loc_18E7; BTST.W #5, @H'E126
- H'19E3 read index dynamic via R3 operand @(-H'2000,R3); loc_19DB; MOV:G.W @(-H'2000,R3), R0
- H'1A03 read index dynamic via R3 operand @(-H'2000,R3); loc_19DB; CMP:G.W @(-H'2000,R3), R1
- H'1A3D read index dynamic via R3 operand @(-H'2000,R3); loc_1A35; MOV:G.W @(-H'2000,R3), R0
- H'1A6B read index dynamic via R3 operand @(-H'2000,R3); loc_1A35; CMP:G.W @(-H'2000,R3), R0
- H'2657 read offset H'0124 -> H'E124; loc_2650; MOV:G.W @H'E124, R0
- H'266F read offset H'0004 -> H'E004; loc_2650; BTST.W #13, @H'E004
- H'268B read offset H'0124 -> H'E124; loc_2650; CMP:G.W @H'E124, R0
- H'3DDA read offset H'0102 -> H'E102; vec_ad_adi_3D99; MOV:G.W @H'E102, R0
- H'3DFA read offset H'0102 -> H'E102; vec_ad_adi_3D99; CMP:G.W @H'E102, R1
- H'2657 read offset H'0124 selector 0x092 -> H'E124; loc_2650; MOV:G.W @H'E124, R0
- H'266F read offset H'0004 selector 0x002 -> H'E004; loc_2650; BTST.W #13, @H'E004
- H'268B read offset H'0124 selector 0x092 -> H'E124; loc_2650; CMP:G.W @H'E124, R0
- H'3DDA read offset H'0102 selector 0x081 -> H'E102; vec_ad_adi_3D99; MOV:G.W @H'E102, R0
- H'3DFA read offset H'0102 selector 0x081 -> H'E102; vec_ad_adi_3D99; CMP:G.W @H'E102, R1
- H'3F8C write index dynamic via R0 operand @(-H'2000,R0); <no function>; CLR.W @(-H'2000,R0)
- H'402C write offset H'0046 -> H'E046; loc_400C; CLR.W @H'E046
- H'402C write offset H'0046 selector 0x023 -> H'E046; loc_400C; CLR.W @H'E046
- H'4077 write index dynamic via R0 operand @(-H'2000,R0); loc_4075; CLR.W @(-H'2000,R0)
- H'4096 write offset H'0000 -> H'E000; loc_4096; MOV:G.W #H'0080, @H'E000
- H'409C write offset H'0006 -> H'E006; loc_4096; MOV:G.W #H'8000, @H'E006
- H'40A2 write offset H'0080 -> H'E080; loc_4096; MOV:G.W #H'FFFF, @H'E080
- H'490F read offset H'01EC -> H'E1EC; loc_48FA; BTST.W #13, @H'E1EC
- H'4915 read offset H'01EC -> H'E1EC; loc_48FA; MOV:G.W @H'E1EC, R0
- H'4096 write offset H'0000 selector 0x000 -> H'E000; loc_4096; MOV:G.W #H'0080, @H'E000
- H'409C write offset H'0006 selector 0x003 -> H'E006; loc_4096; MOV:G.W #H'8000, @H'E006
- H'40A2 write offset H'0080 selector 0x040 -> H'E080; loc_4096; MOV:G.W #H'FFFF, @H'E080
- H'490F read offset H'01EC selector 0x0F6 -> H'E1EC; loc_48FA; BTST.W #13, @H'E1EC
- H'4915 read offset H'01EC selector 0x0F6 -> H'E1EC; loc_48FA; MOV:G.W @H'E1EC, R0
- H'BC75 write index dynamic via R4 operand @(-H'2000,R4); loc_BBAB; MOV:G.W R0, @(-H'2000,R4)
- H'BC95 write index dynamic via R4 operand @(-H'2000,R4); loc_BBAB; MOV:G.W R0, @(-H'2000,R4)
- H'BCEC read index dynamic via R4 operand @(-H'2000,R4); loc_BBAB; MOV:G.W @(-H'2000,R4), R0
@@ -66,16 +66,16 @@ current_value_table_candidate H'E800-H'EBFF (negative H'1800; direct H'F920-H'F9
accesses=14 reads=1 writes=13 dynamic=8
static offsets: H'0000, H'0006, H'0080, H'0102, H'0124, H'01EC
functions: loc_4096:3, loc_BBAB:3, <no function>:1, loc_15E0:1, loc_19DB:1, loc_1A35:1, loc_2650:1, loc_4075:1, loc_48FA:1, loc_BAF2:1
- H'15ED write offset H'0102 -> H'E902; loc_15E0; MOV:G.W R1, @H'E902
- H'15ED write offset H'0102 selector 0x081 -> H'E902; loc_15E0; MOV:G.W R1, @H'E902
- H'1A09 write index dynamic via R3 operand @(-H'1800,R3); loc_19DB; MOV:G.W R1, @(-H'1800,R3)
- H'1A71 write index dynamic via R3 operand @(-H'1800,R3); loc_1A35; MOV:G.W R0, @(-H'1800,R3)
- H'2691 write offset H'0124 -> H'E924; loc_2650; MOV:G.W R0, @H'E924
- H'2691 write offset H'0124 selector 0x092 -> H'E924; loc_2650; MOV:G.W R0, @H'E924
- H'3F90 write index dynamic via R0 operand @(-H'1800,R0); <no function>; CLR.W @(-H'1800,R0)
- H'407F write index dynamic via R0 operand @(-H'1800,R0); loc_4075; CLR.W @(-H'1800,R0)
- H'40A8 write offset H'0000 -> H'E800; loc_4096; MOV:G.W #H'0080, @H'E800
- H'40AE write offset H'0006 -> H'E806; loc_4096; MOV:G.W #H'8000, @H'E806
- H'40B4 write offset H'0080 -> H'E880; loc_4096; MOV:G.W #H'FFFF, @H'E880
- H'491D write offset H'01EC -> H'E9EC; loc_48FA; MOV:G.W R0, @H'E9EC
- H'40A8 write offset H'0000 selector 0x000 -> H'E800; loc_4096; MOV:G.W #H'0080, @H'E800
- H'40AE write offset H'0006 selector 0x003 -> H'E806; loc_4096; MOV:G.W #H'8000, @H'E806
- H'40B4 write offset H'0080 selector 0x040 -> H'E880; loc_4096; MOV:G.W #H'FFFF, @H'E880
- H'491D write offset H'01EC selector 0x0F6 -> H'E9EC; loc_48FA; MOV:G.W R0, @H'E9EC
- H'BB35 read index dynamic via R0 operand @(-H'1800,R0); loc_BAF2; MOV:G.W @(-H'1800,R0), R4
- H'BC79 write index dynamic via R4 operand @(-H'1800,R4); loc_BBAB; MOV:G.W R0, @(-H'1800,R4)
- H'BC99 write index dynamic via R4 operand @(-H'1800,R4); loc_BBAB; MOV:G.W R0, @(-H'1800,R4)
@@ -85,7 +85,7 @@ flag_table_candidate H'EC00-H'EFFF (negative H'1400; direct H'F980-H'F99F)
accesses=6 reads=0 writes=6 dynamic=5
static offsets: H'0200
functions: loc_BBAB:5, loc_4075:1
- H'4088 write offset H'0200 -> H'EE00; loc_4075; CLR.W @(-H'1400,R0)
- H'4088 write offset H'0200 selector 0x000 -> H'EE00; loc_4075; CLR.W @(-H'1400,R0)
- H'BC82 write index dynamic via R5 operand @(-H'1400,R5); loc_BBAB; BSET.B #7, @(-H'1400,R5)
- H'BC9D write index dynamic via R5 operand @(-H'1400,R5); loc_BBAB; BSET.B #7, @(-H'1400,R5)
- H'BD22 write index dynamic via R5 operand @(-H'1400,R5); loc_BBAB; BSET.B #7, @(-H'1400,R5)