Skip to content

v0.96.0

@monteslu monteslu tagged this 17 Jul 02:55
Three asks, no bugs reported:
1. disasm({target:'rom'}) runs the per-instruction M/X width dataflow on
   65816 — the same widthRanges walk as target:'project': in-window rep/sep
   followed (width-homogeneous ADDRMODE ranges) + entry-width inference
   (8/8 first, others scored by desync symptoms). Re-decoding one range
   under corrected widths is one call; no project regen that would discard
   hand-maintained annotations. Composes with dataRanges (width carries
   across data). Documented in the tool description.
2. breakpoint({on:'write'}) conditionWidth:16 (auto-inferred when
   conditionValue > 255): 'equals' arms the core watch on the HIGH byte +
   verifies the low byte host-side (a $2077 write doesn't satisfy word ==
   $2000); 'increase'/'decrease' compare the word host-side each frame so a
   16-bit counter's carry can't lie. valueWord/oldValueWord/watchedByte in
   results; conditionValue schema 0-65535.
3. memory({op:'read', offsets, compact:true}) returns one {"0xOFF":"hex"}
   map (~4x fewer tokens for sample-N-flags).

widthRanges/addrmode exported from common/reassemble.js (not in the vendored
kit — no parity impact). Tests: v0.94-feedback-round.test.js (7).
Reply: ~/Downloads/feedback/v0.94.0/MAINTAINER_REPLY.md. 1153/1153, lint
clean.
Assets 2
Loading