{ "name": "iris-mblack-link-report-press", "notes": [ "Focused queued-report test for the IRIS/M.BLACK LINK physical button.", "The ROM path at H'200E toggles E800[0x0013].14 when F006.7/F6DB.7 is active and F731 <= 3, then calls loc_3E54 with R2=0x80 R3=0x0013.", "This scenario services the local report queue by ACKing checksum-valid 00/01/02 report frames with command 5 for the observed selector.", "Expected selector-0013 report shapes include 00 00 13 40 00 09 for active, 00 00 13 00 00 49 for clear, and bit15 variants 00 00 13 80 00 C9 / 00 00 13 C0 00 89. Queued 01/02 variants are also valid evidence." ], "steps": [ { "action": "prompt", "message": "Prepare to test the IRIS/M.BLACK LINK button. Press Enter to power-cycle and start the live ACK windows." }, { "action": "power_cycle", "off_seconds": 1.5 }, { "action": "wait_ready", "heartbeats": 2, "timeout": 10.0, "require": true }, { "action": "drain", "seconds": 0.25 }, { "action": "send", "label": "selector_zero_connect_seed", "frame": "00 00 00 80 00 DA", "listen": 0.60 }, { "action": "send", "label": "cmd5_latch_clear_0096", "frame": "05 01 16 00 00 48", "listen": 0.05 }, { "action": "listen_ack", "seconds": 3.20, "target_mode": "queued_reports", "ack_mode": "cmd5_selector", "ack_guard": 0.010, "post_ack_read": 0.070, "poll_interval": 0.004, "once_per_frame": false, "limit_scope": "local", "max_acks": 48, "abort_on_limit": false }, { "action": "send", "label": "recover_connect_ok_seed", "frame": "00 00 00 80 00 DA", "listen": 0.45 }, { "action": "listen_ack", "seconds": 1.20, "target_mode": "queued_reports", "ack_mode": "cmd5_selector", "ack_guard": 0.010, "post_ack_read": 0.070, "poll_interval": 0.004, "once_per_frame": false, "limit_scope": "local", "max_acks": 32, "abort_on_limit": false }, { "action": "note", "message": "PRESS IRIS/M.BLACK LINK ONCE NOW; live queued-report ACK window is running.", "banner": true }, { "action": "listen_ack", "seconds": 10.00, "target_mode": "queued_reports", "ack_mode": "cmd5_selector", "ack_guard": 0.010, "post_ack_read": 0.070, "poll_interval": 0.004, "once_per_frame": false, "limit_scope": "local", "max_acks": 96, "abort_on_limit": false }, { "action": "send", "label": "refresh_connect_ok_seed_before_second_press", "frame": "00 00 00 80 00 DA", "listen": 0.35 }, { "action": "note", "message": "PRESS IRIS/M.BLACK LINK A SECOND TIME NOW to test the toggle-clear report.", "banner": true }, { "action": "listen_ack", "seconds": 10.00, "target_mode": "queued_reports", "ack_mode": "cmd5_selector", "ack_guard": 0.010, "post_ack_read": 0.070, "poll_interval": 0.004, "once_per_frame": false, "limit_scope": "local", "max_acks": 96, "abort_on_limit": false }, { "action": "send", "label": "repeat_last_for_hidden_report_check", "frame": "07 00 00 00 00 5D", "listen": 0.80 }, { "action": "listen", "seconds": 1.50 } ] }