Equates let you name fixed addresses or constants — typically memory-mapped hardware registers or well-known ROM entry points. 9900dis substitutes the equate name wherever that value appears as an operand in subsequent runs, making listings far more readable without you having to remember whatDocumentation 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.
>8800 refers to.
Defining an equate
Equates are free-standing lines in the listing with the following format:| Field | Example | Description |
|---|---|---|
| Symbol | VDPIO | 1–6 word characters |
| Keyword | EQU | Must be uppercase |
| Value | >E000 | > followed by exactly 4 hex digits |
AORG directive) and preserves them on every subsequent run.
How equates are substituted
After re-running, any instruction operand whose resolved value matches the equate is replaced with the symbol name. Before:hex_or_label() in rom.py. Equates are checked before labels, so an equate always wins if both are defined for the same value.
Equate format rules
The equate parser in This enforces the following rules:
hints.py uses the regex:- Symbol: 1–6 word characters (
\w{1,6}) — letters, digits, underscores only. - Keyword:
EQU— must be uppercase;equorEquare not recognised. - Value:
>followed by exactly 4 hex digits —>XXXX. Values shorter or longer than 4 hex digits will not match. - Standalone lines: equates must appear on their own lines. They cannot be placed on the same line as an instruction.
Where to place equates
You can insert equate lines anywhere in the listing file and 9900dis will find them. On each run, the disassembler rewrites the listing and emits all collected equates at the top, directly after theAORG directive:
Common use cases
Memory-mapped I/O registers
Memory-mapped I/O registers
The TI-99/4A exposes its VDP, sound chip, and speech chip through fixed memory addresses. Equates make these instantly recognisable:
Known ROM entry points as constants
Known ROM entry points as constants
When a ROM entry point is called from many sites but you want it treated as a fixed constant (rather than tracking the label through the listing), define it as an equate:These are system ROM workspace addresses and utility entry points that appear frequently in cartridge ROMs.
Magic numbers and constants
Magic numbers and constants
Numeric constants embedded in the ROM — screen dimensions, tile counts, timer values — can be named to make their purpose clear:
Full example
Starting from a raw first-pass listing:>8800, >8C00, and >8400 — as source or destination operands — is replaced with the equate symbol.