home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
tt
/
tt_dis
/
dis.doc
next >
Wrap
Text File
|
1991-11-17
|
11KB
|
217 lines
Instructions for Atari TT DIS, a 68030/68882 disassembler
Version 1.01 - 17th Nov 1991
Introduction
DIS is a 68000 disassembler for the Atari TT series computers. It
is not in the public domain but can be freely distributed provided that
this does not involve any direct or indirect profit or an inducement to
purchase other items (e.g products, magazines or services). DIS has
been derived from an earlier version on the Atari ST and this means
that the 68000 core has been fairly well tested. However the extensions
for the 68030 and the 68882 have only been tested in a limited way and
there will certainly be bugs in this area. Please let me know any that
you come accross.
Operation of DIS
On entry DIS displays a > prompt and waits for a command line which
consists of a letter which may be followed by further parameters which
are separated from each other by either commas or blank spaces. A '?'
in response to the prompt gives a summary of commands. In the following
command descriptions 'x1', 'x2' etc. represent numeric parameters which
are normally in hexadecimal notation. If a program with a symbol table
is loaded then x1, x2 etc. can be symbols.
Command Function
I x1 x2 Disassemble Instructions from x1 to x2
B x1 x2 Disassemble data Bytes (8 bits) from x1 to x2
W x1 x2 Disassemble data Words (16 bits) from x1 to x2
L x1 x2 Disassemble Long words (32 bits) from x1 to x2
C x1 x2 Disassemble in Character format from x1 to x2
A x1 x2 Disassemble a table of Addresses from x1 to x2
M x1 x2 template Disassemble according to a template. The template
is a a sequence of the characters ICBWLANV which
represent Instructions, Characters, Bytes, Words,
Longs, Addresses, Newlines, & Labels respectively.
Each character in the template produces an output
of the appropriate type, with the template being
repeatedly scanned if more output is required.
For example NVCCA would give Labelled blocks with
two bytes and an address in each. If the template
contains a '/' character this marks the re-scan
position rather than the beginning. An optional
decimal count can precede any output character
(ICBWLA) and then applies to this output.
Ec x1 x2 Output Equates for addresses using range x1 to x2
Note that labels external to the range are output
as the default but if the character 'c' is present
and is 'I', 'E' or 'A' then Internal, External or
All labels in the range are output respectively
J x1 x2 Compile labels from x1 to x2 into the symbol table
Fc x1 x2 xx.. Find positions of the hexadecimal digit sequence
xx... between x1 and x2. If 'c' is present and is
'E' then only even address matches are output
Fc x1 x2 "cc.." Find positions of the string "cc..." between x1
and x2 . If 'c' is present and is 'E' then only
match positions at even addresses are given
K x1 x2 x3 [x4] Find positions where address x3 is referenced. If
x4 is present then find positions where addresses
in the range x3= < address < x4 are referenced
U x1 x2 Set range limits for disassembly
Uc Reset to initial range limits. If 'c' is present
and is 'C', 'D', 'B' or 'P' the the limits of
the Code, the Data, the Bss or the (Code + Data)
are set. If 'c' is not present the total program
length limits are set
Vc x1 Enter (Make) a symbol at address x1. If 'c' is
present and is the character 'E' (or 'e') then
the symbol is absolute, otherwise it is program
relative (Note that V alone outputs a DIS version
number and author information).
X x1 Set the eXecution address for a program when this
is different to the load address (this should not
be used on programs loaded with the 'P' command)
Y x1 SYmbol form control. x1 can be a sum of the values
1, 2 and 4 to produce the desired effect:
x1 = 1: output long labels (0 = short)
x1 = 2: output absolute labels (0 = relative)
x1 = 4: input absolute addresses (0 = relative)
x1 = 8: use old 68000 instruction syntax
N x1 Disassembly control. x1 can be a sum of the values
1, 2, 4 and 8 to produce the desired effect:
x1 = 1: enter labels into the symbol table
x1 = 2: display internal labels in output
x1 = 4: display external labels in output
x1 = 8: use any symbols loaded with program
Internal and External labels reference addresses
inside and outside the program area respectively.
Program symbols will only be available if the
program contains a symbol table.
H+ H- Turn Hexadecimal code output on (+) or off (-)
during the disassembly of instructions
D+ D- Turn character code output on (+) or off (-)
during the disassembly of instructions
P prog_name Load a Program for disassembly
P- Unload a Program (or image file)
R file_name x1 Load (Read) a binary image file for disassembly
with x1 as the execution address (default = 0)
R- Unload a binary image file (or program)
S file_name Output (Save) disassembly from here onwards to a
specified file
S- Turn off saving and close output file
O Output file name and range information
Q Quit disassembler (safer than ^C !)
T Compile auto_disassembly control table (see later)
T- Clear auto Table
TD Display the contents of the auto control table
TL file_name Load the auto table contents from specified file
TS file_name Save the auto table contents to the specified file
G Run (Go) auto disassembly (see later)
Z Delete (Zap) all symbol table entries
When a program or image file is loaded the relative label forms are
relative to the start of the file. Otherwise relative labels take zero
as a base and are therefore effectively absolute. Input values will
either be absolute or relative depending on the value set by the Y
command. In relative input mode an absolute number can be input by
preceeding it with a '$' sign. If the second number of an input pair is
preceeded by a '+' sign the value input is added to the value of the
first parameter to form the second parameter. If a '*' is entered
instead of an input value then the current value of the relevant
parameter is used. DIS generates address labels by adding a letter in
front of the lowest six hexadecimal digits of the address, the letter
being determined by the type of access. Thus a subroutine at $00xxxxxx
will have a label sxxxx (short) or sxxxxxx (long). Address labels in TT
RAM are distinguished by adjusting the top hexadecimal digit by adding
'k' to it. Thus a subroutine at $012xxxxx has a label smxxx or smxxxxx.
Pressing the SPACE bar during disassembly will pause the output;
pressing space again will resume output while any other key will return
to command mode. Pressing ESC during disassembly will return
immediately to command mode. During disassembly the x1 parameter is
continuously updated so that a stopped disassembly can be restarted
by using a * in the first parameter position. In number pair commands
if no second value is given then a convenient number of lines will be
disassembled to the screen. A RETURN entered at the > prompt will
repeat the previous command.
Automatic Disassembly
The T command allows a table to be input in the following form to
control disassembly:
c1 x1
c2 x2
m3 x3 template
...
cN xN
where each Cn is one of the characters (I,C,B,W,L,A,V,M,X) and xN is a
hexadecimal number as normal. After a table has been input a G command
starts disassembly. Each entry in the table is processed in turn with
the letter determining the type of disassembly and the address
indicating where to start. The address for the next entry determines
where disassembly finishes and restarts in a new form (an X is used for
the last entry in the table). An M instruction for template disassembly
is followed by a mask as for the normal M command. When entering the
table an entry can be corrected by simply entering a new entry with the
same address value (or a Z with the same address if the entry is to be
removed). To end table input simply type a RETURN in response to the
prompt. The table will then be output for you to confirm that it is
correct. After a table has been input disassembly is initiated with the
G command (its output can be saved if required by issuing an S command
before and after the G command). The symbol table is not cleared before
an automatic disassembly so you may wish to do this before issuing a G
command.
Bug Reports to:
Brian Gladman
8 College Grove
Great Malvern
Worcs WR14 3HP
United Kingdom
Internet: gladman@ccint1.rsre.mod.uk