diff --git a/docs/formats/core-data-regions.md b/docs/formats/core-data-regions.md index 4c8557f..5cf12b9 100644 --- a/docs/formats/core-data-regions.md +++ b/docs/formats/core-data-regions.md @@ -617,3 +617,26 @@ The earlier "they disagree" framing was wrong in one respect: the marker spacing never claimed to be the record size. Read as a claim about markers inside records rather than about the record itself, the two measurements were never in conflict. + +## SBlk record layout at 40 bytes + +**Range measured:** level 0 `SBlk`, 24..19508, aligned at +0 — 487 whole +records. + +**Method:** for each of 40 candidate alignments, record the number of byte +positions that are near-constant across records, and keep the best. + +**Result:** alignment +0 is best, with 10 near-constant positions. Four are +exactly constant and all zero: positions **7, 11, 31 and 35**. + +Distinct values per byte position across the 487 records runs from 1 to 155, +with position 29 the most variable by a wide margin (155 against 21-48 +elsewhere) and positions 2, 10, 27, 34 and 39 low (2 to 8). + +The first record carries the `SBlk` magic and the `DAW` tag rather than +descriptor data, so it is a header rather than an entry — which is worth +accounting for before reading any field at a fixed offset. + +**Not decoded.** The layout is established and the constant positions are +known; the fields are not named, and which of the 40 bytes are an index, a +length and an offset is still open.