A Simulator For The Intel 8086 Microprocessor
A Simulator For The Intel 8086 Microprocessor
Theses
1988
Recommended Citation
Chapman, William A., "A Simulator for the Intel 8086 microprocessor" (1988). Thesis. Rochester Institute
of Technology. Accessed from
This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in
Theses by an authorized administrator of RIT Scholar Works. For more information, please contact
[email protected].
A SIMULATOR FOR THE INTEL 8086 MICROPROCESSOR
by
William A. Chapman
A Thesis Submitted
in
Partial Fulfillment
of the
Requirements for the Degree of
Master of Science
in
Electrical Engineering
for such a tool becomes apparent when one considers the expense
VAXcluster .
ii
TABLE OF CONTENTS
Chapter 1 Introduction
1.1 Preface 1
1.2 Overview 1
1.3 Literature Review 5
1.4 Summary 8
2.1 Preface 9
2.2 Overview 9
2.3 Central Processing Unit Model 15
2.4 Memory Model 20
2.5 Instruction Formats 24
2.6 Summary 27
3.1 Preface 28
3.2 Overview 29
3.3 Map Description 31
3.4 Map Generation And Viewing 36
3. Data Description 39
3, Data Generation And Review 40
3. User Communications 46
3. Summary 48
4.1 Preface 49
4.2 Overview 49
4.3 Command Types 53
4.3.1 Utility Commands 54
4.3.2 Execution Commands 55
4.3.3 Examine/Modify Commands 59
4.4 Limitations 64
4.5 Summary 67
5.1 Preface 68
5.2 Opcode Look Up Table Maintenance 69
5.3 Keyword Look Up Table Maintenance 70
5.4 Command Procedures 71
5.5 Expansion And Modification Capabilities .... 72
5.6 Language Extensions And Deviations 75
5.7 Summary 79
111
Chapter 6 Summary and Conclusions
6.1 Preface 81
6.2 Observations On The Simulator 82
6.3 Observations On The Debugger 85
6.4 Summary 86
Chapter 7 Enhancements
7. Preface 87
7. Simulator Enhancements 88
7. Debugger Enhancements 90
7. Support Program Enhancements 93
7. Library Routines And Operating Systems
Enhancements 95
7.6 Summary 96
8 1
. DAC Program Listing 97
8 2
. DAC Debug Session 100
8.3 DAC IOMap86 Session 104
8.4 DAC IOData86 Session 105
8.5 DAC I/O Map And Data 106
8.6 ADC Program Listing 107
8.7 ADC Debug Session 110
8.8 ADC IOMap86 Session 115
8.9 ADC IOData86 Session 116
8.10 ADC I/O Map And Data 118
IV
Appendix F User's Guide for the Intel 8086 Simulator
An Alphabetical Listing Of
Debugger Keywords 163
13.5 Attachment II -
Bibliography 172
Chapter 1
Introduction
1 . 1 Preface
VAX Pascal.
1 . 2 Overview
input and output, interrupts, bus lock and escape) since this is
1 -
are supported for such operations as displaying text or prompts
'
other hardware devices are simulated by mapping the I/O
2 -
The Debugger provides the user with a variety of ways to access
3 -
under test, the I/O maps and the I/O data files had to reside in
the
students'
the program under test also required further deviations from the
4 -
implementation language should minimize the future maintenance
efforts.
1 . 3 Literature Review
interpret the MOD and R/M fields of the opcode, and influenced
5 -
way to segregate the execution of the instructions. It was not
opcodes were not all resolved in the first byte. This led to
operations .
assembler and compiler. Since these files are the source of the
6 -
This investigation also revealed the structure of the header
The Intel manual for DEBUG-88 was reviewed and formed the basis
DEBUG-88 counterparts.
associated operators UINT, INT, UAND, UNOT, UOR, UXOR and HEX
7 -
While an extensive literature search did not prove fruitful, a
1 4
.
Summary
method for users to test and debug Intel 8086 assembly language
8 -
Chapter 2
Simulator Architecture
2 . 1 Preface
must link the object modules together using the cross products
linker and then position the executable code within the memory
2 . 2 Overview
"loaded"
into memory for the Simulator. These records contain
9 -
the data and define the physical addresses where those data
verify that the data are loaded correctly. The MCS-86 Absolute
Object File may also contain a Module End Record that defines
the starting address of the main module which is loaded into the
Segment, Extra Segment and Stack Segment registers and the Stack
file will contain the exact bit patterns as they would appear
"load"
the user attempts to a file which has not been located,
10 -
communications with disk and tape drives, file management
from system to system and all are dependent upon the actual
operates makes the support for these system services much more
"generated"
disk file when the simulation session began and would be saved
also developed to create and maintain the input data files and
11 -
usefulness of the Simulator as an introductory teaching tool
the Intel 8089 I/O Coprocessor was not provided. The design of
'
output operations to the user s terminal and this is described
that are tied very closely to the hardware and cannot be fully
simulated. These are the WAIT, LOCK and ESCAPE instructions.
12 -
supported is the LOCK opcode. The LOCK instruction is used to
assert the bus lock signal in the Intel 8088 maximum mode
with the next opcode. The third instruction that is not fully
supported is the ESCAPE instruction. This opcode is used to
the Intel 8086. This instruction will access the memory operand
is built into the Debugger and may not be modified by the user.
13 -
interrupt pointer table. Since catastrophic things may happen
"Interrupt Type
xxx"
table. The user may then choose to ignore this additional piece
time.
14 -
2.3 Central Processing Unit Model
pieces, the Register Model and the Arithmetic Logic Unit Model.
Files"
The Register Model consists of three "Register and the
The Intel 8086 CPU supports four general purpose registers, two
Register File. The registers are all sixteen bits wide, but the
upper and lower eight bits of each of the four general purpose
wide, but only the lower sixteen bits of each are used. The
operation of the Intel CPU so that the upper and lower eight
15 -
bits of the four general purpose registers can be accessed
Register File, each of which is sixteen bits wide and are used
where each variable is thirty two bits wide but only the lower
and the two bit designator mapped onto the three bit designator
16 -
to the Segment Register File are made through the same software
bit register and map them into the appropriate nine boolean
17 -
course of executing an instruction however, may further change
"brain"
The arithmetic logic unit is the of any computer system
host computer. The opcodes are grouped into six classes: Data
the logic
microprocessor"
up this by pipelining
microprocessor"
18 -
used and having it waiting in the internal instruction queue
memory. The Simulator does not model the pipelining done in the
'
teaching tool , the Simulator s primary purpose is to have the
correct net effect on the register files, memory array and I/O
files, memory array, and I/O ports that would result from an
19 -
actual Intel 8086 processor executing the same program.
model them.
bits wide. The Intel 8086 CPU forms physical memory addresses
20 -
or logical address to form a twenty bit physical address, which
address .
arithmetic logic unit then removes a datum from the queue a byte
arithmetic logic unit has to wait for the next datum and
however, does not support the internal instruction queue and has
sequential one byte requests, and assembles them into a word for
21 -
generality. The only negative aspect of this process is that
"speed"
of execution is reduced but the execution speed is not a
with four -
thus providing the most efficient use of the thirty two bit word
to select the requested byte from the array and provide the
the most economical use of the VAX host memory and a minimum
The size of the memory array for the Simulator is defined by two
Limit"
Limit"
"Low Memory is defined as having a value of zero to
Limit"
memory is proportional to the value of the "High Memory
Limit"
is therefore four times the "High Memory since there are
22 -
space,*
including code, data and stack requirements. Any
access the stack or data outside these memory limits will result
segment address and an offset, and is used as the index into the
bit byte accesses are used to assemble sixteen bit words. The
the Simulator will result in an error message for the user, but
23 -
2.5 Instruction Formats
Each Intel 8086 instruction is from one to six bytes long, where
the first byte contains the opcode and subsequent bytes contain
an Opcode Look Up Table which has two hundred fifty six entries
Simulator.
three bits from the second byte to resolve their class. The
only eight of the two hundred fifty six entries. A second (and
24 -
but that would have required an additional maintenance program.
"key"
three additional fields: a field, a "direction bit
field
present"
"key"
field has nine possible values (zero through eight) and it
fields
present"
imply that a single instruction might have more than one entry
both a direction bit and a width bit, so the ADD instruction has
25 -
the Opcode Look Up Table for the instruction to be executed
Table Maintenance. )
26 -
2 . 6 Summary
27 -
Chapter 3
Input/Output Architecture
3 . 1 Preface
world. The Intel 8086 CPU supports two methods for addressing
I/O ports, fixed port addressing which includes the port number
and they are usually not fully decoded. This suggests that if
28 -
The Simulator must also provide a mechanism for the program
CRT even though they are being used to run the Simulator.
3 . 2 Overview
For these reasons, it was decided that the I/O model would allow
29 -
Data that is output from the program will be stored in an
"FF"
The port address (hexadecimal) is reserved for
users'
communications with the terminal.
for each I/O port and store those characteristics on the host
'
computer s disk . Likewise a second auxiliary program must be
used to create and review the input data for the program and to
When the Simulator is started, the user is asked for the names
of the I/O Map File and the I/O Data File if any I/O (other than
These files are then read from the host computer's disk into
these two files are updated and can be reviewed with the
30 -
In order to perform input or output operations, the Simulator
searches the I/O Map for the port address and retrieves the key
characteristics. The Simulator then uses the Port Index and the
Data Index to access the I/O Data array for the appropriate read
stored back into the map for the next operation. It is possible
'
preserve flexibility the user s addresses are mapped onto the
Simulator's working I/O Data array. This map and input data are
output from running the Simulator. The map and input data are
and the disk files are updated upon normal termination of the
terminal .
3.3 Description
Map
The I/O Map has seven fields which contain the necessary
described as follows:
31 -
Port Address: This is the address (in hexadecimal) of the
"FF"
for the address (hexadecimal) which is reserved for the
Ports"
of I/O as defined at compile time of the Simulator
bit port are located at the designated address and the upper
bits of a sixteen bit port. (For an eight bit port the flag
"lower"
is set to the state. ) If the user accesses the
32 -
sixteen bit port then the operation is executed only on the
index) for the other eight bits of a sixteen bit port. This
Data Index: This index indicates how many entries have been
read from the I/O Data array or written to the I/O Data
upon the value of the I/O State flag. (Please refer to the
details .
) This field of the map is reset each time the
Input Index: This index indicates how many entries the user
33 -
I/O State: This flag indicates whether the port is an
Ports"
Number of 10 and the maximum number of data points for
The maximum number of data points is the same for all I/O ports
array. The actual number of data points used can vary from port
Ports"
the Simulator will crash. The "Max Number of 10 and the
Bytes"
"Max Number of 10 determine the size of the map files and
data files on the host computer's disk and the size of the
compiled .
time to start and exit from the Simulator if I/O is being used.
34 -
Each time the Simulator starts and the user indicates that I/O
Ports"
general rule of thumb, if the "Max Number of 10 is kept
the same, doubling the number of data points will cause the
write the files out to disk before exiting and returning control
Ports"
points is kept the same and the "Max Number of 10 is
doubled .
and exit times from the Simulator but also to optimize execution
speed and page swapping in the host computer. If the maps are
resident memory space and perhaps exceed what has been allocated
to the user by the host computer. If this happens then the VMS
35 -
It should also be noted that any map or data file generated for
Ports" Bytes"
"Max Number of 10 or the "Max Number of 10 have
been changed. The entire map and all data will have to be
An I/O Map permits the user to have the I/O port addresses at
hard copy of any map created with this version of the program.
36 -
Create: Creates a new I/O Map with the file name supplied
by the user. All of the map data is input by the user for
37 -
and the seven parameters for each of the ports. After
exiting from the map utility, the user can print this file
Write: Saves the current version of the I/O Map in the disk
Exit: This is the normal exit from the program which saves
assumes that the necessary I/O Map and Data files have been
38 -
3.5 Data Description
Words"
of 10 as defined at compilation time of the Simulator.
Data are read from the array or stored in the array as eight bit
The Port Address is located in the I/O Map and the necessary key
characteristics are used to access the stored data. The Port
Index" Word"
data and the "Data modulo "Bytes Per is used to
select the current word within the linear array and the
Index" Word"
remainder of the "Data modulo "Bytes Per is then
parameters of the I/O Map and using the Auxiliary Index for the
character etc .
) is left to the user of the program being
simulated .
39 -
As each datum is accessed, the Data Index is adjusted based upon
value that was stored there will be the value that is retrieved.
accessed by Port Number and Data Index for compact storage. The
40 -
also supply the data which will be read by the program during
the simulation session. An additional support program
(IODATA86) has been developed to create the input data set and
Create: Creates a new I/O Data file with the file name
41 -
changing a datum (C), displaying (D) data with index or any
Index"
user issue the command "Display with to provide the
contiguous .
42 -
Change: Allows the user to provide a new eight or
'
Simulator during it s most recent execution and the data
43 -
Input: Allows the user to input a specified number of data
Display: Displays the I/O port information and the data for
'
that port on the user s terminal . In addition to the port
44 -
Write: Saves the current version of the I/O Data array in
Exit: This is the normal exit from the program which saves
the data in the I/O Data array. Data are stored in the disk
These commands provide the user with the ability to review both
the input and output data which has been directed to or received
from the I/O ports as well as to create input data for use by
the Simulator. The Simulator assumes that the necessary I/O Map
45 -
3.7 User Communications
between the user and the program under test. This feature
VMS environment.
designated for the keyboard and CRT are treated differently from
the normal I/O operations. These port addresses are not built
into the I/O Map or Data files, so that communications can occur
specify and load an I/O Map and a previously defined data set.
port is defined in the I/O Map with the same address as the
"primitive"
level of computing. This implementation is
-
46 -
The keyboard and CRT ports are eight bits wide but the CRT port
supports only seven bit wide data, ignoring the most significant
bit of the byte. This was done to insure that the messages sent
"FF"
addresses are hexadecimal for both the keyboard port and
be used part of the I/O address space. The port addresses can
purpose .
user's keyboard and CRT with the program being simulated. The
47 -
3 . 8 Summary
Two types of I/O are supported by the Simulator, mapped I/O and
terminal I/O. For mapped I/O, the user specifies the key I/O
The user can then examine the output data as desired after the
maximum number of ports and the number of data points per port
between the program under test and the user are possible using
keyboard and CRT can be changed and the Simulator and support
48 -
Chapter 4
Debugger Architecture
4 . 1 Preface
to make life easier for the user, but they can also cause the
4 . 2 Overview
example, all of the commands which access VMS files should have
49 -
registers or the flags should have a common user interface and
commands. This makes it easier for the user to learn how to use
50 -
sixteen breakpoints can be treated as a group to be displayed or
register"
The commands are then read from the disk file and loaded into a
eight characters, but only the first three characters are used
51 -
Once the class for a given command has been determined, the
width parameter which is used primarily for the register and I/O
which are used much more frequently than others, so special one
letter commands are supported that duplicate the entries for the
"AB2" "C"
example that "ABE", and are not valid Debugger
commands .
52 -
Storing the Debugger commands in an external disk file required
4 . 3 Command Types
The first type are utility commands and they allow the user to
execution of the program under test and the third type are
modify the memory, registers, flags etc. that are used by the
53 -
command followed by an equal sign, a value (even if it is the
* Load
+ LOAd =
Filename <cr> : Loads the specified linked and
*
Log
the file which contains the commands the user has logged
"<cr>"
Note: is a carriage return and the colon is not part of
the command.
54 -
+ LOG =
<cr> : Disables logging of Debugger commands which
+ LOG =
Filename <cr> Enables the Debugger
: logging of
* EXIt: Leave the Debugger and Simulator, write the I/O Map
and I/O Data files to disk if they were used, close the log
file if it is open and return to the VMS environment.
Simulator to crash.
55 -
the GO or STArt command, these values will replace the
*
RESume or CONtinue will cause the program to resume
*
STEp will cause the Simulator to execute one instruction and
*
PSTep will cause the Simulator to execute one instruction
breakpoint is encountered.
they are the most frequently used commands, special one letter
CONtinue, S for STEp and P for PSTep) have also been included
56 -
It was generally perceived that the two breakpoints specified in
"null"
value is assigned to that breakpoint, or that breakpoint
program, the Simulator and the Debugger that the user place
57 -
breakpoints only on the first byte of an instruction but there
command ALLbp. This allows the user to see all of the addresses
The user then has control of the debugging session and can use
operation .
58 -
can set the appropriate breakpoints and then resume execution.
is taken.
There are six commands which can be used to examine memory, and
included, then the Code Segment Register value is used and the
59 -
can be replaced by entering a hexadecimal value for the segment
available.
There are also two qualifiers that can be used when displaying
allows the user to specify how many times the command should be
2"
memory. The command sequence "BYTe LENgth will display two
2"
bytes of memory, but "Pointer LENgth will display two
"BYTe" "TO"
command, the user would enter nnnn nnnn + 3. Since
"WORd"
information is displayed. Therefore the command sequence
nnnn
"TO"
nnnn + 3 will display four bytes or two words of
memory .
60 -
The available commands differ only in the way the contents of
follows :
TRUe.
61 -
command is followed by an equal sign and a value, then the
of the stack. The STAck command uses the Stack Segment Register
and the Stack Pointer for the segment register value and
register and a carriage return. Both the short and long forms
62 -
In a similar manner, the flags can be examined and modified. To
return (e.g. ZF <cr>) and to modify the state of the flag, the
can be entered for a new value, all bits off will be interpreted
"clear"
as or "false". This implies that any other value will
"true"
result in the flag being set or interpreted as . All nine
The Debugger also allows the user to examine the I/O ports
without altering the Data Index of that port. This means for
example that the user can look at an input port and examine the
next value the program will retrieve without causing the Data
the I/O ports, PORt and WPOrt. The PORt command operates on
bit port is specified for the WPOrt command. The commands also
port will overwrite the last value stored and writing a new
63 -
read from that port. It is not possible however, to move
"forward" "backward"
or in time for a given I/O port and examine
or modify other data values. The user only has access to the
4 . 4 Limitations
64 -
names and support for compound commands. See Appendix G for a
language rather than think in the old and translate into the new
65 -
errors would cause the Simulator or Debugger to malfunction.
debuggers, it also takes the user a step further away from the
and module names is not supported since this feature would add a
and most user programs will not be complex enough to warrant the
66 -
4 . 5 Summary
67 -
Chapter 5
5 . 1 Preface
create the look up table and can be used to make any necessary
changes .
68 -
external attributes for variables and procedures, the unsigned
data type and associated operators and the include feature were
Key, Direction Bit Present and Width Bit Present fields of the
for each of the six valid classes plus the Extended and Invalid
classes. The Key field inputs are limited to values from zero
classes. The Direction Bit Present and Width Bit Present fields
69 -
opcode requires a direction bit and/or a width bit. The table
70 -
program does not perform any checks for collisions or prevent
"LOG"
renaming the command to "JOUrnal") and the addition of
software modules and then when one of the modules has been
developed to build the programs, but they do not have the level
71 -
small change which might otherwise affect one module. If
only
these COM procedures are used, excess work may be performed, and
"HighMemoryLimit"
CONST. DEFN must be edited, and the constant
"LowMemoryLimit"
to the value of the constant .
) Since this is
the number of VAX words that are reserved and each word contains
72 -
file CONST. DEFN is used in many modules, this modification is
monitor the Working Set Size allocated to the user by the VMS
the allocated Working Set Size, the VMS Operating System will
The maintenance person also has the ability to modify the number
data points per I/O port will invalidate all existing maps and
data sets for all users, and all of that information will have
from one map size to another or from one data set size to
now be loaded.
73 -
To modify the number of I/O ports or the number of data points
Ports"
constant "Max Number Of 10 will modify the number of I/O
Words"
ports while "Max Number of 10 and "Max Number Of 10
Bytes"
must both be modified to increase the number of I/O data
Bytes"
points. The constant "Max Number Of 10 must always
Words"
remain four times the "Max Number Of 10 since there are
four bytes of 1/0 data per word reserved on the VAX. Once the
manually.
"FilenameLength"
value for the constant . Once the modifications
74 -
Provisions are available for modifying the amount of memory, the
number of I/O ports, the number of data points per I/O port and
the length of the VMS path name and file name. Once these
'
chosen was Digital Equipment Corporation s implementation of
required the author to digress from Pascal. These were the need
75 -
Many of the DEC extensions to Pascal were used in the
"include"
-
"include"
associated type are defined in files, they are
76 -
The ability to define constants in binary and hexadecimal
definitions .
UAND, UOR, UNOT, UXOR, UINT and INT allowed the Simulator to
function .
display formats.
up tables practical.
77 -
As previously indicated, the development of the user I/O
" I/O-wait"
queued-
call to the specified device and it was
"accept"
variable. This allowed the program to a Control D
whenever is was typed, record its receipt and continue with the
78 -
the ability interrupt the simulation session and return control
"non-existent"
files. This is a blessing to those users who are
5 . 7 Summary
79 -
programs were created to assist in the development process. The
four key constants to add user memory space, I/O ports, I/O data
or longer path and file names for VMS. The Simulator was
implementation process.
80 -
Chapter 6
6 . 1 Preface
"hands-on"
students to have experience without the expense of
been achieved.
81 -
the Simulator, and it has been demonstrated that building a
practical .
time"
-
allocated and eight I/O ports each having 256 bytes of data
-
Although minimal user feedback has been obtained, the
82 -
Initial user feedback however, indicated that default values
were expected for the Stack Segment Register and the Stack
Debugger. This was despite the fact that the User's Guide
83 -
As a learning tool, the Simulator supports most of the
The user must construct an I/O Map, key in data, execute the
capability -
84 -
6.3 Observations On The Debugger
85 -
the to support
-
modes .
6 . 4 Summary
86 -
Chapter 7
Enhancements
7 . 1 Preface
the Debugger, the support programs and those which would expand
87 -
7 . 2 Simulator Enhancements
"spare"
few of the slots in the Opcode Look Up Table, while
Simulator as a model.
coprocesses .
88 -
+ A better method could be developed to support input and
improperly implemented.
89 -
+ The Intel 8086 uses a bit in the Processor Status Word, the
program.
90 -
+ The user friendliness of the Debugger improved if
might be
the Debugger could check for the possibility that the user
91 -
recover from the log file. This feature would be
Debugger commands .
Presently , the user can examine a
does not believe it should be, others may not be of the same
92 -
+ The Debugger could also be expanded to include support for
Debugger .
information.
93 -
editing I/O Data, not in making everything elegant. There
before attempted.
they are
94 -
7.5 Library Routines And Systems Enhancements
Operating
located and then loaded with the program under test, thus
loaded with the program under test. This would also require
95 -
+ Likewise, support for any operating system functions could
+ As a these
subset of features, a selected peripheral or
target system.
7 . 6 Summary
96 -
Appendix A Sample Programs
x
I x x x J x
N o a
0- "
10 w
10 u. uj rj
o
u
_ lij (J ID " -*
OD O
o O O O
CD
m i"
z x x x x
j-
u s a o -
CD m n to
_
j
o-
r cd
CD uj o
o c o o o o
8
"
z
j
* i
m
i i
o
i
a. _
0- * -I
CD UJ Q
o
,.
z
h*> i 5 S i 5
1"- Uj UJ K CD N
c S o n n
o
L. o o o o o
tl
*>
L z I I X X x
u o w in *
II a
> Q N n
0-
C
0 8 8 8 8 8
u
-_
CF
0
z
o IE I S
^H
ic
0-
""
q ui
s
a
y
-o
&
n
c O O O O w
u
E
0 cc JZ I I X X x
n ui in o uj
*> D 05 o
D 4
U. u. io - *
u ^
. a. cd
LOJ
Ul
11] U UJ U ?
5 *>o
It > o
Q *J
a
n 3
z x x x
CF CT
o J 4) <l O
<r '""' *"
5 TJ
D to 03 tO
CO ui y
O
*
UJ
r-
O
o
y
O
O
a. I-
0
u. 4J UJ z
o z Ul
Ul
o *< o o
a
Q
a
TJ o
Ul 3
in a i I S I 1
r
LU TJ
01 Q
Ul
Ul 0 cn
E + D
C il
Z ID CD
r-
4J
o
3 z
N -0 LU a 10 a.
> CD (J +* 10 1
CC 3 M c a
1-
cc in D O CD r-
u lu a o a a
a -I ID
c m u
UJ Oi Q
Ul D U
cn c
U 3 Ul . N Ki 10 -0 r. m
CC
uj a z
_i o o -a "
m cc u co -i
e u a E
ui mm
cn a
cn z
CD -
O - Q >
CC ^ UJ CD
(J CO U
Ot CO <I Q
>. _J LU
in a. *
,0 CD O
CD v Ul >
- 4JZ
v CD 3 -
So a
to o cc _
v z ui 2
i Chi m I N * * D
3
,S iSS u
K ! 9555S9
8888888
22ffi 18888888
gg S
97 -
UJ
O
a z
a. Ul
o 41
CD o O U Z
CD
U.
z U U.
Z u.
in
a u.
u *t o
CM 0 *> c o
o C B V
* E a e
E P> 0
n Z z
o T
D I
in z
10 cm
CM D III
4)
z Z a
TJ *>
c
-0 Q
N c * ii
CO D 0 . 3
CM in
O
*> +> 0 ti
a. W ll
*> L. *
-f L.
C c ^ OU j M-
z z 44 4. u a 3 a
u 0 0 * a.*> J
Ul u. a 0. *> a c 3 U
as V 0 4J 0
0 0 4J 3
*> *i m w 3 a u
< 0.4J
z i: CD 0) 01
0- N C 3 u
u Q in <D>0 c
m c . IN CM
r-
a a a. a. in e
cn 3 3 c L
u .. u +* .. - Ql
- CO +* W <<auu 4J
z z _i CD _l u il C . (m II
CM CO a CO 01
-CD a. a. a. a. a
Ul 3 3
t'l a. 1- LL
a
o **. r-
a o
r-
Q K
CL I
Z X CM a. 3 CD i:
c in 3 a o D t-
a v cc 01
n 0- rv r
o LU
-.-. ..
a
-o *>
z z
a X a O UJ CJ
K u r-
a u 0-
Ii. O
z IZ 1-
c <-
r. o-
u. _l
UJ -1 u Ul a x r-
X: < * 0-
u. x u
in r Ul cn <l r a tn c 0 - a G
a cn m a D m UJ
3 3 3 3 3 3 3 3 Z UJ 3 a 3 z ui x cn X tO Q_ CL XX X X X
O Q a a a Q Q Q UJ ID O _i o ui co co a a to co co a q o a a u.
u X K Z IO f- x U r-
cc (J o z cc a. la u iu ICC
3 O Ul 3 Ul O Z 1- c U <E
u O _JCC O 50UICr- a t-
a 01 u u. u Q J JQ01 CD CD CO o cn
Ul 0> CM Kl
cc O in-4ooct>o.'rMnrin'0Na}f>-.CMr')<rin
LU z - CM CM CM CM CM MNNNNKlMnKirinnCrlrl?****!!
_l
CD
Ul
10
01
<x
o
a
u
c
0
a o
o
O N
CD O CD
NNH------NNNnni'J*,HH)NOO r-
co c-
O -0
n o o o o oo o y O t-
o OOB
CO 4 O 0-
IM a CM D-
O -0 T 10 UlCO -i (J Q 10 O O 5 -> l> a
O fO CM Ul CD N CD Ul CMIO ff O N Ul N U. CD CM U <0 O O
-
= t- 8 BB
a
- n
u.
o 003<ZUUICM'-003aUUIrM<>'4iai<IUUIO(M i ? i SCO
SiniOinr5io<<i'a4'0<<i'<iNiSNNr-r<.rsiv(BCDoa - i
8 eOO000000000000
6
18 O O 1 o
CD j 5 o o o o o o o o o i O O 1 o o
98 -
Ul
o
a.
oo
CD
to
o
0-
in
B
3
f o
L a >
II ** B
v C n o >- L
X) C XI 0 >. c B
C 3 JJ *j * V
Il Of* C -M 4J k. B
JT U 0 *" 4. X * XI B XI 4
L O B xi r *> o>
B C I. T! a c f B B B
> -* II B X . N L.
O XI O o C 0 *i E*
*> e * *J +J Ul B B v. B
II -3 L L L
> C -w XI + +1 + 3 O 4. > 0
o nil c c b h-
c a *> B ** m +>
Ul -I
Z CL
<-
I-
3 10
o <X to O CC
r- r-
CC z <I
Ul X z CC
z 1 q a. z > a LU
t-
cc to . i i c z
Ul I-
cc z <I i-i u. -I cc Ul
> 01 Ul Ul r-
-, u. Ul Ul D 3
o Ir-
-1 1 CD > JlLX a u I O
Ofl. z Q lj * u a Ul in CJ CO
.. O 3 V - _i
- - - - > cc a a
X x Cl O X 1 x-hmxuj-Ixxx x a o z z
CUIDUQUCDQ i- cc U 3 Ul
QJU u to Ul
o
a u
Q
<X LU
z -I CC Cl Z Z Z Cl u
co > > > > <r UUBIJ>J>r- > Ul a. B >-
a. m cn en > caiir-
Z > Ul
Ul -j a
LU CD ..a o
U I > i u
cc Ul Ul Ul I
3 cc > -IE U
O o ui - a
Or-
CD 3 Q
cc Ul *MCI>ONMl0'0MllCO-iNKi*in'0MDfrO-NM*r'0MD-O-NMin
Ul z vvinnnioionionioin4i-o4i-(i-a4i-ii<04i-OisNNr<.iNNrviSrvNCDaDaiaicDco
_l
CO
Ul
CO
01
a
oc cc cc cc
o
cc
(J
a
E
*
CD o o o
o o o
CD O *
0
CD OD CD 8
Ul ?
t
c Q CM
CD
Ul
O -0 Ul -g
i n oo w Soul. Ul Ul
0-
co c n r> co CO-O-e-CO-r'i'IU. CM CO UO"l CM Cf-
CO Q ri
co
co
g
co OTvinuicoacoui n ui u. ui o-
in in co ui m in o- u ti :
CD o cm co u
v. E
e - I) B U U - . SM><BUILI04 MtCDBQUIlL O <T r -0 N CO 0- I III
CM CM CM CM CM CM M MHririrlrlrl* jTJ'f'SSS'ioioinriiDiom i CD
CD
8
,,...,
O 8
OO
v
000O
wwvVVwV j
CD _j o o o ooooooooo
ooooo O OOOOOOI
> o
o o o o I
99 -
8 . 2 DAC Debug Session
002 B : 0000 B8
002B:0001 20
002B : 0002 00
002B:0003 BE
002B : 0004 DB
002B:0005 B8
0026:0006 29
002B : 0007 00
002B:000B 8E
002B : 0009 DO
* wport fffe
Port address: FFFE / FFFF: OOOO
* bp0=17
*
g
Breakpoint BPO encountered at: 002B:0017
*
reg
AX = 9990 BX = OOOO CX =
OOOO DX =
FFFE
CS = 002B SS = 0029 DS = 0020 ES =
OOOO
IP = 0017 SP = 0014 SI =
OOOO DI =
OOOO
RF = 0000 BP =
OOOO
* wport f-f-fe
Port address: FFFE / FFFF: 9990
? bpl=2f
* all
Breakpoint 0 = 0026:0017
Breakpoint 1 = 002BI002F
* r
100 -
? s
SI =
oooo
* ds
DS =
0020
* word dsisi
0020:0000 0800
* s
AX =
0800
* s
SI =
0002
* s
CX = 0040
*
sp
SP = 0010
bp2=54
? all
Breakpoint 0 = 002B:0017
Breakpoint 1 = 002B:002F
Breakpoint 2 = 002B:0054
* r
Breakpoint BP2 encountered at: 0026:0054
*
sp
SP = OOOA
101
* stack 6
0029: OOOA 0040
0029:000C 0800
0029:000E OOOO
0029:0010 003F
0029:0012 0040
0029:0014 OOOO
* bp2=
* all
Breakpoint 0 =
002B:0017
Breakpoint 1 =
002B:002F
* r
0020:0084 0641
* word ds:84 = 35
* r
Breakpoint 6P2 encoun tered at: 0026: 0050
102 -
Aborted by a CtrlD encountered at: 0026:0050
? all
Breakpoint 0 =
0026:0017
6reakpoint 1 0026:002F
Breakpoint 2 =
0026:0050
? bp2=
* all
6reakpoint 0 =
0026:0017
Breakpoint 1 =
0026: 002F
* CK
CX =
0038
* s
CX =
0035
? r
CX =
0029
? stack 6
0029: OOOA OOOC
0029: OOOC 0226
0029: OOOE 0004
0029:0010 003F
0029:0012 OOOC
0029:0014 0000
* wport fffa
Port address: FFFA / FFF6: 1E00
* r
wac > f
103
8.3 DAC IOMap86 Session
wac> mapS6
104 "
8.4 DAC IOData86 Session
wac> dataB6
105 -
8.5 DAC I/O Map And Data
Index : 3
Address: FFFA and FFFB, Width: 16 bits, Entries Accessed: 64,
Number of Entries: 0, Direction:
Output
Data: 8000 8A00 9400 9DB0 A730 B040 BBFO C150 CB60 CF20 D5A0 DACO DEAO E200
E470 E5E0 EB60 E5E0 E470 E200 DEAO DACO D5A0 CF20 CB60 C150 BBFO B040
A730 9DB0 9400 8A00 8000 7600 6C00 6250 5BD0 4FC0 4710 3EB0 37A0 30E0
2A50 2540 2260 1E00 1B90 1020 17A0 1020 1B90 1E00 2260 2540 2A50 30E0
37 AO 3EB0 4710 4FC0 5BD0 6250 6C00 7600
106
-
-
8.6 ADC Program Listing
Ul
CD
a
0.
IB
a
CM
Hi
*>
L.
11
D
E
3
C
U E
" 3
U -i 6
<I il -h
a x
u a. -
Q r
a
a
3
z z z d
3 u u z z CO
o Il II a 4 n 3
o oooo Cl
U U c
o a II
a a E ii n
u 3 3 3 3 3 D CP
a a a cr cr cr C il c
a I t t ii LU CO ti
Ui
cn Z
in LU
a ui
ID
C c o> C Ul
> Z il il c u in
E 01 E a
0> cr
_i o Ul
CM ui + a n *i *> a *>
u > CJ 3 C " CD CL a CO i Je J O u
a cc O "> - 6 e u u u u ii
o or co z> f- a o *> o o z **
u -.
u ui a o CC CO CC U 01 C L L. Ul 4J *l -U O II
a -i CD CL r-
-a . -Ul -
<z CO CJ
rt a
ui co a
to o u
in . a
cc a u 3 -NK>IHIMIIffONrlll4Mll'C'
^Niowiri'OrvCD 0"O CNfOwn-O
LU a NNNNnNriN n n n n b n
_l a <m
CO cc u co
CJ C
Ul a 3 in
cn a
tn z
<r * -
CO
o -
D >
cc V UJ CO O O CM
u CD U <NKM1
<x 03 c a o o cm in Ki
v. Ul
_l
N -O I- <l N
N CL X cm m in t ui
CD O t>- N 41 tv
MU> nantnL
0 _l Z 4 <0 -O <0
o- o-
CD D * a o
CD o a r -0 -0 CM .0
CD cd a cc ui co in -o t
Ul O
cn _i CO nuiu-.w<i
CD h co o u. u. o a V41441-0CMCNO
3-
U u u o Kl
-0 v Ul Ul o o -a
CD x r> m o o CN CM
co cn 8
> o c O
107 -
Ul
CD
a
CL
CD
CD
v
N L
w. L. 11
N. II *>
**
Z
m .
u
^ cr z u.
o u LL u
f'j a L Ll u.
CM L. U
.. * L. LL
|v ** C II O f-
CM C 1 +i
a
.. II E c D
E cr ^. Z to
N CT u 0 C I ui
a m a .
il in
a I-
X *J U -I
.x IL Ul 3 I- r-
u -<
3
u U u. 0. 3 3H- ii CL Cl
** u. CL CL 3
r-
r-
L m
*i *l u 321-1 CC * c Z w
"D i U CD cc CD ?
L U o
a a Q. f- m in a t g, CL c
3 3 3 <r c co in E *< 4J I 3 *>
0 u cn 01
cr
c
01 01
-I
01 *< *t +> -J _l co CO
01 01 Z X
J a a. a <x _i c ~ z
* u n uj E E u
4J < s* CD LL 0 0 D U O U u.
x 4J x * Ll L LI[flL4< ki cl co in _ico in z _i cc -m u. *> U X
a a in a o co u. Cl Cl U 3 _l 3 (0 3 II * a c ^ a co a U 3 _l 3 u. -. _l
O O uD 3 o o a
. . .(-
. |- - r-
II r- r-
CL X CL
C0>>r-r-r-
>>>>>>> > > > I- r-
>r-UO co > co a cc
_i > > r-
> r-
> O
O O O o o o o Ul O O 3 O 3 CLO 3 Z O Z330Z3Q0 O O 3 O 3 300303 O O
_l O O f O - J iC0E-iCnx O O CLOZO _l
Ul M CL
CJ u r- 01 Ul
a cc CC 3 Ul 01
o 3 <I <E -^
u o f-
S =>
a 01 01 . - a.
c
cc Ul rvcoc^o
rvCOO-O CM Kl *
Nn*in<iNai^o-<rMrOwiO'<iivcoDoCMrOin<irvaio-o CMioeio-oivCDOk rNnvin-orvcocfo
r'lr
Ul z n kj *
-1
M
CO -1
Ul
01
01
0
oo
o 8
N. 1 u. -0 u.
03 1 CO u. w CM u.
0-
09 03 1 * Ul uiuiou.au. Ml tO MO CD U O 10 V a u. u. o - o in ui
v. r) Q 1 Q CO U. - o u. o u. u. u. nNQlLNUUJ 8ILCIL u. o a o u
N 00 1 1 Ul 03 Ul CJ CD a 6Q CO <0 <0 4 Kl N *U4>aUCMCM 5 o -o ><o m-am o-
n
o C I 00 CO CD 03 a 00 CO 00 CO Ul CO Ul 09 Ul * Ul UICMU.ODUICMr> oo ui m ui n co co ui u. uj co ui
03
v.
0 ooniooicoo n * oo u ui n CD 0-
-0 HDlLrHlMMI U. - 10 IO SNtDOSOUl
u OOO-" m ,. -c - - fM CM CM CM CM CM CM NNNMnWrlrl n * * * <-*ifi inniiT
00
o o 5 O O O O oocooo SO OO 8o o o o o o o oooo 6ooo oo
09 -J s<3 O O o oooo OOO o o o o oooo oo
108 -
Ul
CD
CL
CD
CD o
Ul (9
(-
z
(J
Ul
CO z
z 01
I-
o
cc u " CO cc o
o t o 01
CM Cl 01 . 3 f- CL
-* X Cl Z CD
D o z o z
r-
U i U r-
01 a u. CM ->
II
U Ll <X Cl a.
CM r-
C > > r-
l
Z u. I-
Qmzd
o a o z ID D 01
a
CO Or-U OrlDO c
cc V ii -* u. ui T)
Ul a co u a i- cn
> r-
01 Ul 01
z i- t- z I-
3 C Ul cc
o 3 Z CD CL 3 Ul U Ul
i-
u Cl a -< a. _i o u
z u in 3 Z CC
o -i cm a.
u i-
i-i 01 U Ul Ul cc
u uj z a OIUI O
* o z is C I- I r-
U. l
Ul o ~ r-
01
Q CO Ul I- Ul r-
LU -u
VI X X 01 Q UJ 3 cc
u Z I- > 0.
h r-
3 Ul -
Ul 1>(Ir-
UJ 01 Z CP
I-
X zoo O - 01 3 01
SCr-
u a o o LU CC
z
ii X
I-
u
3
O OJ
CC cc
r-
X X XX 01
a 1 X Z U CO
u u. Ix o u. U. UJ
U- LL U. O U U a >-
-I U. x _l z U. x u CD O U x
<i o a i- a o - o a Ul -< Ul cn
Z II cc o a
|x xZJlS XX xxxxxx I- T) X O z z
: a a a a a i i a i <z a a U Ul UJ
-I 01
-I UJ
c +> o
u O
CL a. o
oonesi- >- *J *- Or-
> 01 > CL O U
O 3 o z cc z OZ Z00Z03 C - O O -I O UJ Q
z o - O n " aiKlLO x a. _i z j cc a
LU 5-
u u
a cc
a 3 a
u o CD
a cn
<z
a
3
o
ic Ul MK>lf)41lsC0D-O-rMI0l/14!rvC0Cr>-"rMK;Vin4)rsCD0'-.
Ul Z MMht'K'OOeOOOOOC'0-----NN
_1
01
CO cc
o
Ul CC
01 IE
01 Ul
1
o
o Z
cc
u
E
Ul
-0 -I
00
I
o
00 u. tf
O u u
CD CX UL CD U CD
Q J-
N. Ll U. O U U. Ll 0-
So in in - m c u. CM -I
M-
00 CO Ul CM O Q CM CO LU nuu. CO H-
N. E
4} 4) CD 0-
U Q U. -. Ifl CD CO Q O Kl 10 N Ul A
09 u n in in in m in 414) 4) 41 43 43 r- r- r* r- f- 01 u
o o 000 o oooo OOO 01
09 J 00 000 00 oooo OOO a x
109 -
8.7 ADC Debug Session
Intel B0B6 Simulator
Version 1.4
* loa=wacadc dat
* bp0=lc
* bpl=47
*
Q
Breakpoint BPO encountered at: 0020:0010
+
reg
AX =
BASA BX =
0004 CX =
0024 DX =
FFFE
CS =
0020 SS =
0028 DS =
0029 ES =
0000
IP =
uolC SP =
0014 SI =
0000 DI -
0000
RF =
0000 BP =
oooo
* wport -f-ffe
Breakpoint 0 = 0020: 00 IC
Breakpoint 1 = 0020:0047
* bpl =
* s
110
-
-
* E
AL =
01
* d>:
DX =
FFFC
* port fffc
Port address: FFFC: 01
* s
AL =
FE
* port -f-ffc
CX =
0005
AL =
01
? port fffc
Port address: FFFC: 01
* bp2=5f
* r
Ill -
Breakpoint BP2 encountered at: 0020: 005F
* al
AL =
40
* sfl
SFL =
0
* port fffd
Port address: FFFD: 40
r
SFL =
0
* port fffd
Port address: FFFD: CO
* s
AL =
CO
* sfl
SFL =
0
* E
AL =
CO
* sfl
SFL =
1
* =
AX = 0A54
* s
AX - 1254
* s
AX = 092A
* wprot fffB
"N"
Bad keyword class:
"N"
Bad keyword class:
* wport fffB
Port address: FFFB / FFF9: 0000
112 -
s
CX =
OOOC
Breakpoint 0 =
0020: 001C
Breakpoint 2 =
0020: 005F
* all =
* bpf=75
* r
CX =
00 OB
* wport fffB
Port address: FFFB / FFF9: 05B8
* r
CX OOOA
*
wport fffB
Port address: FFFB / FFF9: 0A06
* r
CX = 0009
? wport fffB
Port address: FFFB / FFF9: 0BA1
* r
CX = 0008
* wport fffB
Port address: FFFB / FFF9: 0752
* r
113 -
Breakpoint BPF encountered at: 0020:0075
? ex
CX -
0007
* wport fff8
Port address: FFFB / FFF9: 0B54
* r
CX =
0006
* wport fffB
Port address: FFF8 / FFF9: 05FE
* r
CX =
0005
* wport fff8
Port address: FFF8 / FFF9: 0928
* r
CX =
0004
* wport fff8
Port address: FFF8 / FFF9: 0A51
* r
CX =
0003
* wport fffB
Port address: FFF8 / FFF9: 0412
* r
CX =
0002
* wport fffB
Port address: FFFB / FFF9: 0BAB
* r
CX = 0001
* wport fffB
Port address: FFFB / FFF9: 0962
* ex
CX = 0001
* s
* ex
114 -
8.8 ADC IOMap86 Session
wac> mapB6
Version 1.2
115
-
-
8.9 ADC IOData86 Session
wac> data86
-
116 "
Enter port address : fffd
Index: 4
Address: FFFD, Width: 8 bits, Entries Accessed: 31,
Number of Entries: 45, Direction: Input
Data: 40 40 CO 40 40 CO CO CO 40 40 CO 40 40 CO 40 40 CO CO 40 40 CO 40 40 CO
40 40 40 CO 40 40 CO 40 CO CO CO 40 CO 40 CO 40 CO CO CO CO CO
-
117 -
8.10 ADC I/O Map And Data
Index: 3
Address: FFFC, Width: B bits, Entries Accessed: 0,
Number of Entries: 0, Direction: Output
Index: 4
Address: FFFD, Width:
8 bits, Entries Accessed: 0,
Number of Entries: Direction: Input
45,
Data: 40 40 CO 40 40 CO CO CO 40 40 CO 40 40 CO 40 40 CO CO 40 40 CO 40 40 CO
40 40 40 CO 40 40 CO 40 CO CO CO 40 CO 40 CO 40 CO CO CO CO CO
Index: 5
Address: FFFA and FFFB, Width: 16 bits. Entries Accessed: 0,
Number of Entries: 30, Direction: Input
Data: 0A54 A370 5C0D EF42 06A5 9EAB 03FC BA51 7CA3 5024 3957 0AC5 19AF 9D24
OACD E83F 9AFC 03E7 9BA2 37AE F023 D5CA 9A3B C247 349A 1B3C 32A0 B62C
A034 2B46
Index: 7
Address: FFFB and FFF9, Width: 16 bits, Entries Accessed: 0,
Number of Entries: 0, Direction: Output
wac> ff
118 -
wac> list wacadcmapstop. 1 ist
Description of 10 Port Map
Index: 3
Address: FFFC, Width: 8 bits, Entries Accessed: 36,
Number of Entries: 0, Direction: Output
Data: 01 FE 01 01 FE 01 01 FE 01 01 FE 01 01 FE 01 01 FE 01 01 FE 01 01 FE 01
01 FE 01 01 FE 01 01 FE 01 01 FE 01
Index: 4
Address: FFFD, Width: B bits, Entries Accessed: 31,
Number of Entries: 45, Direction: Input
Data: 40 40 CO 40 40 CO CO CO 40 40 CO 40 40 CO 40 40 CO CO 40 40 CO 40 40 CO
40 40 40 CO 40 40 CO 40 CO CO CO 40 CO 40 CO 40 CO CO Cu LO CO
Index: 5
Address: FFFA and FFFB, Width: 16 bits, Entries Accessed: 12,
Number of Entries: 30, Input Direction:
Data: 0A54 A370 5C0D EF42 06A5 9EA8 03FC BA51 7CA3 5024 3957 0AC5 19AF 9D24
OACD EB3F 9AFC 03E7 9BA2 37 AE F023 D5CA 9A3B C247 349A 1B3C 32A0 B62C
A034 2B46
Index: 7
Address: FFFB and FFF9, Width: 16 bits, Entries Accessed: 12,
Number of Entries: 0, Direction: Output
Data: 092A 05BB 0A06 0BA1 0752 0B54 05FE 0928 0A51 0412 OBAB 0962
wac> ff
119 -
Appendix B
H I-I
41 0
X-P
P (0
HrH
14 4) 3
01 E
X 0 3
P M +J 0 u
h
4)
o o 8
4J h fl x In
(0 4) in +j o
0H4J E 4> M -H+J
+J3W0 X 0 4) (0 U
.
Eli.U JJ JJ rH O
U 3 CT4-I -H (8 O 3 4J
U 0) O 4) I-i 0)rHi3i=
41 O In 0) 4)
-M
33 rH
X lH 0) (0 4-1 X 0 E In O 3
0
P
-HX In
(H J)
Oi O C -H
-H TJ (0 4JIh +J3
o
So E
-HO -P -P a
0)4JjJO4l4J(BT3 4I4J hurj B O
CI0^H4JIm 4) (0 (I It ffi HO O JJ L, Lj
>i >i ? ST
lH 0) P
I-I
^
.
MH TJ
^
.
^C
M-H
0
lH
"S TJ O H H tntn
.p -P -H C-HIH.Q.Q 0) 4>
4) 0) MMXX U 0) 01 4) 0) h (CTJ u Lj
^t!
^ "i MM-P-P -P X-P 3EE3 h I-i 4J Ih 4).pvovo
JJ(0 C -P 4J (OnJ
t-i\ E ("">
4J(0 .h-h
00 0] 0) E E 01 H H 4-1 4J
U H-H'D(0OO3?4)C-H-H'aH-HT3 3 > \ E 3 -n-H
0 s-oc-h 6o jb (04)4) -i-i 0 ih^ht-i+jjj ja xi
01 0) (OTJ XX-P-P 4)
01
_ &>Ej
&>
-P-P >> 73 iDCC
EE 4) UU t) IJ CD EE rHOOrH H^H (C 4J 0)41(04)4) U3 10
4) \ E EE -H.H(0(0 0)0) \E (0(0(0(0 0101 c I-1I-1 EE <HW
O Ih-h \E SStit, 01 l-i-H EUlUE 33 W 0) (0(OIHO)4I
O I-I -H
4J+JX -H+J+J-HrHrHMEa Q.H U| Lj JS
h tj tj tj tj .q oi a,
.a tjtj o ja .q o oo cj o> eeuoo oi a,
a o tjtj hi-i tj TJ 3 3 30 cc 413341 x x co 4) 0 0 co e 4) 30
H (010 00 (OlOOlOl OiOi 10(0 TJ 0) 0) TJ 0)4) < 01 O O < H TJ ft, Q.
LO C
DO 0
o E X X
o 4) QQ cj 0 co cq to a qd < co cq to a: a: < a a, co cj rj wa
C QQ OS OS Q Q IB CO DO 22 <DD< OO <S S S < 2 H DO
rH
4)
S << OO <<loco aa << q co co q xx 3 uS<hq a a
+J >,
C 0) HO HO HOHO OO HO OtHOO HO O ^ HOOiniTl LOIO
H X.
0) 01 << JJ < < < < QQ J i-3 <C < < < J ij < a <<<<< QQ
X 0)
+J (0
rH
lH CJ
0
01
0)
-8
o
a
O
TJ
4)
In
4)
T3
lH
O
H^^^^^^ ^^ ^~i -h -h
X X X X XXX X
a a a a O. D. a. Q.
01 0) 0) 0) 01 01 01 CO
TJ
E (0 E (0 E (0 E (0 E (0 E (0 E E
S.4J \-M\4J \*J S.*) \
\-P
lH (0 lH 10 In (0 lH (0 Ih (0 M 10
>t!
lH (0 In
TJ TJ TJ TJ TJ TJ TJ
Cr>w OW t-j,wO! Qi~ tJi^ tJl^ Oi
0)
"O 0> 0> 0) 0) 0) 0) 0) 4)
0 >H 10 H (0 hiih lH 10 u ie lH (0 h (0
+) 4J +> jj +j 4J 4J
0 M
a TJ (0 TJ (0 TJ (0 TJ 10 TJ (0
o 15 ETJ ETJ ETJ ETJ ETJ It? It?
5 S 3 JJJJ O H f * ^Z *r* * * H O * Sh P>B> tjicn
TJ O TJ O TJ O TJ O H H TJ O H TJ O H TJ O H H TJ O H 0) 0) 0) 4)
O H O H O H O H H H OH H O H H O H H H O H H I-I lH I-i M
O O H H O O H H lH lH O O O H H H O O O 01 H H H O H O H
O O O O ri ri -! ri 0) 0) O o OOOO H H H o H H H O O H H
O O O O OOOO o o H H H H H H H H H H H H H O O O O
O O O O OOOO o o o o OOOO O O O o O O O H H H H
O O O O OOOO o o o o oooo O O O o O O O o o o o
-
120 -
HH lH lH E
rHrH 4)0) (0104)4) \
(0(0 > > 3 3 4-> 4-> H
33 oo trcriflio
D-tT XIJ3 TJ0)0)4)4) E
4) 4) (0 (0 TJ h h 0 1-1
0 U U Di tn lH 0
In In 0 \-P C 00 MH 4-1
00 IhO 0)>i -P\ E (0
4)CrH >4JLjhO \4) H
0)4) N (fl 0)-H0)O)CH m 4-> e 3
>> \3 Ih-P-P (0 10 < E h E
oo 4) tr >,(c (0 (0\3 OH E U Ih\ 41 3 TJ
.O.Q OH 4) 4Ja t) IT PTJ \ E lH 0) lH 4-1 0 lH
c (0(0 CIO -H MIhHO) 4) U 0\ 0) -P 0) O 0
0 5e 0 3Ih
^ v
Ih\ tn tnio 4) E -P lH 4-> 0) 0 H 10 S 4-1
H 0-P\Ih\&0 (0 3 Ij P E E 01 H 4J U> c
P ho 4) 4) a>,4J \cr o ifl-H 0 0)X H&I 0) X 0) 0)
a C 3 NH 4JO 4) H 14 4-> 4-> 14 Cn 4) M <h 4-> H
H
M
5 "H
0 0)\H\30H
0
IB I-I 0 C \-H C 01
tn U
CO
01 V, 01
E ETJ * E MH (OH
\4) 0\ H S
0) 4) In 4) H TJ 43 !
D1
4-> lH 4J lH 4J 3 tl 3 4)
H !>
O 4) 4) H >, 10 \ 4) 0 4) H M |lH lH 4>TJ 01 E 0) 0) C 01
CO
4)
IHO JJ5.HJJSJ)
(hOMOChoio)
014JQ. H H 1 Ih
0 Oh 0 0 (0 E
4J 4) 4) H
Dl
X 0 H 4-> 4) lH 3 M
-P P In tnoi E 4> 0)
Q 0) -PH 4-> 34JH4J C314J H4J 014J 01+) P 4-> H E 10
.12 -P 4) -H MH 4> H tn -P 0 0 4J
>04)0O,04)0-H0i004)04)0 >l TJ H -H lH S In tn 4) 01 P-P c
ocjac4)cjaco)cacHciHc 0) 4) IhX 4) 4) TJ \ 4) 0) H H
4J4JI-l4-l4-IEt(4) TJ E (4
-P tn 0)TJ
cccccccccccccccc (0 10 10 h 10 E 0 E C \0 C 0 0) 4J 14 4J
0000000000000000 H H O 15 H H g (0 I-I 4-> 4) 0 4-1 M >iO O
TJ TJ TJ 4) -H -Q 3 4)
0.0.0.0.0.0,0.0.0.0.0.0.0.0.0.0. 0) 4>X -P 4) -P > E 0) E E
tn 0) lH
EEEEEEEEEEEEEEEE E E 4J 0 E O -H 4) \ tn\4) <\E tn +J 4-1 H
3333333333333333 E E H 10 E 10 0) Jh u C In 0] 63 ti \ C lH U TJ
4} 0)
4-> *)Hft 4J X 0) 4>TJ 4) X > > H 4J
00000
II H II II H II H II
* II * * II * II *
(0(0(0(0(0(0)0(0
4J4J4J4J4-I4J4J4J
(0(0(0(010(0(0(0
TJTJTJTJTJTJTJTJ
10(0(0(0(0(0(0(0
4J4-l4J4-)4->4-)4-l4->
(0(01010(010(0(0
TJTJTJTJTJTJTJTJ
xxxxxxxx X XX X
p, fl, p, Q, p, P, P, p, CL Cl Cl Cl
(00.(0(00)01100. CO CO (0 CO
H -H -H H -H *H -H *H -H -rt t-t -rt
0)
^^ -**- r^
O
00000000 0 0 0 0
r-tr^rHr^rHr-irHrH H H H H 0
aaaaaaaa a CuCu a. H
01010)0)0101010] 01 CO 01 01 1
H -H H HHHH -H H H H H 0)
TJTJTJTJTJTJTJTJ TJ TJ TJ TJ O
*^"
^r ^^ V^ ^^ -.^ ^^ ^^ *"*
"""e we H
E E E E E E E E E e E\E\E X
WIh\Ih\ 1
COCOCOCOCOCOCOCOGOGOCOCOCOCOCOCO IhIhShMIhShIhIh I-i Sh Ih U U a
I I I I I I I I I I I I I I I I U i-i T-f
OOOOOOOOOOOOOOOO OHOHOHOH tn tn tn 01 01 01 0
CCCCCCCCCCCCCCCC
C C C C OOHHOOHH 4) 0) 4) 0) 0 0
TJ
0 ^4^4^-i H OOOOHHHH ti (h u 0 tJ 0 0 H
|
o LLil
0,0.0.0.0.0.0.0.0.0.0.0.0.0.^0 TJ TJ TJ TJ TJ TJ a
a.
^1^11111 1 H
OHOHOHOHOHOHOHOH * S S O H O H tn O H O H
OOHHOOHHOOHHOOHH coococoocooco 0 H TJ O O H H 0) O O H H
OOOOHHHHOOOOHHHH 00000000 H O ri ri r^ ri lH
<-t O O O O
OOOOOOOOHHHHHHHH 00000000 O O -{ ri ri ,-i ri O H H H H
ririr^T-{riririr^rHrHrHr-irirHr-iT-l
00000000 O O O O O O O H H H H H
00000000 O OOOOOOO O O O O
00000000 O OOOOOOO O O O O
OOOOOOOOOOOOOOOO i-|rHHtHtHiHHiH H T-i -< <-t ri r-i r-l H H H H H
121 -
a
CO
a
0 to
-p
o
4) P
10 4)
H 4J
TJ (fl
4) H P
E TJ MH
E 4) 4)
ti E
0 E
P tn
P O
10 c -PXH
H H H tn MH t7l-P
c 3 4) TJ C 4)H 4)
0 E 4-> TJ H
H TJ H u E P an
3 01 Ifl TJ 0) X
4-1
0
X H TJ
a TJ H >i>l4-> tn PH
3E o tn 4-> 4-) (0 "-1
H Ifl i? ti Ihh+Jh H >
4) c e
tl 0)
H 0 lH tl IhX lH 3H <
3 0 tl 41 4) O H ro (0 (c m
o tn 0) o 4J
-P -P
ETJ
TJ co co a c 0) MH
01
0)
IB
H 10
tn O C 0 >> 63Q 0) 4) 0 In
o o HO
\t<H ti U
0
4J
(fl
c
ifl In (0 4J 4) 0) E Em 0) 4)
Q MHH XX 4-> 0 0 tl
O 01 0) 0 0 tncn > cn tnH H 4) 0)
MH 4)
0 -P cn 4) 4-1 4-1 4) 4) 4) 0) 0 4-1 3 3 (0 IB E
o -p io c -P C C to to a a
P P
H
px o o o ox P 4-> >l X
-PX 10 tn H H lH H (fl u u >, >iC MH tn tl lH H H 4-1
C 0) 01 4)
4-> >,3 tnlH H e tn tn XX 0) 41 H 0) 4) 4J o 4) h
0)
p x; tn cn-H
,c
3 3
C 4J TJ h c c -P 4-1 4-> 4->TJ H tl 4J 4-1 0 0 tl 4)
cn to s 3
P -P -r-i-r-i o
ifl tnx
2
E O
0) lH H -H H -H C C 4) C C 4-1 P 4-> -P HH (fl TJ TJ 4-1 4-)
E -P lH lH H-H E -h h a a a a 41 41 01 0) 10 (0 (0
H (fl < X E 01 4J 4->
0 0 E 3 3 3 3 4-1 +J -P -P -P 4J -P H 0)
MH H < E 10 0) 0) c c a oh c c ti tl ti t) (fl (fl (0 (fl MH MH MH 0) a
MH 4) 4) H H tl lH tl tl lH tl 4-1 4-1 4-> 4-1 -H H H c (0
X In TJ 0) 0) -P IhTJ C 3 3 TJTJ 4) 3 3 4) 4) 0) 4)
oi a
0 0 0 oxxx O CJ Ifl o
o> > io 01 0 Ifl 10 4-1 4J (0 (B > 4-> 4-1 4J 4-> 4J 4-1
ti ti ti ti 0) 0) 0) CO CO
3 0 0 0 0 4)
tl 0)
-P
poo 0) 4) 0 0 4) 0) C c c c <<
0.0,0) H E E 4J 0) H 01 )H lH HH a tl Ih-h H
4)
6. <
CO
Xbbb CO CO Eh CO CO CO O OS Eh
co a x x >
> > a CO oo< S> Eh Eh CO to
> Eh Eh Eh Eh Eh Eh J OS 1-3 OS J OS OS Q < CJ
D O < < O O O S 63 Eh
Q CJ 6363 63Q O
a a w 3 s s SO EH CO 3 CO
Q o; a:
63 63 2 2 Z 2 OOUOIK < < J CO
KtEHHHH OS OS OS OS to CO to < < X 63
01 Q QQQ Q Q CO CO Q O U CJ CJ CJ CJ cj u
0)
Q a
(0
H
CJ
(0
p
(fl
TJ
(0
P
Ifl
TJ
^^^^
XXX xxxxxxx X
a a a a a a a a a a a
0) 0) 0) 0) 01 0) 0) 0) 01 01 01
-r4 'H ^-\ -ri H H H
TJ TJ TJ TJ TJ TJ TJ TJ TJ TJ
0 0 0 0 0 0 0 0 0 0
H H H H H H H
a a a n.n.n.n,!"),!*!.!-), a
0) 01 01 01 0) 0) 0) 0) 0) 0) 01
X X ^4 -H *-i ^4 *4 ^4 'H
I I TJ TJ TJ TJ TJ TJ TJ
XX (fl (fl
tl ti p 4-1
TJTJ (fl (0 10 E E E (0 E EE EEE E
TJTJ p 4-> TJ TJ
(0 (0 (fl (fl 4> tl lH lH lH lH tl lH o o tl
TJ TJ a H H
0 0 cn tno >1 O H O H O H H o o X
H H I 41 4) O I 4J O O H H O O H H H X
"8o tl tl (0
4J
(0 Ifl tl MO 10
4-> 4J
I O O O O H H H O O X
TJTJ P P O O
a TJTJ (0 10 (0 TJ TJ TJ (0 c O O
o (0 (0 TJ TJ TJ SEE TJ E E o o g
H O H * * U * * * * tn O H OH* O H O H O H OH H X
OOHHOH OH O H O H 4) H H O O H H H O O H H O O H X
HHHHOO r-4 rH O O H H O O H H H O O H H H H OOOOOOO X
HHHHOO
HHHHOO
OO
OO
H
O
H H H
OOO
a O
O
O
O
OOO
OOO
H H H H H H
OOOOOO
OOOOOOO
H H H H H H H
O O
H H
O
H
OOOOHH HH H H H H O O OOO OOOOOO OOOOOOO O O O
OOOOOO OO O OOO H H H H H H
-
122 -
3
o-
0)
0 -P
CH H
(0 0
\3 X
CT 0) 4J 4->
0 0) c c
4J 4J 4-1
c
IK
N
c c c
4) 4J
E C E C
4) 4->
4) 4) 4-1 4) tn o) cn o)
0 0 0) E 4) E
H P ti && 4) & E o) cn oi &>
p 0 0) oi 41 41 E 4) \ 4) 4)
a C N 4) O 0) 0) tn 0) 4->
lH c oi c to
H E 41 p tl H tl H tl
tl 4) 4) H X C C 0) c ti 0 TJ X 4) X 4)
o HH 4J o 4J H Htl H a C >, Jj 4-1 4-> 4->
01 H H 4-1 lH XX 0)X >i (0 H >, H C H C
0) * c H0 4J 4J 4J 4J 4) In an 4)
5-S 4J C & 'r4 $ *4
Q * O 0 Ra H H C H 4)H ti 4) H aTJ 0) a o
J>H} h jq (0 4-> 4-1 H H TJ 3 4-lH c E E 4J 4-> 4J -P
a a a a
888"
TJ ja io o (0 H -P > H in a-p o \ O O O O
E TJ CD 4-> 4J 4J 4-> (0 H H C 3 H H > >4 tl 3 OH tl ti 0) 4) 4) 4)
3 0) X OOOO H tl 4J TJ tn E 3 TJH ti 4) ti 4) -P In tl tl lH
H H H n X-H 0) 0) 0) 0) In (fl c 4) h E TJ lH >,4J tl lH 0 4-) 4-> H -H H -H
H MH ti In ti ti (fl > 0) 0) E 0) TJ TJ (fl ti C 4)H 4) C CTJTJTJTJ E
MH ^-i-rl -H H > 3 E E 0) lH 0) tl O tlH 4JT3 tl 4) 0) C C C C \
63 P TJ TJ TJ TJ 4-> XI p 4) H 4) C 4) C 4)
4-1 (fl C H E E H H tH H lH
2 P 3 P 3 (0 H ti tn tn tn cn tn tl 0 tlH tlTJ 0) 4)
a 63 3 a h a a a 3 a M 4) p a -p 4) C H 0) H 0) (fl (fl (fl lH in h h a ax
a-p H E E E a 4-) O a H E 0) > 10 0) 4-> 0) 4-1 4)4J 4) 4-) 0) 4J 0 OHH E E 0)
8 C 3 ifl 3 3 3 C 3 0 0) (0 0 0) CX C C C c H 0) H 0) H 4) c 0) (0 (0 3 3 3
o H 0 O -n-r--r- H O H ti X 0 PH 0 3H 3H O 0) O 0) 0 0) H TJ O O -rvo a
r-f
c
0 2 03
E a a a n i-5 Hi Eh J !> J J X
4) oo ox Eh t3n.an, Eh CJ a Eh CJ tO Eh CJ J D > H UOHHQQ cj cj tJ i-3 a a to
C CJ 2D < 2D 63 J 63 O 63 D h Q Eh J Eh Eh 2 63 < < D
sss i-o H O O H) H, H, HO s OS X u Eh Z Z H Q H
1-3
CJ to u to cj to
i-q
H q cj cj i-o h, a
0) U CJ CJ CJ QQ CJ CJ CJ u QQ a CO a a 63 63 63 63 63 63 63 a a a a a a 63 63 63 63 63 63 63
0)
(C
10
p
(fl
TJ
(0
4J
(0
TJ
rt -H rt -rt -rt-rt-rt
xxxxxxx XXXXXXX
p. n, o, d. n, n. p.
Pi CL 0 1 0 1 ^ 0 1 Pi
CO to CO CO CO CO CO CO CO CO to CO 0) CO
H -H -H -H tH -H -H rt -H -rt -rt -rt -rt -rt
X "D 'U 'D 'D 'D 'D "D ^3 'U *0 'D *U 'D TJ
+-> **-
WW S-- %-* v^
H 0)
X H 0
1 X 0 0 0 0 0 0 0 0000000
C) 1 0 IrH
i-
1 1 IrH
i
1 i <
Q, Qj pjfLQ, QjQi Cl Cl Cl cl cl cl Cl
c OH
H c 1 10 CO CO (0 CO to CO co co co co co co co
1 H 01 *H H rt t-I -H -H -H
X E E E E E EE
0 0 1
00 CO 00 00 H H a ti Ih ti Ih ti ti ti
I I I I 1 1 H CO
o o O O O H O H O H
0) oooo
C C C C c c 0 c O H H O O H H
TJ O O O H H H H
O HHH H 4J 4J H H H H
O I I I I tl tl
a aaaa o 0 a a a a TJ TJ TJ TJ TJ TJ TJ
O ^^-t^4^-l O. a HHHH EEEEEEE "BIB'S
OHOH *S OHOH * O J S S S S S 5 OHOHOH |* lit H H .
OOHH OH OOHH OH O H H H H H H H OOHHOO HHHH*
OOOO HH OOOO r4 rH O O H H H H H H H OOOOHH HHHHi
OOOO OO HHHH HH O O OOOOOOO
OOOO OO OOOO OO H H H H H H H H
H H H H H H H H H H H H H
H H H H H H H H H H H H H
-
123 -
01
0)
0)
0)
(0
H
o
X
H c
01 4)
H 0) 4)
ti 0 ti 4-> Ih
0)
MH
Ih 4) 8 * X
Oh
Ih 0)
PX E Ih 4) -P
0) C -P H 01 Ih 0) 4J 0)
C O 0 Q cn H 4) 4-1 01 H TJ 0)
(0 CJ H C O 0 4-> CH cn 4) -P
tl 0) H Mh 4) CH Cn 4) EMH
Eh (hX tl 01 h o oi a. tlH
0 -P fl) 01 (0 (fl o a os OX
H 0) 01 P 0) 4J 4J a 4J Mh 01
0 cn to mh 01 01 tl 4J (0 (fl C 4-> C Ih
Ih c o) o 0) H TJ 4J C TJTJ C 0 C 0) 4) Ih
4JH o tl tnTJ c fl) C Oh 4) E ao
c tl 0 0) TJ 4) (0 0) E 0 fl)MHH 4J E cn TJ 4) Mh
O-P ti c TJ Ih E 41 tl H PO-Potna) cotj 0) TJ 4)
cj to a o < 0) 4) O fl) P (0 O 3 0) CO 0) 01 fl) TJ HXITJ
4)X O (fl -p o H 01 3 tl CO 0141TJ TJ tl 4)
n II II 0 4) X -P (OH c 4J 3 TJ-PlH-P 4)0)lHTJ (0 ti 0 oi
4J 0) > +) na H tl ti fl)H4J0)4)TJtlTJ(O 4)4)3
cj co a c PH oi aoi 0 P EXI01CTJ0TJTJ 0) >
H H 4J 0) 4) 01 H a a 01 I CH out) Ul) XI 04)
DXI O H C H TJ c HUH CJ (0 XI OX!
TJ a 0> H TJ e TJ H X 4) 4) C O 4J w
H .wCd OX 4) Mh 4J H tl 0) 4J 4J MH 01 EMH 3
0 H 4J 4J 4JMH 0 O MH 0 0) Mh Mh Mh O 01 -p &>H 0
CO C 4) 18
'
0) 0 3 a 4-> -PTJMhOMhOO 4-llHHtl 4>XX
0) 0)X O TJ 01 ti (fl 63 (fl IhhcO 0 C0H4JXI4) CO 01 01
Ih 0 fl) 01
-PH 01 4-> 4-) OS c OXlfl) CO 0) 01 .PXI -P 4J
4J TJ C -4J-H
-P 0) tl cn-P 4J014J014J4JH C4JC tl 0)
fl) 0) X 0) C 0 01 H XI 4-> C 0 tl H (fl C X4JH4JHHXI-PHJSH OHH
XI c t|H4JHHCXl fl)H MH 0 CO O 0)0)HXIHXIX1 X 0 tn 0 Mh cn^-
0) 0 0 0) 3 P 0 -P 01 (0MH 0) H o) XI XI 4J BIB.H a 0) c
0) 4J H a>H(0H 4JXMH CO 0) 4J TJ TJ C 4J -P4) X H 0) atj h 4J -P
0 00 A 1 P P
1 01 A 1 P P
2 02 A 1 P P
3 03 A 1 P P
4 04 A 0 N P
5 05 A 0 N P
6 06 D 4 N N
7 07 D 4 N N
8 08 L 1 P P
9 09 L 1 P P
10 0A L 1 P P
11 0B L 1 P P
12 OC L 0 N P
13 0D L 0 N P
14 0E D 4 N N
15 OF D 4 N N
16 10 A 1 P P
17 11 A 1 P P
18 12 A 1 P P
19 13 A 1 P P
20 14 A 0 N P
21 15 A 0 N P
22 16 D 4 N N
23 17 D 4 N N
24 18 A 1 P P
25 19 A 1 P P
26 1A A 1 P P
27 IB A 1 P P
28 1C A 0 N P
29 ID A 0 N P
30 IE D 4 N N
31 IF D 4 N N
32 20 L 1 P P
33 21 L 1 P P
34 22 L 1 P P
35 23 L 1 P P
36 24 L 0 N P
37 25 L 0 N P
38 26 P 4 N N
125 -
Index Hex Class Key Dir Width
39 27 A 0 N N
40 28 A 1 P P
41 29 A 1 P P
42 2A A 1 P P
43 2B A 1 P P
44 2C A 0 N P
45 2D A 0 N P
46 2E P 4 N N
47 2F A 0 N N
48 30 L 1 P P
49 31 L 1 P P
50 32 L 1 P P
51 33 L 1 P P
52 34 L 0 N P
53 35 L 0 N P
54 36 P 4 N N
55 37 A 0 N N
56 38 A 1 P P
57 39 A 1 P P
58 3A A 1 P P
59 3B A 1 P P
60 3C A 0 N P
61 3D A 0 N P
62 3E P 4 N N
63 3F A 0 N N
64 40 A 5 N N
65 41 A 5 N N
66 42 A 5 N N
67 43 A 5 N N
68 44 A 5 N N
69 45 A 5 N N
70 46 A 5 N N
71 47 A 5 N N
72 48 A 5 N N
73 49 A 5 N N
74 4A A 5 N N
75 4B A 5 N N
76 4C A 5 N N
77 4D A 5 N N
78 4E A 5 N N
79 4F A 5 N N
126 -
Index Hex Class Key Dir Width
80 50 D 5 N N
81 51 D 5 N N
82 52 D 5 N N
83 53 D 5 N N
84 54 D 5 N N
85 55 D 5 N N
86 56 D 5 N N
87 57 D 5 N N
88 58 D 5 N N
89 59 D 5 N N
90 5A D 5 N N
91 5B D 5 N N
92 5C D 5 N N
93 5D D 5 N N
94 5E D 5 N N
95 5F D 5 N N
96 60 Q -1 P P
97 61 Q -1 P P
98 62 Q -1 P P
99 63 Q -1 P P
100 64 Q -1 P P
101 65 Q -1 P P
102 66 Q -1 P P
103 67 Q -1 P P
104 68 Q -1 P P
105 69 Q -1 P P
106 6A Q -1 P P
107 6B Q -1 P P
108 6C Q -1 P P
109 6D Q -1 P P
110 6E Q -1 P P
111 6F Q -1 P P
112 70 C 0 N N
113 71 C 0 N N
114 72 C 0 N N
115 73 C 0 N N
116 74 C 0 N N
117 75 C 0 N N
118 76 C 0 N N
119 77 C 0 N N
120 78 C 0 N N
127 -
Index Hex Class Key Dir Width
121 79 C 0 N N
122 7A C 0 N N
123 7B C 0 N N
124 7C C 0 N N
125 7D C 0 N N
126 7E C 0 N N
127 7F C 0 N N
128 80 E 7 N P
129 81 E 7 N P
130 82 E 7 N P
131 83 E 7 N P
132 84 L 1 N P
133 85 L 1 N P
134 86 D 1 N P
135 87 D 1 N P
136 88 D 1 P P
137 89 D 1 P P
138 8A D 1 P P
139 8B D 1 P P
140 8C D 3 N N
141 8D D 1 N N
142 8E D 3 N N
143 8F D 2 N N
144 90 D 5 N N
145 91 D 5 N N
146 92 D 5 N N
147 93 D 5 N N
148 94 D 5 N N
149 95 D 5 N N
150 96 D 5 N N
151 97 D 5 N N
152 98 A 0 N N
153 99 A 0 N N
154 9A C 0 N N
155 9B P 0 N N
156 9C D 0 N N
157 9D D 0 N N
158 9E D 0 N N
159 9F D 0 N N
160 AO D 8 N P
161 Al D 8 N P
162 A2 D 8 N P
163 A3 D 8 N P
128 -
Index Hex Class Key Dir Width
164 A4 S 0 N P
165 A5 S 0 N P
166 A6 S 0 N P
167 A7 S 0 N P
168 A8 L 0 N P
169 A9 L 0 N P
170 AA S 0 N P
171 AB S 0 N P
172 AC s 0 N P
173 AD s 0 N P
174 AE s 0 N P
175 AF s 0 N P
176 BO D 5 N N
177 BI D 5 N N
178 B2 D 5 N N
179 B3 D 5 N N
180 B4 D 5 N N
181 B5 D 5 N N
182 B6 D 5 N N
183 B7 D 5 N N
184 B8 D 5 N N
185 B9 D 5 N N
186 BA D 5 N N
187 BB D 5 N N
188 BC D 5 N N
189 BD D 5 N N
190 BE D 5 N N
191 BF D 5 N N
192 CO Q -1 P P
193 Cl Q -1 P P
194 C2 C 0 N N
195 C3 C 0 N N
196 C4 D 1 N N
197 C5 D 1 N N
198 C6 D 2 N P
199 C7 D 2 N P
200 C8 Q -1 P P
201 C9 Q -1 P P
202 CA C 0 N N
203 CB C 0 N N
204 CC C 0 N N
205 CD C 0 N N
206 CE C 0 N N
207 CF C 0 N N
129 -
Index Hex Class Key Dir Width
208 DO L 7 N P
209 DI L 7 N P
210 D2 L 7 N P
211 D3 L 7 N P
212 D4 A 6 N N
213 D5 A 6 N N
214 D6 Q -1 P P
215 D7 D 0 N N
216 D8 P 2 N N
217 D9 P 2 N N
218 DA P 2 N N
219 DB P 2 N N
220 DC P 2 N N
221 DD P 2 N N
222 DE P 2 N N
223 DF P 2 N N
224 EO C 0 N N
225 El C 0 N N
226 E2 C 0 N N
227 E3 C 0 N N
228 E4 D 0 N P
229 E5 D 0 N P
230 E6 D 0 N P
231 E7 D 0 N P
232 E8 C 0 N N
233 E9 C 0 N N
234 EA C 0 N N
235 EB C 0 N N
236 EC D 0 N P
237 ED D 0 N P
238 EE D 0 N P
239 EF D 0 N P
240 FO P 0 N N
241 Fl Q -1 P P
242 F2 S 0 N N
243 F3 S 0 N N
244 F4 P 0 N N
245 F5 P 0 N N
246 F6 E 7 N P
247 F7 E 7 N P
248 F8 P 0 N N
249 F9 P 0 N N
250 FA P 0 N N
251 FB P 0 N N
252 FC P 0 N N
253 FD P 0 N N
254 FE E 7 N P
255 FF E 7 N P
130 -
Appendix D
Data Dictionary
This is a Data Dictionary for the global/external constants,
data structures and variables used in the Simulator.
Activate: "true"
-
constant
-
finite
-
AHId: constant
-
AHWidth: constant
-
ALId: constant
-
A1116Bits: constant
-
AllBPIDs: constant
-
or
ALWidth: constant
-
ArithmeticClass: constant
-
131 -
AssignmentID:
-
constant identifies
-
the operator
encountered whenparsing the line
Debug command as an
assignment operator, and assigning it a value of one.
the
Auxiliary Carry Flag in binary as '000000010000'. This
constant also serves as a mask to assemble or isolate the
flag.
AX: variable
-
AXId: identifies
-
-
AXWidth: constant
-
BadCEAModeValue : indicates
-
that
-
error message an
Effective Address could not be computed successfully.
memory bounds.
-
BadMemoryWidth : error message
-
indicates an invalid or
unsupported opcode was encountered.
132 -
BadOpcodeExtension : error message
-
indicates an invalid
operand type was encountered.
indicates an invalid or
undefined I/O port access was attempted.
indicates an invalid
register identifier was used in the current operation.
indicates an invalid
register /memory code was encountered.
BHId: constant
-
BHWidth: constant
-
in
hexadecimal as '100'. The constant is used to shift data
from the high eight bits to the low eight bits.
Bit8Multiplier : constant
-
Blank: constant
-
133 -
-
BLId: constant
-
BLWidth: constant
-
BooleanID: constant
-
BP: variable
-
constant
'101'
binary as .
BPWidth: constant
-
Breakpoint: constant
-
processes the
operator commands related to breakpoint operations.
BreakpointOpcode : constant
-
provides the
storage locations for the information stored about each
breakpoint .
134
- -
BreakRecord: record
-
indicates if the
breakpoint has been encountered.
indicates if the
breakpoint should be activated when execution resumes.
the segment
register portion of the desired breakpoint location.
verify
that the proposed breakpoint location is within the
bounds of defined memory.
BX: variable
-
constant
-
'Oil'
binary as .
BXWidth: constant
-
divisor to separate
off the low eight bits in a thirty two bit VAX word. The
constant has a value in hexadecimal of '00000001'.
-
ByteOMask: constant
-
defines the mask to separate off the
low eight bits in a thirty two bit VAX word. The constant
has a value in hexadecimal of '000000FF'.
135 -
ByteOMultiplier: constant defines the multiplier to -
pack
data into the low eight bits in a
thirty two bit VAX word.
The constant has a value in hexadecimal of '00000001'.
divisor to separate
off the second eight bits in a thirty two bit VAX word. The
constant has a value in hexadecimal of '00000100'.
BytelMask: constant
-
BytelMultiplier: constant
-
divisor to separate
off the third eight bits in a thirty two bit VAX word. The
constant has a value in hexadecimal of ' 00010000 ' .
off the
third eight bits in a thirty two bit VAX word. The constant
has a value in hexadecimal of '00FF0000'.
pack
data into the third eight bits in a thirty two bit VAX word.
The constant has a value in hexadecimal of '00010000'.
divisor to separate
off the high eight bits in a thirty two bit VAX word. The
' '
constant has a value in hexadecimal of 01000000 .
off the
high eight bits in a thirty two bit VAX word. The constant
has a value in hexadecimal of 'FF000000'.
Byte3Multiplier: constant
-
136 -
BytelD: constant
-
BytesPerWord : constant
-
Call: constant
-
*
Flag in binary 000000000001 '
as This constant also serves .
Characters: set
-
CHId: constant
-
CHWidth: constant
-
Clear: constant
-
CLId: constant
-
CLWidth: constant
-
-
ColonID: constant identifies
-
value of two.
assigning it a
-
ColonState: constant
-
137 -
-
CommalD: constant
-
ControlTransferClass:
-
constant
-
ControlD: constant
-
CRTOutPortNumber : constant
-
CS: variable
-
CSId: constant
-
CSWidth: constant
-
CX: variable
-
CXId: constant
-
-
CXWidth: constant
-
-
DataArraySize: constant
-
-
DataArrayType : type -
defines how numeric keyboard data are
138 -
DataTransferClass : constant identifies the entries in the -
DeActivate: constant
-
defined as
"false"
for use in the
Debugger to indicate whether or not a given breakpoint
should be used.
constant
' '
binary as 110 .
DHWidth: defines DH
-
bit
-
DI: variable
-
Dlld: constant
-
of the
Direction Flag in binary as '010000000000'. This constant
also serves as a mask to assemble or isolate the flag.
DlWidth: constant
-
DLId: constant
-
-
DLWidth: constant
-
DS: variable
-
DSId: constant
-
-
DSWidth: constant
-
defines DS as a sixteen bit segment
register.
139 -
DX: variable
-
DXId: constant
-
DXWidth: constant
-
EffectiveAddressType: record
-
EightBits: constant
-
value of zero.
eight bits wide, having a width
Elipse: constant
-
EndofLine: constant
-
-
ErrorClass: Debugger Command Class
-
140
-
-
ErrorState: constant
-
ES: variable
-
ESId: constant
-
ESWidth: constant
-
the
operator commands related to program execution.
ExtendedClass: constant
-
FF: constant
-
FileName: variable
-
FilenameLength: constant
-
FirstBreakpoint : constant
-
FirstlODataPoint: constant
-
FirstlOPortlndex: constant
-
141
- -
FirstOpcodeValue: constant
-
starting entry
for the Debugger's Keyword Look Up Table.
Flags: variable
-
FlagType: record
-
142 -
+ Direction: boolean variable the the
-
contains value of
Direction flag.
contains
Overflow flag.
Halt: constant
-
HexState: constant
-
High8Bits: constant
-
HighMemoryLimit : constant
-
Inputlndicator : constant
-
InputLineLength : constant
-
InputOutputClass: processes
limits of the
index to the user input for the Debugger.
143
-
-
IntegerState : defines the
constant
state (in
-
a finite
state machine
sense) where integer data are assembled for
entering into memory using the Debugger assignment function.
of the
'
Interrupt Flag in binary as 001000000000
'
This constant .
InvalidAddress : constant
-
InvalidClass : constant
-
Invalidlndex : constant
-
InvalidLocation : constant
-
IOData: variable
-
IOIndicator: constant
-
bidirectional port.
IP: variable
-
144 -
KeywordCharacteristics : record defines
-
the information
stored for each Debugger keyword as of the
consisting
following variables:
+ Name: variable
-
+ Class: variable
-
+ Width: variable
-
KeyboardlnPortNumber: constant
-
LastBreakpoint : constant
-
LastKeywordEntry: constant
-
LastOpcodeValue: constant
-
LengthID: constant
-
145
-
-
LettersAndNumbers : set
-
' '
to Z both upper and lower case and all digits
'
0
'
to
'
9
'
.
Low8Bits: constant
-
LowMemoryLimit : constant
-
MaxID: constant
-
of data bytes that can be entered for each I/O port, having
a decimal default value of 256 or four times the "Max Number
Words"
Of 10 allocated.
MaxWidth: constant
-
Memory: variable
-
146 -
MemoryArray: type -
processes the
operator commands related to memory access operations.
MinID: constant
-
MinWidth: constant
-
NameType: type -
string .
Normal: constant
-
NullAddressValue : constant
-
NullEntries: constant
-
147
-
-
NullSegmentValue: constant defines a -
Numbers : set
-
a
grouping of all digits '
0
'
to
'
9
'
.
the
operator commands related to entering numeric data.
Opcode
Look Up Table as consisting of the following variables:
+ OpcodeClass: variable
-
+ OpcodeKey: variable
-
+ DirectionBitPresent: variable
-
indicates in a boolean
sense if a direction bit is present in this opcode.
+ WidthBitPresent : variable
-
indicates in a boolean
sense if a width bit is present in this opcode.
OpcodeType: record
-
+ Full: variable
-
+ Width: variable
-
defines this operation as an eight or
148 -
OperatorClass: Debugger Command Class -
processes the
punctuation (i.e. equal sign, plus sign, minus sign, colon
and comma) encountered in operator commands.
Outputlndicator: constant
-
position of the
Overflow Flag in binary as '100000000000'. This constant
PageSize: constant
-
ParityFlag: constant
-
+ Address: variable
-
+ Auxlndex: variable
-
+ Datalndex: variable
-
-
149 -
+ Inputlndex: variable
-
+ PortWidth: variable
-
+ InOutlndicator : variable
-
indicates if this is an
input port, an output port or a bidirectional port.
PositiveOperator: constant
-
ProcessorControlClass: constant
-
processes the
memory operation qualifiers (i.e. LENGTH and TO).
processes the
operator commands related to register operations.
RegisterType : record
-
+ Id: variable
-
contains the register identifier.
+ Width: variable
-
contains the width parameter for the
register (eight or sixteen bits).
150 -
Return: constant
-
SegmentOffset: constant
-
SegmentOverRideCount : variable
-
SegmentOverRideValue: variable
-
SegmentState : constant
-
SetHigh: constant
-
SI: variable
-
151
-
-
-
the Sign
'
Flag in binary 000010000000 '
as This constant also serves .
Slid: constant
-
"mod"
-
"r/m"
-
contents of
SlWidth: constant
-
SixteenBits: constant
-
SP: variable
-
SPId: constant
-
identifies the SP register, defining it in
' '
binary as 100 .
SPWidth: constant
-
SRWidth: constant
-
-
SS: variable
-
152
-
-
SSId: constant
-
SSWidth: constant
-
operator
commands related to the stack operations.
StartOfData: constant
-
the
InputLine for the Debugger.
StringClass: constant
-
ToID: constant
-
the Trap
Flag in binary '000100000000'.
as This constant also serves
as a mask to assemble or isolate the flag.
the
operator commands related to entering boolean data.
UnaryState: constant
-
UndefinedClass: constant
-
defines an invalid class for the
Debugger keyword table to improve the Debugger's robustness.
153 -
UndefinedID: constant
-
UpperPortlndicator : constant
-
the
operator commands related to utility operations (e.g. load
and log ) .
WordID: constant
-
a multiplier to isolate
an Intel word and has a hexadecimal value of '100'.
the Zero
Flag in binary '000001000000'.
as This constant also serves
as a mask to assemble or isolate the flag.
ZeroOne: type -
154 -
Appendix E
Keyword Look Up Table
0 EXIT 1 U 1
1 LOG 2 U 1
2 LOAD 3 U 1
3 LENGTH 3 Q 1
4 TO 5 Q 1
5 =
1 0 1
6 : 2 0 1
7 + 3 0 1
8 -
4 0 1
9 i 5 0 1
10 PORT 2 I 0
11 WPORT 6 I 1
12 (blank) 1 (blank) 1
13 FALSE 0 L 1
14 TRUE -1 L 1
15 STACK 1 S 1
16 REGISTER 8 R 2
17 AL 0 R 0
18 CL 1 R 0
19 DL 2 R 0
20 BL 3 R 0
21 AH 4 R 0
22 CH 5 R 0
23 DH 6 R 0
24 BH 7 R 0
25 AX 0 R 1
26 CX 1 R 1
27 DX 2 R 1
28 BX 3 R 1
29 SP 4 R 1
30 BP 5 R 1
31 SI 6 R 1
32 DI 7 R 1
155 -
Index Keyword ID Class Width
33 ES OR 2
34 CS 1 R 2
35 SS 2 R 2
36 DS 3 R 2
37 IP 4 R 2
38 RF 5 R 2
39 RAL OR 0
40 RCL 1 R 0
41 RDL 3 R 0
42 RBL 3 R 0
43 RAH 4 R 0
44 RCH 5 R 0
45 RDH 6 R 0
46 RBH 7 R 0
47 RAX OR 1
48 RCX 1 R 1
49 RDX 2 R 1
50 RBX 3 R 1
51 CFL OF 0
52 PFL IF 0
53 AFL 2 F 0
54 ZFL 3 F 0
55 SFL 4 F 0
56 TFL 5 F 0
57 IFL 6 F 0
58 DFL 7 F 0
59 OFL 8 F 0
60 FLAG 9 F 0
61 BOOLEAN 1 M 0
62 BYTE 2 M 0
63 INTEGER 3 M 0
64 POINTER 4 M 0
65 SINTEGER 5 M 0
66 WORD 6 M 0
67 Qqqqqqqq -2 z -1
68 Qqqqqqqq -2 z -1
69 Qqqqqqqq -2 z -1
156 -
Cndes: Keyword ID Class Width
70 BPO 0 B 1
71 BP1 1 B 1
72 BP2 2 B 1
73 BP3 3 B 1
74 BP4 4 B 1
75 BP5 5 B 1
76 BP6 6 B 1
77 BP7 7 B 1
78 BP8 8 B 1
79 BP9 9 B 1
80 BPA 10 B 1
81 BPB 11 B 1
82 BPC 12 B 1
83 BPD 13 B 1
84 BPE 14 B 1
85 BPF 15 B 1
86 ALLBP 16 B 1
87 GO 1 X 1
88 G 1 X 1
89 START 1 X 1
90 CONTINUE 2 X 1
91 RESUME 2 X 1
92 R 2 X 1
93 STEP 3 X 1
94 S 3 X 1
95 PSTEP 4 X 1
96 P 4 X 1
97 Qqqqqqqq -2 z -1
98 Qqqqqqqq -2 z -1
99 Qqqqqqqq -2 z -1
100 EX 1 U 1
157 -
Appendix F User's Guide for the Intel*8086 Simulator
13.1 General
Three
-
+ Simulator -
and I/O
map (IOMAP86).
Any place a file name is requested, a full VMS path name can
-
be used, but the total path name specified must be less than
40 characters.
for letters.
products tools.
158 -
No Intel system services are provided.
Input and output port addresses and data are mapped to save
disk space and execution time.
13.3 Debugger
159 -
Available commands
-
Examples :
* AX <cr> will
=
FdCb set the contents of the AX
register to the hexadecimal value FDCB.
CS : yyyy.
BPO =
<cr> clears breakpoint 0.
+ =
<cr> clears all breakpoints.
ALLbp
160 -
+
Starting program execution:
GO <cr>, G
-
GO
-
=
xxxx :
yyyy <cr> will load CS : IP with xxxx
and yyyy respectively and start the program.
GO =
CS : IP <cr> will start the program at CS : IP.
GO =
IP <cr> will assume the current value for CS
and start the program at CS : IP.
+ S
STEp, will single step through the program.
byte is
interpreted as FALSE if its value is 0 and TRUE if
its value is 1.
BYTe -
WORd -
INTeger
-
SINteger
-
Pointer
-
161 -
+ All memory segment and address values are specified in
hexadecimal .
Registerl
-
contents of
Register 1 will be used as the segment value and the
contents of Register 2 will be used as the address
value .
CS will be used
~ ~
-
Control Y or Control C will abort a run away Simulator.
162
-
-
13.4 Attachment I -
(blank)
AFL
-
AH
-
AL
-
BH
-
BL
-
BPO
BP1
-
BP2
-
BP3
BP4
-
BP5
-
BP6
BP7
-
BP8
-
BP9
BPA
-
BPB
BPC
-
BPD
-
BPE
-
BPF
-
BX
BYTE, BYT
-
CFL
-
CH
-
CL
CONTINUE, CONTINU, CONTIN, CONTI, CONT, CON
-
CS
-
CX
-
DFL
-
DH
-
DI
-
DL
-
DS
-
DX
-
ES
EXIT, EXI
-
G
GO, G
-
IFL
-
163 -
IP
LENGTH, LENGT, LENG, LEN
LOAD, LOA
LOG
OFL
PFL
P
POINTER, POINTE, POINT, POIN, POI
PORT, POR
PSTEP, PSTE, PST, P
R
RAH
RAL
RAX
RBH
RBL
RBX
RCH
RCL
RCX
RDH
RDL
RDX
REGISTER, REGISTE, REGIST, REGIS, REGI, REG
RESUME, RESUM, RESU, RES, R
RF
S
SFL
SI
SINTEGER, SINTEGE, SINTEG, SINTE, SINT, SIN
SP
SS
STACK, STAC, STA
STEP, STE, S
TFL
TO
TRUE, TRU
WORD, WOR
WPORT, WPOR, WPO
ZFL
+ (Unary operator)
(Unary
-
operator)
-
164 -
13.5 Attachment II -
Blank
(blank)
-
Breakpoints
BPO
BP1
BP2
BP3
BP4
BP5
BP6
BP7
BP8
BP9
BPA
BPB
BPC
BPD
BPE
BPF
ALLbp
Execution
GO, G
CONtinue
RESume, R
STEp, S
PSTep, P
Flags
CFL
PFL
AFL
ZFL
SFL
TFL
IFL
DFL
OFL
FLAg
-
Input and Output
PORt
WPOrt
-
Logic Values
FALse
TRUe
165
-
-
Memory
BOOlean
BYTe
INTeger
Pointer
SINteger
WORd
Operands
+
(Unary operator)
-
(Unary operator)
Qualifiers
LENgth
TO
Register
REGister
AL, RAL
CL, RCL
DL, RDL
BL, RBL
AH, RAH
CH, RCH
DH, RDH
BH, RBH
AX, RAX
CX, RCX
DX, RDX
BX, RBX
SP
BP
SI
DI
ES
CS
SS
DS
IP
RF
Stack
STAck
Utility
EXIt
LOAd
LOG
166 -
13.6 Support Policy
I will investigate problems reported to me under the following
conditions :
Notification be
-
167 -
13.7 Maintenance Capabilities
Three utilities
-
for Debugger
Keyword Look Up Table maintenance.
168 -
The Simulator is limited to VAX Pascal and it's extensions
except for:
Support
-
of Control D
Keyboard input
-
CRT output
-
The Simulator assumes the Opcode Look Up Table File and the
Debugger Keyword Look Up Table File in the same directory as
the executable module.
169
13.8 Release Notes For The Intel 8086 Simulator
* <CR>
LOG displays the name of the log file
*
LOG =
<CR> turns off logging of commands
*
LOG =
filename <CR> writes Debugger commands to the
"filename"
file called
170 -
Appendix G
Unsupported DEBUG-88 Commands
DEBUG-88
The following is an alphabetical list of the commands
* ASM
* UNTIL
COUNT, WHILE,
* DEFINE
* DOMAIN
* EVALUATE
* EVALUATE LINE
* EVALUATE SYMBOL
*
IF, THEN, ORIF, ELSE
* LINE
* MODULE
* RADIX
* REMOVE
*
REPEAT, WHILE, UNTIL
* SYMBOL
171
-
-
Bibliography
Programmer's
Reference May, 1983 (Order Number
210911-0)
VAX-
4. 11 PASCAL Language Summary (Order No. AV-L368A-TE)
October 1982
6 .
Programming in PASCAL , Revised Edition , by Peter Grogono
172
-
-
14. Intel 8086 Relocatable Object Module Formats (Order Number
121748-001)
Kenah
& Simon F. Bate (Order No. EY-00014-DD)
Technology Division
173
-