APPENDIX
modes. The processor flags are contained in the 8-bit
condition Code Register (CCR).
The basic bus cycle
of
the MC6809
is
a single,
500
nsec
clock cycle for the
2.0 MHz version. The normal
memory access time
is
320
nsec. To accommodate
slower memories,
125
nsec wait states can
be
added. Ad-
ding one wait state extends the memory access time to
445
nsec.
Although the instruction set
of
the MC6809 operates
predominantly on 8-bit data, there are a
few
bit opera-
tions, two BCD adjusts, and eight instructions with
16-bit operands. Most two operand instructions require
one operand to be in a register, and the other operand to
reside
in
memory, with the result going to the register.
Two operand instructions such as Add
or
Compare can-
not be done from register to register. The exceptions to
this are the Multiply, Transfer Exchange, and Sign
Ex-
tend instructions, for which both source operands and
the destination operand must
be
in registers. The arith-
metic instructions include 8-bit unsigned integer Multip-
ly
and
8-
or
16-bit Add, Subtract and Compare. Other
16-bit instructions include Load, Store, Exchange,
Transfer, and Sign Extend.
For
stack manipulation, a single Push or Pull instruc-
tion allows any combination
of
registers to be placed on
or
removed from either
of
the two stacks. There are also
19
branch instructions, in long (l6-bit offset)
or
short
(8-bit offset) forms.
The MC6809 supports
13
different addressing modes.
Included in these modes are 5 forms
of
indexed address-
ing, including indexed Auto Increment and Auto Decre-
ment modes which are useful for string operations.
Relative addressing for Branch instructions use one- or
two-byte offsets
as
a pointer to a data location.
The MC6809 provides maskable and nonmaskable
hardware interrupts,
as
well
as
three software inter-
rupts. There are two maskable hardware interrupts,
FIRQ and IRQ. The FIRQ (Fast Interrupt Request)
pushes only the Condition Code and Program Counter
registers. The IRQ automatically pushes all
of
the
MC6809 registers (except the
SP) onto the stack. Each
MC6809 interrupt has a fixed vector address, fetching
its service routine address from a predefined memory
location.
For
more information regarding hardware and
software interrupts
see
your local Intel office.
PROGRAM DESCRIPTIONS
The ten benchmark programs were chosen to demon-
strate the capabilities
of
the iAPX 88/10 and the
MC6809 in the areas
of
data manipulation, computa-
tion, and processor control. The basic algorithms for
several
of
the programs (Block Move, Character Search,
Word Shift,
Vector Add, and 16-Bit Multiply) are
similar to the algorithms
of
benchmark programs in
Motorola's
MC6809
Preliminary
Programming
Manual. All iAPX
88
code has been assembled and run.
23
1.
Computer Graphics
The Computer Graphics program scales the X
and
Y
pairs that make up a graphics display. The 16-bit X and
Y pairs are offset by constant values
(XO
and
YO),
then
multiplied by a fractional scale factor to obtain the
scaled
XY
pairs. There are 16,384 pairs. This program
demonstrates 16-bit computational capability.
2. 16-Bit Multiply
The 16-Bit Multiply program reads
two
16-bit numbers
from memory, multiplies them and returns the 32-bit
product and the two mUltiplicands to memory. Multiply
demonstrates 16-bit computational capability.
3. Vector Add
The l6-Bit
Vector Add performs an element-by-element
add
of
two twenty-element vectors. Vector add demon-
strates 16-bit computation and string processing capa-
bilities.
4. Block Move
The Block Move program reads the block length,
source, and destination from memory. The block length
was chosen to be
126
bytes. The data
is
moved from the
source to the destination using word moves. Block
Move demonstrates data manipulation and auto
incre-
ment addressing.
5. Block Translate
The Block Translate program translates a memory
block containing EBCDIC characters to ASCII and
stores the ASCII characters in another memory block.
The translation
is
done using an EBCDIC to ASCII
translation table, and the block length is
125
bytes. This
demonstrates data manipUlation, auto increment
ad-
dressing, and the use
of
a lookup table.
6. Character
Search
The Character Search program searches a table
of
known length for a specific character.
If
that character
is
found, its address
is
returned.
If
it
is
not found, zero
is
returned. This program demonstrates data com-
parison and auto increment addressing.
7. Word
Shift
The Word Shift program reads a 16-bit word from
memory,
and
shifts it N places to the right. (N
is
chosen
to
be five.) Zeros rotate in on the left. The result
is
stored in memory. This demonstrates manipUlation
of
16-bit data.
8. Reentrant Call
The Reentrant Call program passes three parameters
to
the called procedure. One
is
pushed from a general
register, the other two are pushed from memory. The
procedure
is
called, the state
of
the processor
is
pushed
onto the stack, and local storage
is
set up. The pro-
cedure body adds the three parameters and places the
result in local storage. The procedure
is
then exited and
the state
of
the processor
is
restored.
AFN 01532A