AminetAminet
Search:
84714 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/cross/6502d.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:6502 disassembler.
Author:Bart Trzynadlowski. Amiga port by (Ventzislav Tzvetkov)
Uploader:drHirudo Amigascne org (Ventzislav Tzvetkov)
Type:dev/cross
Version:0.1
Architecture:m68k-amigaos
Date:2002-01-27
Download:http://aminet.net/dev/cross/6502d.lha - View contents
Readme:http://aminet.net/dev/cross/6502d.readme
Downloads:11008

==============================================================================
                              6502d Version 0.1
                    Written by Bart Trzynadlowski, 1999
                    Amiga Port by Ventzislav Tzvetkov, 2002
==============================================================================

Feel free to do whatever you wish with this software, just remember that I
have provided it "as is" and will not be held responsible for anything that
occurs as a result of the software.

6502d is a 6502 disassembler. It does not have any support for special file
formats, it simply assumes the input file is a raw binary image. 
        6502d uses the following command line to execute:

        6502d -f infile [-s start] [-h] [-v]

        The first argument, infile, is the flat binary image you wish to
disassemble. The start argument is optional and specifies the offset to start
disassembly at. It is given in hexadecimal. If input occurs past the end of
the file 6502d displays an endless series of EOF characters. For help on usage
you can use -h and for the version number you can use -v. If -h or -v are
encountered on the command line they are processed and the program exits, no
disassembly occurs. The -v option has higher precedence over -h.
    Standard output is used to print, therefore output can be
redirected (preferrably to a file) by using > outfile -- where outfile is
the output file -- at the end of the command line.
    6502d was compiled on a DOS box with DJ Delorie's DJGPP. The
command line used was: gcc -o 6502d.exe 6502d.c comline.c disasm.c 
        
A 6502d line of output has the following format:

address         opcode  instruction [operand,operand]

        The address field is the file position. Addresses are implied to be
hexadecimal numbers. The opcode field is the series of bytes printed in
hexadecimal which make up the machine instruction. The instruction field is
the mnemonic name of the given instruction. Operands when they occur are
printed. With operands a hexadecimal number is specified by the $ prefix and
an immediate value is specified by the # prefix.

Only documented instructions are supported in this release. Undocumented
instructions are not recognized and are treated as described below. If demand
arises I might add undocumented opcodes, but for now I do not need it myself.
If an opcode is not recognized as a valid 6502 instruction then 6502d simply
prints .DB $XX where XX is the byte value. If the last 3rd to last byte is not
an instruction then all 3 of the last bytes in a file are not disassembled,
instead they are printed as a series of .DBs. 
        Displacements in branch instructions are NOT translated into absolute
addresses. The hexadecimal value of the displacement is printed as is. The
6502 can branch 127 bytes up or down the code. The displacement format uses
one's complement negation to specify wether to jump up or down the code. Bit 7
alone decided the sign of the byte. Displacements are added/subtracted to the
address that succeeds the instruction and its operand(s).
        The ability to toggle between printing displacements or absolute
addresses may be included in future versions of 6502d if any are made. Please
do not bother me about this issue.

Version history:
        * Version 0.0
                - Initial public release.
        * Version 0.1
                - Now DEC ABS,X displays correctly. (DEC $FFFF,X instead of
                  DEC $FFFF)
                       
Enjoy 6502d. The opcode matrix I used (source file opcode.h) is correct to the
best of my knowledge. The much-less-than-fantastic as6502 assembler aided me
in testing 6502d. 


Contents of dev/cross/6502d.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                 8425   20676  40.7% -lh5- 97a4 Jan 26  2002 6502d
[generic]                 1287    3984  32.3% -lh5- 6c18 Jan 26  2002 6502d.c
[generic]                  324     985  32.9% -lh5- e4ef Jan 26  2002 6502d.h
[generic]                 1662    3871  42.9% -lh5- 3628 Jan 26  2002 6502d.readme
[generic]                  796    2922  27.2% -lh5- 674f Jan 26  2002 comline.c
[generic]                 1928   34629   5.6% -lh5- f59c Jan 26  2002 disasm.c
[generic]                 1014    4523  22.4% -lh5- bcee Jan 26  2002 opcode.h
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         7 files   15436   71590  21.6%            Jan 27  2002

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>