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

dev/cross/Annotate.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:Comment/reformat 2650 crossdisasms
Author:amigansoftware at gmail.com (James Jacobs)
Uploader:amigansoftware gmail com (James Jacobs)
Type:dev/cross
Version:2.33
Requires:OS2.0+
Architecture:m68k-amigaos >= 2.0.0
Date:2010-04-15
Download:http://aminet.net/dev/cross/Annotate.lha - View contents
Readme:http://aminet.net/dev/cross/Annotate.readme
Downloads:9138

Please note that this package has nothing to do with the popular Amiga
text editor which is likewise known as ANNOTATE. Our apologies for any
confusion.

ANNOTATE reformats the output of the DASMX cross-disassembler to make
it more readable (by adding pseudo-C endline comments), and more
compatible with the VACS cross-assembler. (DASMX and VACS are for
Windows.) ANNOTATE is a specialized tool intended for retroprogrammers of
machines which use the Signetics 2650 CPU (especially those emulated by
the AMIARCADIA and WINARCADIA emulators). It has been tested with DASMX
1.40 and VACS 1.24h.

There are eight different 'levels' of operation. Each higher level adds
additional annotation; ie. the highest level gives the friendliest, most
detailed output.

1: (a) Convert tabs to spaces.
   (b) Convert ",+" and ",-" postincrement/postdecrement notation to "+"
       and "-", respectively.
   (c) Convert literals to "$x"-style.
   (d) Convert labels at $2000 or later to literals.
   (e) Convert registers to condition codes for BSNA and BSNR opcodes
       (to deal with a bug in VACS).
   (f) Append ",r3" to operand after BXA and BSXA opcodes.
   (g) Append "end" to end of file.
   (h) Insert 2650 equates.
   (i) Insert banner into header comments.
   (j)*Insert platform family into header comments.
2: (a) Append pseudo-C comments.
3: (a)*Insert hardware equate definitions.
   (b)*Convert hardware registers from literals to constants.
4: (a)*Append memory purpose information to memory access comments.
5: (a)*Insert hardware equate comments.
6: (a) Append cycle timings of each instruction.
   (b) Append byte-lengths of each instruction.
7: (a)*Append runtime start and end addresses of each instruction.
8: (a) Append raw hexadecimal bytes of each instruction. This requires you
       to supply a raw binary dump of the game with the BINFILE or PGMFILE
       argument.

