Skip to content

fix(analyzer,project): emit out-of-segment flat symbols as EQU_ and static CPU vector equates - #7

Merged
mikolas merged 1 commit into
masterfrom
fix/out-of-seg-equs
Oct 28, 2026
Merged

mikolas merged 1 commit into
masterfrom
fix/out-of-seg-equs

Conversation

@mikolas

@mikolas mikolas commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Static 68000 Vector Equates (internal/amiga/equates.go): Expose GetM68kVectorLabel and ParseM68kVectorLabelAddr for 4-byte-aligned 68000 exception, autovector (Level_1_Interrupt..Level_7_Interrupt at $64..$7C), and trap (Trap_0..Trap_15 at $80..$BC) slots in [$00..$BC].
  • Deterministic EQU_ Out-of-Segment Auto-Labels (internal/project/project.go, internal/analyzer/):
    • Out-of-segment flat addresses resolve deterministically to their canonical 68000 vector name or EQU_%05X, while in-segment addresses remain LAB_%05X.
    • Flat-mode analyze creates backing labels rows for out-of-segment .l, .w (>= $100), and movea.l #imm,An references so rename and xref anchor reliably across re-analysis.
    • EAAbsShort (formatOperand) substitutes <label>.w when a non-mid-cell label exists.
    • GetAllLabelsResolved joins renames across both LAB_<hex> and EQU_<hex> keys.

Verification

  • go build ./..., go vet ./..., and go test ./... -count=1: all 11 packages pass.
  • Full load-image and bit-for-bit parity verified across all 8 multi-hunk executables/slaves and 6 flat binaries (disk.1, wh_stage1_1172.bin, wh_game_6bbc.bin, wh_game_7670.bin, mw_game_800.bin, game_e700.bin).

@mikolas
mikolas merged commit 07ef418 into master Oct 28, 2026
8 checks passed
@mikolas
mikolas deleted the fix/out-of-seg-equs branch October 28, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant