selector lamps
This commit is contained in:
@@ -858,6 +858,31 @@
|
||||
"value": 8192,
|
||||
"value_hex": "0x2000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 13 10 20 78",
|
||||
"value": 4128,
|
||||
"value_hex": "0x1020"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 13 40 40 48",
|
||||
"value": 16448,
|
||||
"value_hex": "0x4040"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 13 80 40 88",
|
||||
"value": 32832,
|
||||
"value_hex": "0x8040"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 13 00 20 68",
|
||||
"value": 32,
|
||||
"value_hex": "0x0020"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 13 00 40 08",
|
||||
"value": 64,
|
||||
"value_hex": "0x0040"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 13 00 00 48",
|
||||
"value": 0,
|
||||
@@ -1066,6 +1091,75 @@
|
||||
"current_value_table_candidate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 6B 00 00 30",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 107,
|
||||
"dispatch_index_hex": "0x06B",
|
||||
"entry_address_hex": "H'297C",
|
||||
"selector": 107,
|
||||
"selector_hex": "0x06B",
|
||||
"target": 12146,
|
||||
"target_hex": "H'2F72",
|
||||
"target_label_or_hex": "H'2F72"
|
||||
},
|
||||
"name": "standard_lamp_lane",
|
||||
"reasons": [
|
||||
"when F731.7 is set, command 5 on this selector clears F731.7/F790.7",
|
||||
"Bench-visible STANDARD lamp lane found from ROM-derived F6D4.6 handler candidate.",
|
||||
"selector dispatches to H'2F72"
|
||||
],
|
||||
"score": 11,
|
||||
"seed_frames": [
|
||||
{
|
||||
"cmd0_frame": "00 00 6B 80 00 B1",
|
||||
"value": 32768,
|
||||
"value_hex": "0x8000"
|
||||
}
|
||||
],
|
||||
"selector": 107,
|
||||
"selector_hex": "0x06B",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 15 00 00 4E",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 21,
|
||||
"dispatch_index_hex": "0x015",
|
||||
"entry_address_hex": "H'28D0",
|
||||
"selector": 21,
|
||||
"selector_hex": "0x015",
|
||||
"target": 11833,
|
||||
"target_hex": "H'2E39",
|
||||
"target_label_or_hex": "H'2E39"
|
||||
},
|
||||
"name": "call_and_red_tally_lamp_lane",
|
||||
"reasons": [
|
||||
"observed RCP autonomous report frame(s): 00 00 15 80 00 CF, 00 00 15 00 00 4F",
|
||||
"Bench-visible CALL lamp and red tally lane; local CALL handler mirrors F6DB.5 into E800[0x0015].15.",
|
||||
"selector dispatches to H'2E39"
|
||||
],
|
||||
"score": 9,
|
||||
"seed_frames": [
|
||||
{
|
||||
"cmd0_frame": "00 00 15 80 00 CF",
|
||||
"value": 32768,
|
||||
"value_hex": "0x8000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 00 15 00 00 4F",
|
||||
"value": 0,
|
||||
"value_hex": "0x0000"
|
||||
}
|
||||
],
|
||||
"selector": 21,
|
||||
"selector_hex": "0x015",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [
|
||||
{
|
||||
@@ -1146,31 +1240,6 @@
|
||||
"current_value_table_candidate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 6B 00 00 30",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 107,
|
||||
"dispatch_index_hex": "0x06B",
|
||||
"entry_address_hex": "H'297C",
|
||||
"selector": 107,
|
||||
"selector_hex": "0x06B",
|
||||
"target": 12146,
|
||||
"target_hex": "H'2F72",
|
||||
"target_label_or_hex": "H'2F72"
|
||||
},
|
||||
"name": "connection_latch_clear_candidate",
|
||||
"reasons": [
|
||||
"when F731.7 is set, command 5 on this selector clears F731.7/F790.7",
|
||||
"selector dispatches to H'2F72"
|
||||
],
|
||||
"score": 7,
|
||||
"seed_frames": [],
|
||||
"selector": 107,
|
||||
"selector_hex": "0x06B",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 6C 00 00 37",
|
||||
@@ -1221,6 +1290,36 @@
|
||||
"selector_hex": "0x06D",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [
|
||||
{
|
||||
"access": "read",
|
||||
"address_hex": "H'17A7",
|
||||
"function": "loc_1795",
|
||||
"instruction": "BTST.W #15, @H'E220",
|
||||
"table": "primary_value_table_candidate"
|
||||
}
|
||||
],
|
||||
"cmd1_read_frame": "01 01 90 00 00 CA",
|
||||
"name": "knee_auto_lamp_or_page_status_lane",
|
||||
"reasons": [
|
||||
"primary_value_table_candidate read in loc_1795: BTST.W #15, @H'E220",
|
||||
"Bench-visible KNEE AUTO source; ROM notes indicate timed KNEE/detail page interaction."
|
||||
],
|
||||
"score": 7,
|
||||
"seed_frames": [
|
||||
{
|
||||
"cmd0_frame": "00 01 90 80 00 4B",
|
||||
"value": 32768,
|
||||
"value_hex": "0x8000"
|
||||
}
|
||||
],
|
||||
"selector": 272,
|
||||
"selector_hex": "0x110",
|
||||
"tables": [
|
||||
"primary_value_table_candidate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 13 00 00 48",
|
||||
@@ -1264,6 +1363,93 @@
|
||||
"selector_hex": "0x013",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 17 00 00 4C",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 23,
|
||||
"dispatch_index_hex": "0x017",
|
||||
"entry_address_hex": "H'28D4",
|
||||
"selector": 23,
|
||||
"selector_hex": "0x017",
|
||||
"target": 11909,
|
||||
"target_hex": "H'2E85",
|
||||
"target_label_or_hex": "H'2E85"
|
||||
},
|
||||
"name": "bars_lamp_lane",
|
||||
"reasons": [
|
||||
"Bench-visible BARS lamp/latch lane; low writes do not reliably clear the visible latch.",
|
||||
"selector dispatches to H'2E85"
|
||||
],
|
||||
"score": 6,
|
||||
"seed_frames": [
|
||||
{
|
||||
"cmd0_frame": "00 00 17 80 00 CD",
|
||||
"value": 32768,
|
||||
"value_hex": "0x8000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 00 17 40 00 0D",
|
||||
"value": 16384,
|
||||
"value_hex": "0x4000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 00 17 00 00 4D",
|
||||
"value": 0,
|
||||
"value_hex": "0x0000"
|
||||
}
|
||||
],
|
||||
"selector": 23,
|
||||
"selector_hex": "0x017",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 1A 00 00 41",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 26,
|
||||
"dispatch_index_hex": "0x01A",
|
||||
"entry_address_hex": "H'28DA",
|
||||
"selector": 26,
|
||||
"selector_hex": "0x01A",
|
||||
"target": 11972,
|
||||
"target_hex": "H'2EC4",
|
||||
"target_label_or_hex": "H'2EC4"
|
||||
},
|
||||
"name": "monitor_selector_lamps",
|
||||
"reasons": [
|
||||
"Bench-visible MONITOR selector cluster found from ROM-derived button-output sweep.",
|
||||
"selector dispatches to H'2EC4"
|
||||
],
|
||||
"score": 6,
|
||||
"seed_frames": [
|
||||
{
|
||||
"cmd0_frame": "00 00 1A 08 08 40",
|
||||
"value": 2056,
|
||||
"value_hex": "0x0808"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 00 1A 20 20 40",
|
||||
"value": 8224,
|
||||
"value_hex": "0x2020"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 00 1A 40 40 40",
|
||||
"value": 16448,
|
||||
"value_hex": "0x4040"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 00 1A 80 80 40",
|
||||
"value": 32896,
|
||||
"value_hex": "0x8080"
|
||||
}
|
||||
],
|
||||
"selector": 26,
|
||||
"selector_hex": "0x01A",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 24 00 00 7F",
|
||||
@@ -1325,31 +1511,6 @@
|
||||
"selector_hex": "0x007",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 15 00 00 4E",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 21,
|
||||
"dispatch_index_hex": "0x015",
|
||||
"entry_address_hex": "H'28D0",
|
||||
"selector": 21,
|
||||
"selector_hex": "0x015",
|
||||
"target": 11833,
|
||||
"target_hex": "H'2E39",
|
||||
"target_label_or_hex": "H'2E39"
|
||||
},
|
||||
"name": "call_button_report_candidate",
|
||||
"reasons": [
|
||||
"observed RCP autonomous report frame(s): 00 00 15 80 00 CF, 00 00 15 00 00 4F",
|
||||
"selector dispatches to H'2E39"
|
||||
],
|
||||
"score": 5,
|
||||
"seed_frames": [],
|
||||
"selector": 21,
|
||||
"selector_hex": "0x015",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [
|
||||
{
|
||||
@@ -1493,6 +1654,21 @@
|
||||
"value": 32768,
|
||||
"value_hex": "0x8000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 03 40 00 18",
|
||||
"value": 16384,
|
||||
"value_hex": "0x4000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 03 20 00 78",
|
||||
"value": 8192,
|
||||
"value_hex": "0x2000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 03 00 04 5C",
|
||||
"value": 4,
|
||||
"value_hex": "0x0004"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 03 00 00 58",
|
||||
"value": 0,
|
||||
@@ -1503,6 +1679,40 @@
|
||||
"selector_hex": "0x083",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 01 0F 00 00 55",
|
||||
"name": "shutter_display_status_lane",
|
||||
"reasons": [
|
||||
"Bench-visible shutter/status display lane; local F6D0.6/F6D0.7 handlers also queue this selector."
|
||||
],
|
||||
"score": 4,
|
||||
"seed_frames": [
|
||||
{
|
||||
"cmd0_frame": "00 01 0F 80 00 D4",
|
||||
"value": 32768,
|
||||
"value_hex": "0x8000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 0F 20 00 74",
|
||||
"value": 8192,
|
||||
"value_hex": "0x2000"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 0F 08 00 5C",
|
||||
"value": 2048,
|
||||
"value_hex": "0x0800"
|
||||
},
|
||||
{
|
||||
"cmd0_frame": "00 01 0F 10 00 44",
|
||||
"value": 4096,
|
||||
"value_hex": "0x1000"
|
||||
}
|
||||
],
|
||||
"selector": 143,
|
||||
"selector_hex": "0x08F",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [
|
||||
{
|
||||
@@ -1595,29 +1805,6 @@
|
||||
"primary_value_table_candidate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"accesses": [
|
||||
{
|
||||
"access": "read",
|
||||
"address_hex": "H'17A7",
|
||||
"function": "loc_1795",
|
||||
"instruction": "BTST.W #15, @H'E220",
|
||||
"table": "primary_value_table_candidate"
|
||||
}
|
||||
],
|
||||
"cmd1_read_frame": "01 01 90 00 00 CA",
|
||||
"name": "state_selector_candidate",
|
||||
"reasons": [
|
||||
"primary_value_table_candidate read in loc_1795: BTST.W #15, @H'E220"
|
||||
],
|
||||
"score": 3,
|
||||
"seed_frames": [],
|
||||
"selector": 272,
|
||||
"selector_hex": "0x110",
|
||||
"tables": [
|
||||
"primary_value_table_candidate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 12 00 00 49",
|
||||
@@ -1666,30 +1853,6 @@
|
||||
"selector_hex": "0x016",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 17 00 00 4C",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 23,
|
||||
"dispatch_index_hex": "0x017",
|
||||
"entry_address_hex": "H'28D4",
|
||||
"selector": 23,
|
||||
"selector_hex": "0x017",
|
||||
"target": 11909,
|
||||
"target_hex": "H'2E85",
|
||||
"target_label_or_hex": "H'2E85"
|
||||
},
|
||||
"name": "state_selector_candidate",
|
||||
"reasons": [
|
||||
"selector dispatches to H'2E85"
|
||||
],
|
||||
"score": 2,
|
||||
"seed_frames": [],
|
||||
"selector": 23,
|
||||
"selector_hex": "0x017",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 18 00 00 43",
|
||||
@@ -1714,30 +1877,6 @@
|
||||
"selector_hex": "0x018",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 1A 00 00 41",
|
||||
"dispatch_target": {
|
||||
"decoded_code": false,
|
||||
"dispatch_index": 26,
|
||||
"dispatch_index_hex": "0x01A",
|
||||
"entry_address_hex": "H'28DA",
|
||||
"selector": 26,
|
||||
"selector_hex": "0x01A",
|
||||
"target": 11972,
|
||||
"target_hex": "H'2EC4",
|
||||
"target_label_or_hex": "H'2EC4"
|
||||
},
|
||||
"name": "state_selector_candidate",
|
||||
"reasons": [
|
||||
"selector dispatches to H'2EC4"
|
||||
],
|
||||
"score": 2,
|
||||
"seed_frames": [],
|
||||
"selector": 26,
|
||||
"selector_hex": "0x01A",
|
||||
"tables": []
|
||||
},
|
||||
{
|
||||
"accesses": [],
|
||||
"cmd1_read_frame": "01 00 25 00 00 7E",
|
||||
@@ -2004,7 +2143,7 @@
|
||||
}
|
||||
],
|
||||
"summary": {
|
||||
"candidate_count": 43,
|
||||
"candidate_count": 44,
|
||||
"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."
|
||||
},
|
||||
|
||||
@@ -43,6 +43,18 @@ Highest-Value Selector Candidates:
|
||||
- ROM default table writes E000/E800 selector 0x040 to 0xFFFF and bench tests repeatedly touched the 0x40 family
|
||||
seed frames: 0xFFFF -> 00 00 40 FF FF 1A; 0x4030 -> 00 00 40 40 30 6A
|
||||
readback frame: 01 00 40 00 00 1B
|
||||
- 0x06B standard_lamp_lane: score=11 tables=none
|
||||
- when F731.7 is set, command 5 on this selector clears F731.7/F790.7
|
||||
- Bench-visible STANDARD lamp lane found from ROM-derived F6D4.6 handler candidate.
|
||||
- selector dispatches to H'2F72
|
||||
seed frames: 0x8000 -> 00 00 6B 80 00 B1
|
||||
readback frame: 01 00 6B 00 00 30
|
||||
- 0x015 call_and_red_tally_lamp_lane: score=9 tables=none
|
||||
- observed RCP autonomous report frame(s): 00 00 15 80 00 CF, 00 00 15 00 00 4F
|
||||
- Bench-visible CALL lamp and red tally lane; local CALL handler mirrors F6DB.5 into E800[0x0015].15.
|
||||
- selector dispatches to H'2E39
|
||||
seed frames: 0x8000 -> 00 00 15 80 00 CF; 0x0000 -> 00 00 15 00 00 4F
|
||||
readback frame: 01 00 15 00 00 4E
|
||||
- 0x081 state_selector_candidate: score=9 tables=primary_value_table_candidate, current_value_table_candidate
|
||||
- primary_value_table_candidate read in vec_ad_adi_3D99: MOV:G.W @H'E102, R0
|
||||
- primary_value_table_candidate read in vec_ad_adi_3D99: CMP:G.W @H'E102, R1
|
||||
@@ -53,10 +65,6 @@ Highest-Value Selector Candidates:
|
||||
- primary_value_table_candidate read in loc_2650: CMP:G.W @H'E124, R0
|
||||
- current_value_table_candidate write in loc_2650: MOV:G.W R0, @H'E924
|
||||
readback frame: 01 01 12 00 00 48
|
||||
- 0x06B connection_latch_clear_candidate: score=7 tables=none
|
||||
- when F731.7 is set, command 5 on this selector clears F731.7/F790.7
|
||||
- selector dispatches to H'2F72
|
||||
readback frame: 01 00 6B 00 00 30
|
||||
- 0x06C command5_be70_candidate: score=7 tables=none
|
||||
- continuation command 5 calls BE70 for selector 0x006C
|
||||
- selector dispatches to H'2FAF
|
||||
@@ -65,6 +73,11 @@ 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
|
||||
- 0x110 knee_auto_lamp_or_page_status_lane: score=7 tables=primary_value_table_candidate
|
||||
- primary_value_table_candidate read in loc_1795: BTST.W #15, @H'E220
|
||||
- Bench-visible KNEE AUTO source; ROM notes indicate timed KNEE/detail page interaction.
|
||||
seed frames: 0x8000 -> 00 01 90 80 00 4B
|
||||
readback frame: 01 01 90 00 00 CA
|
||||
- 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
|
||||
@@ -72,6 +85,16 @@ Highest-Value Selector Candidates:
|
||||
- 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
|
||||
- 0x017 bars_lamp_lane: score=6 tables=none
|
||||
- Bench-visible BARS lamp/latch lane; low writes do not reliably clear the visible latch.
|
||||
- selector dispatches to H'2E85
|
||||
seed frames: 0x8000 -> 00 00 17 80 00 CD; 0x4000 -> 00 00 17 40 00 0D; 0x0000 -> 00 00 17 00 00 4D
|
||||
readback frame: 01 00 17 00 00 4C
|
||||
- 0x01A monitor_selector_lamps: score=6 tables=none
|
||||
- Bench-visible MONITOR selector cluster found from ROM-derived button-output sweep.
|
||||
- selector dispatches to H'2EC4
|
||||
seed frames: 0x0808 -> 00 00 1A 08 08 40; 0x2020 -> 00 00 1A 20 20 40; 0x4040 -> 00 00 1A 40 40 40
|
||||
readback frame: 01 00 1A 00 00 41
|
||||
- 0x024 lcd_selector_button_lamp: score=6 tables=none
|
||||
- Bench-visible LCD selector-button lamp lane.
|
||||
- selector dispatches to H'2F0C
|
||||
@@ -81,10 +104,6 @@ Highest-Value Selector Candidates:
|
||||
- observed RCP autonomous report frame(s): 00 00 07 80 00 DD
|
||||
- selector dispatches to H'2DC3
|
||||
readback frame: 01 00 07 00 00 5C
|
||||
- 0x015 call_button_report_candidate: score=5 tables=none
|
||||
- observed RCP autonomous report frame(s): 00 00 15 80 00 CF, 00 00 15 00 00 4F
|
||||
- selector dispatches to H'2E39
|
||||
readback frame: 01 00 15 00 00 4E
|
||||
- 0x023 state_selector_candidate: score=5 tables=primary_value_table_candidate
|
||||
- primary_value_table_candidate write in loc_400C: CLR.W @H'E046
|
||||
- selector dispatches to H'2EE6
|
||||
@@ -108,16 +127,6 @@ Highest-Value Selector Candidates:
|
||||
- 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
|
||||
|
||||
Display Text Hints:
|
||||
- CONNECT: 0 hit(s)
|
||||
|
||||
@@ -204,18 +204,26 @@ extern volatile u8 MEM8[0x10000];
|
||||
* 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
|
||||
* - 0x0015 call_and_red_tally_lamp_lane: Bench-visible CALL lamp and red tally lane; local CALL handler mirrors F6DB.5 into E800[0x0015].15.
|
||||
* current word: H'E82A; dispatch: handler unknown
|
||||
* observed values: 0x8000 CALL lamp and red tally on; 0x0000 CALL inactive/clear report
|
||||
* evidence: bench: 00 00 15 80 00 CF lights CALL and red tally, ROM: H'20A1-H'20BA reads F6DB.5, writes H'E82A, and queues selector 0x0015
|
||||
* - 0x0017 bars_lamp_lane: Bench-visible BARS lamp/latch lane; low writes do not reliably clear the visible latch.
|
||||
* current word: H'E82E; dispatch: handler unknown
|
||||
* observed values: 0x8000 BARS lamp on; 0x4000 BARS lamp/latch on; 0x0000 BARS low write; visible latch may remain
|
||||
* evidence: bench: 00 00 17 80 00 CD lights BARS, bench: 00 00 17 40 00 0D also lights the BARS latch in neighbor sweep, ROM: H'1EDE can queue selector 0x0017 from F6D4.2
|
||||
* - 0x001A monitor_selector_lamps: Bench-visible MONITOR selector cluster found from ROM-derived button-output sweep.
|
||||
* current word: H'E834; dispatch: handler unknown
|
||||
* observed values: 0x0808 MONITOR ENC lamp; 0x2020 MONITOR B lamp; 0x4040 MONITOR G lamp; 0x8080 MONITOR R lamp
|
||||
* evidence: bench: 00 00 1A 08 08 40 lights MONITOR ENC, bench: 00 00 1A 20 20 40 lights MONITOR B, bench: 00 00 1A 40 40 40 lights MONITOR G, bench: 00 00 1A 80 80 40 lights MONITOR R, ROM: H'1CB2-H'1D56 writes packed values to H'E834 and queues selector 0x001A
|
||||
* - 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
|
||||
* - 0x006B standard_lamp_lane: Bench-visible STANDARD lamp lane found from ROM-derived F6D4.6 handler candidate.
|
||||
* current word: H'E8D6; dispatch: handler unknown
|
||||
* observed values: 0x8000 STANDARD lamp on
|
||||
* evidence: bench: 00 00 6B 80 00 B1 lights STANDARD, ROM: H'2048 can write H'E8D6=0x8000 and queue selector 0x006B from F6D4.6
|
||||
* - ... 5 more panel selector annotations
|
||||
* state variable candidates:
|
||||
* - event_queue_read_cursor_candidate H'F9B4: reads 1, writes 2; bits 5
|
||||
* evidence: H'BE78, H'BE95, H'BE99
|
||||
@@ -406,6 +414,42 @@ static void sci1_candidate_panel_selector_annotation(u16 logical_index, u16 valu
|
||||
/* SLAVE and IRIS/M.BLACK LINK latch bits clear through H'2E06. */
|
||||
}
|
||||
break;
|
||||
case 0x0015u:
|
||||
/* 0x0015 call_and_red_tally_lamp_lane; current word H'E82A; handler unknown. */
|
||||
if (value == 0x8000u) {
|
||||
/* CALL lamp and red tally on. */
|
||||
}
|
||||
if (value == 0x0000u) {
|
||||
/* CALL inactive/clear report. */
|
||||
}
|
||||
break;
|
||||
case 0x0017u:
|
||||
/* 0x0017 bars_lamp_lane; current word H'E82E; handler unknown. */
|
||||
if (value == 0x8000u) {
|
||||
/* BARS lamp on. */
|
||||
}
|
||||
if (value == 0x4000u) {
|
||||
/* BARS lamp/latch on. */
|
||||
}
|
||||
if (value == 0x0000u) {
|
||||
/* BARS low write; visible latch may remain. */
|
||||
}
|
||||
break;
|
||||
case 0x001Au:
|
||||
/* 0x001A monitor_selector_lamps; current word H'E834; handler unknown. */
|
||||
if (value == 0x0808u) {
|
||||
/* MONITOR ENC lamp. */
|
||||
}
|
||||
if (value == 0x2020u) {
|
||||
/* MONITOR B lamp. */
|
||||
}
|
||||
if (value == 0x4040u) {
|
||||
/* MONITOR G lamp. */
|
||||
}
|
||||
if (value == 0x8080u) {
|
||||
/* MONITOR R lamp. */
|
||||
}
|
||||
break;
|
||||
case 0x0024u:
|
||||
/* 0x0024 lcd_selector_button_lamp; current word H'E848; dispatch unknown. */
|
||||
if (value == 0x8000u) {
|
||||
@@ -415,6 +459,12 @@ static void sci1_candidate_panel_selector_annotation(u16 logical_index, u16 valu
|
||||
/* lamp remained visible at 0.5 s in isolation run. */
|
||||
}
|
||||
break;
|
||||
case 0x006Bu:
|
||||
/* 0x006B standard_lamp_lane; current word H'E8D6; handler unknown. */
|
||||
if (value == 0x8000u) {
|
||||
/* STANDARD lamp on. */
|
||||
}
|
||||
break;
|
||||
case 0x0082u:
|
||||
/* 0x0082 iris_readout_lane; current word H'E904; dispatch unknown. */
|
||||
if (value == 0x8000u) {
|
||||
@@ -432,10 +482,34 @@ static void sci1_candidate_panel_selector_annotation(u16 logical_index, u16 valu
|
||||
if (value == 0x8000u) {
|
||||
/* IRIS AUTO, SHUTTER OFF, MASTER GAIN -3. */
|
||||
}
|
||||
if (value == 0x4000u) {
|
||||
/* IRIS AUTO, SHUTTER OFF, MASTER GAIN 0. */
|
||||
}
|
||||
if (value == 0x2000u) {
|
||||
/* IRIS AUTO, SHUTTER OFF, MASTER GAIN 3. */
|
||||
}
|
||||
if (value == 0x0004u) {
|
||||
/* IRIS AUTO, SHUTTER OFF, MASTER GAIN HP. */
|
||||
}
|
||||
if (value == 0x0000u) {
|
||||
/* same visible state remained at 0.5 s. */
|
||||
}
|
||||
break;
|
||||
case 0x008Fu:
|
||||
/* 0x008F shutter_display_status_lane; current word H'E91E; dispatch unknown. */
|
||||
if (value == 0x8000u) {
|
||||
/* IRIS AUTO plus shutter value beginning with 1. */
|
||||
}
|
||||
if (value == 0x2000u) {
|
||||
/* IRIS AUTO plus shutter 00.0. */
|
||||
}
|
||||
if (value == 0x0800u) {
|
||||
/* IRIS AUTO plus shutter EVS. */
|
||||
}
|
||||
if (value == 0x1000u) {
|
||||
/* IRIS AUTO plus shutter OFF. */
|
||||
}
|
||||
break;
|
||||
case 0x0093u:
|
||||
/* 0x0093 white_balance_black_flare_mode_lane; current word H'E926; dispatch unknown. */
|
||||
if (value == 0x8000u) {
|
||||
@@ -447,10 +521,31 @@ static void sci1_candidate_panel_selector_annotation(u16 logical_index, u16 valu
|
||||
if (value == 0x2000u) {
|
||||
/* BLACK/FLARE MANUAL plus white-balance MANUAL. */
|
||||
}
|
||||
if (value == 0x1020u) {
|
||||
/* BLACK/FLARE MANUAL plus white-balance MANUAL. */
|
||||
}
|
||||
if (value == 0x4040u) {
|
||||
/* BLACK/FLARE AUTO plus white-balance AUTO. */
|
||||
}
|
||||
if (value == 0x8040u) {
|
||||
/* BLACK/FLARE AUTO plus white-balance PRESET. */
|
||||
}
|
||||
if (value == 0x0020u) {
|
||||
/* BLACK/FLARE MANUAL plus white-balance MANUAL. */
|
||||
}
|
||||
if (value == 0x0040u) {
|
||||
/* BLACK/FLARE AUTO plus white-balance MANUAL. */
|
||||
}
|
||||
if (value == 0x0000u) {
|
||||
/* BLACK/FLARE MANUAL plus white-balance MANUAL. */
|
||||
}
|
||||
break;
|
||||
case 0x0110u:
|
||||
/* 0x0110 knee_auto_lamp_or_page_status_lane; current word H'EA20; dispatch unknown. */
|
||||
if (value == 0x8000u) {
|
||||
/* KNEE AUTO lamp/status on. */
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -90,6 +90,18 @@ command-0 high-nibble writes in the `0x0008`-`0x001A` pocket, despite the older
|
||||
broad run that made MASTER flash. Treat that older observation as a real
|
||||
bench-visible event but not yet an isolated selector mapping.
|
||||
|
||||
Later refinement: the ROM-derived fresh-boot output sweep found a clean
|
||||
STANDARD trigger at `0x006B = 0x8000` (`00 00 6B 80 00 B1`). It also reclassed
|
||||
the formerly vague `0x001A` pocket as the MONITOR selector cluster:
|
||||
|
||||
| Selector/value | Visible effect |
|
||||
| --- | --- |
|
||||
| `0x001A = 0x0808` | MONITOR ENC |
|
||||
| `0x001A = 0x2020` | MONITOR B |
|
||||
| `0x001A = 0x4040` | MONITOR G |
|
||||
| `0x001A = 0x8080` | MONITOR R |
|
||||
| `0x006B = 0x8000` | STANDARD |
|
||||
|
||||
### `panel-atlas-big-visual-sweep-0001-017f-highbits`
|
||||
|
||||
The broad webcam sweep and fresh-boot isolation pass produced these confirmed
|
||||
|
||||
@@ -180,6 +180,59 @@ one command-0 selector/value from the ROM-derived candidate list, and captures a
|
||||
single webcam image 0.5 s later. It is intentionally slower than a continuous
|
||||
sweep but should avoid most latch/carryover ambiguity.
|
||||
|
||||
Run result notes from `captures/panel-atlas-rom-button-output-candidates-v1-webcam-shots/`:
|
||||
|
||||
| Case | Frame | Selector/value | Visible result |
|
||||
| --- | --- | --- | --- |
|
||||
| 001 | `00 00 13 40 00 09` | `0x0013 = 0x4000` | IRIS/M.BLACK LINK |
|
||||
| 002 | `00 00 13 80 00 C9` | `0x0013 = 0x8000` | SLAVE |
|
||||
| 003 | `00 00 15 80 00 CF` | `0x0015 = 0x8000` | CALL and red tally |
|
||||
| 004 | `00 00 17 80 00 CD` | `0x0017 = 0x8000` | BARS |
|
||||
| 005 | `00 01 90 80 00 4B` | `0x0110 = 0x8000` | KNEE AUTO |
|
||||
| 006 | `00 00 1A 08 08 40` | `0x001A = 0x0808` | MONITOR ENC |
|
||||
| 007 | `00 00 1A 20 20 40` | `0x001A = 0x2020` | MONITOR B |
|
||||
| 008 | `00 00 1A 40 40 40` | `0x001A = 0x4040` | MONITOR G |
|
||||
| 009 | `00 00 1A 80 80 40` | `0x001A = 0x8080` | MONITOR R |
|
||||
| 010 | `00 00 6B 80 00 B1` | `0x006B = 0x8000` | STANDARD |
|
||||
| 011 | `00 01 03 00 04 5C` | `0x0083 = 0x0004` | IRIS AUTO, SHUTTER OFF, MASTER GAIN HP |
|
||||
| 012 | `00 01 03 40 00 18` | `0x0083 = 0x4000` | IRIS AUTO, SHUTTER OFF, MASTER GAIN 0 |
|
||||
| 013 | `00 01 03 20 00 78` | `0x0083 = 0x2000` | IRIS AUTO, SHUTTER OFF, MASTER GAIN 3 |
|
||||
| 014 | `00 01 0F 80 00 D4` | `0x008F = 0x8000` | IRIS AUTO, SHUTTER begins with `1...` |
|
||||
| 015 | `00 01 0F 20 00 74` | `0x008F = 0x2000` | IRIS AUTO, SHUTTER `00.0` |
|
||||
| 016 | `00 01 0F 08 00 5C` | `0x008F = 0x0800` | IRIS AUTO, SHUTTER EVS |
|
||||
| 017 | `00 01 0F 10 00 44` | `0x008F = 0x1000` | IRIS AUTO, SHUTTER OFF |
|
||||
| 018 | `00 01 13 10 20 78` | `0x0093 = 0x1020` | BLACK/FLARE MANUAL, white balance MANUAL |
|
||||
| 019 | `00 01 13 40 40 48` | `0x0093 = 0x4040` | BLACK/FLARE AUTO, white balance AUTO |
|
||||
| 020 | `00 01 13 80 40 88` | `0x0093 = 0x8040` | BLACK/FLARE AUTO, white balance PRESET |
|
||||
| 021 | `00 01 13 00 20 68` | `0x0093 = 0x0020` | BLACK/FLARE MANUAL, white balance MANUAL |
|
||||
| 022 | `00 01 13 00 40 08` | `0x0093 = 0x0040` | BLACK/FLARE AUTO, white balance MANUAL |
|
||||
| 023 | `00 01 1A 08 00 49` | `0x009A = 0x0800` | no panel change observed |
|
||||
| 024 | `00 01 37 20 00 4C` | `0x00B7 = 0x2000` | no panel change observed |
|
||||
|
||||
The run directory contains 28 candidate photos. The user-supplied ordered notes
|
||||
covered the first 24, so cases 025-028 still need visual review before assigning
|
||||
meanings:
|
||||
|
||||
| Case | Frame | Selector/value | Candidate |
|
||||
| --- | --- | --- | --- |
|
||||
| 025 | `00 01 39 40 00 22` | `0x00B9 = 0x4000` | F6DC.7 handler value candidate |
|
||||
| 026 | `00 01 44 80 00 9F` | `0x00C4 = 0x8000` | F6D4.0 bundle selector candidate |
|
||||
| 027 | `00 01 46 80 00 9D` | `0x00C6 = 0x8000` | F6D4.0 bundle selector candidate |
|
||||
| 028 | `00 01 78 80 00 A3` | `0x00F8 = 0x8000` | F6D4.1 handler candidate |
|
||||
|
||||
Key refinements from this run:
|
||||
|
||||
- `0x001A` is now best labeled as the MONITOR selector cluster: `ENC`, `B`, `G`,
|
||||
and `R` appeared cleanly from the four packed values.
|
||||
- `0x006B = 0x8000` is the first clean STANDARD lamp trigger.
|
||||
- `0x0083` is a MASTER GAIN/status display word, with values observed for `HP`,
|
||||
`0`, and `3`, while also lighting IRIS AUTO and showing SHUTTER OFF.
|
||||
- `0x008F` carries local shutter display/value states beyond the earlier
|
||||
EVS/OFF bits.
|
||||
- `0x0093` now has stronger white-balance plus BLACK/FLARE field mapping:
|
||||
high/mid bit combinations select WB AUTO/PRESET/MANUAL and BLACK/FLARE
|
||||
AUTO/MANUAL together.
|
||||
|
||||
## Broad Visual Sweep Workflow
|
||||
|
||||
For exploratory lamp/readout mining, use the generated big sweep rather than
|
||||
|
||||
@@ -105,6 +105,73 @@ PANEL_SELECTOR_SEMANTICS: tuple[JsonObject, ...] = (
|
||||
{"value": 0x0000, "value_hex": "0x0000", "meaning": "SLAVE and IRIS/M.BLACK LINK latch bits clear through H'2E06", "confidence": "high"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x0015,
|
||||
"selector_hex": "0x0015",
|
||||
"name": "call_and_red_tally_lamp_lane",
|
||||
"summary": "Bench-visible CALL lamp and red tally lane; local CALL handler mirrors F6DB.5 into E800[0x0015].15.",
|
||||
"primary_word_address": PRIMARY_TABLE_BASE + 0x0015 * 2,
|
||||
"primary_word_address_hex": "H'E02A",
|
||||
"current_word_address": CURRENT_TABLE_BASE + 0x0015 * 2,
|
||||
"current_word_address_hex": "H'E82A",
|
||||
"dispatch_handler": "handler unknown",
|
||||
"confidence": "bench-high",
|
||||
"evidence": [
|
||||
"bench: 00 00 15 80 00 CF lights CALL and red tally",
|
||||
"ROM: H'20A1-H'20BA reads F6DB.5, writes H'E82A, and queues selector 0x0015",
|
||||
],
|
||||
"value_meanings": [
|
||||
{"value": 0x8000, "value_hex": "0x8000", "meaning": "CALL lamp and red tally on", "confidence": "bench-high"},
|
||||
{"value": 0x0000, "value_hex": "0x0000", "meaning": "CALL inactive/clear report", "confidence": "bench-high"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x0017,
|
||||
"selector_hex": "0x0017",
|
||||
"name": "bars_lamp_lane",
|
||||
"summary": "Bench-visible BARS lamp/latch lane; low writes do not reliably clear the visible latch.",
|
||||
"primary_word_address": PRIMARY_TABLE_BASE + 0x0017 * 2,
|
||||
"primary_word_address_hex": "H'E02E",
|
||||
"current_word_address": CURRENT_TABLE_BASE + 0x0017 * 2,
|
||||
"current_word_address_hex": "H'E82E",
|
||||
"dispatch_handler": "handler unknown",
|
||||
"confidence": "bench-high",
|
||||
"evidence": [
|
||||
"bench: 00 00 17 80 00 CD lights BARS",
|
||||
"bench: 00 00 17 40 00 0D also lights the BARS latch in neighbor sweep",
|
||||
"ROM: H'1EDE can queue selector 0x0017 from F6D4.2",
|
||||
],
|
||||
"value_meanings": [
|
||||
{"value": 0x8000, "value_hex": "0x8000", "meaning": "BARS lamp on", "confidence": "bench-high"},
|
||||
{"value": 0x4000, "value_hex": "0x4000", "meaning": "BARS lamp/latch on", "confidence": "bench-medium-high"},
|
||||
{"value": 0x0000, "value_hex": "0x0000", "meaning": "BARS low write; visible latch may remain", "confidence": "bench-medium"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x001A,
|
||||
"selector_hex": "0x001A",
|
||||
"name": "monitor_selector_lamps",
|
||||
"summary": "Bench-visible MONITOR selector cluster found from ROM-derived button-output sweep.",
|
||||
"primary_word_address": PRIMARY_TABLE_BASE + 0x001A * 2,
|
||||
"primary_word_address_hex": "H'E034",
|
||||
"current_word_address": CURRENT_TABLE_BASE + 0x001A * 2,
|
||||
"current_word_address_hex": "H'E834",
|
||||
"dispatch_handler": "handler unknown",
|
||||
"confidence": "bench-high",
|
||||
"evidence": [
|
||||
"bench: 00 00 1A 08 08 40 lights MONITOR ENC",
|
||||
"bench: 00 00 1A 20 20 40 lights MONITOR B",
|
||||
"bench: 00 00 1A 40 40 40 lights MONITOR G",
|
||||
"bench: 00 00 1A 80 80 40 lights MONITOR R",
|
||||
"ROM: H'1CB2-H'1D56 writes packed values to H'E834 and queues selector 0x001A",
|
||||
],
|
||||
"value_meanings": [
|
||||
{"value": 0x0808, "value_hex": "0x0808", "meaning": "MONITOR ENC lamp", "confidence": "bench-high"},
|
||||
{"value": 0x2020, "value_hex": "0x2020", "meaning": "MONITOR B lamp", "confidence": "bench-high"},
|
||||
{"value": 0x4040, "value_hex": "0x4040", "meaning": "MONITOR G lamp", "confidence": "bench-high"},
|
||||
{"value": 0x8080, "value_hex": "0x8080", "meaning": "MONITOR R lamp", "confidence": "bench-high"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x0024,
|
||||
"selector_hex": "0x0024",
|
||||
@@ -120,6 +187,25 @@ PANEL_SELECTOR_SEMANTICS: tuple[JsonObject, ...] = (
|
||||
{"value": 0x0000, "value_hex": "0x0000", "meaning": "lamp remained visible at 0.5 s in isolation run", "confidence": "bench-low"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x006B,
|
||||
"selector_hex": "0x006B",
|
||||
"name": "standard_lamp_lane",
|
||||
"summary": "Bench-visible STANDARD lamp lane found from ROM-derived F6D4.6 handler candidate.",
|
||||
"primary_word_address": PRIMARY_TABLE_BASE + 0x006B * 2,
|
||||
"primary_word_address_hex": "H'E0D6",
|
||||
"current_word_address": CURRENT_TABLE_BASE + 0x006B * 2,
|
||||
"current_word_address_hex": "H'E8D6",
|
||||
"dispatch_handler": "handler unknown",
|
||||
"confidence": "bench-high",
|
||||
"evidence": [
|
||||
"bench: 00 00 6B 80 00 B1 lights STANDARD",
|
||||
"ROM: H'2048 can write H'E8D6=0x8000 and queue selector 0x006B from F6D4.6",
|
||||
],
|
||||
"value_meanings": [
|
||||
{"value": 0x8000, "value_hex": "0x8000", "meaning": "STANDARD lamp on", "confidence": "bench-high"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x0082,
|
||||
"selector_hex": "0x0082",
|
||||
@@ -148,9 +234,36 @@ PANEL_SELECTOR_SEMANTICS: tuple[JsonObject, ...] = (
|
||||
"confidence": "bench-medium-high",
|
||||
"value_meanings": [
|
||||
{"value": 0x8000, "value_hex": "0x8000", "meaning": "IRIS AUTO, SHUTTER OFF, MASTER GAIN -3", "confidence": "bench-medium-high"},
|
||||
{"value": 0x4000, "value_hex": "0x4000", "meaning": "IRIS AUTO, SHUTTER OFF, MASTER GAIN 0", "confidence": "bench-high"},
|
||||
{"value": 0x2000, "value_hex": "0x2000", "meaning": "IRIS AUTO, SHUTTER OFF, MASTER GAIN 3", "confidence": "bench-high"},
|
||||
{"value": 0x0004, "value_hex": "0x0004", "meaning": "IRIS AUTO, SHUTTER OFF, MASTER GAIN HP", "confidence": "bench-high"},
|
||||
{"value": 0x0000, "value_hex": "0x0000", "meaning": "same visible state remained at 0.5 s", "confidence": "bench-low"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x008F,
|
||||
"selector_hex": "0x008F",
|
||||
"name": "shutter_display_status_lane",
|
||||
"summary": "Bench-visible shutter/status display lane; local F6D0.6/F6D0.7 handlers also queue this selector.",
|
||||
"primary_word_address": PRIMARY_TABLE_BASE + 0x008F * 2,
|
||||
"primary_word_address_hex": "H'E11E",
|
||||
"current_word_address": CURRENT_TABLE_BASE + 0x008F * 2,
|
||||
"current_word_address_hex": "H'E91E",
|
||||
"confidence": "bench-high",
|
||||
"evidence": [
|
||||
"bench: 00 01 0F 80 00 D4 shows IRIS AUTO and shutter value beginning with 1",
|
||||
"bench: 00 01 0F 20 00 74 shows IRIS AUTO and shutter 00.0",
|
||||
"bench: 00 01 0F 08 00 5C shows IRIS AUTO and shutter EVS",
|
||||
"bench: 00 01 0F 10 00 44 shows IRIS AUTO and shutter OFF",
|
||||
"ROM: H'24E8/H'252E write H'E91E and queue selector 0x008F from F6D0.7/F6D0.6",
|
||||
],
|
||||
"value_meanings": [
|
||||
{"value": 0x8000, "value_hex": "0x8000", "meaning": "IRIS AUTO plus shutter value beginning with 1", "confidence": "bench-medium-high"},
|
||||
{"value": 0x2000, "value_hex": "0x2000", "meaning": "IRIS AUTO plus shutter 00.0", "confidence": "bench-high"},
|
||||
{"value": 0x0800, "value_hex": "0x0800", "meaning": "IRIS AUTO plus shutter EVS", "confidence": "bench-high"},
|
||||
{"value": 0x1000, "value_hex": "0x1000", "meaning": "IRIS AUTO plus shutter OFF", "confidence": "bench-high"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x0093,
|
||||
"selector_hex": "0x0093",
|
||||
@@ -165,9 +278,32 @@ PANEL_SELECTOR_SEMANTICS: tuple[JsonObject, ...] = (
|
||||
{"value": 0x8000, "value_hex": "0x8000", "meaning": "BLACK/FLARE MANUAL plus white-balance PRESET", "confidence": "bench-high"},
|
||||
{"value": 0x4000, "value_hex": "0x4000", "meaning": "BLACK/FLARE MANUAL plus white-balance AUTO", "confidence": "bench-high"},
|
||||
{"value": 0x2000, "value_hex": "0x2000", "meaning": "BLACK/FLARE MANUAL plus white-balance MANUAL", "confidence": "bench-high"},
|
||||
{"value": 0x1020, "value_hex": "0x1020", "meaning": "BLACK/FLARE MANUAL plus white-balance MANUAL", "confidence": "bench-high"},
|
||||
{"value": 0x4040, "value_hex": "0x4040", "meaning": "BLACK/FLARE AUTO plus white-balance AUTO", "confidence": "bench-high"},
|
||||
{"value": 0x8040, "value_hex": "0x8040", "meaning": "BLACK/FLARE AUTO plus white-balance PRESET", "confidence": "bench-high"},
|
||||
{"value": 0x0020, "value_hex": "0x0020", "meaning": "BLACK/FLARE MANUAL plus white-balance MANUAL", "confidence": "bench-high"},
|
||||
{"value": 0x0040, "value_hex": "0x0040", "meaning": "BLACK/FLARE AUTO plus white-balance MANUAL", "confidence": "bench-high"},
|
||||
{"value": 0x0000, "value_hex": "0x0000", "meaning": "BLACK/FLARE MANUAL plus white-balance MANUAL", "confidence": "bench-high"},
|
||||
],
|
||||
},
|
||||
{
|
||||
"selector": 0x0110,
|
||||
"selector_hex": "0x0110",
|
||||
"name": "knee_auto_lamp_or_page_status_lane",
|
||||
"summary": "Bench-visible KNEE AUTO source; ROM notes indicate timed KNEE/detail page interaction.",
|
||||
"primary_word_address": PRIMARY_TABLE_BASE + 0x0110 * 2,
|
||||
"primary_word_address_hex": "H'E220",
|
||||
"current_word_address": CURRENT_TABLE_BASE + 0x0110 * 2,
|
||||
"current_word_address_hex": "H'EA20",
|
||||
"confidence": "bench-high",
|
||||
"evidence": [
|
||||
"bench: 00 01 90 80 00 4B lights KNEE AUTO",
|
||||
"ROM: KNEE notes identify E000[0x0110].15 as a strong KNEE AUTO/timed display source",
|
||||
],
|
||||
"value_meanings": [
|
||||
{"value": 0x8000, "value_hex": "0x8000", "meaning": "KNEE AUTO lamp/status on", "confidence": "bench-high"},
|
||||
],
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -53,6 +53,17 @@ class PanelSelectorSemanticsTest(unittest.TestCase):
|
||||
self.assertEqual(state_machine["active_mirror_frame"], "00 00 13 40 00 09")
|
||||
self.assertEqual(state_machine["clear_mirror_frame"], "00 00 13 00 00 49")
|
||||
|
||||
def test_rom_button_output_sweep_meanings_are_available(self):
|
||||
monitor_text = " ".join(describe_selector_value(0x001A, 0x4040))
|
||||
standard_text = " ".join(describe_selector_value(0x006B, 0x8000))
|
||||
shutter_text = " ".join(describe_selector_value(0x008F, 0x2000))
|
||||
white_balance_text = " ".join(describe_selector_value(0x0093, 0x8040))
|
||||
|
||||
self.assertIn("MONITOR G", monitor_text)
|
||||
self.assertIn("STANDARD", standard_text)
|
||||
self.assertIn("shutter 00.0", shutter_text)
|
||||
self.assertIn("white-balance PRESET", white_balance_text)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user