Those marked `*' are platform-specific (ie. different between different
machines).

You *must* feed it unmodified DASMX output, which has been disassembled
with the 'numformat M' or 'numformat I' option. For more information about
disassembly of these files, see the Coding Guides at the site below.

You use it from the command line. All output from the program goes to the
standard output (normally the console), and thus can be piped or
redirected as desired.

Usage is as follows:

    Annotate [FILE|ASMFILE=]<filename> [LEVEL=<number>] [AMIGA]
    [MACHINE=INTERTON_A|INTERTON_B|INTERTON_C|INTERTON_D|ELEKTOR_E|
    ELEKTOR_F|ARCADIA_G|ARCADIA_H|ARCADIA_I|PIPBUG_J|PIPBUG_K|PIPBUG_L|
    PIPBUG_M|PIPBUG_P|INSTRUCTOR_N|INSTRUCTOR_O|CD2650_U|GENERIC]
    [BINFILE|PGMFILE=<filename>]

The template is:

    FILE=ASMFILE/A,LEVEL/N,AMIGA/S,MACHINE/K,BINFILE=PGMFILE/K

FILE or ASMFILE is the input filename.

BINFILE or PGMFILE is the filename of the raw binary dump of the game.
Specifying this argument automatically selects level 8.

LEVEL is the level number as explained above. The default level is 7,
unless a BINFILE or PGMFILE argument is given, in which case it is 8.

The AMIGA keyword will cause carriage returns found in the input to be
omitted on the output; ie. to use Amiga-style end-of-line (EOL) sequences
(LF) rather than IBM-PC ones (CR+LF). This is more convenient for
manipulation of the output on an Amiga but is not acceptable to VACS.
(Amiga version only.)

MACHINE affects the platform-specific annotations listed above. The
default is ARCADIA_G.

Output is to the console by default; use redirection to create an
output file. For example:

    Annotate SUPERBU1.ASM BINFILE=SUPERBUG.BIN >SUPERBU2.ASM

Running it with no arguments will give a list of supported machines.

SAS/C and Microfilth Visual C++ 5.0 source code is included. Also included
is an example disassembly of the Super Bug game. SUPERBU1.ASM is the
unmodified DASMX output, disassembled with the 'numformat M' option of
course. SUPERBU2.ASM is the result of using ANNOTATE on SUPERBU1.asm, and
will assemble under VACS without any changes required.

Also note that use of indirect addressing (the "*" operator) adds a
further 2 cycles (6 clock periods) to the execution time of an
instruction, if the indirect address is actually used (eg. branches
that are taken will incur the penalty, branches that are not taken will
not incur it). Branches which may or may not be taken are annotated with
"+2" in the cycle count (eg. "3+2"). Where the branch is always taken,
or for non-branch instructions (eg. ADDA, ADDR), the penalty is
incorporated fully into the cycle count (eg. "5").

The included TOGGLER program is used to change the header byte of Elektor
.PGM files (Elektor TV Games Computer programs) from $00 to $1F (bcta,un)
for compatibility with DASMX. After disassembly with DASMX, TOGGLER can be
run again to reverse the change to the .PGM file. You will also need to
change the start of the ANNOTATEd source code, eg. from:

    bcta,un $0900

to:

    db      $00
    dw      $0900

See the Elektor TV Games Computer Coding Guide for more information. None
of this applies to other kinds of .PGM files (eg. PIPBUG, Instructor,
CD2650).

Usage is as follows:

    Toggler [FILE=]<filename>

The template is:

    FILE/A

At the Emerson Arcadia 2001 Central site are some resources of interest
to users of ANNOTATE: the Coding Guides have detailed information
about disassembly, annotation and patching of games, and the
Autodisassembly Pack contains ANNOTATEd disassemblies.

Changes since V2.32:
    . PIPBUG-based machines: miscellaneous bug fixes and improvements.

Releases Page:                http://amigan.1emu.net/releases/
Emerson Arcadia 2001 Central: http://amigan.yatho.com/
EMail:                        amigansoftware at gmail.com

James Jacobs of Amigan Software
16/4/10


Contents of dev/cross/Annotate.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                48976  142408  34.4% -lh5- 2a3e Apr 16 01:08 Annotate/Annotate
[generic]                 2792    6033  46.3% -lh5- 7196 Apr 16 01:08 Annotate/Annotate.readme
[generic]                12461   89029  14.0% -lh5- d71a Apr 16 01:08 Annotate/source/annotate.c
[generic]                16458   93761  17.6% -lh5- 269d Apr 16 01:08 Annotate/source/annotate.h
[generic]                  152     231  65.8% -lh5- d197 Dec 22  2003 Annotate/source/scoptions
[generic]                  292     700  41.7% -lh5- 92e9 Jun  4  2009 Annotate/source/ship.sasc
[generic]                 1800    6160  29.2% -lh5- 9ddf Apr 16 01:08 Annotate/source/toggler.c
[generic]                 5515   26898  20.5% -lh5- e895 Jun  4  2009 Annotate/superbu1.asm
[generic]                25297  162269  15.6% -lh5- d9dd Apr 16 01:08 Annotate/superbu2.asm
[generic]                 2923    4096  71.4% -lh5- 1a63 Jun  4  2009 Annotate/superbug.bin
[generic]                 5979    9272  64.5% -lh5- 1f01 Apr 16 01:08 Annotate/Toggler
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total        11 files  122645  540857  22.7%            Apr 15 20:33

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