1
0

EMualtor adjustments

This commit is contained in:
Aiden
2026-05-25 20:42:45 +10:00
parent d2e7609bbf
commit 3ab79648ff
17 changed files with 3047 additions and 83 deletions

View File

@@ -5,6 +5,185 @@
"Branch predicates are summarized from local instruction order and targets; this is not an emulator trace."
],
"evidence": {
"idle_heartbeat_gate_loc_4046": {
"candidate_timer_roles": [
{
"address": 63940,
"address_hex": "H'F9C4",
"evidence_address_hex": "H'BF2D",
"role": "candidate idle heartbeat/report gate countdown"
}
],
"decrement_address_hex": "H'BF2D",
"gate_address_hex": "H'4046",
"initial_reload_address_hex": "H'40E0",
"initial_reload_value_hex": "H'14",
"items": [
{
"address": 16454,
"address_hex": "H'4046",
"present": true,
"targets_hex": [],
"text": "TST.B @H'F9C4"
},
{
"address": 16458,
"address_hex": "H'404A",
"present": true,
"targets_hex": [
"H'4058"
],
"text": "BNE loc_4058"
},
{
"address": 16460,
"address_hex": "H'404C",
"present": true,
"targets_hex": [],
"text": "BTST.B #7, @H'FAA5"
},
{
"address": 16464,
"address_hex": "H'4050",
"present": true,
"targets_hex": [
"H'4059"
],
"text": "BEQ loc_4059"
},
{
"address": 16466,
"address_hex": "H'4052",
"present": true,
"targets_hex": [],
"text": "TST.B @H'F9C3"
},
{
"address": 16470,
"address_hex": "H'4056",
"present": true,
"targets_hex": [
"H'4059"
],
"text": "BEQ loc_4059"
},
{
"address": 16472,
"address_hex": "H'4058",
"present": true,
"targets_hex": [],
"text": "RTS"
},
{
"address": 16473,
"address_hex": "H'4059",
"present": true,
"targets_hex": [],
"text": "MOV:G.B @H'F9B0, R2"
},
{
"address": 16479,
"address_hex": "H'405F",
"present": true,
"targets_hex": [],
"text": "CMP:G.B @H'F9B5, R2"
},
{
"address": 16483,
"address_hex": "H'4063",
"present": true,
"targets_hex": [
"H'4074"
],
"text": "BNE loc_4074"
},
{
"address": 16487,
"address_hex": "H'4067",
"present": true,
"targets_hex": [],
"text": "MOV:G.W #H'00, @(-H'0790,R2)"
},
{
"address": 16492,
"address_hex": "H'406C",
"present": true,
"targets_hex": [],
"text": "ADD:Q.B #1, @H'F9B0"
},
{
"address": 16496,
"address_hex": "H'4070",
"present": true,
"targets_hex": [],
"text": "BCLR.B #7, @H'F9B0"
},
{
"address": 16608,
"address_hex": "H'40E0",
"present": true,
"targets_hex": [],
"text": "MOV:G.B #H'14, @H'F9C4"
},
{
"address": 47665,
"address_hex": "H'BA31",
"present": true,
"targets_hex": [],
"text": "MOV:G.B #H'07, @H'F9C4"
},
{
"address": 48931,
"address_hex": "H'BF23",
"present": true,
"targets_hex": [],
"text": "BCLR.B #5, @FRT2_TCSR"
},
{
"address": 48935,
"address_hex": "H'BF27",
"present": true,
"targets_hex": [],
"text": "TST.B @H'F9C4"
},
{
"address": 48941,
"address_hex": "H'BF2D",
"present": true,
"targets_hex": [],
"text": "ADD:Q.B #-1, @H'F9C4"
}
],
"post_tx_reload_address_hex": "H'BA31",
"post_tx_reload_value_hex": "H'07",
"present": true,
"queue_write_address_hex": "H'4067",
"required_addresses_hex": [
"H'4046",
"H'4050",
"H'4067",
"H'40E0",
"H'BA31",
"H'BF23",
"H'BF2D"
],
"summary": "F9C4 gates the idle/default report enqueue. Reset/init loads H'14, each BA26 send reloads H'07, and the FRT2 OCIA handler decrements it; when it reaches zero loc_4046 can enqueue H'00FF if the queue is empty and the FAA5/F9C3 RX gate permits it. With FRT2 OCRA H'7A12 and CKS=phi/32, a phi near 10 MHz gives about 0.7s for H'07, matching the observed heartbeat cadence.",
"tick_handler_address_hex": "H'BF23",
"timer": {
"clock_select": "CKS1=1 CKS0=0 => phi/32",
"handler_address_hex": "H'BF23",
"manual_reference": "Manual/0900766b802125d0.md:12038 FRT CKS1/CKS0 clock select",
"observed_period_ms_candidate": 700,
"ocra_address_hex": "H'FEA4",
"ocra_value_hex": "H'7A12",
"source": "FRT2 OCIA",
"tcr_address_hex": "H'FEA0",
"tcsr_address_hex": "H'FEA1",
"vector_address_hex": "H'006A",
"vector_target_label": "vec_frt2_ocia_BF23"
},
"title": "loc_4046 idle heartbeat/report gate"
},
"queue_send_gate_loc_BAF2": {
"items": [
{
@@ -1330,6 +1509,87 @@
],
"write_count": 4
},
{
"accesses": [
{
"access": "read",
"address": 16454,
"address_hex": "H'4046",
"function": "loc_4046",
"text": "TST.B @H'F9C4"
},
{
"access": "write",
"address": 16608,
"address_hex": "H'40E0",
"function": "loc_40BB",
"text": "MOV:G.B #H'14, @H'F9C4"
},
{
"access": "write",
"address": 47665,
"address_hex": "H'BA31",
"function": "loc_BA26",
"text": "MOV:G.B #H'07, @H'F9C4"
},
{
"access": "read",
"address": 48935,
"address_hex": "H'BF27",
"function": "vec_frt2_ocia_BF23",
"text": "TST.B @H'F9C4"
},
{
"access": "read_write",
"address": 48941,
"address_hex": "H'BF2D",
"function": "vec_frt2_ocia_BF23",
"text": "ADD:Q.B #-1, @H'F9C4"
}
],
"address": 63940,
"address_hex": "H'F9C4",
"read_count": 2,
"read_write_count": 1,
"sample_accesses": [
{
"access": "read",
"address": 16454,
"address_hex": "H'4046",
"function": "loc_4046",
"text": "TST.B @H'F9C4"
},
{
"access": "write",
"address": 16608,
"address_hex": "H'40E0",
"function": "loc_40BB",
"text": "MOV:G.B #H'14, @H'F9C4"
},
{
"access": "write",
"address": 47665,
"address_hex": "H'BA31",
"function": "loc_BA26",
"text": "MOV:G.B #H'07, @H'F9C4"
},
{
"access": "read",
"address": 48935,
"address_hex": "H'BF27",
"function": "vec_frt2_ocia_BF23",
"text": "TST.B @H'F9C4"
},
{
"access": "read_write",
"address": 48941,
"address_hex": "H'BF2D",
"function": "vec_frt2_ocia_BF23",
"text": "ADD:Q.B #-1, @H'F9C4"
}
],
"write_count": 2
},
{
"accesses": [
{
@@ -1993,6 +2253,11 @@
"address_hex": "H'F9C3",
"symbol": "ram_F9C3"
},
{
"address": 63940,
"address_hex": "H'F9C4",
"symbol": "ram_F9C4"
},
{
"address": 63941,
"address_hex": "H'F9C5",