Disassembler

All code shown in the left side (yellow ellipse) of the Direct Assembler tab is disassembled in real time. Any part of memory can also be disassembled to an assembler (.asm or .txt) file by pressing the 'Dis' button (orange ellipse). The first two text boxes on the right of the 'Dis' button will be used as start (red ellipse) and end (blue ellipse) address.

In example above pressing 'Dis' will disassemble from hexadecimal address 0 to 100.

Code will be disassembled based on 'execution' by the CPU. So only code that has been executed is marked as 180x code and will be disassembled. In the yellow ellipse example above, code on address 000D to 0012 is not executed as yet and is as such shown as data (blue hex code), when executed these will become long branches (to 037D and 0258). Note also that 0015 and 0017 are clearly data and should never be disassembled to 180x code. BB is used in the DIS instruction and F0 in the OUT 3.

Main advantage of the above is that 'data' will be shown as bytes instead of 180x code. This does mean that for a complete disassembly all code should first be executed as much as possible. Parts of code that are 'less easy' to execute can however be marked as code manually; see also chapter Changing Address Usage. Executed 'pseudo' code will be shown as 'DB' in the output file with the pseudo code shown as comments.

Next to marking code it is also possible to:

The output file is fully compatible with the A18 assembler.

The disassembler output will include lists for: