9900dis is a command-line disassembler for Texas Instruments TMS9900 and TMS9995 CPUs. It reads a binary ROM file and produces an assembly listing compatible with the xas99 assembler from the xdt99 tool suite. What makes it unique is its iterative approach: the output file can be edited to add labels, equates, data hints, and comments, then fed back in as input — each re-run incorporates your annotations and produces progressively richer, more readable output.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/caljer1/9900dis/llms.txt
Use this file to discover all available pages before exploring further.
Installation
Install 9900dis from a binary release or run it directly from Python source
Quickstart
Disassemble your first ROM in minutes with a step-by-step walkthrough
Command reference
Full documentation for all CLI flags: —rom, —listing, —aorg, —cpu
Iterative workflow
Learn how to refine output across multiple disassembly passes
Annotation reference
Complete syntax for labels, equates, data hints, and inline comments
CPU instructions
Full TMS9900 instruction set decoded by 9900dis
How it works
9900dis reads a binary ROM and decodes each word using the TMS9900 instruction encoding rules. The first pass produces a complete but unannotated listing. From there, you incrementally mark up the file to guide subsequent passes.Disassemble the ROM
Run 9900dis with your ROM file and a target listing path. Specify the load address with
--aorg if the ROM is not at 0x0000.Annotate the listing
Open
sys.asm in a text editor. Add labels to known entry points, define equates for hardware registers, mark data words with f:data, and add inline comments.Re-run the disassembler
Run the same command again. 9900dis reads back your annotations and replaces raw hex addresses with your symbolic names across the entire listing.
9900dis output is designed to round-trip through the xas99 assembler from the xdt99 tool suite. The generated listing can be reassembled to produce a byte-identical binary.