emualtor working
This commit is contained in:
@@ -635,6 +635,20 @@ def _gate_queue_comment_lines(
|
||||
condition = _comment_text(str(predicate.get("condition_candidate") or "condition unknown"))
|
||||
summary = _comment_text(str(predicate.get("summary") or "candidate gate"))
|
||||
lines.append(f"{prefix}- {name}: {condition}; {summary}")
|
||||
enqueued = predicate.get("enqueued_report_candidate_hex")
|
||||
if enqueued:
|
||||
lines.append(f"{prefix} enqueues report {enqueued}")
|
||||
write_semantics = str(predicate.get("write_semantics_candidate") or "").strip()
|
||||
if write_semantics:
|
||||
lines.append(f"{prefix} write semantics: {_comment_text(write_semantics)}")
|
||||
runtime = predicate.get("runtime_trace_confirmation")
|
||||
if isinstance(runtime, dict):
|
||||
frame = runtime.get("emitted_frame_hex")
|
||||
path = " -> ".join(str(item) for item in runtime.get("dequeue_path", []) if item)
|
||||
detail = f"runtime-confirmed frame {frame}" if frame else "runtime-confirmed path"
|
||||
if path:
|
||||
detail += f" via {path}"
|
||||
lines.append(f"{prefix} {detail}")
|
||||
for effect in _object_list(value.get("session_effects")):
|
||||
name = effect.get("name") or "session_effect_candidate"
|
||||
summary = _comment_text(str(effect.get("summary") or "candidate session effect"))
|
||||
@@ -677,6 +691,16 @@ def _gate_queue_predicate_function_lines(value: object) -> list[str]:
|
||||
" return idle_timer_clear && rx_gate_open && queue_empty;",
|
||||
"}",
|
||||
"",
|
||||
"static void sci1_candidate_enqueue_idle_heartbeat_report(void)",
|
||||
"{",
|
||||
" if (!sci1_candidate_idle_heartbeat_enqueue_gate_open()) {",
|
||||
" return;",
|
||||
" }",
|
||||
"",
|
||||
" /* loc_4067 writes MOV:G.W #H'00, so the queue report id is 0x0000. */",
|
||||
" candidate_enqueue_report(0x0000u);",
|
||||
"}",
|
||||
"",
|
||||
"static bool sci1_candidate_periodic_resend_gate_open(void)",
|
||||
"{",
|
||||
" bool pending = (MEM8[0xFAA5u] & MEM8[0xFAA3u] & 0x80u) != 0u;",
|
||||
@@ -711,6 +735,21 @@ def _tx_report_comment_lines(
|
||||
observed.append(f"{name}: {frames}")
|
||||
if observed:
|
||||
lines.append(f"{prefix}- observed overlay candidates: {_comment_text('; '.join(observed))}")
|
||||
for runtime in _object_list(value.get("runtime_confirmed_paths")):
|
||||
name = runtime.get("name") or "runtime_confirmation"
|
||||
frame = runtime.get("emitted_frame_hex") or "frame?"
|
||||
report = runtime.get("report_id_hex") or "report?"
|
||||
summary = f"{name}: report {report} emits {frame}"
|
||||
semantics = runtime.get("queue_write_semantics")
|
||||
if semantics:
|
||||
summary += f"; {semantics}"
|
||||
lines.append(f"{prefix}- runtime confirmation: {_comment_text(summary)}")
|
||||
checks = _object_list(value.get("consistency_checks"))
|
||||
for check in checks:
|
||||
name = check.get("name") or "consistency_check"
|
||||
status = check.get("status") or "info"
|
||||
summary = _comment_text(str(check.get("summary") or ""))
|
||||
lines.append(f"{prefix}- consistency {name}: {status}; {summary}")
|
||||
caveat = str(value.get("observed_autonomous_output_caveat") or value.get("caveat") or "").strip()
|
||||
if caveat:
|
||||
lines.append(f"{prefix}- caveat: {_comment_text(caveat)}")
|
||||
|
||||
Reference in New Issue
Block a user