C) A.N.D.Y.
Music: LASERDREAM (C) Mr.Z / LS (R) DGN
DD80
Disassembler DD80 is perhaps the most
powerful among the programs in its class. Despite
that it is a console and written to the operating system CP /
M, it can be successfully used for programs written in other
operating systems. For three years of use in their work DD80,
I'm quite fully explore its capabilities and I want to share
their experiences ...
*
IDEOLOGY
DD80 is simply limitless possibilities, which can not by
any other disassembler. Those who worked with such a regime in
the STS, I think, will no longer do so. :)
The fundamental difference DD80 is
that he was in his work is the map file. In
This map shows the distribution of memory blocks, which come in
3 types: CODE, DATA, STORAGE. The first two explain, probably
do not need, and the third view - that, when assembly is
declared DEFS, ie reserved area. This card can write to disk
and read back, add to it and remove the pieces, etc. But this a
little later. The second nice feature DD80 is obtained, and in
some cases completely automatic operation. I'm such a nowhere
not seen. After mapping the final
disassembly produced on CD format
text file with an alternate character set. There
also displays all official information. The disadvantages of
the program can be attributed to the absence of any it may work
with the halves of the index registers. : (Still affected by
the lack of console sales (no windows, where the map consists
of a set blocks, it scrolls on the screen two or three, etc.).
*
DESCRIPTION
Once launched, the screen appears:
Dizasembler ready for commissioning teams consisting
three letters. List of available commands can be obtained by
dialing HLP. All teams are divided into five types:
1. DISASSEMBLY COMMAND
2. MAP AND SYMBOL TABLE COMAND
3. FILE DEFINITION COMAND
4. FORMAT COMMANDS
5. SPECIAL FUNCTION COMMANDS
FILE DEFINITION COMMANDS
I do not accidentally start with an overview of the
commands DD80 this group, despite the fact that they set aside
HELP'e 4-th item. This group of commands performs the principal
action, without which work would be impossible. In total there
are five teams:
DSK [drive:] filename - to attach the file. All we introduce
reduces without spaces, the parameter drive: optional If the
file is located on the current drive.
OUT drive: - select a disc for recording maps and listings.
EXC addr - setting the starting address of the file. By
default, the files in the operating system CP / M on the
address begins with # 0100.
LOC - actual file location.
ADR - display input file address.
DISASSEMBLY COMMANDS
14 teams in this group control mode disassembler program.
DAS [adr1] [adr2] - disassembly with the findings
screen program listing. If the parameter adr2 is absent, then
the process ends when the met one of the teams JP ADDR, JP
(HL), RET, HALT. If you omit the parameter adr1, then
dizassemb tunneling occurs with the current address. In this
If you can just click <ESC>. Exhaust section of the program
will be entered into the map and placed chen as CODE.
TAB [adr1] [adr2] - puts the memory card in
and marks it as a data (DATA).
STG [adr1] [adr2] - declares the block of memory as
STORAGE.
DMC
DMT - the relevant transactions without displaying.
DMS /
XMC
XMT - removal of the blocks from the map.
XMS /
GMC [adr] - global disassembly. DD80 begins to disassemble at
the specified address. Village le to finish processing the main
part of the file (ie, to always be greeted with one of the
teams, stop ing process) from a table of raw addresses is
chosen addresses, an asterisk, and the process continues. When
all the branches of the program will be on the works, all
blocks of code will be marked in the map.
GMT - fills in the card as all the DATA blocks, the presence of
the corresponding addresses in the table.
GMS - marks all that remains after otrabot ki teams GMC and
GMT, as STORAGE.
Thus, you can disassemble the program by entering only
three teams! But do not rejoice too much, because here has its
own submarine stones. Read about them in the end.
These two commands are executed after
as will be composed of all the card program:
FAS - the team final (FINAL) disassembles tion with output on
screen. Zazhuzhzhit drive, and you can zhete go drink some tea
or a smoke.
FMD - the same, but without displaying much bys tray. :)
As a result, the final disassembly at
drive creates an ASCII file in an alternative encoding. It
looks like this:
MAP AND SYMBOL TABLE COMMANDS
This group performs with the card and consists of six
teams:
NEW - cleaning cards. Necessary if you pile up if the card is
that of the usual command removes blocks from the card (such as
XMC) is no longer correct.
MAP - maps on the screen. Bottom of the screen starts
crawl list of blocks, divided into three columns:
CODE, DATA, STORAGE. Following this table will be a person of
indeterminate address (UNRESOLVED SYMBOL TABLE). Seeing in
this table are the address, labeled asterisk, boldly
disassembles from this address.
SYM - displaying the full address table. Here
will appear and the addresses that are already reflected
nerdy, and those who have not.
REF - reshaping Address Table This commands do should be
applied after the removal of any blocks from the map. In the
process of working off of the commands hole again
peretrassiruyutsya all CODE-plots about the program.
SVM - a record card to the disk (current or established team
lenny OUT). As a result, drive us to the appearance file
filename.MAP, takes up very little of the place, but keeps all
the information about the source file.
LDM - respectively, the map is loaded from disk.
Thus, you can disassemble the file
and write it to disk, and if the distribution of blocks
wrong, then you just download the DD80, take a map, to correct
"mistakes" and to repeat the disassembly. No torture!
FORMAT COMMANDS
This group includes service team
not very much and necessary, but useful. Six of them:
D80 - use the instruction set processor INTEL
8080. This is where instead of LD A, (DE) is written LDAX D
(Those who have written in assembler 8080, will understand me).
D85 - use the set command processor 8085.
Frankly, these teams and in a nightmare
not a dream. ;)
Z80 - use a set of commands Z80.
LIN - the number of characters per line console (the pole
nadtsatirichnoe number no more than # 50 = 80).
DEL - remapping the keys to delete characters.
BSC - the same thing, but for the key BACKSPACE.
SPECIAL FUNCTION COMMANDS
This group contains four teams of general purpose:
HLP - as already mentioned, the call reference.
END - end of work and out of CP / M. Same
effect gives a shortcut + .
SAV line - is stored in memory row line, which can then cause
ruyu pressing + <R>.
DUM [addr] - dump the output from the address addr. The EU is
omitted, then displays the contents of memory with the current
address. In this case, we can just click <ENTER>.
*
From undocumented
The size of the symbol table that is defined by default,
to me, unfortunately, is not known. He was constantly lacking
and, periodically, DD80 asks, can Does it expand. It looks like
this:
Seeing this message, feel free to answer "Y"; nothing
terrible will happen.
When the program encounters any team that operates with
half of the index registers, DD80 stop disassembly, and writes:
Against this only helps the "shamanic" way: to determine the
byte # DD # FD or as DATA, and then continue with the
disassembly of the address. Not forget to fix it!
If you like to get involved in the use of global commands
such as GMC and GMT, then you can run into the following
circumstance: part of the file that you've marked as DATA, in
fact, may be executable code, as DD80 and warn you. This would
be something like:
As I understand it, DD80 in the process of working off the team
GMT checks if calls (commands JP, CALL)
in this area. This again dokazyvet that DD80 -
"Smart" program.
*
Some good advice
1) Many programmers write programs in such
Style:
LD DE, SCR_ADR
CALL PRINT
DATA DEFB "Hello, friends!" # 00
LD HL, TABLE
...
PRINT POP HL
...
In the usual disassembly team DAS with one parameter (or no
parameters) will you understand that. Therefore, in order to
data were not included in the region CODE, after the discovery
of subroutine that first thing is something enters the stack,
find all its challenges and accurately disassembles team DAS
with two parameters.
2) Often, when writing programs in assembler using the
following method: depending on the value of the register (or
register pair) from the table values of the selected address,
then often goes Team JP (HL). As you may have guessed,
case of an almost clinical. References to address sub-DD80 not
detect it. Here can only help intermediate disassembly. After
You will find etu_samuyu_chertovu_tablitsu, write
a piece of paper a list of addresses, and ship again DD80. A
little sloppy, but believe me, helps.
3) In order to disassemble the program,
which does not work in CP / M, should be:
a) move it out of TR-DOS disk in the system
CP / M (with CopyK, Hop Commander or
similar.)
b) change the extension. CTR on. COM (otherwise no
Why did not turn out).
c) after the launch of DD80 and connect the file vves
Tee command EXC addr, ie specify the address of triggering
ka your (or your) program.
d) on - business as usual.
4) And the last. All operations are well prodelyvat,
first copy all the files on the RAM-disk.
Unforgettable sensation: drive is not buzzing, the work is not
retarded ...
*
P.S. Here, it seems, is all. If you have forgotten something,
write to the the next issue. On the drive in an application,
you will find the program as a file DD80.C, which must be
transferred to the CP / M-drive and rename the. COM-file. With
the DD80 can be done. For example, once upon a time I was the
source DIZZY 3.5 and DRILLER.
On the drive in an application, you will find the program as a
file DD80.C, which must be transferred to the CP / M-drive and
rename the. COM-file. With the DD80 can be done. For example,
once upon a time I was the source DIZZY 3.5 and DRILLER.
hx