diff --git a/README.md b/README.md index aec2098..0bc6429 100644 --- a/README.md +++ b/README.md @@ -57,8 +57,8 @@ build on owned state instead of another round of single-field save-offset guesse runtime-side `0x2329` stat-family reader seam is now rehosted too for the currently grounded slots `0x0d` (`current_cash`) and `0x1d` (`book_value_per_share`), so later annual-finance logic can extend one shared reader family instead of hard-coding more direct field accesses. Those saved -stat-band windows are now widened to 16 dwords per root in save-slice/runtime state so later -year-series finance closure has enough owned raw state to attach to. The matching world-side issue +stat-band windows are now widened to 32 dwords per root in save-slice/runtime state so later +year-series finance closure has a broader owned raw state band to attach to. The matching world-side issue reader seam is now also rehosted for the grounded `0x37` investor-confidence lane on top of the save-native world-restore state. The selected-company summary path now also exposes the unassigned share pool derived from outstanding shares minus chairman-held shares, so later diff --git a/crates/rrt-runtime/src/smp.rs b/crates/rrt-runtime/src/smp.rs index 57c2958..65cec99 100644 --- a/crates/rrt-runtime/src/smp.rs +++ b/crates/rrt-runtime/src/smp.rs @@ -3505,7 +3505,7 @@ const SAVE_COMPANY_RECORD_TRACK_LAYING_CAPACITY_OFFSET: usize = 0x7680; const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_0CFB_OFFSET: usize = 0x0cfb; const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_0D7F_OFFSET: usize = 0x0d7f; const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_1C47_OFFSET: usize = 0x1c47; -const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_WINDOW_LEN_DWORDS: usize = 16; +const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_WINDOW_LEN_DWORDS: usize = 32; const SAVE_COMPANY_RECORD_SCALAR_CANDIDATE_FIELDS: [(&str, usize); 7] = [ ("mutable_support_scalar", 0x4f), ("young_company_support_scalar", 0x57), @@ -16125,6 +16125,26 @@ mod tests { assert_eq!(market_state.prior_issue_calendar_word, 6); assert!(market_state.city_connection_latch); assert!(!market_state.linked_transit_latch); + assert_eq!( + market_state.stat_band_root_0cfb_candidates.len(), + SAVE_COMPANY_RECORD_STAT_BAND_ROOT_WINDOW_LEN_DWORDS + ); + assert_eq!( + market_state.stat_band_root_0d7f_candidates.len(), + SAVE_COMPANY_RECORD_STAT_BAND_ROOT_WINDOW_LEN_DWORDS + ); + assert_eq!( + market_state.stat_band_root_1c47_candidates.len(), + SAVE_COMPANY_RECORD_STAT_BAND_ROOT_WINDOW_LEN_DWORDS + ); + assert_eq!( + market_state.stat_band_root_0cfb_candidates[31].label, + "stat_band_0cfb_word_32" + ); + assert_eq!( + market_state.stat_band_root_0cfb_candidates[31].relative_offset_hex, + "0xd77" + ); assert_eq!(roster.entries[1].company_id, 2); assert_eq!(roster.entries[1].linked_chairman_profile_id, Some(2)); assert_eq!(roster.entries[1].debt, 500_000); diff --git a/docs/README.md b/docs/README.md index 346f499..7623ded 100644 --- a/docs/README.md +++ b/docs/README.md @@ -117,7 +117,7 @@ The highest-value next passes are now: and `[company+0x1c47]` for each live company, so later finance/stat-family readers can attach to owned runtime data instead of one more guessed save offset; the first runtime-side `0x2329` stat-family reader seam is now also rehosted for slots `0x0d` and `0x1d`, and the saved - stat-band windows themselves now carry 16 dwords per root; the matching world-side issue reader + stat-band windows themselves now carry 32 dwords per root; the matching world-side issue reader seam is now rehosted for the grounded `0x37` lane, and selected-company summaries now expose the unassigned share pool derived from outstanding shares minus chairman-held shares for later annual finance logic; that same owned company market state now also backs a bundled annual-finance diff --git a/docs/runtime-rehost-plan.md b/docs/runtime-rehost-plan.md index 746f1fe..2e9f913 100644 --- a/docs/runtime-rehost-plan.md +++ b/docs/runtime-rehost-plan.md @@ -201,7 +201,7 @@ roster. The current owned company-side roster now includes not just the market/c the first grounded stat-band root windows at `[company+0x0cfb]`, `[company+0x0d7f]`, and `[company+0x1c47]`, and the first runtime-side `0x2329` stat-family reader seam is now rehosted for slots `0x0d` and `0x1d`, so later finance readers can target saved owner state and one shared -reader family directly. Those stat-band windows now carry 16 dwords per root in the save-slice and +reader family directly. Those stat-band windows now carry 32 dwords per root in the save-slice and runtime-owned company market state, and the matching world-side issue reader seam is now rehosted for the grounded `0x37` lane over save-native world restore state. The selected-company summary surface now also carries the unassigned share pool derived from outstanding shares minus