mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1057 lines
30 KiB
1057 lines
30 KiB
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
|
|
Table of Contents of the full Z80DIS manual..
|
|
---------------------------------------------
|
|
|
|
|
|
Table of Contents - - - Page
|
|
|
|
SECTION 1: Introduction: Remarks, Copyright, License ..... 3
|
|
2: Features of Z80DIS ............................ 7
|
|
3: How to use the program: Execution dialog ..... 11
|
|
3.1 Basic parameter definition ................ 11
|
|
3.2 Definition of the Break Table ............. 16
|
|
3.3 Execution pass one ........................ 23
|
|
3.4 Execution pass two ........................ 24
|
|
4: Tips, tricks, problems, and limitations ...... 25
|
|
5: Your first disassembly, a walk-through ....... 35
|
|
|
|
APPENDIX A: Installation of Z80DIS for your computer ..... 43
|
|
B: Error messages produced by Z80DIS ............ 49
|
|
C: Anomaly messages from Auto Assignment ........ 55
|
|
D: PRN output file format with sample ........... 61
|
|
E: MAC output file format with sample ........... 79
|
|
F: Break file format with sample ................ 83
|
|
G: Revision history of Z80DIS ................... 85
|
|
|
|
|
|
|
|
|
|
How to get the Z80DIS manual
|
|
----------------------------
|
|
|
|
Copies of the Z80DIS USER MANUAL are available by mail. I am
|
|
asking a nominal charge of $ 20.00 which includes the manual,
|
|
postage, handling, and an update notification service. The
|
|
program itself is not available by mail as I do not have
|
|
extensive, multi-format disk copy capability. The notification
|
|
service will consist of a letter to you anytime a new version is
|
|
released so that you may be on the lookout for it.
|
|
|
|
To order copies of the Z80DIS USER MANUAL by mail, send a request
|
|
with your name, address, and a check for $ 20.00 to --
|
|
|
|
Kenneth Gielow
|
|
79 Tulip Lane
|
|
Palo Alto, CA 94303
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
This walk through the use of Z80DIS is taken from chapter 5
|
|
(page 35) of the larger Z80DIS manual.
|
|
|
|
- O -
|
|
|
|
Your first disassembly, a walk-through
|
|
--------------------------------------
|
|
|
|
The purpose of this section is to walk you through a disassembly
|
|
using what I would consider the "best" first guess values for all
|
|
interactive program inputs. I suggest using the widely available
|
|
public domain program D.COM for your first disassembly so that
|
|
you may follow along with the example.
|
|
|
|
Z80DIS is a batch program with user interactive set-up of the
|
|
control parameters. Disk scratch files are used during the
|
|
disassembly. I suggest the following file disposition for a two
|
|
disk drive system: (If you are not using D.COM then substitute
|
|
your file name as required.)
|
|
|
|
On drive A - Z80DIS.COM, Z80DIS.000, Z80DIS.001, Z80DIS.002
|
|
On drive B - D.COM
|
|
|
|
During the Z80DIS set up phase direct files as follows -
|
|
|
|
PRN to your list device (LST:) or to drive B
|
|
Scratch file Z80DIS.$$$ to drive A.
|
|
Initially suppress the MAC file by directing to NONE:
|
|
|
|
If you have a third disk drive, direct the scratch file to that
|
|
drive.
|
|
|
|
This optimizes data flow by minimizing disk head action.
|
|
|
|
The following assumes that you start with the A drive as your
|
|
selected default drive. Your CP/M input prompt should read:
|
|
|
|
A>
|
|
|
|
You start Z80DIS by typing "Z80DIS" with no parameters. The
|
|
program will prompt you for inputs. In most cases, default
|
|
entries are shown in reduced intensity already occupying the data
|
|
field. If you type only the RETURN key, the default will be used.
|
|
|
|
--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
INITIAL PARAMETER SETTING
|
|
|
|
After a brief sign-on message, you will be asked to supply the
|
|
following information.
|
|
|
|
|================================================================
|
|
| Please enter INPUT file name: ______________
|
|
| OUTPUT file name: ______________
|
|
| LISTING file name: ______________
|
|
| Descriptive TITLE: __________________________________________
|
|
|
|
|
| file LOAD address: ____ HEX
|
|
| disassembly START address: ____ HEX
|
|
| disassembly STOP address: ____ HEX
|
|
|
|
|
| Do you wish to run a FULL output (as opposed to XREF only)?
|
|
| On which disk do you wish the scratch file to reside? (A-G)
|
|
|
|
|
| Do You wish to process all Z80 codes (as opposed 8080 subset)?
|
|
|
|
|
| Are all inputs OK so far?
|
|
|================================================================
|
|
|
|
|
|
Each question is presented one-at-a-time from the top. Only a
|
|
single suggested answer will be given for each. You actually have
|
|
lots of choices possible. For details of the purpose, defaults,
|
|
editing capability and error checking for each answer please
|
|
refer to the larger manual.
|
|
|
|
The following comments apply to all user inputs to Z80DIS:
|
|
|
|
File Names - The program wants a CP/M style file name in the
|
|
standard form D:FILENAME.EXT. Each file name, but the very
|
|
first, has default values selected to simplify your job.
|
|
|
|
Letter Case - Upper and lower case letters are equivalent and
|
|
will echo as upper case.
|
|
|
|
Editing Your Input - All inputs, except single character Y or N
|
|
answers, must be terminated by a carriage return (shown as
|
|
<CR>). Until the <CR> terminator is typed, you may correct
|
|
the entry as required by backspacing.
|
|
|
|
Terminating Z80DIS - You may terminate Z80DIS by the usual
|
|
control-C (shown as ^C) at any time. At later stages of
|
|
execution, only the then current phase will be aborted to
|
|
provide a graceful recovery of the processing done to that
|
|
point.
|
|
|
|
Notation - In the examples to follow, carriage return is
|
|
sometimes indicated by the notation <cr>.
|
|
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
-----------------------------------------------------------------
|
|
INPUT file name: ______________
|
|
|
|
Type the name of your binary file to be disassembled. As I
|
|
have suggested placing this file on the B drive, you will need a
|
|
B: drive prefix. The program will default the file extension to
|
|
|
|
b:d<cr>
|
|
|
|
The program will echo:
|
|
|
|
B:D.COM
|
|
|
|
-----------------------------------------------------------------
|
|
OUTPUT file name: ______________
|
|
|
|
Z80DIS will show the default in reduced intensity as
|
|
NONE:.MAC. Simply type carriage return (<cr>). The program will
|
|
echo:
|
|
NONE:
|
|
|
|
This will suppress generation of the D.MAC assembly code file.
|
|
|
|
-----------------------------------------------------------------
|
|
LISTING file name: ______________
|
|
|
|
Z80DIS will show the default in reduced intensity as
|
|
B:D.PRN. I suggest that you change this to direct printer output
|
|
by typing:
|
|
lst:<cr>
|
|
|
|
The program will echo:
|
|
|
|
LST:
|
|
|
|
-----------------------------------------------------------------
|
|
Descriptive TITLE: __________________________________________
|
|
|
|
Type the date and time of your disassembly followed by a
|
|
carriage return. The program will not interpret your input. For
|
|
the example, I typed:
|
|
|
|
Demonstration<cr>
|
|
|
|
-----------------------------------------------------------------
|
|
file LOAD address: ____ HEX
|
|
|
|
Accept the default value ( 0100 hex) by typing a carriage
|
|
return.
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
disassembly START address: ____ HEX
|
|
|
|
Accept the default value ( 0100 hex) by carriage return.
|
|
|
|
-----------------------------------------------------------------
|
|
disassembly STOP address: ____ HEX
|
|
|
|
Accept the default value by carriage return.
|
|
|
|
-----------------------------------------------------------------
|
|
Do you wish to run a FULL output
|
|
(as opposed to XREF only) ? (Y/N) _
|
|
|
|
Type Y to select the full output. No carriage return is
|
|
needed. Only four characters are accepted for input: y Y n N. All
|
|
others are ignored and the program will beep your terminal "bell"
|
|
to indicate bad input.
|
|
|
|
-----------------------------------------------------------------
|
|
On which disk do you wish the scratch file to reside? (A-G) _
|
|
|
|
Type <cr> to accept the default (A:) drive.
|
|
|
|
-----------------------------------------------------------------
|
|
Do you wish to process all Z80 codes
|
|
(as opposed 8080 subset only) ? (Y/N) _
|
|
|
|
As D.COM is an older 8080 CP/M program you should type N. If
|
|
your program is known to contain Z80 instructions, type Y.
|
|
|
|
-----------------------------------------------------------------
|
|
Are all inputs OK so far? (Y/N) _
|
|
|
|
If all looks OK, type Y. A no (N) response will return you
|
|
to the first question again.
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
BREAK TABLE BUILDING
|
|
|
|
After you have answered Y (yes) to the "Inputs OK?" question,
|
|
the screen will clear and your terminal will now display the
|
|
following:
|
|
|
|
|================================================================
|
|
| >>> Z80DIS version 2.2
|
|
| You may now enter CONTROL BREAK addresses to define the type
|
|
| of disassembly for each section of the code; each control
|
|
| break defines the first address of a section which ends at the
|
|
| beginning of the next section-1 byte.
|
|
|
|
|
| NOTE: You may select AUTOMATIC CONTROL BREAK assignment by the
|
|
| artificial intelligence expertise of Z80DIS by typing *
|
|
|
|
|
| TO SEE DETAILS OF YOUR COMMAND CHOICES, type H
|
|
|
|
|
| ?: _
|
|
|================================================================
|
|
|
|
A break table tells a disassembler how to interpret the binary
|
|
bytes that it is examining. A disassembler must know whether the
|
|
bytes are instructions or data in order to proceed.
|
|
|
|
First type the letter H just to see your choices. Then type the
|
|
character * to select automatic break table operation. Z80DIS
|
|
will ask for confirmation: Type Y to confirm.
|
|
|
|
The * command will generate the break table for you. After
|
|
automatic assignment returns, you will be shown the break table.
|
|
You may list the table to your printer if you wish by typing P.
|
|
|
|
If Z80DIS had trouble reaching a decision about some of the code,
|
|
anomaly reports will be displayed and you will be given an
|
|
opportunity to print these reports. I got one message with the
|
|
version of D.COM that I was running. Note that D.COM replaces
|
|
itself nearly every time you run it, and your copy will contain
|
|
different file names in the directory part.
|
|
|
|
Just for now, print any anomalies if you wish then proceed to
|
|
exit the break defining process.
|
|
|
|
To exit the break table building process enter the Q command
|
|
(Quit). As you have not saved a copy of the changed break table
|
|
to a file, Z80DIS will ask you to either save the file or type
|
|
the quit command again. Type Q a second time to start
|
|
disassembly.
|
|
|
|
__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
DISASSEMBLY PASS ONE
|
|
|
|
As the disassembly begins the code is cracked according to the
|
|
break table, the cross reference list structure is linked into
|
|
the PASCAL heap space in upper memory, the cracked code is copied
|
|
with context information onto a scratch file called Z80DIS.$$$.
|
|
During pass one, your console screen will display the following:
|
|
|
|
|================================================================
|
|
| Beginning disassembly...
|
|
| THIS IS Pass 1
|
|
| working at 05F0 Asc
|
|
|================================================================
|
|
|
|
The "working at" line is animated and will show the current
|
|
address and disassembly mode. In the illustrated case the program
|
|
has just finished processing the file D.COM and the last break
|
|
type was ascii.
|
|
|
|
--
|
|
|
|
|
|
DISASSEMBLY PASS TWO
|
|
|
|
During the second pass all user output files and listings are
|
|
produced and the scratch file is erased. During pass two, your
|
|
console screen will display the following:
|
|
|
|
|================================================================
|
|
| THIS IS Pass 2
|
|
| scratch file contains 396 records of 30 bytes each
|
|
| Free memory space remaining after XREF table storage
|
|
| assignments is 29144 bytes out of the original 31300
|
|
| bytes (or 6.9 percent used.)
|
|
|
|
|
| LISTING cross references
|
|
|
|
|
| LISTING Subroutines
|
|
|
|
|
| PRODUCING disassembled output files
|
|
| Processing external label equates
|
|
| Working at 05F0 Asc
|
|
|================================================================
|
|
|
|
The informative messages about file and memory space will let you
|
|
see just how close to capacity the program is running.
|
|
|
|
During this pass your printer will start to print the output.
|
|
|
|
The "working at" line is animated and will show the current
|
|
address and disassembly mode. In the illustrated case the program
|
|
has just finished pass two processing of the file D.COM.
|
|
|
|
When the program is complete, Z80DIS will ring your terminal
|
|
"bell" twice and display the following sign-off message:
|
|
|
|
|
|
7
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
|
|
|================================================================
|
|
| END of Pass 2
|
|
|================================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
This section is taken from Appendix A of the Z80DIS user manual
|
|
(page 43).
|
|
|
|
- O -
|
|
|
|
Installation of Z80DIS for your computer
|
|
----------------------------------------
|
|
|
|
CP/M is a generic operating system, but most of the terminals
|
|
used with CP/M have features not anticipated by CP/M. These
|
|
features include CURSOR ADDRESSing and BRIGHT/DIM display of
|
|
characters. This program utilizes such features, when available,
|
|
to improve the operator interaction. As the program itself is
|
|
written in TURBO PASCAL, the TURBO installation support feature
|
|
has been used to make this adaptation easy.
|
|
|
|
Therefore, before you use this program, it must be installed to
|
|
your particular terminal, by providing it with information
|
|
regarding control characters required for certain functions. This
|
|
installation is easily performed using the program ZDINSTAL which
|
|
is described in this section.
|
|
|
|
The following files are part of this program installation package
|
|
and must be present during terminal installation (the three
|
|
ZDINSTAL.* files may then be deleted after installation if no
|
|
other terminals are to be supported)..
|
|
|
|
Z80DIS.COM - Z80DIS main program file
|
|
Z80DIS.000 - overlay file
|
|
Z80DIS.001 - overlay file
|
|
Z80DIS.002 - overlay file
|
|
|
|
ZDINSTAL.COM - the installation program
|
|
ZDINSTAL.MSG - text of ZDINSTAL messages
|
|
ZDINSTAL.DTA - terminal characteristics data
|
|
|
|
|
|
|
|
- THE INSTALLATION PROCEDURE -
|
|
|
|
|
|
Start the installation of Z80DIS by typing "ZDINSTAL" at your
|
|
terminal. Select Screen installation from the main menu.
|
|
|
|
A numbered menu listing a collection of popular terminals will
|
|
appear, inviting you to choose one by entering its number.
|
|
|
|
If your terminal is mentioned, just enter the corresponding num-
|
|
ber, and the installation is complete. Before installation is
|
|
actually performed, you are asked the question..
|
|
|
|
|
|
Do you want to modify the definition before installation? _
|
|
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
This allows you to modify one or more of the values being instal-
|
|
led as described in the following. If you do not want to modify
|
|
the terminal definition, just type N, and the installation will
|
|
complete by asking you the operating frequency of your CPU to
|
|
establish parameters for timing loops.
|
|
|
|
If your terminal is not on the menu, however, you must define the
|
|
required values yourself. The values can most probably be found
|
|
in the manual supplied with your terminal.
|
|
|
|
Enter the number corresponding to None of the above and answer
|
|
the questions one by one as they appear on the screen.
|
|
|
|
In the following, each command you may install is described in
|
|
detail. Your terminal may not support all the commands that can
|
|
be installed. If so, just bypass the command not needed by typing
|
|
<CR> in response to the prompt. If Delete line, Insert line, or
|
|
Erase to end of line is not installed, the function will be
|
|
emulated in software, slowing screen performance somewhat.
|
|
|
|
Commands may be entered either simply by pressing the appropriate
|
|
keys or by entering the decimal or hexadecimal ASCII value of the
|
|
command. If a command requires the two characters <ESC> (escape)
|
|
and = (equal), you may
|
|
either
|
|
|
|
Press first the Esc key, then the =. The entry will be
|
|
echoed with appropriate labels, i.e. <ESC> =.
|
|
|
|
or
|
|
|
|
Enter the decimal or hexadecimal values separated by spaces.
|
|
Hexadecimal values must be preceded by a dollar-sign. Enter e.g.
|
|
27 61 or $1B 61 or $1B $3D which are all equivalent.
|
|
|
|
The two methods cannot be mixed in the same definition, i.e. once
|
|
you have entered a non-numeric character, the rest of that
|
|
command must be defined in that mode, and vise versa.
|
|
|
|
A - (hyphen) entered as the very first character is used to
|
|
delete a command, and the text Nothing to be echoed.
|
|
|
|
-----------------------------------------------------------------
|
|
Terminal type: _
|
|
|
|
Enter the name of the terminal you are about to install.
|
|
When you complete ZDINSTAL, the values will be stored, and the
|
|
terminal name will appear on the initial list of terminals. If
|
|
you later need to re-install Z80DIS to this terminal, you can do
|
|
that by choosing it from the list.
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
Send an initialization string to the terminal? _
|
|
|
|
If you want to initialize your terminal when Z80DIS starts
|
|
(e.g. to download commands to programmable function keys), you
|
|
answer Y for yes to this question. If not, just hit <CR>.
|
|
|
|
If you answer Y, you may choose between entering the command
|
|
directly or defining a file name containing the command string.
|
|
The latter is a good idea if the initialization string is long,
|
|
as a string to program a number of function keys would be.
|
|
|
|
-----------------------------------------------------------------
|
|
Send a reset string to the terminal? _
|
|
|
|
Here, you may define a string to be sent to the terminal
|
|
when Z80DIS terminates. The above description of the initializa-
|
|
tion command applies here.
|
|
|
|
-----------------------------------------------------------------
|
|
CURSOR LEAD-IN command: _
|
|
|
|
Cursor Lead-in is a special sequence of characters which
|
|
tells your terminal that the following characters are an address
|
|
on the screen on which the cursor should be placed.
|
|
|
|
When you define this command, you are asked the following
|
|
supplementary questions:
|
|
|
|
CURSOR POSITIONING command to send between line and column: _
|
|
|
|
Some terminals need a command between the two numbers defi-
|
|
ning the row and column cursor address.
|
|
|
|
CURSOR POSITIONING command to send after line and column: _
|
|
|
|
Some terminals need a command after the two numbers defining
|
|
the row and column cursor address.
|
|
|
|
-----------------------------------------------------------------
|
|
Column first? _
|
|
|
|
Most terminals require the address in the format: first ROW,
|
|
then COLUMN. If this is the case on your terminal, answer N. If
|
|
your terminal wants COLUMN first, then ROW, then answer Y.
|
|
|
|
-----------------------------------------------------------------
|
|
OFFSET to add to LINE _
|
|
|
|
Enter the number to add to the LINE (ROW) address.
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
OFFSET to add to COLUMN _
|
|
|
|
Enter the number to add to the COLUMN address.
|
|
|
|
-----------------------------------------------------------------
|
|
Binary address? _
|
|
|
|
Most terminals need the cursor address sent in binary form.
|
|
If that is true for your terminal, enter Y. If your terminal
|
|
expects the cursor address as ASCII digits, enter N. If so, you
|
|
are asked the supplementary question..
|
|
|
|
2 or 3 ASCII digits? _
|
|
|
|
Enter the number of digits in the cursor address for your
|
|
terminal.
|
|
|
|
-----------------------------------------------------------------
|
|
CLEAR SCREEN command: _
|
|
|
|
Enter the command that will clear the entire contents of
|
|
your screen, both foreground and background, if applicable. If
|
|
you have no command to clear the screen, enter - (hyphen).
|
|
|
|
-----------------------------------------------------------------
|
|
Does CLEAR SCREEN also HOME cursor? _
|
|
|
|
This is normally the case; if it is not so on your terminal,
|
|
enter N, and define the cursor HOME command.
|
|
|
|
-----------------------------------------------------------------
|
|
DELETE LINE command: _
|
|
|
|
Enter the command that deletes the entire line at the cursor
|
|
position.
|
|
|
|
-----------------------------------------------------------------
|
|
INSERT LINE command: _
|
|
|
|
Enter the command that inserts a line at the cursor posi-
|
|
tion.
|
|
|
|
-----------------------------------------------------------------
|
|
ERASE TO END OF LINE command: _
|
|
|
|
Enter the command that erases the line at the cursor posi-
|
|
tion from the cursor position through the right end of the line.
|
|
|
|
-----------------------------------------------------------------
|
|
START OF 'LOW VIDEO' command: _
|
|
|
|
If your terminal supports different video intensities, then
|
|
define the command that initiates the DIM video here. If this
|
|
command is defined, the following question is asked:
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
START OF 'NORMAL VIDEO' command: _
|
|
|
|
Define the command that sets the screen to show characters
|
|
in 'normal' video.
|
|
|
|
-----------------------------------------------------------------
|
|
Number of rows (lines) on your screen: _
|
|
|
|
Enter the number of horizontal lines on your screen.
|
|
|
|
-----------------------------------------------------------------
|
|
Number of columns on your screen: _
|
|
|
|
Enter the number of column positions on your screen.
|
|
|
|
-----------------------------------------------------------------
|
|
Delay after CURSOR ADDRESS (0-255 ms): _
|
|
Delay after CLEAR, DELETE, and INSERT (0-255 ms): _
|
|
Delay after ERASE TO END OF LINE and HIGHLIGHT On/Off (0-255 ms):
|
|
|
|
|
|
Enter the delay in milliseconds required after the functions
|
|
specified. <CR> means 0 (no delay).
|
|
|
|
-----------------------------------------------------------------
|
|
Is this definition correct? _
|
|
|
|
If you have made any errors in the definitions, enter N. You
|
|
will then return to the terminal selection menu. The installation
|
|
data you have just entered will be included in the installation
|
|
data file and appear on the terminal selection menu, but instal-
|
|
lation will not be performed.
|
|
|
|
When you enter Y in response to this question, you are
|
|
asked..
|
|
|
|
-----------------------------------------------------------------
|
|
Operating frequency of your microprocessor in MHz (for delays): _
|
|
|
|
As the delays specified earlier are depending on the
|
|
operating frequency of your CPU, you must define this value. If
|
|
your processor operates at a fractional speed (i.e. 2.5 Mhz),
|
|
enter the next larger integer value (3 Mhz for this example.)
|
|
|
|
-----------------------------------------------------------------
|
|
|
|
|
|
The installation is finished, installation data is written to
|
|
Z80DIS, and you return to the outer menu. New installation data
|
|
is also saved in the installation data file, and the new terminal
|
|
will appear on the terminal selection list when you run ZDINSTAL
|
|
in the future.
|
|
|
|
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
Significant Changes in Version 2.2 Released 05/01/87
|
|
----------------------------------
|
|
|
|
A. Format Improvements
|
|
|
|
1) Output format changes for M80 compatibility:
|
|
Singular references now flagged with $ not #
|
|
Inferred references flagged with ?
|
|
No : (colon) on labels on EQU statements
|
|
No address on END card
|
|
Shortened some comments to fit on M80 list page
|
|
Output M80 pseudo-op '.Z80' just before 'ORG' line
|
|
|
|
2) Comments showing Reference-type on EQU external lines are
|
|
now preceded by a semi-colon (;).
|
|
|
|
3) Lower-case 'end' operation changed to upper-case 'END'.
|
|
|
|
4) Z80DIS now remembers the numeric value on any immediate
|
|
load of the C register:
|
|
LD C,nn
|
|
When 'nn' is in the range 0..40 hex, the value is translated
|
|
and shown on the following BDOS call as a CP/M function.
|
|
CALL BDOS ; fcnNN= XXXXXXXXXXXXXXX
|
|
|
|
5) DEFS pseudo op now modified to specify filling value
|
|
found in the region. i.e.
|
|
DEFS 1234H,00H
|
|
When automatic assignment has set the break table, this is
|
|
the right thing to do because the space area is known to be
|
|
filled with only a single value throughout. That is not true
|
|
for a user supplied SPC break but the DEFS is still output
|
|
as if it was true.
|
|
|
|
6) Changed format of DEFB print out to try to eliminate the
|
|
alternation of long and short lines. Also changed automatic
|
|
break table handling of ASCII data to better resynchronize
|
|
text lines with the labeled bytes. These are esthetic
|
|
improvements.
|
|
|
|
B. Bug Fixes
|
|
|
|
1) Fixed bug causing occasional truncation of default file
|
|
name generated for break table save or load.
|
|
|
|
2) Changed two remaining cases of incorrect address compares
|
|
to use the correct 16-bit unsigned compare function.
|
|
|
|
3) Fixed bug when size of SPC blocks get larger than biggest
|
|
positive integer.
|
|
|
|
4) Fixed bug causing early termination under certain obscure
|
|
circumstances involving interactions with zero filled SPC
|
|
regions.
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
5) Address table conversion (break type ADT) was modified to
|
|
change format of output from
|
|
DEFW (xxxx) to
|
|
DEFW xxxx
|
|
|
|
C. Algorithm & Heuristic Improvements
|
|
|
|
1) Added new controls on recognition of ASCII text. Now
|
|
check further into string composition for number of common
|
|
punctuation characters and for number of rare punctuation
|
|
characters in the string. If excessive, then not ASCII.
|
|
|
|
2) Improved distinction between strong and weak address
|
|
references to converge the automatic break assignment with
|
|
fewer passes over the code.
|
|
|
|
D. Speed-ups and memory savings
|
|
|
|
1) Cross Reference Information moved out of real memory to
|
|
virtual memory on a disk file.
|
|
|
|
2) Label table records reduced in size by eliminating XREF
|
|
linkage pointers.
|
|
|
|
|
|
|
|
Significant Changes in Version 2.1 Released 01/12/86
|
|
----------------------------------
|
|
|
|
1) BUG CORRECTION: During automatic break table creation in
|
|
version 2.0, the codes DD34, DD35, DD36, FD34, FD35, FD36 were
|
|
not correctly recognized. This resulted in false assumptions
|
|
about the legality of some Z80 code regions which were then
|
|
thought to be data regions rather than instruction regions. This
|
|
has been corrected in version 2.1.
|
|
|
|
2) IMPROVEMENT IN HANDLING JR REFERENCES: In disassembling
|
|
8080 coding, instruction jumps and calls use 3-byte addressing;
|
|
that is unambiguous and not easily misinterpreted. With Z80 code,
|
|
ASCII text blocks contain codes that are easily mistaken for Z80
|
|
relative jumps; that creates apparent jump references to code
|
|
within 128 bytes before or after the misinterpreted byte. The
|
|
ASCII blank (20 hex) is especially bad as it looks exactly like a
|
|
"JR NZ,xxxx" code. Version 2.1 has been much improved to distrust
|
|
relative jump references as a basis for declaring a region to be
|
|
instructions. Version 2.1 examines corroborative evidence to
|
|
distinguish ASCII data from instruction codes.
|
|
|
|
3) OTHER IMPROVEMENTS: The entire Expert system comprising
|
|
the Automatic Break Determination feature was enhanced to yield a
|
|
more complete analysis of the code structure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
|
|
|
|
|
Z80DIS22.DOC____________________________________________01_May_87
|
|
|
|
|
|
Highlights of Changes in Version 2.0 Released 12/01/85
|
|
------------------------------------
|
|
|
|
1) AUTOMATIC BREAK TABLE CREATION: When the program asks for
|
|
break table inputs, you may now enter '*' which will trigger a
|
|
detailed analysis of the structure and relationships of the input
|
|
code.
|
|
|
|
2) The COM file and overlay files for Z80DIS no longer need
|
|
to be on your default disk drive.
|
|
|
|
3) The cross-reference listing now shows the break table
|
|
region of residency for each label.
|
|
|
|
4) Overflow of memory or disk space during pass 1 will not
|
|
abort execution.
|
|
|
|
5) You may now disassemble direct to your printer by
|
|
specifying LST: as the list file name.
|
|
|
|
6) You may now suppress creation of either .PRN or .MAC
|
|
output files.
|
|
|
|
7) The default name for the break table save file is now the
|
|
same name as that of your input file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_________________________________________________________________
|
|
|
|
CP/M is a registered trademark of Digital Research Inc., TURBO
|
|
PASCAL is a trademark of Borland International, Z-80 is a
|
|
trademark of Zilog Corp.
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
|
|
|
|
|
|