rg-dis release notes
The disassembler for Atari ST, TT and Falcon. Newest release first.
0.7.3 — 2026-09-19
Streamlines string inspection with string-first table formatting and enhances listing layout documentation.
Improvements
- String-first inspection tables (
--inspect strings): Elevates extracted string content to the prominent first column in text and rich terminal tables, streamlining metadata columns (string,addr,seg,len,ref,label) and moving internal metrics to extended--jsonpayload only. - Unified string table formatting: Standardizes string inspection reporting across TOS executables, ELF object files, raw binary buffers, and floppy disk images.
0.7.2 — 2026-09-18
Adds directory timestamps and attributes to disk inspection, fixes multi-word offset annotations, and improves annotation flag composition.
Improvements
- File metadata in directory listings (
--inspect disk): Adds last-written dates, DOS attribute flags (read-only, hidden, system, archive, directory, volume label), and attribute legends to directory tables. - Filesystem volume date span: Reports the earliest and latest directory write timestamps in the filesystem summary, and exposes them under
--jsonasvolume.file_dates. - Nominal media descriptor reporting: Labels legacy boot sector media descriptor codes as nominal descriptions, avoiding contradictions with actual measured disk geometry.
Bug fixes
- Multi-word raw instruction address annotations (
--annotate-offsets): Stamped addresses on every word line when multi-word instructions fall back to split rawdc.wrepresentations. - Annotation flag composition: Allows combining
--annotatewith specific--no-annotate-<family>flags to selectively disable individual annotation categories.
0.7.1 — 2026-09-18
Enforces 16-bit word alignment on code entry points and unreachable segment traversals.
Bug fixes
- Word alignment in code start heuristics: Rejects odd byte addresses during code entry validation and unreachable region walks to preserve 16-bit 68000 alignment invariants.
0.7.0 — 2026-09-17
Adds per-line memory address annotations for disassembly listings and structured table formatting for disk inspection reports.
New features
- Per-line memory addresses (
--annotate-offsets): Annotates instruction and data lines with their loaded memory addresses at a uniform column width (included in--annotateand--json). When combined with--annotate-cycles, the address column is rendered alongside execution timings.
Improvements
- Structured disk inspection tables (
--inspect disk): Formats geometry, allocation, directory listings, container members, and filesystem defect summaries into aligned boxed tables. - Floppy media descriptor reporting: Reports the boot sector media descriptor byte as its corresponding 3.5-inch disk format.
0.6.27 — 2026-09-17
Adds floppy disk inspection without disassembly, fixes MOVEM and trap call comment fidelity, and clarifies round-trip reassembly verification documentation.
New features
- Floppy disk inspection (
--inspect disk): Reports disk geometry, boot sector metadata, filesystem layout, space usage, volume labels, and recursive directory trees directly from metadata without disassembling. - Executable detection and unreadable disk handling: Identifies GEMDOS executables within disk file listings and reports invalid sector geometry errors instead of attempting raw disassembly.
Bug fixes
- Single-register MOVEM stores: Emits single-register stack stores as valid
MOVEMinstructions rather than raw data words. - Call-site trap annotation filtering: Annotates subroutine calls (
JSR/BSR) with TOS trap names only when the target is a dedicated wrapper subroutine.
Documentation
- Round-trip reassembly documentation: Clarifies documentation and web copy to specify that round-trip fidelity verifies byte-identical code and data reassembly rather than symbol table reproduction.
0.6.26 — 2026-09-17
Fixes undefined symbol emissions when resolving displaced absolute operands in disassembly listings.
Bug fixes
- Displaced absolute operand name resolution: Strips displacement offsets when checking symbol definitions for operands such as
(NAME+4).L, preventing undefined labels from being emitted. - Unified operand symbol scanning: Unifies base symbol extraction across undefined-symbol and collision scanners by splitting bracketed operands at displacement operators.
0.6.25 — 2026-09-17
Extends undefined symbol elimination to word-sized absolute addressing modes.
Bug fixes
- Word-sized absolute operand validation: Checks word-sized absolute operands (
(NAME).W) against defined symbols to prevent emitting undefined labels. - Operand suffix matching: Updates the scanner to recognise both
.Wand.Labsolute operand suffixes.
0.6.24 — 2026-09-17
Prevents undefined symbols from being emitted for absolute operands pointing into unlabelled data regions.
Bug fixes
- Undefined absolute symbol suppression: Emits raw numeric addresses instead of unlabelled
.textsymbols for absolute operands, preventing reassembly failures. - Symbol emission pass consistency: Aligns absolute operand label verification with branch target and PC-relative label checks in Pass 2.
0.6.23 — 2026-09-17
Ensures disassembled listings define all referenced labels, improves relocation immediate formatting, and clarifies CPU directive scope.
Bug fixes
- Referenced label emission: Emits all referenced symbol table code targets as labels to ensure disassembled source links cleanly.
- Relocated immediate instruction decoding: Renders long immediate instructions bearing relocations as valid instructions instead of raw data words.
- Illegal instruction demotion: Demotes invalid address-register operand encodings to data directives.
- Mid-word code region alignment: Handles odd-byte boundaries at code region ends as raw data bytes to prevent label skipping.
Improvements
- CPU directive scope comments: Adds preamble comments clarifying when listing
.cpu/.fpudirectives cover all emitted code regions while--inspect cpureports reachable code only.
0.6.22 — 2026-09-17
Filters opcode false positives from string inspection, synchronises summary string counts, and fixes UTF-8 console output on Windows.
Improvements
- Opcode filtering in string inspection: Excludes decoded instruction regions from
--inspect stringsby default to suppress false positives (configurable via--strings-include-code). - String count synchronisation: Aligns total string counts in bare
--inspectsummaries with--inspect stringstable output. - Windows console UTF-8 support: Ensures banners and diagnostic notes render correctly on Windows consoles without character encoding errors.
0.6.21 — 2026-09-16
Improves reassembly fidelity for branch targets in data sections and handles unsupported FMOVEM register masks.
Bug fixes
- Branch targets in data sections: Emits branch targets as labels only when defined within the listing, preserving byte-exact reassembly for mixed code and data.
- FMOVEM dynamic register masks: Emits raw data words for
FMOVEMregister masks that cannot be expressed with standard register list syntax.
0.6.20 — 2026-09-16
Improves CPU inspection output and updates documentation for round-trip testing and container inspection.
Improvements
- CPU inspection summary details: Reports the minimum required CPU and FPU alongside the analysed
.textbyte count in--inspect cpu. - Round-trip fidelity documentation: Updates documentation to clarify the scope of verified byte-exact round-trip reassembly.
- Container inspection documentation: Documents container member listing options in
--helpand manual pages.
0.6.19 — 2026-09-16
Automatically routes floppy disk images to the disk inspection pipeline and improves disassembly performance for large binaries.
New features
- Automatic floppy image detection: Automatically routes
.ST,.MSA, and.STXdisk images to the floppy inspection pipeline by file header and extension, with--input-format diskavailable to force handling.
Improvements
- Disk fallback handling: Falls back to raw binary disassembly with a warning on stderr if floppy header autodetection fails.
- Pipeline routing documentation: Updates
--helpand documentation to explain automatic disk routing and fallback options. - Disassembly throughput: Optimises pass traversal to disassemble large raw images and executables up to 9× faster.
0.6.18 — 2026-09-15
Emits non-executable boot sectors and non-boot floppy tracks as collapsed data directives.
Improvements
- Non-executable boot sector formatting: Emits boot sectors with the executable flag cleared as collapsed
.dc.b/.ds.b/.dcb.bdata directives rather than instructions. - Disk data-track listings: Emits non-boot sectors with unified preambles, per-sector
orgdirectives, and collapsed data runs.
0.6.17 — 2026-09-15
Improves CPU/FPU preamble auto-targeting accuracy, adds non-executable boot sector comments, and stabilises test defaults.
Improvements
- Conservative CPU auto-targeting: Derives
.cpuand.fpupreamble directives strictly from emitted instructions, preventing embedded data bytes from inflating target requirements. - Fixed disk track target defaults: Disassembles non-boot disk sectors against a fixed 68000 target to avoid escalating target directives across disk images.
- Non-executable boot sector comments: Adds a
; non-executable boot sectorcomment following the preamble when the bootable flag is clear.
Bug fixes
- Raw round-trip test target stability: Disables auto-targeting in raw round-trip test helpers to maintain consistent baseline targets across partial slices.
0.6.16 — 2026-09-15
Adds raw hex fallback for undocumented IKBD command writes and preserves PC-relative data blobs.
New features
- Undocumented IKBD command fallback: Emits raw hex values for IKBD command bytes that do not match known hardware constants.
Bug fixes
- PC-displacement data blob preservation: Protects PC-relative data blobs across corpus fixtures under default 68030/68882 decode settings.
0.6.15 — 2026-09-13
Adds configurable line indentation, validates data-to-code flow transitions, and aligns Pass 2 rescans across padding.
New features
- Configurable line indentation (
--spaces,--tabs): Adds--spaces [N]and--tabs [N]options to configure listing indentation width and style.
Bug fixes
- Data-to-code flow validation: Requires candidate code runs transitioning out of data blobs to terminate with valid control-flow instructions, preventing data tables from being misidentified as code.
- Pass 2 padding alignment: Aligns Pass 2 rescan across null padding runs before known labels and relocations in
.text, avoiding skipped branch targets and misdecoded subroutine prologues. - Spurious branch fallback suppression: Suppresses invalid
dc.wfallback emission for branch targets entering valid code preceded by padding. - Smart label index formatting: Formats duplicate smart label variables with underscore-separated indices (e.g.
OLD_HZ_200_2).
0.6.14 — 2026-09-13
Identifies OS system call wrappers and annotates caller argument setup instructions.
New features
- OS system call wrapper labelling: Automatically labels leaf subroutines wrapping GEMDOS, BIOS, XBIOS, and VDI/AES traps with semantic names (e.g.
XBIOS_FLOPRD,GEMDOS_MSHRINK). - Caller argument register annotations: Annotates setup instructions preceding wrapper calls with corresponding OS parameter names based on register mappings.
- Wrapper call site annotations: Annotates subroutine calls (
BSR/JSR) targeting wrapper routines with the target OS trap class and function name. - MFP interrupt register clear annotations: Annotates 32-bit clears to MFP interrupt enable and mask register pairs with concise semantic descriptions.
0.6.13 — 2026-09-13
Improves string extraction across unlabelled data runs and refines VT-52 detection thresholds.
Improvements
- Continuous unlabelled string extraction: Scans ahead through unlabelled
.datablocks to extract valid string and VT-52 runs instead of demoting entire blocks to hex.
Bug fixes
- Unlabelled string and VT-52 validation: Enforces minimum character and termination criteria for unlabelled string candidates to avoid fragmented lines and false-positive VT-52 annotations.
0.6.12 — 2026-09-13
Packs binary data into continuous 16-byte lines, tightens string detection heuristics, and fixes unaligned data relocation loops.
Improvements
- Continuous binary data packing: Formats binary
.datablocks into uniform 16-byte.dc.blines without premature line breaks on isolated printable characters. - Representative integration test suite: Enrolls 8 curated binaries into the default test suite for fast integration testing.
Bug fixes
- String candidate detection threshold: Requires at least 4 alphabetic characters and valid termination for string candidates in raw data blocks.
- Unaligned data relocation handling: Fixes an infinite loop when encountering unaligned relocation offsets in
.datasections.
0.6.11 — 2026-09-12
Restricts GEM parameter buffer labels to data and BSS segments, and adds boundary awareness to string smart labels.
New features
- Label-bounded string detection: Recognises known symbol and section boundaries as string delimiters, enabling smart label generation for packed string arrays.
Bug fixes
- GEM parameter buffer segment gating: Restricts VDI and AES parameter block smart labels to
.dataand.bsssections, preventing spurious labels in executable.text.
0.6.10 — 2026-09-09
Improves relocation reconstruction and operand fidelity for disassembled TOS executables.
Improvements
- Relocation boundary pointer slicing: Slices data blocks at relocation offsets to emit symbolic
.dc.lpointers, preserving relocations on reassembly. - Displaced relocatable address resolution: Resolves displaced absolute long operands against relocatable labels with offsets rather than emitting absolute equates.
- Symbolic pointer resolver validation: Verifies target label emission for symbolic pointers in data blobs to prevent unvisited addresses falling back to absolute equates.
0.6.9 — 2026-09-09
Adds .prgflags directive emission for TOS header flags and improves data segment relocation fidelity.
New features
- PRG flags directive (
.prgflags): Emits a.prgflagsdirective in disassembly output when non-zero TOS executable header flags are detected.
Bug fixes
- Data segment relocation preservation: Preserves relocations and labels across
.datasymbol blobs to maintain pointer alignment and structure integrity.
0.6.8 — 2026-09-08
Adds --color, --ascii, and --banner display control options for terminal styling, ASCII table borders, and banner formatting.
New features
- Terminal display controls (
--color,--ascii,--banner): Adds--colorto control ANSI output,--asciifor standard ASCII table borders, and--bannerto select stderr masthead style.
0.6.7 — 2026-09-08
Improves CPX header inspection layout and fixes table column alignment with null-padded identifiers.
Improvements
- CPX header inspection layout: Reorders CPX header rows to place title before icon text and adds a dedicated flags group.
Bug fixes
- CPX ID column alignment: Strips trailing null bytes and whitespace from CPX identifiers to prevent table border misalignment.
0.6.6 — 2026-09-08
Prevents synthetic smart labels from encroaching on user data blobs and preserves relocation-targeted labels.
Bug fixes
- Smart label blob pruning and auto-label retention: Excludes synthetic smart labels from user symbol boundaries and protects relocation targets from auto-label pruning.
0.6.5 — 2026-09-07
Preserves interior labels within GEM parameter blocks and prevents synthetic equates from dropping relocations.
Bug fixes
- GEM parameter block interior labels: Preserves labels at interior offsets within VDI and AES parameter blocks to maintain relocations on reassembly.
0.6.4 — 2026-09-07
Fixes GEM parameter block pointer resolution in binaries over 64 KB and prevents spurious entry point renaming.
Bug fixes
- GEM parameter block slot pointer resolution: Resolves relocated parameter block slots from file offsets to ensure correct label emission in binaries larger than 64 KB.
- Parameter block target bounds checking: Validates address bounds before rebasing parameter blocks and prevents null pointers from renaming the entry point.
0.6.3 — 2026-09-07
Restricts GEM parameter block detection to immediate and address-register pointer sources.
Bug fixes
- GEM parameter block address detection: Requires immediate operands or explicit
LEAinstructions forTRAP #2parameter block recovery, avoiding misidentification of indirect variable loads.
0.6.2 — 2026-09-07
Adds structured formatting and annotations for GEM VDI/AES parameter blocks, control size tables, and subsystem selectors.
New features
- VDI and AES parameter block formatting (
--annotate-vdi,--annotate-aes): Recognises and formats VDI and AES parameter blocks as structured.dc.lpointer tables with descriptive field comments. - AES control size table decoding: Identifies and annotates AES opcode control size tables with function names and expected parameter counts.
- GEM subsystem selector annotations: Annotates
D0register setups beforeTRAP #2with identified VDI or AES subsystem selectors.
0.6.1 — 2026-09-07
Adds --unpack decompression support, fixes CPX header parsing and character decoding, and handles broken stdout pipes cleanly.
New features
- Executable unpacking (
--unpack): Automatically detects and decompresses executables packed with Atari ST crunchers (Ice, Atomik, Automation, Pompey, SpeedPacker, Fire) prior to disassembly.
Improvements
- CPX header parsing and charset decoding: Aligns CPX header field offsets with the XControl specification and decodes strings using the Atari ST character set.
Bug fixes
- Broken pipe error handling: Exits cleanly with code 0 when stdout is closed by downstream tools like
headorless.
0.6.0 — 2026-09-07
Rebuilds CPU requirement inspection using control-flow reachability analysis, expands 68020 instruction coverage, fixes cycle annotation defaults, and adds padded CPX header support. Consolidates development from 0.5.29 through 0.5.45.
New features
- CPU requirements inspection (
--inspect=cpu): Inspects minimum CPU and FPU architecture requirements based on control-flow reachability analysis. - Padded CPX header support: Detects and disassembles Control Panel Extension files with padded headers.
- JSON and interactive CPU reporting: Emits CPU requirement tables in interactive output and structured
cpuobjects under--json.
Improvements
- Control-flow CPU requirement analysis: Traces executable control flow across branches, jump tables, and subroutines to exclude embedded data from CPU requirement classification.
- Object file routine traversal: Traverses all defined function symbols across relocatable object sections.
- Expanded 68020 instruction classification: Recognises
EXTB.L,LINK.Lwith 32-bit displacements, 32-bit branches, and extendedTST/CMPIaddressing modes. - Indirect call discovery: Seeds reachability traversal from relocation fixups and symbol definitions to analyse routines reached via jump tables.
- Line-A opcode traversal: Recognises Line-A opwords (
$A000–$A00F) as system calls to continue control-flow traversal. - Architecture discovery ceiling: Decodes up to 68040 and 68882 FPU during inspection regardless of default target flags.
- Target flag handling: Honours explicit
--cpuand--fpuCLI arguments during requirement inspection. - Non-TTY CPU inspection output: Renders requirement summaries in clean plain text when stdout is redirected.
Bug fixes
- Intra-function label validation: Prevents local labels from causing candidate code components to be discarded during CFG validation.
- Forward and non-returning subroutine calls: Fixes false section overrun detection on forward calls and supports non-returning subroutines in relocatable objects.
- Raw binary analysis slicing: Slices past synthetic wrapper headers to prevent payload truncation during CPU analysis.
- Data pointer filtering: Filters data operands and data relocations from reachability worklists to prevent evaluating data structures as code entry points.
- Component error recovery: Skips invalid decode sequences on unreachable branches rather than discarding entire candidate code components.
- Unmodelled CPU cycle timing: Omits timing output and warns on stderr when
--annotate-cyclesis used with unmodelled CPU targets or instructions. - Invalid instruction rejection: Rejects invalid
CMPI Anencodings and malformedCHK2/CMP2addressing modes to prevent inline data raising false 68020+ requirements. - Code versus data classification: Restores instruction-to-data fallback classification consistency across all targets.
- Inspection argument parsing: Fixes space-separated
--inspect cpu <file>syntax to parse input filepaths correctly.
0.5.28 — 2026-09-05
Suppresses cycle annotations on data directives and fixes multi-line comment column alignment.
Bug fixes
- Data directive annotations: Suppresses cycle timings and semantic annotations on demoted
dc.wandds.wdirectives. - Multi-line comment column alignment: Aligns trailing annotation comments based on final line width in multi-line instruction blocks.
0.5.27 — 2026-09-05
Adds CPX file detection, GEMDOS Pterm0 decoding, expanded header diagnostics, and CPU requirements inspection.
New features
- CPX file detection: Detects and disassembles Atari Control Panel Extension (
.CPX) files and provides header metadata tables in--inspect. - CPU and FPU requirements inspection (
--inspect=cpu): Detects minimum CPU and FPU requirements and reports non-68000 instructions and addressing modes.
Improvements
- Pterm0 call recognition: Decodes
TRAP #1invocations with zero arguments as GEMDOS function 0 (Pterm0). - Executable header diagnostics: Adds annotations and table breakdowns for Fastload, TT-RAM, MiNT memory protection, and TPA limit flags.
0.5.26 — 2026-09-05
Documents default target architecture and updates release download links.
Improvements
- Default CPU documentation: Documents the default 68030 target architecture across CLI help and reference docs.
- Release documentation: Adds platform binary download links across release documentation.
0.5.25 — 2026-09-05
Adds per-instruction CPU cycle execution cost annotations.
New features
- Cycle cost annotations (
--annotate-cycles): Annotates instruction lines with estimated CPU execution cycle counts based on the target architecture.
0.5.24 — 2026-09-05
Fixes guest address resolution for 68020+ base and outer displacements in indexed addressing modes.
Bug fixes
- 68020+ displacement resolution: Fixes base and outer displacement address resolution in memory-indirect addressing modes to prevent double-rebasing during symbol lookup.
0.5.23 — 2026-09-05
Interim fix for 68020+ indexed addressing displacement resolution (superseded by 0.5.24).
Bug fixes
- Full extension displacement resolution (interim): Reads displacements directly from decoded operands rather than raw extension words (superseded by 0.5.24).
0.5.22 — 2026-09-05
Adds support for SR/CCR bit operations, explicit zero displacements, and expanded Falcon memory-mapped I/O annotations.
Improvements
- SR and CCR bit operations: Disassembles
ORI,ANDI, andEORIinstructions targetingSRandCCRto standard mnemonics instead of raw data words. - Zero-displacement addressing: Emits explicit
0(An)displacements for address register indirect operands to preserve reassembly fidelity. - 68020+ base-suppressed indexing: Adds support for base-suppressed indexed addressing (
(Xn,bd)) with symbol table resolution. - Subroutine spacing: Restricts subroutine boundary spacing to terminal
RTS/RTEinstructions to keep epilogues contiguous. - Branch target boundary classification: Recognises branch targets following null padding words during label collection.
- Falcon memory-mapped I/O annotations: Adds hardware register annotations for Falcon system configuration, bus control, and Videl timing.
0.5.21 — 2026-09-04
Adds CLI flags to control VT-52 escape sequence annotations.
New features
- VT-52 annotation flags (
--annotate-vt52): Adds flags to control VT-52 escape sequence decoding annotations independently.
0.5.20 — 2026-09-04
Adds PC-relative string pointer support to smart label generation.
Improvements
- PC-relative string pointers: Recognises
PEA str(PC)operands during string analysis to generate contextualSTR_andVT52_labels.
0.5.19 — 2026-09-04
Adds VT-52 terminal escape sequence decoding, smart labelling, and console call annotations.
New features
- VT-52 escape sequence decoding: Decodes standard VT-52 control commands and Atari ST extensions (screen clear, cursor movement, video attributes).
- VT-52 smart labels: Generates
VT52_prefixed labels for detected escape sequence buffers under--smart-labels. - Console call annotations: Annotates GEMDOS
Cconwsand console string arguments with decoded escape command summaries.
0.5.18 — 2026-09-04
Improves branch target spacing for object files and corrects Atari ST character classification.
Improvements
- Object file branch spacing: Includes branch target auto-labels in vertical spacing plans for GST and a.out object formats.
- Greek character classification: Adjusts Atari ST Greek character ranges to exclude mathematical symbols from string scoring.
0.5.17 — 2026-09-04
Improves loop header vertical spacing containment and refines string extraction scoring.
Improvements
- Loop header stack cleanup spacing: Bounds stack cleanup scans by basic block boundaries to keep loop header branch targets separate from preceding calls.
- String scoring adjustments: Excludes symbol padding bytes from vowel scoring and enables accented Latin script anchoring.
0.5.16 — 2026-09-04
Adds Hebrew and Greek string scoring support and constrains return consumer spacing scans.
Improvements
- Hebrew and Greek string extraction: Adds script continuity scoring for Atari TOS Hebrew, Greek, and accented Latin character ranges.
- Call return spacing: Prevents forward return consumer scans from crossing basic block boundaries into labelled loop headers.
0.5.15 — 2026-09-04
Refines Atari ST character set scoring heuristics and bounds return consumer spacing.
Improvements
- Character set string scoring: Restores ASCII and Latin accent validation in string scoring heuristics to filter false-positive opcode sequences.
- Return consumer spacing: Restricts return consumer scans to verified symbol boundaries and entry points.
0.5.14 — 2026-09-04
Improves call spacing for return value bit tests, preserves symbol boundaries, and filters non-letter glyphs.
Improvements
- BTST return consumer spacing: Keeps
BTST #n, D0return value tests contiguous with preceding system call blocks. - Symbol boundary spacing: Preserves function and entry boundaries by incorporating symbol and label addresses into spacing calculations.
- Character filtering: Restricts high-byte letter classification to accented Latin, Hebrew, and Greek characters, excluding math and typography symbols.
0.5.13 — 2026-09-04
Maintains contiguity for argument push sequences and bounds return consumer spacing.
Improvements
- D0 argument push spacing: Keeps
MOVE.W D0, -(SP)argument setup contiguous with subsequent function calls. - Basic block boundary containment: Prevents forward return consumer scans from crossing branch target boundaries.
0.5.12 — 2026-09-03
Maintains spacing contiguity for return value stores to stack offsets.
Improvements
- Stack return store spacing: Keeps return stores to stack offsets (
MOVE.W D0, d(SP)) contiguous with call blocks without misidentifying them as argument pushes.
0.5.11 — 2026-09-03
Improves LEA stack cleanup vertical spacing and adds character scoring for Hebrew and Greek.
Improvements
- LEA stack cleanup spacing: Keeps positive-displacement stack cleanups (
LEA n(SP), SP) contiguous with preceding system calls. - Hebrew and Greek character scoring: Adds classification support for Atari TOS Hebrew and Greek character ranges in string scoring.
0.5.10 — 2026-09-03
Maintains contiguous spacing for multiple return value stores following trap calls.
Improvements
- Multiple return store spacing: Keeps sequential stores or tests of trap return values (
D0orA0) contiguous with the call block.
0.5.9 — 2026-09-03
Maintains contiguous spacing for non-predecrement stack argument stores preceding function calls.
Improvements
- Stack argument store spacing: Treats direct stores to
(SP),d(SP), andd(SP,Xn)as argument setups, keeping them contiguous with call instructions.
0.5.8 — 2026-09-03
Fixes vertical line spacing around FPU instructions.
Bug fixes
- FPU instruction spacing: Restricts non-stack system call vertical spacing to Line-A traps, preventing unwanted blank lines around FPU instructions.
0.5.7 — 2026-09-03
Improves string extraction filtering for the Atari ST character set and adds unfiltered extraction.
Improvements
- Atari charset string scoring: Evaluates high-byte density and clustering under
--strings-charset atarito filter false positives from compressed data while retaining localized text. - Unfiltered string extraction (
--strings-min-score 0): Bypasses heuristic scoring to output all extracted character runs.
0.5.6 — 2026-09-03
Adds unfiltered string extraction option and corrects section names in documentation.
Improvements
- Unfiltered string extraction (
--strings-min-score 0): Disables heuristic filtering and code-region length minimums to extract all printable runs. - Section documentation: Corrects segment listings in documentation from
BSStoTEXT,DATA, or named sections.
0.5.5 — 2026-09-03
Enables ColdFire on-chip FPU defaults, decodes 32-bit multiply and divide instructions, and validates MOV3Q destinations.
Improvements
- ColdFire FPU default: Defaults ColdFire targets to enable on-chip FPU (
.fpu coldfire). - 32-bit arithmetic decoding: Enables disassembly and instruction length calculation for 32-bit
MULU.LandDIVS.Lon ColdFire targets. - MOV3Q operand validation: Restricts
MOV3Qdestination decoding to alterable effective addresses, rejecting PC-relative destinations.
0.5.4 — 2026-09-02
Supports address register operands in ALU operations and validates ColdFire instructions.
Improvements
- ALU address register operands: Supports
ADD,SUB, andCMPdisassembly with address register sources (An), while demoting invalid byte and logical operations to data words. - ColdFire Line-A validation: Enforces opcode mask checks for ColdFire Line-A instructions.
- STLDSR and MOV3Q instructions: Adds disassembly support for
STLDSRwith immediate operands andMOV3Qwith address register destinations.
0.5.3 — 2026-09-02
Emits ColdFire listing directives, adds MAC parallel load decoding, and tightens opcode validation.
Improvements
- Listing directives: Emits
.cpu coldfireand.fpu coldfiretarget directives in ColdFire listings. - MAC parallel loads: Adds decoding support for ColdFire MAC parallel loads, displacements, accumulator selectors, and scale factors.
- ColdFire opcode validation: Validates brief-format index register sizing, validates
TPFopcodes, and rejects memory-destinationSccencodings.
0.5.2 — 2026-09-02
Unifies ColdFire FPU command-line options.
Improvements
- ColdFire FPU CLI options: Adds
coldfireandcfaliases directly to--fpu.
0.5.1 — 2026-09-02
ColdFire instruction set decoding, MAC/EMAC, and on-chip FPU support.
New features
- ColdFire ISA support: Adds decode support for ColdFire targets (
-m coldfire,--fpu coldfire) including MAC/EMAC and on-chip FPU. - CPU target aliases: Adds CLI aliases for target CPUs (
68k,000,010,020,030,040,060,cf,cfv4e).
0.5.0 — 2026-09-02
Initial public release. Disassembles Atari ST, TT, and Falcon executables, object files, and disk images to Motorola 680x0 assembly source with byte-exact round-trip fidelity.
New features
- Multi-Format Disassembly: Disassembles Atari GEMDOS executables (
.TOS,.PRG,.APP,.GTP), relocatable objects (DRI, Devpac GST, VBCCa.out), static libraries (ararchives), and raw binary images. - Floppy Disk & Container Support: Extracts and disassembles boot sectors and disk sectors from Pasti
.STX,.ST,.MSA,.ZIP, and.LZHimages with geometry-aware CHS extraction. - Byte-Exact Round-Trip Reassembly: Produces assembly source verified for byte-identical round-trip reassembly with
rg-asm --no-opt-size. - 680x0 and FPU instruction coverage: Disassembles MC68000 through MC68060 CPUs and 68881/68882 FPUs (defaulting to 68030 with 68882 FPU).
- Semantic annotations: Decodes GEMDOS, BIOS, and XBIOS trap calls with stack argument tracking, alongside hardware register annotations across Atari systems.
- Symbol table reconstruction: Loads DRI, GST, and
.SYMsymbol tables to reconstruct routine, branch, and data labels (prunes unreferenced equates by default; configurable via--unused-equates). - Metadata inspection (
--inspect): Summarises binary headers, functions, cycle counts, and extracted strings, with structured--jsonoutput.