emualtor working
This commit is contained in:
@@ -1683,10 +1683,24 @@ def _gate_queue_model(ordered: list[JsonObject], commands: list[JsonObject]) ->
|
||||
),
|
||||
"summary": (
|
||||
"Idle/default report gate; when the FRT2 countdown clears and the queue is "
|
||||
"empty, loc_4046 can enqueue H'00FF for the later loc_BAF2 -> loc_BA26 send path."
|
||||
"empty, loc_4046 can enqueue H'0000 for the later loc_BAF2 -> loc_BA26 send path."
|
||||
),
|
||||
"state_addresses_hex": [_h16(0xF9C4), _h16(0xFAA5), _h16(0xF9C3), _h16(0xF9B0), _h16(0xF9B5)],
|
||||
"enqueued_report_candidate_hex": _h16(0x00FF),
|
||||
"enqueued_report_candidate_hex": _h16(0x0000),
|
||||
"write_semantics_candidate": (
|
||||
"loc_4067 is MOV:G.W #H'00, @(-H'0790,R2): the byte immediate is "
|
||||
"zero-extended by the word destination, so the queue slot becomes H'0000."
|
||||
),
|
||||
"runtime_trace_confirmation": {
|
||||
"source": "h8536_emulator_probe target-frame run",
|
||||
"report_id_hex": _h16(0x0000),
|
||||
"queue_write_address_hex": _h16(IDLE_REPORT_QUEUE_WRITE),
|
||||
"queue_write_semantics": "H'FFFF -> H'0000, not H'00FF",
|
||||
"dequeue_path": ["loc_4046", "loc_BAF2", "loc_BB08", "loc_BB1C", "loc_BB20", "loc_BB2B", "loc_BA26"],
|
||||
"emitted_frame_hex": "00 00 00 00 80 DA",
|
||||
"checksum_seed_hex": _h16(CHECKSUM_SEED, width=2),
|
||||
"checksum_hex": "H'DA",
|
||||
},
|
||||
"evidence_addresses": _addresses_in_ranges(
|
||||
ordered,
|
||||
[(IDLE_REPORT_GATE_ENTRY, IDLE_REPORT_GATE_END)],
|
||||
@@ -1965,6 +1979,27 @@ def _tx_report_model(ordered: list[JsonObject], responses: list[JsonObject]) ->
|
||||
"value_source_candidate": "current_value_table_candidate",
|
||||
"checksum_formula": "checksum = 0x5A ^ byte0 ^ byte1 ^ byte2 ^ byte3 ^ byte4",
|
||||
"observed_capture_overlay_candidates": OBSERVED_TX_REPORT_OVERLAY,
|
||||
"runtime_confirmed_paths": [
|
||||
{
|
||||
"name": "idle_heartbeat_report_runtime_confirmation",
|
||||
"report_id_hex": _h16(0x0000),
|
||||
"queue_write_address_hex": _h16(IDLE_REPORT_QUEUE_WRITE),
|
||||
"queue_write_semantics": "MOV:G.W #H'00 writes H'0000 to the queue slot",
|
||||
"staging_path": ["loc_4046", "loc_BAF2", "loc_BB08", "loc_BB1C", "loc_BB20", "loc_BB2B", "loc_BA26"],
|
||||
"emitted_frame_hex": "00 00 00 00 80 DA",
|
||||
"checksum_hex": "H'DA",
|
||||
}
|
||||
],
|
||||
"consistency_checks": [
|
||||
{
|
||||
"name": "idle_heartbeat_report_id_width",
|
||||
"status": "pass",
|
||||
"summary": (
|
||||
"Decompiler mnemonic MOV:G.W and emulator execution now agree that the "
|
||||
"H'00 immediate at loc_4067 is zero-extended to report H'0000."
|
||||
),
|
||||
}
|
||||
],
|
||||
"observed_autonomous_output_caveat": (
|
||||
"Real captures supplied so far show only heartbeat/idle, call, and camera-power "
|
||||
"autonomous TX frames. Other panel controls may require a host/device request or "
|
||||
|
||||
Reference in New Issue
Block a user