- 6502 Disassembler
- Requires 32bit MS-Dos system
MONITOR V1.0, 15 May 1996, Ivan Mackintosh (ivan AT rcp DOT co DOT uk)
Have you ever been designing that utility or emulator to
hack around with an Atari program? Has the Atari program
ever done anything unexpected? If so, you’ll need to look
into the 6502 code to find out what is happening. You need
Monitor is a 6502 disassembler for the PC running MSDOS.
* Multiple panes. allows a disassembly of subroutines etc. to be
viewed at the same time as the code containing their jump;
* Atari mode. Equates are used instead of memory addresses;
* Hex Dump;
* Offset. Modifies the offset of the loaded file so that jumps
etc. can be resolved easier;
* Analyses the header of AtariDOS/MyDOS files providing load
address, run address and a suggested offset;
* Modify memory;
* Search memory;
* Load / Write file. (Current max file size is 48Kbytes);
* Converts Dec<->Hex;
The following syntax is used to describe the parameters to the
< > parameters enclosed in angle brackets are compulsory.
[ ] parameters enclosed in square brackets are optional.
| specifies options for a single parameter.
Commands and parameters can be separated by either a space,
a comma or a semicolon.
The commands are as follows and are case insensitive:
Loads the specified file.
Saves the specified file. If the file already exists then the
write will fail. use the Y parameter to overwrite an existing
O [hex address]
Modifies the address offset so that jumps can be resolved easier.
If no address is given then the offset of zero is used. All files
are loaded into Monitor’s 48k buffer at address zero. This command
allows the file to be effectively relocated so that it seems to
start at the given address.
P [pane numbers]
Tells Monitor which panes to use and in what order. There are
3 panes numbered 1, 2, and 3. The top right hand side of the
screen displays which panes settings. The default pane setting
is 123 which means that all three panes will be used in accending
order. This option is set if P is entered with no parameters.
Any disassembly or hex dump will use all of the panes specified
in the order specified. For example if the command ‘P 23’ was
issued then subsequent disassemblies/hex dumps would only
fill panes 2 and 3 leaving pane 1 intact. This function allow
both the calling code and subroutines to be visible at the
Atari Mode. This is on by default. The current state of the
Atari mode can be seen at the top, centre of the screen. In Atari
mode any current or subsequent disassembly will display equates
instead of memory address where appropriate.
For example, Atari mode off may display:
0000 8DC502 STA $02C5
Whereas Atari mode on will display
0000 8DC502 STA COLOR1
If a file is loaded whilst in Atari mode and it happens to be an
AtariDOS/MyDOS binary file then the load address, run address and
a suggested offset (see the command ‘O’). This info can be
redisplayed using the ‘I’ command.
Redisplays any file header information from when the last file
D [hex address]
Disassemble at the given address. The command will disassemble
until it either runs out of pane space (as specified by the ‘P’
command) or it reaches the end of the file. If no address is
specified then the file is disassembled from the start.
X [hex address]
Perform a hex dump starting at the given address. The command
will dump until it either runs out of pane space (as specified by
the ‘P’ command) or it reaches the end of the file. If no address
is specified then the file is disassembled from the start.
Modifies the file at the address given. For example,
M A000 8DC502
overwrites the 3 addresses at $A000 with the hex $8D, $C5 and $02
Searches from the specified address for the specified hex string
S A000 8DC502
display the memory location (if any) where the 3 bytes can be
Converts the given decimal number to hexidecimal.
Converts the given hexidecimal number to decimal.
Displays (in the first available specified by the ‘P’ command)
the specified help page (1 or 2 or 3). If no help page is specified
then page 1 is displayed.
Quits Monitor and returns to MSDOS.
The idea for Monitor came whilst browsing though the code for
Atari800 by David Firth. A Linux freeware Atari Emulator including
source. This source contains the basis of the disassembler.
The equates for Atari mode were extracted from the Atari System
Reference Manual by Bob DuHamel.
If anyone has any comments, suggestions, ideas, bug reports or just
likes using Monitor then please send me an email: ivan AT rcp AT co DOT uk
MS-Dos file (EXE / 7-Zip): Monitor 1.0