Inspired by the original DazzleStar Z80 Disassembler, copyright 1986 John Washington. This reincarnation is built as a JAVA app and uses a modern GUI.
It supports binaray files (.COM, ROM images, etc. at any ORG) but also can disassemble HEX (Intel HEX format), PRL (Page ReLocatable, typically used for programs on MP/M and CP/M 3), SPR (System Page Relocatable, for CP/NET, MP/M, and CP/M 3 system components), and REL files (linkable modules produced by RMAC.COM).
It includes a "code scanner" feature where you specifiy an "entry point" and it will trace through all code paths and identify sections of the program that are not executed (possible data). This is an iterative process, but still allows one to quickly separate data regions from instructions.
DazzleStar uses something called a "break" to identify changes in program byte interpretation, selecting a region of the program as being instructions or some type of data. A large number of data types are supported. Breaks are entered by positioning the cursor where the break should begin and pressing the key associated with the break. The break takes affect until the next break. The effects of the change are shown on the screen.
The output mnemonics may be set to either MAC80 (default, CP/M MAC/RMAC with Z80.LIB macros), or Zilog. Both styles should work with ZMAC, although the "--dri" option may be needed for Digital Research (CP/M) compatability. MAC80 is required if the CP/M assemblers are to be used.
PRL, SPR, and REL files provide relocation information that allows DazzleStar to differentiate constants from statement labels.
The latest JAR is available on the download page.
Documentation is online here.
Maintained as a github project.