Introduction
A relocatable disassembler which, unlike some similar programs, allows the disassembled source code to be output to memory. It may then be modified and reassembled. Other features: page mode option, output to printer if required, output of ASCII symbols if required.
The Disassembler program is written in such a way that it is relocatable. That is, the program may be loaded into memory at any convienient location, and it may therefore be used to disassemble another program already stored in the RAM.
In order to load the program into memory at a specific location, the value of the variable PAGE must be reset to a suitable memory location. For example, to load the Disassembler into memory at &2000, the user should type in the following:-
>PAGE=&2000 >CHAIN"DIS"
Using The Program
When the program is run, the user should reply to the prompts as follows:-
Start Address:
Input the start address (from which disassembly is to begin) in hexadecimal. Note that it is not necessary to type a leading "&" before the address.
Finish Address:
Input the finish address (at which the disassembly is to be terminated) in hexadecimal.
Address at which to store the assembler code:
If you want the disassembled code to be stored in memory, then a suitable address should be input in hexadecimal. If this facility is not required, simply type "NO" in response to this prompt. When the disassembled code is stored in memory, each mnemonic is given a label commencing with the letter L. It is therefore easy for the user to subsequently alter the assembler code (adding or removing instructions) without affecting the relative addresses used by the "branch" instructions. For example, to store the disassembled code at &3000, the user should type in 3000 in response to the prompt. After the disassembly has been completed, this code can be accessed by typing PAGE=&3000.
ASCII symbol output required:
It is sometimes useful to look at the machine-code being disassembled as a string of ASCII characters. Input "YES" or "NO" in response to this prompt. Note that all control characters and the DELETE character will be output as full stops.
Page mode on:
Reply "YES" or "NO" in response to this prompt depending upon whether or not you want the display to halt after every sixteen lines output. Press SHIFT to restart. Note that the display can always be halted by pressing the S key. Press any other key to restart the display.
Printer option:
If a printer is attached, the disassembler listing may be output on it by replying "YES" to this prompt.
The program will run in 4K of memory. It may therefore be loaded into memory at any location which is at least 4K below the screen RAM location.