DIS6502(1)

NAME
dis6502 - Disassemble 6502 object code

SYNOPSIS

dis6502 [-b | -l | -c | -r <address>] [-a] [-p <pfile>] [-v <address>] [-7] file

DESCRIPTION

Dis6502 disassembles 6502 binary files. Binary formats understood include Atari binary files (L menu command) and boot files. Equate and control files can be included via the option to name well known locations and to control the disassembly process. The output includes a cross reference.

The disassembly process is a two pass operation: First the program flow is traced starting with the init and run parameters in the file headers. The dump routine then prints out the information.

OPTIONS

-r <address>
    file is raw binary, located at <address>.

-b  file is an Atari boot image (disk or cassette). Note that neither .ATR nor .CAS images are supported: the file must be a raw image with no header information. For disks, this is called an XFD file.

-l  file is an Atari load file (aka XEX).

-c  file is a Commodore 64 executable.

-a  Generate assembly output. Suppresses the addresses and object code normally printed on each line of output, and omits the cross-reference section from the end of the output.

-p <pfile>
    Use predefinition file. See FILE FORMAT for the predef file format. Up to 10 -p options may be included.

-v <address>
    Alternate vector address (normally $FFFA). This option only has any effect with raw binaries (-r option).

-7  Mask character data to 7-bit.

FILES

/usr/share/dis6502/atari8.predef

/usr/share/dis6502/c64.predef

Predefinition files for Atari 8-bit and Commodore 64, containing the usual system equates.

FILE FORMAT

Lines in a predefinition file consist of:

label .eq address

label .equ address Defines a label. The .eq and .equ forms are equivalent.

.jtab2 lowaddr,hiaddr,count Defines a table of count pointers, split into low and high byte tables. In assembly code, such a table might look like:

; func1, func2, func3 are addresses.
table_lo: .byte <func1, <func2, <func3
table_hi: .byte >func1, >func2, >func3

To disassemble these, assuming the address of table_lo is $1000, use:

.jtab2 $1000,$1003,3

.rtstab lowaddr,*hiaddr*,*count* Like .jtab2, but each entry contains the target address minus one, for use with RTS.

.trace address Causes the trace process to continue at address.

.stop address Causes the trace process to stop at address.

COPYRIGHT

dis6502 is distributed under the terms of the Free Software Foundation's General Public License, Version 2. See the file /usr/doc/dis6502-0.12/COPYING for license information.

AUTHORS

dis6502 was written by Robert Bond, Udi Finkelstein, and Eric Smith.

This man page written for the SlackBuilds.org project by B. Watson, and is licensed under the WTFPL.

SEE ALSO

dis(1), da65(1)

The dis6502 homepage: http://www.brouhaha.com/~eric/software/dis6502/