Download Manual - S100 Computers

Transcript
v1AR, INC.
•
23600 Mercantile Road
•
8086/S100
Cleveland, Ohio 44122
CPU - INTERRUPT (Copyright (C) 1981 TecMar Inc.)
I-A
•
Phone: (216) 464-7410 INTRODUCTION 8086/S-100 CPU - INTERRUPT The Tecmar 16 bit S-lOO CPU-Interrupt board is based
on the INTEL 8086 microprocessor and consists of the
CPU with 8 levels of vectored interrupt and S-lOO
interface with extended addressing. The board complies
with the proposed IEEE 16 bit S-lOO protocol providing the
ability to fetch and store two- bytes at a time which
effectively doubles the previous capacity of the bus.
This board can access I/O devices (byte-at-a-time or word­
at-a-time) through memory locations or I/O ports providing
compatibility with conventional S-lOO 8080/Z80 systems.
The board permits a one megabyte address space by
utilizing a 20 bit address which is formed using the
extended address protocol in the proposed standard for the
S-lOO bus allowing full use of the 8086.
The INTEL 8086 microprocessor is fully described in
INTEL's MCS-86™ User's Manual.
(Please refer to this
since the information on the 8086 integrated circuit will
not be repeated in this manual.)
The primary features
include eight 16 bit registers, hardware multiply and
divide, hardware trace mode, and inherently position
independent code via base registers.
The 8086 machine
language provides a 5 to 10 fold
base increase in
performance over the 8080. Assembly language programs for
the 8080 can be easily translated into 8086 programs with
approximately a factor of two increase in performance.
The CPU-Interrupt board can be used with 8-bit memory
boards, but memory capable of 16-bit transfers will allow
faster operation. The board has a power-on jump feature to
FFFFO H where a monitor is provided (on the PROM-I/O
board) •
Depending upon the crystal installed,
be set up to operate at 4, 5, or 8 MHz.
the system can
The 8086 uses a full 16-bit address for I/O devices
unlike the 8080 which duplicates the 8-bit I/O address on
A15-A8 and A7-AO.
The board is shipped with all jumpers in a standard
configuration but can easily be changed to take advantage
of the optional features, such as the wait state
generator.
(Copyright (C) 1981 TecMar Inc.)
2-A
FEATURES 8086/S-100 CPU - INTERRUPT 1)
S-IOO bus compatible
2)
16 bit microcomputer (8086)
3)
8 levels of vectored interrupt
4)
Designed for operation at 4, 5, or 8 MHz
5)
Compatible with conventional S-IOO 8080/Z80 boards
6)
One megabyte address space
7)
Full 16 bit address for I/O device
8)
On-board regulators
9)
Operates with 8259A vectored interrupt chip or from
PINT (line 73) of S-IOO bus.
10)
Operates with 8 bit wide memory or 16 bit wide memory
REQUIREMENTS
1)
S-IOO bus
(Copyright (C) 1981 TecMar Inc.)
3-A
FUNCTIONAL BLOCKS
8086/S-100 CPU - INTERRUPT
Processor Timing:
using a crystal oscillator, supply the
processor clock (4,5, or 8 MHz) to the processor and
the bus i2 line.
Supply a 2 MHz peripheral timing
clock to the bus.
Provide power-on clear to the
processor and bus and synchronize the reset to the
processor.
Synchronize the wait state generation
with the clock (XRDY, PRDY AND CPU READY).
This
circuit is centered around the Intel 8284 clock
generator chip.
Bus Control: From the processor clock and the SO, Sl, S2
signals provided by the processor, generate the S-IOO
bus status lines and the S-IOO bus command/control
lines, disabling them on the assertion of STAT DSB
and cjc DSB respectively. Handle DMA request/grant
timing.
Provide timing and control signals to the
rest of the board (ALE, PSYNC, DT/R, DEN, INTA,
IORDC, AIOWC).
Centered o'n an Intel 8288 bus
controller chip.
Vectored Interrupt: Based on the VIO-VI7 lines on the bus
generate and vector interrupts to the 8086 processor
(INT). Based on an 8259A priority interrupt chip.
.:.
Data Path Control and Buffers: Using signals generated by
the bus control section: Latch the address from ADO­
A19 and drive the address lines AO-A19 on the bus,
drive the 8086 AD inputs from the appropriate SIOO
bus lines at the appropriate times, drive the bus
from the 8086 AD outputs at the appropriate times.
The address and data outQuts to the bus may be
disabled by ADD DSB and DO DSB respectively.
The
output depends on SIXTN rather than on the internally
generated SXTRQ to avoid any problems which might
arise from bus contention in the event of the failure
of a 16-bit operation.
This block is centered around
a set of bidirectional bus transceivers and address
latches •
(Copyright (C) 1981 TecMar Inc.)
4-A
I.C. 's associated
layout) •
with
block
(See
Component
#:
Block
Type
I. C.
8086 8086-4 32 Processor
Timing
74LS05 74LS04 74367 74LS161 8284 2
3,5 17 29 31 Bus Control
74LS08 8288 74368 74LS04 ' - ? 4L 00 74LSI0 74LS02 74LS175 74367 74LS74 74LS136 30 24 9, 10 4, 26 (DMA) 16, 36 (DMA) 33 35 (DMA) 34, 27 (DMA) 17 25 (DMA) 11 (DMA) Vectored
Interrupt
74LS05
2, 6 74LS04
3, 4, 5 8259A
13 make sure strap for interrupt
source is correct
Data Path
8282 74LSI0 74LS04 74LS245 74LS32 74LSll 74164 74125 74LSOO 74LS74 74LS08 74LS173 81LS95 (Copyright (C) 1981 TecMar Inc.)
-
diagram
5-A
7, 14, 15 33 4, 5, 18 8, 39 1, 23 12 19 20 21 22 28 37 38 I'
)
0'\
I
::t>'
BLOCK DIAGRAM OF 8086 CPU CARD
r--------=
.
-,. --
- ~
~
. .----
_.-_ ._----- ------.---_.
8086
----------.,.-------;>t-------- ­ -r--­ T---r-------­
S;1s;-1s;
RQ/GT.0
,-r-:('t\
~
A16-A19
INT
\I
V
.J.
It
ALE
bus
control
(incl. DMA)
data
path
.DlIR
urn
"ENII
data {8}
~
>­
I­
c:(
~I
Cl
W
w
~
Trill I T
I
,
"I'J
_ _ _PSY~C
III
,
U
~~
contra 1
and
I brffers
(.)\ :;r"
L
"
timing
1111111
J?:
ex:I
a:.
V'
I­
l-c
~2
>->-V'
o
(processor
speed ~
l-c
a:
~~
c
ex:
I~
~ ~~~ J ~2
status 1 i nes SWO, SINTA, SINP, SOUT,
MWRITE, SMEMR, SHLTA, SMI,
SXTRQ command
control
1i nes
PWR, PDBIN, PSYNC, PWAIT
PHLOA
S-100 BUS
VI0-VI7
ADO OSB­
kS[XTN,
. M~-AB
processor
ADo-AD} 5
-.J Y "
....c
c
C
r
C
c
C
~
1
y
HARDWARE OPERATION
8086/S-l00 CPU - INTERRUPT
..
The reader cf this section is cautioned that he is
expected to be reasonably familiar with use of the 7400
series TTL and have reviewed the data sheets for the Intel
8085, 8282, 8284, 8286, 8288, and 8259A ICs in chapter S
of the MCS-86 users' manual. He is also expected to have
reviewed a copy of the proposed IEEE standard for the S­
100 bus.
The first step in interfacing a processor to the S­
100 bus is defining the exact meaning of each bus signal
to be generated under all possible conditions. The second
step is establishing what signals are available from the
processor.
A mapping is then defined to create those
signals required at the processor and at the bus from
those available at the bus and at the processor.
The
rn a pp in g rn us t the n bee x ami ned toe n sur e t h a i t P 1 ace s no
unnecessary restrictions upon the operation of the
processor or the bus and that it will in fact work even
under worst-case conditions.
In order to conform with the proposed standard for
the S-lOO bus*, the CPU card must generate the following
Signals:
A19
A18
A17
. A16
A1S
A14
A13
A12
All
Ala
A9
A8
A7
A6
AS
A4
A3
A2
Al
AO
DI7/DATA1S
D16/DATA14
DIS/DATA13
DI4/DATA12
D13/DATAll
DI2/DATAIO
DI1/DATA9
DIO/DATA8
D07/DATA7
D06/DATA6
DOS/DATAS
D04/DATA4
D03/DATA3
D02/DATA2
DOl/DATAl
DOO/DATAO
PHLDA
SMl
SOUT
SINP
SMEMR
SHLTA
SXTRQ
PSYNC
PWR
PDBIN
SINTA
swO
*See IEEE ·Computer· magazine, March 1979, pp. 20-44.
(Copyright (C) 1981 TecMar Inc.)
7-A
In addition to those lines, the CPU card or front
panel must generate certain timing signals.
Since there
is no front panel, the CPU must generate
1!2
bus timing
CLOCK
peripheral timing
MWRITE
memoy write
POC
power-on clear
Besides the data lines (D07-D08 and DI?-DIO)' the
inputs to the CPU board from the S-IO bus are as follows:
XRDY
PRESET
VIO
STAT DSB
VII
DSB
VI2
C/C
ADD DSB
V13
DO DSB
ill .
SIXTN
VIS
PRDY
V16
PINT
VI?
PHOLD
in addition to the +8V and ground lines on the bus.
Based on the 8086 documentation, operating in "MAX n
mode, the following signals are available (see pages S-9
and S-ll of the MCS-86 User's Manual).
ADIS-ADO A19 , A18' AI?' A16 BHE RD S2' Sl' So
RQ/GTO' RQ/GTI
LOCK
(Copyright (C) 1981 TecMar Inc.)
8-A
-------
And the 8086 requires the following inputs:
READY INTR TEST (tie low) RESET CLK Adding an 8284 (I.C.
following outputs:
31)
RESET
OSC CLK
PCLK READY
clock generator provides the
(8086 input) (8086 input) (8086 input) and, the following inputs are required:
connect to 12, 15,
frequency crystal TANK
F/C
EFI
CSYNC
RDY2 AEN2
AENI
RDYI
RES or
24
MHz fundamental leave open for use with overtone mode crystals). tie low (input is from crystal, not EFI) tie low (unused input) tie low (unused multiprocessor sync facility) tie low tie high tie low
unused "alternate bus" ready line Adding an 8288 (I.C. 44) bus controller provides
outputs (see MCS-86 User's Manual, pages 5-33).
MRDC
MWTC
AMWC
IORDC
IOWC
AIOWC
INTA
DT/R
DEN
(Copyright (C) 1981 TecMar Inc.)
9-A
the
MCE
ALE
requiring the inputs
So
(from 8086)
S1
( from 8 0 86 )
S2
(from 8086)
CLK
(from 8284)
AEN
(tie low)
CEN
(tie high)
lOB
(tie low)
Summarizing the required inputs, we have
INTR
RDY2
RES
and the data input lines time multiplexed into AD15-ADOThe 8086's complex scheme of addressing and
intstruction look-ahead prohibits the use of a
conventional front panel for altering memory, examining
memory, or starting program execution at an arbitrary
location as is done with IMSAI or Altair 8080-based S-IOO
systems. The convention used in the systems which have no
front panel is a simple switch called "RESET" which when
pressed connects line 75 of the bus ("PRESET") to ground
and no other lights or switches.
This scheme seems to be
most reasonable for use in an 8086 system, and thus it is
adopted.
A software-based front panel could of course be
designed with lights and switches as I/O devices under
program control.
The most complicated part of the mapping between the
8086 and the S-IOO bus is in the data paths.
There are so
many functions that the only reasonable way to list them
is in a table.
(Copyright (C) 1981 TecMar Inc.)
10-A
data
source
function
data
destnation
--........ r
8-bit memory ~ or
I/O output to
an
Iiliffilre:r::e.d-p.oi t
or -location!.-­
8-bit memory
8-bit I/O ou put to
an odd numbered port
or location
16-bit memory ea
16-bit I/O output
x
or
8-bit memory I~
e ___.
8-bit I/O inpu
evenbered
or ocation
-
8-bit memory read or
8-bit I/O input from
odd-numbered port or
location
L --­
~ ----7 AD1S - AD 8
16-bit memory read or
16-bit I/O input
DI 7 - DI O D07-DOO AD1S-AD8
AD7-ADO
16-bit read
from 8-bit memory
DI 7 -DI O AD 7 -AD
AD1S-A 8
16-bit write to
8-bit memory
g
D0 7 - DOO
interrupt acknowledge
82S9A chip not
installed
interrupt acknowledge
82S9A chip installed
82S9A data
lines
These transfers are conceptually implemented as follows:
r
(Copyright (C) 1981 TecMar Inc.)
...­
ll-A
~
to
tv")
U
H
~,
a k:...
C\1
~
00
C"'.\
CO
to
<t:
'-0
co
H
0
co
'"...
:...­
......­
c-J
,.....
(f)
I
0
V
o
H
/
...
V
N
H
~
':T
C"J
VI
...j
::t-
K'""
f'..
A
'-­
...)
>'
Lj
0
V
r--+~
b
:t­
(\j
~
~
""­
~
0-
('(")
'o:t::
,
a
y
0­
VJ
...J
I-­
.-4
H co
o
<:0
c
<X)
U
r--+~
!-t c-J
Q
~
l.r;
;:j-
-,,/
«)
v
H
~
0­
V
N
H
VJ
-.J
'::t­
f'-.
l.n
«)
(Copyright (C) 1981 TecMar Inc.)
("'J
12-A
K­
The transfers needed may be organized by destination.
destination
Source
DO
AD 7 .•• AD
ADlS···A 8
01
AD15 .•• AD8
g
01
DO
on board 82S9A
01
The bus buffers will all be disabled when DO DSB is pulled
low (for DMA), or when the 8259A is acknowledging an
interrupt.
The DIR inputs of the two transceivers are
driven by the DT/R line of the bus controller (8288).
The control lines for the drivers must now be considered.
The IC's at the data bus interface are enabled as follows:
IC 80
(DO~-DO'Z):
Enab ed .tQt.
~ 8-bit write to even byte
16-bit read (even byte)
l6-bit write (even byte)
Direction
8086 to bus
bus to 8086
8086 to bus
IC 39 (010-017):
Enabled 1M
8-bit read from odd byte
~ -bit read (odd byte)
16-bit write (odd byte)
Direction
bus to 8086
bus to 8086
8086 to bus
IC 15 (0° 0 - 0 °7):
~ -bit write to odd byte
IC 38 (01 0 -01 7 ):
l 8-bit read from even byte (data is latched when AO goes high on second half of 16 bit read from 8-bit memory. ) All of these IC's also require that DEN (from 8288)
and EN (from 8259A) both be high for a transfer to take
place.
(Copyright (C) 1981 TecMar Inc.)
13-A
-------~---
The 16-bit transfer to/from 8-bit memory is
accomplished by a circuit that detects the abscence of
SIXTN when SXTRQ is active. If this happens, wait states
are inserted while the circuit holds AO low for three
clock periods and then hOlds AO high for the rest of the
bus cycle (3 more clock periods). The transfer proceeds
as if two memory operations were done back-to-back at the
even and odd byte locations. The only difference is that
the data from the even byte (IC 38) is latched while the
odd byte is read and IC 38 is still enabled.
l
5TNRQ
I
1
(,)2.
IL________________
PDB ltV
L
-PWR
LGtc~ e~r
Ao~
~~v________________
~~_
WAIT
P.5YNC--.J
(Copyright (C) 1981 TecMar Inc.)
14-A
The details on the 8259 interrupt chip are given in its
section later.
Now
that the d ata paths are taken care of, the ad dress
path (naturally) comes next.
Rather conv enti onally, this
is:
Ie 14, Ie 15
1C 37
AD Iq
-
AD 0 - - - - - - - f
20 bi t
1a tch
atch
OE
ALE (8288)
Ie 24
Ie 5 (74LS04)
ADD DSB (bus)
Associated with this is the PHANTOM line circuitry.
The extended address lines A16-A19 are or-ed and a true
output causes the PHANTOM line (S-lOO pin 67) to be pulled
low (if PHANTOM jumper is in place) whenever memory is
addressed above the lower 64K. This allows the use of RAM
cards that only decode the AO-A15 address lines in the
lower 64K without conflict above this space.
(Copyiight (C) 1981 TecMar Inc.)
l5-A
Next, the required 8086/8284 inputs INTR, RDYl, and
RES will be considered.
(the 8259A's interrupt inputs are
considered separately as well as the DMA request/grant
sequence).
The interrupt line, PINT, can indirectly drive the
INTR interrupt input of the 8086. However, if the 8259A
interrupt chip is used, i l must drive the INTR. To avoid
noise problems (from disconnected inputs), a wired strap
is used rather than an "OR" gate.
The circuitry is
simple:
+5
( connect h
ere 'lf
(bus) PINT
(8259ft.) INT
(Ie 13)
4.7
strap
10 (choose 1)
8259A not installed
so interrupts can
come from the bus)
\
',INTR 8056
I
----------------------------------4.
I
(connect here if
8259A installed)
The "ready" inputs from the bus drive the 8284 's (IC
31) RDY2 input. Both lines must be "ready" for the RDYI
line to be ready. Note that the 8284 has an "OR" between
RDYI and RDY2 so both inputs cannot be used.
Added to this is the optional wait state generator.
This adds one wait state to every bus cycle.in SlQQition to
any requested by the device being accessed. The circuit
adds a one clock duration low on the RD2 line at the end
of a low caused by another device (slow memory) or right
after the PSYNC pulse if no other wait state is requested.
The circuit is:
+sv
(Copyright (C) 1981 TecMar Inc.)
16-A
-------
The RES input of the 8284 (I.C. 31) remains.
This
input should provide power-on reset, reset in the event of
momentary power failure, and reset when the bus PRESET
line is brought low. A Schmitt trigger is provided on the
8284,so an R-C network is adequate for power-on detection
with a delay of 0.2-0.5 sec. to allow the power supply to
settle.
A diode is added to discharge the capacitor in
. the event of momentary power failure.
An open-collector
gate serves to discharge (and hold low) the capacitor as
PRESET is brought low. The complete circuit is:
Ie 31
8284
PRESET
RES
The required output signals are divided into three
groups, the command/control lines (PHLDA, PSYNC, PDBIN,
PWR), the status lines (SMEMR, SINP, SMI, SOUT, SHLTA,
SWO, SINTA, and SXTRQ), and the other lines (~2' CLOCK,
MWRITE, POC).
The command/control lines will be discussed first.
The discussion of PHLDA is reserved for the DMA
request/grant paragraph later.
PSYNC is a posi tive-going
pulse of one clock period duration at the beginning of a
bus cycle. This is accomplished by latching ALE (from the
8282) on the rising edge of the system clock CLK (from one
8284).
ALE is high for one rising CLK edge at the
beginning of each cycle. PDBIN is asserted when either
MRDC (8288) or IORC (8288) is asserted.
PWR occurs with
either AIOWC or AMWTC (8288). The schematic is
shown on
the next page.
(Copyright (C) 1981 TecMar Inc.)
17-A
I C 17
PHLDA
PHLDA
from circuit
PSYNC
ALE
::'
CL -MRDC · lORC
IN
AMWTC AIOWC PWR
10K
C/C
IC 4 The status lines are next.
SMEMR (bus) is MRDC
(8288). SINP (bus) is IORC (8288). SM 1 (bus) is decoded
f rom SO, Sl' S2 (8086) (and thi s could not be decoded
E,.nless the 8086 were operating in nMAX n mode).
Since Sp'
Sl,and S2 are valid only at the falling edge ofALE, th1s
output must be latched.
SOUT (bus) is AIOWC (8288).
SHLTA (bus) is derived from SO, Sl' and 82 in much the
same mann~r as SMI.
SWO (bus) is assertea with either
AIOWC (8288) or AMWTC (8288).
SINTA (bus) is INTA (8288).
SXTRQ (bus) is asserted for a cycle whenever both ADO and
BHE are low when ALE falls.
The schematic is thus:
(Copyright (C) 1981 TecMar Inc.)
18-A
DSB
MRDC ______________________________________________
~
SMEMR
(8288)
rORC
(8 2 8 8 - , - - - - - - - - - - - - - - - - - - - , - - - - - - - - - - - - - - d
AIOLS~
(8~88 \
_____________________________________________d
rJ
I
>-~-t
Sat
(e086)s
SL
IC 33
_
(8086) YI/ /0
,>----t_ _ _~OUT
IC 34
~____~D
80 6
-v;l{
, > - - - - t - - _......... I NP
Q~__~
SMl
"
.---...,...,
elk
IC 33
~__-+~D
Q~__~
SHLTA
lk
ALE
(8288) through inverter
AIOWC
AMWTC
-0
SI NTA '
AD
rc
C 35
0
34
Q
TRQ
+5
el k
STAT
DSB .'
(Copyright (C) 1981 TecMar Inc.)
19-A
___ This.leaves the other signals; ¢2' CLOCK, ~WRITE, and
POCo ¢2 1S the processor clock, CL~ CLOCK 1S required
to be a 2 MHz signal of 40-60% duty cycle.
When a 4MHz
8086 is used, the PCLK output of the 8284 provides a
suitable signal. When 5 MHz operation is desired, the OSC
output of the 8284 (at 15 MHz) must somehow be divided to
give 2 MHz.
Clearly it is not possible to produce a
symmetric waveform, but dividing by 8 with a reset every
15 pulses will produce a waveform which is shaped like
this.
•
•
4/15 lJsec
,
4/15 lJsec
•
•
4/15 lJsec
3/15
~I
This can be done with one 74LS16l (or 163) counter as
shown in the schematic. For 8MHz operation, the 74LS16l
is used to divide the PCLK output by two.
MWRITE poses a
serious design problem. Either it can be treated in the
older fashion and left always driving the bus as:
PWR
~+-______________D~
SOUT
­
________
______________
v:l
~~~
not
~MWRITE imp1emented
Or it can be treated as a status signal and disabled
during a DMA hold sequence, as some later designs have
done.
If the memory (and memory-mapped I/O) designer
avoids using this line, no problem will result. If no DMA
devices are used the designs are equivalent. The latter
design is selected for ease of implementation, and MWRITE
is thus AMWTC.
POC is the RESET (8284) line, which
,conveniently mirrors PRESET. We now have the schematic:
PCLK (8284)
OSC (8284)
0 .....
s ~HI2. .!''''---i 0
C
B
1k
Q
reo
~ . .J
~8MH'l.
r-----iki
,,~tl
CLOCK
C 17
SM~1.Y.'~
Cf'
QA
BMH..
IC 29
8M~:b +Sv
STAT
rus
•
9---...;y..._ _-+___
RESET
(Copyright (C) 1981 TecMar Inc.)
~+-_ _- * - _
20-A
MWRITE
POC
Next comes the DMA request/grant circuitry. It is
necessary to generate a low-true pulse of 0
CLK cycle
duration into the RIO/GTO pin of the 8086 upon receiving a
PHOLD signal. When the processor responds with a low-true
pulse through the ~ID~ pin, PHLDA is asserted on the bus.
When P-H0 LDis r e 1 e a sed, an 0 the r low - t rue p u 1 s emu s t be
generated into the pin. This circuitry will accomplish
the task:
5
D
PHOLD
Q
8086
:
IC 27
lSl
k
>--_--j RQ/GT0
Q
IC 32
(inverted
from 8284)
PHLDA
(A) (B) (C) (D) (E) is PHOLD synchronized on the falling edge of the
processor clock.
is (A) inverted and delayed one clock period; when
high the master request pulse is over.
is the RQ/GTO pin of the 8086
is high when PHLDA is asserted or RQ/GTO is low.
is high when the master request pulse is done and
either the CPU grant is being pulsed on RQ/GTO or
PHLDA is already asserted.
(Copyright (C) 1981 TecMar Inc.)
2l-A
elK
PHOl "­_ _-,
(D)
(E) "
PHLDA
------------------------~
See the reI evan t ti mi ng diag r am on p. 5-17 of In te 1 's
~~ User's Manual
.M~=
Finally there is the optional 8259A priority
interrupt controller chip and its associated circuitry.
First, what happens if the chip is not present? The EN
(8259A) line is pulled high by a pullup resistor to +5
volts and during the second INTA pulse the interrupt
address is expected to be on the DI lines on the bus. The
strap option for INTR (8086 output) was discussed earlier.
The interrupt lines are derived from VIO-VI7 on the bus;
the data lines are connected to AD~-ADO on the 8086.
A"I 0 WC (82 88 ) d r i v e s WR (82 5 9 A), I 0 RC (82 8 8 ) d r i v e s RD
(8259A).
CS is asserted when AO and A2-A8 are all low
(I/O ports a and 2).
Al (bus from 8282) drives AO
(8259A). Two consecutive even ports are chosen so that
the data lines used by the 8086 will be the same for both.
(These particular ports are those used by the INTEL DEMO­
86 monitor ROM.)
INTA (8288) drives INTA (8259A)
directly.
INT (8259A) drives INTR (8086) directly, as
discussed before.
EN (8259A) is used to disable the
outputs of the multiplexers to AD7.-ADO as discussed under
data paths. The CAS lines are left open (consigning the
8259A to operate in buffered, non-cascaded mode) because
their use would require the definition of additional bus
1 ines.
(Copyright (C) 1981 TecMar Inc.)
22-A
The schematic is thus:
IC 3
-V­
IC 3
IC 3
VI3
VI5
IR0
D,
,.I../D1 (8086)
I Rl
0 ~----------~~
IR2
Os
IR3
8259A
0"
IR4
IR5
03
f--_ _ _ _ _
6
D2
IC 13
ADs
II
II
II
II
03
A02
II
II
IR6
D1
ADl
II
VI7
IR7
Do
AD
II
AI
WR
INTA
INTA
(8288)
INT
INTR
(8086)
A
RO
AO
Ae
EN
C3
A,
A6
As
IC* 6
A"
IC 6
*
A3
C6
A2
IC 6
*
r-
Ao
(Copyright (C) 1981 TecMar Inc.)
23-A
to control
circuitry
Outside of mapping a series of logic equations into
SSI logic and selecting bus drivers for the control
signals, the design is now complete. Remaining is a check
on power consumption and design of the on-board power
supply, a timing check of the circuit to make sure that
there are no ridiculously long delays in sending data to
or taking data from the bus, and a system check to make
sure that all of the individually designed circuits will
work together.
Without going into the details of gate counts and
individual worst case supply currents, the board will
consume at most about 1,800 rna.
This means that ~~Q
conventional 7805 regulators will have to be used if they
are to regulate for the board.
Adequate bypassing and
decoupling are also necessary. Decoupling is accomplished
by an 0.1
f ceramic disk capacitor across the power
supply at the Vcc terminal of each package.
Bypassing is
inherent in the supply.
The timing check shows that at worst a 20 ns. delay
is possible in read and write operations due to bus
drivers on the card.
This must be accounted for in
specifying memory and I/O
speed.
(This assumes all
74LS parts).
The system check tUrns up an anomaly in the use of
the 8288 bus controller in systems having "wait states".
The 8288 bus controller cannot detect the occurence of a
not ready condition (wait state) and will proceed as if
said condition had not occurred.
Since the 8288 is a
static device, the clock into it can be gated to solve
this problem as follows:
READY ------;-r--...,
(8284)
\-----r-­
I---_-::C:.:.LK( 8288 )
IC 30
The gate delays are necessary to prevent glitching on
the 8288'" s CLK input. Exper imentally this circui t off er s
the largest margin against varying gate delays in either
direction so that aging and temperature will have a
minimum effect on its operation.
Electrical compliance with the S-IOO standard is
accomplished by the use of 74367 and 74368 bus drivers for
the control signals and by making pullup resistors on the
open collector bus lines 5-10K~ to be well within the
current limits. The 8282 and 74LS245 far exceed the drive
capability requirement.
(Copyright (C) 1981 TecMar Inc.)
24-A
---~
.
--­· ... .1O:MtI
?­
' ::z..
.­
. -­
·· ­
.­
I­
z:
w
z:
o
a...
::::
o
u
~cr~
.-
•
~-
gs
, .,. - - ­
CO
, .:
~
.­
I~
' .
I
..,.,-.&
.~I.-.
\D
~~
~
Ie. ...
NOTe:
"
D INDlCATE"f> 61G"'''l~ THAY ~ ~ TO C4»4f\'>r.lftJTS
"''''CII ~ 5Il0"," 0101 "".sz:r Z Of' no;s DIAlil(AM (SHeeT "2)
Z) f"NC'ItC-LCJ) ..'5 ,...",CAYEr cohP It . I., c;",res, ,WellTEiIiS Ao->D
"IE Ci"ct.e '5 o-JOT V$EJ) , lD 'P6NnPo' Qtjp TYF'I: -SEE UST
f3VF~
rJll
.
3) ONl.y .....ltr or T>£ e.PV CHip os SHOW'" HERI! - THE I<E5T OF
Ir IS J)ESCRI&EO ON S>lEET Z OF ntiS SD.<\RI)S PIA<i~"""'.
'~
+SV
v'
+
~61\1
S,OJL
AEN
zL
Ll.K.
?41S ISO
" 3C
1b,
7"'~OO
17
2.'l
,... 3>1.7
eZSB
2~
7'4 l.S ~
Zi>
74 LS04
;1<1 L5175
2 7~
Fros
TYF'IO
~~oe
9,10
29
74
~
3,3D
74
L~06
lb,
B213-4
;'2
33
~BO
35
"fwo O~
74 LStO
,~~,~ ~ J3p'
~/"t:Delli
At.£.
ALE
.,.­
14
"
.....
#141
2
¢2 ~
f'!.)R
<l>l
+sv
jJL
PRES€T 75
-
5X
,00
A.LE
~
z.f
21~T
.'10
t-!1c~~ ~. r+
4.
a-.J. ~
2
It'o.ll'lf2 1
J''1
-
"I
J'B
cU(ll9+
71~
~~~'IP~L--------------------t
c~I~>r--------------~~~~----------=
~
AI'!
AlB
AI7
AI6
B
~.~PHANTOM
8066/5-100 CPU
Re'l.O
TEUYIR INC. CI~...eI~nd . Ohio
")
A05B
ALE
DO, DOl DOl
DOl DOl DOS 1)06 007
01. 011 011 Oil D1I DIS DIG 011
DOiiSB
~
18'1
13~1
'--' ~IiilI4il~IWFI3lI1i
2
110!
~
I
17 1
1lI1 1,1
lsi
111
III
I>'
8 -~ ID e
7'1lS215
" . S IDE
31
AI'I~
-.
A18~
L, I
J
J
®
71 8
'''i
"'is ..& "A",u
••
- ~,.,.
.•
1~
~lq
~:~,;
AD 10
I
AD,
, ,
'" Oi
~,
4
""S
.,
~Z~
!II
~
~
t----c>
IZ . - ,
5TN
DOole::>;­
7 "
813
D!LR
-S
1
@ ~~
lOLl"
11-
6
~
•
<-.J
t ;
~,!O
Z/I'lISII~'liSI'll
q
.p
l r<L 1,(
- -I
"
tl l}#lli., I:ll il mJ~l l'~
IJ 1IJ
--'!'.
LL
I
~
1
~
J,
&
~
rI
{
l'
" :
I
t lill.L
I I II I 1111
I I I I
,
..
.,
H+J
I
~
-J-J
>+',qJ
J
r'
J "
"
~
AD
~ll
" lsm
,
LL
'""'la
•
AO
JI 181
I
"""ol:'
AD "
Eli
.r"~-fS\l
..#
10
01
'2 1 41 s l 61
50niJ
.--.
b1
M3
AD 11&
AD
~
.
:
I
J
"""
_
WAIT
®
I I 81 71 181
8086
"II~
1
@
OE~
7 ~ 1 ~~7 3
I'll SIISII'
?w
11
I'
'''',
...-J~Jar_s+3...,T1r..._4_r._H_h~ ~~-~>---£,0Ci
.
Sq"{e5~
111 I
G)
......
CI ALE
-I "I '1'-1 I I II [
,, 1 ••
n
'/
S
II.
AOS8
D
~~z
Jtl
I!lTR
1L­_ _ _ _
gl
3
1
ST& II
7' L< .l13
~ I_I
cZ2
.,
oe
f-i-/--1-.
10 STN
/I 1:11
PINT
loill<)"","r-"collo-II£II::
I~ I; r~ I~ I~
I;: I~ 15
MII~l§l~~~~~
,....
q:
....
N
ot ot
p')
«
~
11)
I.Q
q:
q:
<c
G
<:'
8086/5-too CPU
...11 ...1/
:;;11:;;11 ::?I 1121 1ctll~
COO""Q.
= :::!~~!1
«<<.:<<cr<
'"'"
I~f!!
IK: AL I. :
0 ....
3('1181
TEC.H~"
Rc.\I. D
I
No, t,.
UK.
,u.V,.IlD
CLEVEL~NO,OHIO
O. Kce'\e.
10 - 7 - 81
P IIlAWN.V
If.
2­
PARTS LIST
8086/S-100 BUS
I.C.#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
~1.
COMPONENTS
PART TYPE MID NUMBER
OUANTITY
74LS32
1
IN915 DIODE
74LS05
100K~ RESISTOR
1
74LS04
lK~ RESISTORS
3
74LS04
6
4. 7K~ RESISTORS
74LS04
4.7K~ RESISTOR NETWORKS
2
74LS05
BOURNS#4310R-I01-472
8282
29
O.I~f CERAMIC DECOUPLING
74LS245
CAPACITORS
74368
5
18~f TANTALUM CAPACITORS
74368
15VWDC
74LS136
1
CRYSTAL
74LSll
12.0 MHz. for 4 MHz. CPU
8259A
15.0 MHZ. for 5 MHz. CPU
24.0 MHz. for 8 MHz. CPU
8282
8282
7895 VOLTAGE REGULATORS
2
74LSOO
HEAT SINKS
2
8T97 or 74367
THERMALLOY#6107-14
74LS04
74164
74125
7
JUMPER CONNECTORS
74LSOO
74LS74
74LS32
8288
74LS74
74LS04
74LS175
74LS08
74LS161 (for 5 MHz. or 8 MHz.)
74LS08
8284
8086
74LSI0
74LS175
74LS02
74LSOO
74LS173
81LS95
74LS245
(Copyright (C) 1981 TecMar Inc.)
28-A
SET-UP
8086/S-100 CPU - INTERRUPT
Boards built and tested by Tecmar Inc. will have all
jumpers in place for the processor speed purchased. The
options will be set as follows:
1. 16 bit operation only
2. No wait state (except for 8 MHz boards which will
have the wait state option selected
3. PHANTOM line driver not connected
4. 8259A vectored interrupt selected
No set-up is needed for these boards. If one desires
to change this set-up or if the board was
not built and
tested by Tecmar, see the Jumper Summary that follows.
If
changing the processor speed, remember to change the
crystal also; 12.000MHz crystal for 4MHz operation, 15.000
MHz for 5MHz or 24.000MHz for 8MHz.
Also note that an
8086 chip will run at slower speeds than it is rated but
not at faster speeds; i.e. don't expect to run an 8086-4
(4MHz version) at 8MHz.
(Copyright (C) 1981 TecMar Inc.)
29-A
JUMPER SUMMARY
8086/S-l00 CPU - INTERRUPT
There are nine jumper locations on the board that are
used for setting the operating speed and selecting the
optional features on the board.
All illustrations of
jumper placement are in the same orientation as on the
parts placement diagram.
See the diagram for position of
jumpers.
NOTE: 50 0
means place the small jumper connector so
that it connects (covers) the two jumper pins that are
connected by the., , the third pin will have nothing on
it.
Jl: PHANTOM jumper.
Put a jumper here to cause the
PHANTOM line (S-IOO pin 67) to be pulled low whenever
the CPU addresses memory above the lower 64K. This
allows an older memory card with a l6-bit address to
be used in the lower 64K (as long as the memoy cards
also have a PHANTOM line connection).
If there is no
jumper here, the CPU card has no affect on PHANTOM.
J2:
Selection of 8259A or PINT interrupt operation.
A) 000
For operation with 8259A vectored interrupt
chip
B) 066 For operation of interrupts with the PINT
line(S-lOO pin 73)
J3:
Selection of the l6-bit transfers from 8-bit memory
option.
A) 00 0 Jumper this way if all of system memory is
16 bits wide
B) 006 Jumper this way if any of system memory is
8 bit only memory
J6: Selection of optional wait state.
A)~
with jumper this way the CPU board will insert
o a wait state,
in addition to any wait state
requested by the device being accessed, in every
bus cycle. This is needed for 8 MHz operation
or for use with very slow memory.
B)o with jumper this way no extra wait states
~ will be added.
All other jumpers are for CPU speed selection and should
not be changed unless the crystal is changed also (see
system set-up).
J4: This jumper is in for 5 or 4 MHz operation, out for 8
MHz.
J5: This jumper is in for 8 MHz operation, out for 5 or 4
MHz.
(Copyright (C) 1981 TecMar Inc.)
30-A
J7:
J8:
This jumper is in for 5 MHz operation, out for 4 or 8
MHz.
60
For 8 MHz operation
For 4 MHz operation
No jumper for 5 MHz operation
<:>
J9:
0
60
For 5 MHz operation
For 8 MHz operation
No jumper for 4 MHz operation
50
<:>
o.r6
(Copyright (C) 1981 TecMar Inc.)
31-A
TIMING REQUIREMENTS
8086/S-l00 CPU - INTERRUPT
Parameter
AM.H.z
.5..MHz
lllliz
read pulse
address to read puIs
SOOns
80ns
400ns
6Sns
2S0ns
40ns
write pulse width
address to write pulse
SOOns
80ns
400ns
-6Sns
2S0ns
40ns
worst-case minimum access
time from read strobe
worst-case write cycle time
480ns
1000ns
380ns
800ns
230ns
SOOns
These timing requirements refer to memory boards not
memory chips. The bus driver delays on the board will
require chips to have access times that are around SOns.
faster than the board timing requirement.
These read and write times also apply to I/O devices -­
note that standard 82SlA requires a read pulse of 2S0ns
and a write pulse of 2S0ns with data setup of lSOns, so a
write state is required on write operations. The standard
82SSA requires a read pulse width of 300ns and a write
pulse width of 400ns with a lOOns data setup time and 30ns
hold time, so it requires a wait state also.
r
(Copyright (C) 1981 TecMar Inc.)
32-A
8086 CPU BUS
TIMI~G
WITH
O~[
WAIT STATE
,..--­
~2
Tl
T'2.
~
..
,I.
IT3
1
IT~!~____
ALE ~
P.5 ~ NC.
--'X-----------------------------------------------
Add (" e.S5 _ _
SMl
SXTRQ
__x~__~~--------------------______
~)(~_______A__c_t_'_v_~______________J><__------------­
PDBIN
-
PWR
XI\DV
- 0"
P~DY
(Copyright (C) 1981 TecMar Inc.)
33-A
CRITICAL TIMING SIGNALS
8086/S-100 CPU - INTERRUPT
Please observe that all signals are necessary to the
oeration of the board; there are very few failures that
will not "crash the system".
CLK processor clock - without thi s nothing will wor k (4,
5, or 8 MHz) also check this at pin 2 of the 8288 and look
for glitches.
data path gating signals:
DI bus:
OE
DIR
EN
STB
DO bus:
OE
DIR
ENI
EN2
Address bus:
OE
ALE
I.C.
39
39
38
38
Pin #
19
1
9
11
8
8
15
15
19
1
1
19
7
14
37
7
14
37
24
9
9
1,2
11
11
7
3
(ALE inverted)
from bus:
SIXTN
(absence of this signal on 16-bit
operations to 16-bit memory will cause the operation to
fail).
Proper 8086 operation can be diagnosed by examining the
outputs of the 8288 controller chip while single-stepping
the processor and comparing them to the operations implied
by the software.
FOR EXAMPLE SEE NEXT SECTION.
(Copyright (C) 1981 TecMar Inc.)
34-A
DIAGNOSTIC AIDS 8086/S-100 CPU - INTERRUPT The 8086 board set is fully static in that it can be
single-cycled from the bus. Note however that only memory
or I/O cycles may be extended to yield useful information
on the bus. If a known program is being executed (i.e. a
ROM monitor or bootstrap upon startup) the sequence of
instruction fetches of data accesses as well as I/O
operations may be observed with the use of:
1) A device to drive the XRDY (pin 3) line low from
the time that PSYNC is high and »~(8086 clock) is
low until a (debounced) pushbutton is depressed.
It should be possible to disable this circuit by
means of a double-throw toggle switch.
These are
the single cycle and run/stop switches
respectively.
2) Some means for displaying the states of
bus lines. If a lot of time is available,
probe will do.
Otherwise, you will
display panel which captures every line
the bus.
all the
a logic
need a
used on
3) A logic probe or clip-on display to show the
logic states of all 37 signal lines on the 8086
chip itself, and on any other package desired.
The technique consists of resetting the processor while
the run/stop switch is at "stop", and then examining the
bus data, address, status, and control information for
incorrect signals.
If an incorrect signal is found, it
should be traced back to the I.C. it originates at (for
address signals, the 8282: data signals through
the
74LS245's or the other two data buffers).
Bus cycles should be repeatedly examined until the program
appears to execute correctly, having performed:
.. 1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
16-bit memory read
8-bit memory read from an odd location (AO=l)
8-bit memory read from an even location (AO=O)
16-bit memory write
8-bit memory write to an odd location (AO=l)
8-bit memory write to an even location (AO=O)
I/O input operation
I/O output operation
16-bit read from 8-bit memory (if 8-bit memory
is present)
16-bit write to 8-bit memory
(Copyright (C) 1981 TecMar Inc.)
35-A
If all those operations appear successful, the problem is
probably either
1) bus noise (are you using an active terminator
card? Is the bus adequately shielded?)
2) bus signal risetime problem (do all your boards
conform to the electrical portion of the proposed
S-IOO specification?)
3) bus contention (is another device dynamically
driving the bus due to faulty address decoding
logic or control logic?
In single-stepping a program, do not forget that the 8086
pre-fetches instructions.
It is, therefore, necessary to
keep track of where it should be going and nQt decide that
you have a defective processor chip when instructions are
fetched beyond a jump which should have been taken.
Here is an example taken from the first few instructions
of the INTEL Demo-86 monitor:
FFFFO
FF6BC
FF6BD
FF6C2
JMP
CLI
MOV
MOV
FF6B8
1000
FF60:00BC
EA
FA
2E
BC
SS,CS:00B8
SP,07CO
BCOO
60FF
8E 16
07CO
First cycle:
FFFFO
DI=BC DO=EA SMEMR=l,SXTRQ=O, SMl=l,
Second cycle:
n
n
FFFF2
DI=60 DO=OO
"
Third cycle:
n
n
"
FFFF4
DI=XX DO=FF
insert possible additional fetch cycle at FFFF6
Next cycle:
DI=2E DO=FA SMEMR=l,SXTRQ=O, SMl=l,
FF6BC
00B8
PDBIN=l
n
n
PDBIN=l
And so on.
Please note that in order to implement this debugging
technique, an intimate knowledge of the hardware and a
listing of the software, a well as special hardware is
required.
Conventional 8080 front panels will n~ work
and may damage the 8086 board set if their use .is
attempted.
In the example given above, assume that on a memory
read operation the correct information is found on the
bus, but the processor acts as if it had received
incorrect data (Le. jumps into nonexistent memory). In
this cae, reset the processor again and compare the data
signals at the processor pins ADIS to
ADO with the
apropriate DI7 to DIO and D07 to DOO signals respectively.
(Copyright (C) 1981 TecMar Inc.)
36-A
If they are not the same at, say,
bit 3 (i.e. 003 is
not the same as A03)' trace the 003 signal into pin 15 of
IC8 (74LS245), verl.fy that it is tl1e same at pin 5 and at
pin 13 of the 8086. The location of the failure must then
be in the node which first has an incorrect signal (such
as a shorted of broken trace) or in the device driving
that node (i.e. bad IC) or in a device receiving data from
that node (Le. bad IC shorting input to +5 or ground).
(Copyright (C) 1981 TecMar Inc.)
37-A
LIMITATIONS
8086/S-100 CPU - INTERRUPT
1. Due to the complex nature of the 8086 addressing
scheme it is essentially infeasible to implement a
front panel in the manner done on the IMSAI and ALTAIR
machines.
The reset, run/stop, and single-step features of those
front panels as well as a bus display (the address,
data, and status lights) can be implemented in a
manner similar to those front panels with the addition
of status display lights on SXTRQ and SIXTN.
Altering memory could be accomplished through the use
of a DMA scheme, but starting program execution at a
particular point would be completely infeasible from a
front-panel-like device.
Therefore, it is recommended that the machine be set
up with a terminal-oriented monitor.
It has a power­
on jump feature (to fixed address FFFFOH) and a simple
monitor is available from INTEL in a pair of 2616
PROMs.
A front panel effect could also be achieved by storing
in ROM a program to treat a set of lights and switches
as I/O devices and emulate a front panel, but that
-implementation sacrifices the ability to single-step a
program.
2. The 8086 system for the S-IOO bus meets all of the
requirements for a bus master outlined in the proposed
standard published in the March 1979 IEEE Computer
magazine, except that it is faster.
It uses no lines that are specified as undefined or
reserved for future use.
It also does not use the
STVAL (sta t us val i d) 1 ine whi ch was not well def ined
in the proposed standard 'and is not even needed since
the status lines are valid immediately following the
PSYC pulse.
It drives the following lines which are not considered
type "M" (master) signals:
~2
CLOCK
MWRITE
POC
24
49
68 - disabled by STAT DSB low
99
(Copyright (C) 1981 TecMar Inc.)
38-A
The CPU card treats PRESET (75) as an open-collector
input (or momentary normally-open switch to ground)
and emits a low on the POC line when that input is
asserted exactly as if the power had just been turned
on.
The PINT line is ignored by the CPU if the vectored
interrupt option is instaled on the CPU ' card.
(See
jumper summary).
Note that the response to the INTA signal by the
interrupt controller or interupting device for the
8086 is ENTIRELY different from the response on an
8080 system.
(The 8086 requires that a one-byte
interrupt type be put on the bus, whereas the 8080
requires than an instruction be put onto the bus.)
For this reason the use of the vectored interrupt
option on the CPU card is recommended whenever
interrupts are to be used.
The system presently runs on a ~2 clock of 5 MHz as
the standard. The system can alsolbe used with 4 or 8
MHz 8086's, but at 8MHz this is faster than the S-lOO
standard indicates.
To run at 8 MHz the wait state
option will have to be used as there will probably not
be very many devices in the system that can run that
fast.
The wait state option will slow bus operations
down to a reasonable speed while allowing internal
8086 operations to proceed at 8 MHz. Devices which use
the ~2 clock as a timing base for external operations
assuml.ng that it is 2MHz should be modified to use the
CLOCK (49) signal which is 2MHz.
Note:
in 5 MHz
systems the CLOCK signal will not be symmetrical.
Note that unlike the 8080, the 8086 does llQt duplicate
the 8-bit I/O address on A15-A8and A7-AO, but rather
uses a full 16-bit address for I/O devices.
I/O
mapped
boards accessing lines A15 through A8 as
substitutes for A7 through AO will need to be
addressed differently in software as opposed to the
way they were on the 8080.
The extended address bits
are all zero for an I/O operation.
(Copyright (C) 1981 TecMar Inc.)
39-A