Starting from scratch
The general workflow when starting a new disassembly is:
- File->New (desired submenu file type) and select program file.
There is not normally a DZ file to accompany it.
- Identify/register functions that use inline parameters (parameters follow the
CALL instruction). Use File->Load Hints or Disas->Apply Hint
to add these to the session. Note that "Apply Hints" boths adds the hint to the list
and performs a scan to apply it. "Load Hints" only adds to the list.
See Hint Syntax.
- Set location to entry point (normally at Shift+Home)
and select Disas->Scan from here.
- Use F3 to locate each orphaned section of code, decide if it is code or data,
and (if code) use the E key to add it to the list of code entries
(or use Disas->Scan from here to scan that code entry now).
If not code, data breaks may be set.
- Scan the list of added code entries (periodically) using Disas->Scan Hints,
which may introduce more orphans.
- Each scan may introduce new orphaned sections, so repeat until no more exist.
- Use F4 to locate unknown sections and determine use.
Run scan or set data breaks as appropriate.
- Prior to generating ASM/PRN (at least) it is a good idea
to regenerate the symbol table (Disas->Rebuild Symtab).
This ensures that data which was
formerly (incorrectly) interpretted as code will not pollute the symbol table.
- Save the breaks/symbols (DZ file).
- Save the hints, if used (DZH file).
- Generate ASN and/or PRN files.
- Continue editing the ASM file (outside of DazzleStar)
to clean it up and prepare it for assembly and comparing to original binary.
Note that hints are only used during scanning, where they result in
insertion of breaks in instruction streams. Hints should be loaded
before any scanning is done (or else scanning should be reset and started over).
Instructions that have been visited during a scan will have an asterisk '*'
in column 20. Locations marked as "orphaned" will have an question mark
'?' in column 20. Instruction operands marked as "constant" will have
a hash '#' in column 20.
Also, it is not the intent of DazzleStar TNG produce an ASM file that
will compile successfully and generate the original code. The final, manual, steps
of disassembly are done outside of DazzleStar. This includes adding comments
and making sensible names for labels (or changing to constants).
Use File->Save DZ to record current progress of disassembly.
Note the scan results are lost when you exit DazzleStar, or if you start
a new project. Hints should have manually created and should be available
next time. Note that hints affect both scanning and final disassembly
(ASM or PRN output), and so should always be loaded (if present).
Resuming prior disassembly
To resume a prior disassembly session:
- File->New and select COM file. This should also load the prior DZ file.
- File->Load Hints and select hint file.
- If more scanning is required, start with the scan steps.
- Continue locating un-identified sections and identify them.