1984_Intel_Microsystem_Components_Handbook_Volume_1 1984 Intel Microsystem Components Handbook Volume 1

User Manual: 1984_Intel_Microsystem_Components_Handbook_Volume_1

Open the PDF directly: View PDF PDF.
Page Count: 1283

Download1984_Intel_Microsystem_Components_Handbook_Volume_1 1984 Intel Microsystem Components Handbook Volume 1
Open PDF In BrowserView PDF
LITERATURE
In addition to the product line Handbooks listed below. the INTEL PRODUCT GUIDE (no charge. Order
No. 210846) provides an overview of Intel's complete product line and customer services.
Consult the INTEL LITERATURE GUIDE fora complete listing oflntelliterature. TO ORDER literature
in the United States. write or call the Intel Literature Department. 3065 Bowers Avenue. Santa Clara. C A
95051. (800) 538-1876. or (800) 672-1833 (California only). TO ORDER literature from international
locatiom. contact the nearest Intel sales office or distributor (see listings In the back of most any Intel
lIterature).

1984 HANDBOOKS

U.S. PRICE*

Memory Components Handbook (Order No. 210830)
application notes. article reprints. data sheets. and other de~ign information
on RAMs. DRAMs. EPROMs. E2PROMs. Bubble Memorie,.

$15.00

Telecommunication Products Handbook (Order No. 230730)
Contains all application note~. article reprinb. and data ,heel!> for telecommunication
products.

7.50

Microcontroller Handbook (Order No. 210918)
Contains all application notes. article reprints. data ,heet~. and de~lgn Information for the
MCS-48. MCS-51 and MCS-96 familIes.

15.00

Microsystem Components Handbook (Order No. 230843)
applicatIOn notes. article reprints. data sheets. techmcal paper, for microproces~ors and peripherab. (2 Volume~) (Individual User Manuab are abo avaIlable on the
8085. 8086, 8088. 186, 286. etc. Consult the Literature GUide for price, and order
numbers.)

20.00

Military Handbook (Order No. 210461)
Contains complete data sheets for all military products. Information on Leadless Chip
Carriers and on Quality Assurance is al~o included.

10.00

Development Systems Handbook (Order No. 210940)
Contains data sheets on development systems and software, support options, and design
kits.

10.00

OEM Systems Handbook (Order No. 210941)
Contains all data sheets, application notes, and article reprints for OEM boards and
systems.

15.00

Software Handbook (Order No. 230786)
Contains all data sheets, applications notes, and article reprints available directly
from Intel, as well as 3rd Party software.

10.00

Contain~ all

Contain~

* Prices are for the U.S. only.

MICROSYSTEM

COMPONENTS HANDBOOK
'VOLUME 1

1984

Intel Corporation makes no warranty for the use of its products and assumes no responsibility for any errors which may appear in
this document nor does it make a commitment to update the information contained herein.
Intel retains the right to make changes to these specifications at any time, without notice.
, Contact your local sales office to obtain the latest specifications before placing your order.
The following are trademarks of Intel Corporation and may only be used to identify Intel Products:
BITBUS, COMMputer, CREDIT, Data Pipeline, GENIUS,' i, f, ICE, iCS, iDBP,
iDIS, 12 1CE, iL.,BX, im, iMMX, Insite, Intel, intal, intaiBOS, Intelevision, inteligent
Identifier, intaligent Programming, Intenec, Intellirik, iOSP, iPD~, iSBC, iSBX,
iSDM, iSXM, Library Manager, MCS, Megachassis, MICROMAINFRAME, MULTIBUS, MULTICHANNEL, MULTIMODULE, Plug-A-Bubble, PROMPT,
Promware, QUEST, QUEX, Ripplemode, RMX/SO, RUPI, Seamless, SOLO,
SYSTEM 2000, and UPI, and the combination of ICE, iCS, iRMX, iSBC, MCS, or
UPI and a numerical suffix.
MDS is an ordering code only and is not used as a product name or trademark. MDS® is a registered trademark of Mohawk Data
Sciences Corporation.
"
\
• MULTI BUS is a patented Intel bus.
Additional copies of this manual or other Intel literature may be obtained from:
Intel Corporation
Literature Department
3065 Bowers Avenue
Santa Clara, CA 95051

@ INTEL CORPORATION. 1983

Table of Contents
CHAPTER 1
OVERVIEW
Introduction. . . . • . . . . . . . . . . • . • • . . . . • . . . . . • . . . . . • . . . . . . • • . • . • • . • . . • . • • . . • • • • • • • • • • • • •

1-1

CHAPTER 2
MCP-80/85 MICROPROCESSORS
DATA SHEETS
8080Al8080A-11.8080A02, 8-Bit N-Channel Microprocessor ••••.••••.••••••• '........
8085AH/8085 AH-218085AH-1 8-Bit ,HMOS MicroproceSsors ••••••••••••.•••••••••••
8085A18085A-2 Single Chip 8-Bit N-Channel Microprocessors ...•••••••.•.•••••••••
8155H/8156H/8155H-2/8156H-2, 2048-Bit Static HMOS RAM
with I/O Ports and Timer ••.••••••••••••.•••••••••••••••••.•.••.••••••••••• ".
8155/8156/8155-218156-2, 2048-Blt Static MOS RAM with 1/0 Ports and'Timer ....•...
8185/8185-2, 1024 x 8-Bit Static RAM for MCS-85 •.•••.•..••.••••.•••.••.••••.••••.
8205 High Speed 1 OlJt of 8 Binary Decoder •.•..•.••• " • • . . • • • . . • . . • • . • • . • • . • • . . . .
8212 8-Bit Input/Output Port .••.•..•.•...•.••.•• , .. ,.............................
821618226, 4-Bit Parallel Bidirectional Bus Driver •••'...............................
821818219 Bipolar Microcomputer Bus Controllers for MCs-aO and MCS-85 Family ...
8224 Clock Generator and Driver for 8080A CPU ..•••.•.•••••••..•.•••••.•••.•..•.
8228/8238 System Controller and Bus Driver for 8080A CPU .......•..••...•.••..•.•
8237A18237A-4/8237A~ High Performance Programmable DMA Controller..........
8257/8257-5 Programmable DMA Controller •..........•...••.........• ". • • . • • . . • .•
8259A18259A-2/8259A-8 Programmable Interrupt Controller .•.••..•.•.•••... ,., •....
8355/8355-2, 16,384-Bit ROM with I/O .......•.................•.....•..•..•..••.•
8755A18755A-2, 16,384-Bit EPROM with I/O ........................................

2-1
2-10
2-26
2-30
2-42
2-45
2-50
2-55
2-63
2-68
2-79
2-84
2-88
2-103
2-120
2-138
2-146

CHAPTER 3
IAPX 86, 88, 186, 188 MICROPROCESSORS
APPLICATION NOTES
AP-113 Getting Started with the Numeric Data Processor...........................
AP-122 Hard Disk Controller Design USing the Intel 8089 ...•..... ~ . . . . • . . • . •• • . • . . •
AP-123 Graphic CRT Design Using the iAPX 86/11 ..•....•..
AP-143 Using the iAPX 86/20 Numeric Data Processor
in a Small Business Computer ..........................
AP-144 Three Dimensional Graphics Application of the
iAPX 86/20 Numeric Data PrOcessor ••.••••
AP-186 Introduction to the 80186
o. o. o.
DATA SHEETS
iAPX 86/10 16-Bit HMOS Microprocessor
o.
iAPX 186 High Integration 16-Bit Microprocessor
iAPX 88/10 8-Bit HMOS Microprocessor
iAPX 188 High Integration 8-Bit Microprocessor
8089 8/16-Bit HMOS I/O Processor
~
o.
8087 Numeric Data Coprocessor
o.
~
.'
80130/8013(}'2 iAPX 86/30, 88/30, 186/30, 188/30 iRMX 86
Operating System Processors
80150/8015(}'2 iAPX 86/50, 88/50. 186/50, 188150 CPlM*-86
'
o.
Operating System Proc:essors .......
828218283 Octal Latch .
~',
82~Al8284A-1 Clock Generator and Driver for iAPX 86, 88 Processors
o.
~
8286/8287 Octal Bus Transceiver .......
8288 Bus Controller for iAPX 86, 88 Processors .
8289/8289-1 Bus Arbiter
o.
o. o.
0

•

0

0

••

0

••

0

•

,

..

•

..

••••••••••••

0

•••••

0

•••••

0

0

0000

••

0

••••••

0

00'

0

0

0

0

00

••

0

0

••

0

••••

0

0

0

0

0"

••

•••

0

0

0

0

0

0

0

•••

0

0

0

0

0

0

0

0

0

0"

0

•••••

0,'

0

0

0

•

0

0

•

0

0

0

••

0

0

0

•

0

0

•

0

•

0

0

0

0

0

•

0

0

0

0

•

0

0

0

•••

000

0

0

0

0

•

0

•

0

••

...

0

0"

0

0

0

0

0

0

0

0

0

0

0

000.

0

0

0

0

0

0

0

•

o •••

0

000..

0

•

0

0

0

0

0

0

0000

••

0

••

0

0

•

0

0

•

•

0

0

0

0

0

0

0

•

0

•

0

0

0

0

•

0

0

0

0

0

0

0

0

•

0

•

0

0

0

0

0

•

0

••••••••

0

••

0

0

0

............

0

••••

....

0

••

00.0

0

0

•••••

0

••

0

•

0

•

0

•

•

•

•

•

•

•

•

0

• • • • 0, • • • • • •

0

0

0

0

0

0

0

••••••

0

• • • • • • • • • • • • • • '.

•

0

••

0"

:.0.0.0

00.0

•••••••

0

•

0

:

•

•

•

........................

••••

•

•

•••

••

0',

0

•

00

0

00.00

....... :

0

0

0

••••••

••

0000000.

0

0

0

••••••••••••••••••••••

00'

00

••••••••••••

0

..

0;

0

••

••••

00

0

..

.....

0

0

•

0

••

•••

0

••••

••

0.'

•••••

0

'.'.

•

•

0

•••

•

•

.' . . .

•

•

0

••

:....

...........

0"

0

:0 • • • • • • • • •

. . . . ,: . .

0

0

o.

0",'

0"

0

...

0.:.0..

•

•

•

3-1
3-62
3-123
3-194
3-217
3-256
3-334
3-358
3-412
3-439
3-494
3-508
3-529
3-551
3-562
3-567
3-575
3-580
3-587

CHAPTER 4
IAPX 286 MICROPROCESSORS
, DATA SHEETS
iAPX 286/10 High Performance Microprocessor
•
with Memory Management and Protection ....
80287 80-Bit HMOS Numeric Processor Extension ..
82284 Clock Generator and Ready Interface for iAPX 286 Processors
82288 Bus Controller for iAPX 286 Processors o.
0

0

'CP/M-S6 is a Trademark of Digital Research.,1nc,

0

0

.....

0

0

0

0

•••••

••••••••

0

,

o . . . . . . . .' ••••

•••

0

••

0

0

•

••••••••••••••

0

0

••

0

••

o ••

0

00

•

•

•

•

•

••••••••

0

•

••

0"

••

0

•

4-1
4-52
4-76
4-83

CHAPTERS
IAPX 432 MICROMAINFRAME™
DATA SHEETS
iAPX 43201/43202 Fault Tolerant General, Data Processor .........•.......... ,: : .... .
iAPX 43203 Fault Tolerant Interface, Processor •.......... " ............••. ',' ...... .
iAPX 43204/43205 Fal!It''rolerant 'aus Interface and Memory Control Units .......... .

5-1
5-53
5-85

CHAPTER 6
MEMORY CONTROLLERS
APPLICATiON NOTES
AP-97A Interfacing Dynamic RAM to 'IAPX' 86/88 Using the 8202A & 8203 ..•.....•...
AP-141 8203/8206/2164A Memory Design':....... ............. ..................•.
AP-167 Interfacing the 8207 DYnamic RAM Controller to the iAPX 186 ..•............
AP-168 Interfacing the 8207 Advanced Dynamic RAM Confroller to' the iAPX 286 .....
ARTICLE REPRINTS
AR'-231 Dynamic RAM Controller Orchestrates Memory Systems ...•......•........
TECHNICAL PAPERS
'
'
System Oriented RAM Controller' .............................• : • . . . . . . . . . . . . . . . .
, NMOS DRAM Controller ............ :............................................
DATA SHEETS
8202A Dynamic RAM Controller ....................... ~ ..... ~ .. ; .... ; . . . . . . . . . . .
8203 64K Dynamic RAM Controller .... , . ',' . . . . .. . . . . . . . . . . . . . . . . . • . . . • . . . . . . . . • . .
82C03 CMOS 64K Dynamic RAM Controller ...................................•,"
8206/8206-2 Error Detection and Correction Unit .......•..........................
8207 Advanced Dynamic RAM Controller .... :. '.... , .......... : . . . . . . . . . . . . . . . . . ..
8208 Dynamic RAM Controller ...... , ... '......................................•..
USERS MANUAL
Introduction .......... : ...... '; ......... ::: .......................................
Programming the 8207 ....•. : .......... '........ .' ...........................•....
RAM Interface ............. : .............. ::'.....•.......... ; ...................
Microprocessor Interfaces ..................•..... : .........................•....
8207 with ECC (8206) .............. : ................... ,........................
Appendix, .... : ............................ : .........• '..............•...........

6-1
6-37
6-43
6-48
6-55
6-62
6-73
6-77
6-91
6-106
6-119
6-152
6-199
6-218
6-219
6-224
6-233
6-241
6-244

-VOLUME2SUPPORT PERIPHERALS
APPLICATION NOTES
, AP-153 DeSigning with the 8256 ..................................................
DATA SHEETS
' ,
8231 A Arithmetic processing Unit ................................................
8253/8253-5 ProgrammablE! Interval Timer ..............•.........................
8254 Programmable Interval Timer ............ '.. '.................................
8255A18255A-5 Programmable Peripheral Interface ................................
8256AH Multifunctional Universal Asynchronous Receiver Transmitter (MUART) .....
8279/8279-5 Programmable Keyboard/Display Interface ................ ; • . . . . . . . . .•
82285 Clock Generator and Ready Interface for I/O Coprocessors ..................
FLOPPY DISK CONTROLLERS '"
APPLICATION NOTES
AP-116 An 'Intelligent Data Base System Using the 8272 ....... , ......•.............
AP~121 Software Desigriand Implementation of Floppy Di'sk Systems ...............
DATA SHEETS
8271/8271-6 Programmable Floppy Disk Controller .....,...............•.•.........
8272A Single/Double Density Floppy Disk Controller .....................•........
HARD DISK CONTROLLERS
DATA SHEETS
,
,
82062 Winchester Disk Controller ................. : ........ '." . : : . . .. . . .. .. . . . . ..

6-248
6-321
6-331
6-342
6-358
6-379
6-402
6-414

6-421
6-455
6-524
6-553

6-572

i
I

UPI USERS MANUAL
Introduction •........................................•.................•........
Functional Description .................... ,.....................................
Instruction Set .........•........•..............................................
Single-Step, Programming, and Power-Down Modes ...............................
System Operation .....•.•..•.....•.•...•.......................................
Applications . ~ . . . . . . . . . . . • . • . . . . . . • . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
DATA SHEETS
8041A18641A18741A Universal Peripheral Interface 8-Bit Microcomputer ..........•..
8042/8742 Universal Peripheral Interface 8-Bit Microcomputer •...... : ..............
8243 MCS-48 InpuVOutput Expander .............. ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
8295 Dot Matrix Printer Controller .• . . . • . . • . . • . . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
SYSTEM SUPPORT
ICE-428042 In-Circuit Emulator ................. : ....................•..........
MCS-48 Diskette-Based Software Support Package .... . . . . . • . . . . . . . . . . . . . . . . . . . . ..
iUP-2oo/iUP-201 Universal PROM Programmers .............•...........•.........

'6-598
6-602
6-619
6-646
6-651
6-657
6-777
6-789
6-803
6-809
6-818
6-826
6-828

CHAPTER 7
DATA COMMUNICATIONS
INTRODUCTION
Intel Data Communications Family Overview ...................................•..
GLOBAL COMMUNICATIONS
APPLICATION NOTES
AP-16 Using the 8251 Universal Synchronous/Asynchrono'us Receiver/Transmitter. . . .
AP-36 Using the 8273 SDLC/HDLC Protocol Controller............................
AP-134 Asynchronous Communications with the 8274 Multiple Protocol
Serial Controller .........................................................
AP-145 Synchronous Communications with the 8274 Multiple Protocol
Serial Controller ...... '...... ... .............. .... .......... .. . .. .........
DATA SHEETS
8251A Programmable Communication Interface ........ :..........................
8273/8273-4 Programmable HDLC/SDLC Protocol Controller .......................
8274 Multi-Protocol Serial Controller (MPSC) .....................................
82530/8253-6 Serial Communications Controller (SCC) ............................
LOCAL AREA NETWORKS
ARTICLE REPRINTS
AR-186 LAN Proposed for Work Stations ............................. : . . . . . . . . . . ..
AR~237 System Level Fu!,)ctions Enhance Controller ...............................
DATA SHEETS
82501 Ethernet Serial Interface ...................................................
82586 Local Area Network Coprocessor ..........................................
OTHER DATA COMMUNICATIONS
APPLICATION NOTES
AP-66 Using the 8292 GPIB Controller ............ \ ...............................
AP-166 Using the 8291 A GPIB Talker/Listener .................. : •.................
ARTICLE REPRINTS
AR-208 LSI Transceiver Chips Complete GPIB Interface. . . . . . . . . . . . . . . . . . . . . . . . . . ..
. AR-113 LSI Chips Ease Standard 488 Bus Interfacing ...... ,........................
TUTORIAL
,
Data Encryption Tutorial ............ .'...........................................
DATA SHEETS
8291A GPIB Talker/Listener ......................................................
8292 GPIB Controller ...........................................................
8293 GPIB Tranceiver ... ; ..................•....................................
8294A Data Encryption Unit ............. :.......................................

7-1

7-3
7-33
7-79
7-116
7-155
7-172
7-200
7-237
7-266
7-272
7-276
7-287
7-322
7-375
7-407
7-414
7-424
7-425
7-454
7-469
7-481

CHAPTER 8
ALPHANUMERIC TERMINAL CONTROLLERS
APPLICATION NOTES
AP-62 A Low Cost CRT Terminal Using the 8275 .,. '" . . .. . . . . .. ... . . . . . . .. ... .. . ..
ARTICLE REPRINTS
AR-178 A Low Cost CRT Terminal Does More with Less............................
DATA SHEETS
8275 Programmable CRT Controller ..............................................
8276 Small System CRT Controller ............................... :...............
GRAPHICS DiSpLAY PRODUCTS
ARTICLE REPRINTS
AR-255 Dedicated VLSI Chip Lightens Graphic Display Design Load ................
AR-298 Graphics Chip Makes Low Cost High Resolution. Color Displays Possible ....
DATA SHEETS
82720 Graphics Display Controller ...............................................
TEXT PROCESSING PRODUCTS
ARTICLE REPRINTS
AR-305 Text Coprocessor Brings Quality to CRT Displays ..........................
AR-296 Mighty Chips ...........................................................
AR-297 VLSI Coprocessor Delivers High Quality Displays ............ '........... , ..
DATA SHEETS
82730 Text Coprocessor ............................................ : .•..........
82731 Video Interface Controller ......................................•..........

8-1
8-43
8-50
8-74
8-91
8-99
8-106

8-144
8-151
8-156
8-159
8-199

CHAPTER 9
PACKAGING

9-1

Overview

1

INTRODUCTION

replacing numerous parts, microprocessor and peripheral
solutions can contribute dramaticaUy to a lower product
cost.

Intel microprocessors and peripherals provide a complete
solution in increasingly complex application ellviranments. Quite often, a single peripheral device will replace
anywhere from 20 to 100 TIL devices (and the a:ssociated
design time that goes with them).

HIGHER SYSTEM PERFORMANCE
Intel microprocessors ,and peripherals provide the highest
system performance for the demands of today's (and'
tommorrow's) microprocessor-based applications. For
example, the iAPX 286 CpU, with its on-chip memory
management and protection, offers th~ highest performance for multitasking,' multiuser systems .

Built-in functions and,a standard Intel microprocessor!
peripheral interface deliver very real time and per/ormance advantages to the designer of microprocessorbased systems.

. REDUCED TIME TO MARKET
i

HOW TO USE THE GUIDE

When you can purchase an off-the-shelf solution that
replaces a number of discrete devices, you're also replacing aU the design, testing, and debug time that goes
with them.
'

The foJlowing application guide illustrates the range of
microprocessors and peripherals that can be used for the
applications in the vertical column on the left. The peripherals are grouped by the I/O function they control:
CRT, datacommunication, universal (user programmable). mass storage, dynamic RAM's, and CPU/bus
support.

INCREASED RELIABILITY
At Intel, the rate offailure for devices is carefuJly tracked.
Reliability is a tangible goal, and today we're measuring
field failures in terms ofparts per million/ That translates
to higher reliability for your product, reduced downtime,
and reduced repair costs. And as more and more functions are integrated on a single VLSI device, the resulting
system requires less power, produces less heat, and
requires fewer mechanical connections-again resulting
in greater system reliability.
'"

An "X" in a horizontal application row indicates a potential peripheral or CPU, depending upon the features
desired. For example, a conversational terminal could
use either of the three display controUers, depending
upon features like the number of characters per row or
font capability. A "Y" indicates a likely candidate, for
example, the 8272A Floppy Disk ControUer in a smaJl
business computer.

LOWER PRODUCT COST
By minimizing design time, increasing reliability, and

The Intel microprocessor and peripherals family provides
a broad range of time-saving, high performance solutions.

1-1

POTENTIAL CANDIDATE X-TYPICAL CANDIDATE Y
"PROCESSOR

DISPLAY

DATACOMM

UPI DISKS DRAM CONTROL SUPPORT

t')

,~

APPLICATION

~

~
!::::: 0
0
lOC\I(')

coco

CD
CD
co U)
OOCOCD

co

CD,...

I ,I

Printers
Plotters
Keyboards

,MASS STORAGE

....

~

Hard Disk
Mini Winchester
Tape
Cassette
Floppy/Mini

COMMUNICATIONS
PBX
LANS
Modems
Bjsync,
SOlC/HOlC
Serial BackPlane
Central Office
Network Control

I XI X I X I X I

II

I

IX I

I

I

IT

I

III

Ixi

Ivi

I

L

I

I

I

I

I

I

I

I· I

~

Portable PC
Home Computer

I

IT

I

I

I

1

I

I

I

I

IXIXIXIXI

I

I

I

I

I

IXI

11·.11

I

I

I

IT

X

IX IV
X

V

XIXIXI

X

V

X ,X

X

X

IX IX I

IYI XIVIXIXIX
lX

XI XI X

IX

X

X

X

X

IX

I
X

I

I

C\I

X

X

X

X

I

I

I

II X I

I

I

I

I

I

I '·Iv

r

I

X

I
X
X"

X

X

X

X

X

X
X X

C\I

co-co

I

X

V

X

X X

X

y

.X

V

Y

X

X

X

II

11),...
It)
t')'

I

V X

X

Y Y X X

I

II

X

X.

1«

(f')CO
.....
CO...,..
0
0
0
0
It)
C\I'C\IC\IC\IC\I
co co CD co CD

txT

X
X

X xlVIVlvl

<"

I I

T

I

I· I

I

T 'T

I

X

I

I

I

VI

I

I

I

COMPUTERS
. SM Bus Computer

I

I

I

OFFICE/BUS
Copier/FAX
Word Processor
Typewriter
Elect. Mail
Transaction System
Data Entry'

I

I

«-

NNiCO
....
I'0
OC\lC\l
Q)
co CD

I I I X I TTT xl x'l T T l

,I

I

~

It)

I

I

r!

I'I'- '"
It)
It)
It)
....
C\lC\IC\IC\IC\IC\IC\IC\IO
co CI) CD.COCO ex) ex) CD CD
It)

I

I

C\I

<

I'I'I'CDC\IC\IC\I
C\I
co CD co

I

PERIPHERALS

....

~ ;!
2'

INTE

0

Interrupt Enable: Indicates the content of the Internal interrupt enable flip/flop. ThIS fliplflop may be set
or reset by the Enable and Disable Interrupt instructions and inhibits interrupts from being accepted' by
the CPU when it is reset It is automatically reset (disabling further interrupts) at time T1 of the instruction
fetch cycle (Ml) whe~ an interrupt is accepted and IS also reset by the RESET sIgnal.

INT

I

Interrupt Request: The CPU recognizes an interrupt request on this line at the end of the current
instruction or while halted. If the CPU is in the,HOLD state or if the Interrupt Enable fllplflop is reset it will
not honor the request

RESET'

I

Reset: While the RESET sIgnal IS activated, the content of the program counter IS cleared. After RESET,
the program will start at locatIon 0 in memory. The INTE and HLDA fliplflops are also reset Note that the
flags, accumulator, stack pOinter, and regIsters are not cleared.

Vss
Voo

Gro.und: Reference.

Vee

Power: +5 ±5% Volts

Vee
<1>1.

<1>2

•

Power: +12 ±5% Volts.
Power: -5 ±5% Volts.
Clock Phases: 2 externally supplied.clock phases. (non TTL compatIble)

2-2

AFN·OO735C

· 8080Al8080A·1/8080A·2

ABSOLUTE MAXIMUM RATINGS·

-NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
d.evice. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this
specification is not, implied. Exposure to absolute maximum rating conditions for extended periods may affect
device reliability. ,

'Temperature Under Bias . . . . . . . . . . . . O°C to +70° C
Storage Temperature " ........... _65°C to +150°C
All Input or Output Voltages
With Respect to V BB ........... -0.3V to +20V
Vcc. VD D and Vss With Respect to VBB
-0.3V to +20V
Power Dissipation . . . . . . . . . . . . . .. ....... 1.5W

D.C. CHARACTERISTICS

(TA

= O°C to

70°C. Voo

=

+12V ±5%.

Vee = +5V ±5%. Vee = "":5V ±5%, Vss =OV; unless otherwise noted)
Test Conditior

IOL ; 1.9mA on all outputs.

~--~--+-------~---------------r------+----r-----r--~ } IOH=-l50~A.
~~~-+--------------------1-~---+~-+~~1---~

f-~::::...::~:.....t--=-----------='-=--+-----t----il----t--~~~-+----------------~--1------+---+----1-----

}

Operation
Tcy;.48 f.lS~c
Vss .;; VIN .;; VCC
Vss .;; VCLOCK .;; VOD
Vss';;VIN';;Vss+O.8V

c

Vss+O.8V';;VIN';;V C
VADDR/DATA ~ VCC
VADDR/DATA

=Vss + 0.45V

'5

CAPACITANCE
Symbol

(TA = 25'C. VCC = VOO =VSS = OV. Vee = -5V)

Parameter

Typ.

Max.

Unit

Test Condition

Cq,

Clock Capacitance

17

25

pf

tc

CIN

I nput Capacitance

6

10

pt

Unmeasured Pins

COUT

Output Capacitance

10

20

pt

Returned to Vss

NOTES:

1 MHz

I

'O~~
05 0.'-----::'2::-5---+7
:----+:::75
50
AMBIENT TEMPERATURE

1. The RESET signal must' be active for a minimum of 3 clock cycles.
2.

~

I,

2 -l;\f,2 + tft/>2 + t02 + tr.,,1 .. 480 ns ( - 1:320
ns• ..: 2:380 ns).
TYPICAL A OUTPUT DELAY VS. A CAPACITANCE

!

>

A1IIAe

~

I

Q

I.,

0,,00
SYNC

+100

OBIN

• CAPACITANCE (pI)
(C4CTUAL -

CSflECJ

1111

3. The followthg are relevant when intertacif)g the 8080A to
devices having VIH = 3.3V:
"
a) Maximum output rise time from
to 3.3V = 100ns @ CL
= SPEC.
b) Output delay when measured to 3.0V = SPEC +80n8@CL
= SPEC.
c) If CL = SPEC. add .6nalpF if CL > CSPEC. subtract .3nalpF
(from modified delay) If CL < CgPEC'
4. tAW = 2 tCY- too - trt/>2 - 140 ns ( - 1:110 ns. - 2:130 ns).
5. tow = tCY - tD3 - trt/>2 - 170 n8 (- 1:150 ns. -; 2:170 n8).
6. If not HLDA. two = twA = t03 + tr2 + 10 ns. If HLDA. two
= tWA = tWF·
7. tHF = tD3 + trt/>2 -50 ns).
tWF = too + tr.,,2 - IOns.
9. Data Ifi must be stable for this period during DBIN T3'
Both tOS1 and tOS2 must be satisfied ..
10. Ready signal must be stable for this period during Ta or Tw.
(Must be externally synchronized.)
11. Hold signal must be stable for this period during T2 or TW
when entering hold mode. and during T3. T4. Ts and TWH
\\(hen in ·hold mode. (External synchronization is not reqUired.)
12. Interrupt signal must be stable during this period of the last
clock cycle of any instruction in order to be recognized on the
following instruction. (Extemal synchronization is not required.)
•
13. This timing diagram shows timing relationships only; it does
not represent any spe!lific machine cycle.

READY

.av

WAIT

HOLD

...

HLDA

INT

INTE

I-

I

a.

2-6

AFN·OO735C

8080Al8080A·1/8080A·2

INSTRUCTION SET
The accumulator group instructions include arithmetic and
logical operators with direct, indirect, and immediate addressing modes_

increment and decrement memory, the six general registers
and the accumulator is provided as well as extended incre-.
ment and decrement instructions to operate on the register
pairs and stack pointer. Further capability is provided by
the ability to rotate the accumulator left or right through
or around the carry bit.

Move, load, and store instruction groups provide the ability
to move either 8 or 16 bits of data between memory, the
six working registers and the accumulator using direct, indirect, and immediate addressing modes_

Input and output may be accomplished using memory addresses as 1/0' ports or the directly addressed I/O provided
for in the BOBOA instruction set.

The ability to branch to different portions of the program
is provided with jump, jump conditional, and computed
jumps_ Also the ability to call to and return from subroutines is provided both conditionally and unconditionally_
The RESTART (or single byte call instruction) is useful for
interrupt vector operation_

The following special instruction group completes the BOBOA
instruction set: the NOP instruction, HALT to stop processor execution and the DAA instructions provide decimal
arithmetic capability. STC allows the carry flag to .be directly set, and the CMC instruction allows it to be complemented. CMA complements the contents of the accumulator
and XCHG exchanges the contents of two 16-bit register
pairs directly.

Double precision operators such as stack manipulation and
double add instructions extend both the arithmetic and
interrupt handling capability of the 8080A_ The ability to

Data and Instruction Formats
Data in the BOBOA is stored in the form of B-bit binary integers. All data transfers to the system data bus will be in the
same format.

ID7

D6 D5 D4 D3 D2 D, Dol
DATA WORD

The program instructions may be one, two, or three bytes in length. Multiple byte instructions must be stored
in successive words in program memory. The instruction formats then depend on the particular operation
executed.
One Byte Instructions·

I D7

TYP!CAl INSTRUCTIONS
Register to register, memory reference, arithmetic or logical, rotate,
return, push, pop, enable or disable
Interrupt instructions

D6 D5. D4 D3 D2 D1YDl OP CODE

Two Byte Instructions

I D7
I D7

I OP CODE
Do I OPERAND

D6 D5 D4 D3 D2 D, Do
D6 D5 D4 D3 D2 D,

Immediate mode or I/O instructions

Three Byte Instructions

I D7
I

I OP CODE
I lOW ADDRESSOR OPERAND 1
Do I HIGH ADDRESS OR OPERAND 2

D6 D5 D4 D3 D2 D, Do

D7 D6 D5 D4 D3 D2 D, Do

I D7

D6 D5 D4 D3 D2 .D,

Jump, call or direct load and store
instructions

For the B080Aa logic "1" is defined as a high level and a logic "0" is defined as a low level.

2-7

AFN·00735C

8080Al~80A.1'8080A.2
Table 2~ Instruction Set Summary

MnanIcInIc 0,.

In..ructlon Coda [1]
De Ds D4 D:! D:z Dl

MOVE, LOAD. AND STORE'
MOVr1,r2
0 1 D D 0
MOVM,r
9 1 1 1 0
MOVr,M

0

1

0

0

0

MYlr

0

0

0

0

0

MVIM

0

0

1

1

0

LXIB

0

0

0

0

0

LXI 0

0

0

0

1

0

LXIH

0

0

1

0

0

STAXB
STAXO
LDAXB
LOAXO
STA
LOA
SHLO
lHLD
XCHG

0
0
0
0
0
0
0
0
1

0
0
0
0
0
0
0
0
1

0
0
0
0
1
1
1
1
1

0
1
0
1
1
1
0
0
0

0
0
1
1

1

1

0

0

0

II
1
0
1
1

Operellons

Do

Description

Clock
CycIaa
(2)

1

0

1

PUSH 0

1

1

0

1

0

1

0

1

PUSHH

1

1

1

0

0

1 0

1

PUSH
PSW
POPB

1

1

1

1

0

1

0

1

1

1

0

0

0

0 0

1

POP 0

1

1

0

1

0

0

0

1

POPH

1

1

1

0

0

0

0

1

POPPSW

1

1

1

1

0

0

0

1

XTHL

1

1

1

0

0

0

1

1

SPHL
LXISP

1
0

1
0

1
1

1
1

1
0

0
0

0' 1
0 1

INXSP
DCXSP

0
0

0
0

1
1

1
1

0
1

0
0

1
1

JUMP
JMP
, JC
JNC

JZ
JNZ
JP
JM
JPE

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

0
0
0
0
0
1
1
1

0
1
1
0
0
1
1
0

0
1
0
1
0
0
1
1

0
0
0
0
0
0
0

0

1
1
1
1
1
1
1
1

1
1

Push register Pair B &
Con stack
Push register Pair 0 &
E on steck
Push register Pair H &
Lon steck
Puah A and Flags
on steck
Pop register Pair B &
C olf stack
Pop register Palr 0 &
Eolf steck
Pop reglst~r Pair H &
L olf steck
Pop A and FIll!/'
off steck
Exchange top of
stack, H& L
H & L to stack pointer
Load Immediate steck
pointer
"Increment stack pointer
Decrement steck
pOinter

1 Jump unconditional
0 Jump on carry
0 Jump on no carry
0 Jump on zero
0 Jump on no zero
0 Jump on positive
0 Jump on minus
0 Jump on partty even

0,.

1
1

1
1

0
0

0
1

0
0

1
0

0
1

Jump on parity ~
H & L to program
counter

10

1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1

0
0
0
0
0
1
1
1
1

0
1
1

1
1
0
1
0
0
1
1

0
0
0
0
0
0
0
0
0

1
0
0

0

1
1
1
1
1
1
1
1
1

Call unconditional
Call on carry
Call on no carry
Call onzaro
Call on no zarO
,Call on positive
Call on minus
Calion partty even
Call on parity odd

17
11/17
11/17
11/17
11/17
11/17
11/17
11/17
11/17

1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1

0

1
1
0
1
0
0
1
1
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0

0
0
0
0
0
0
0

Raturn
Ratu," on carry
Return on no carry
Return on zaro
Return on no zaro
Return on positive
Return on minus
Return on parity even
Raturn on DaritY odd

10
5/11
5/11
5/11
5/11
5/11'
5111
5111
5111

1 1 A A A 1
INCREMENT AND IlliCRIOMENl
INRr
000001
0 0 1
OCRr
0 0
INRM
0 1 1 0 1
DCRM
0 0 1 1 0 1
0 0 0 0
INxa
0

1

1

Restert

0
0

Increment register
Decrement register
Increment memory
Decrement memory
Increment B & C
registers
Increment 0 & E
registers
Increment H & L
registers
Decrement B & C
Decrement 0 & E_
Decrement H & L

Do

[2)

5

CALI.

7

CALL
7

bc

7

CZ

ONC
ONZ
CP
CM
CPE
CPO

10
10
10

0
0
1
1
0
0

0
0

0
0
0
0

RETURN
RET
RC
RNC

10
7
7
7
7
13
13
16
16

RZ
RNZ
RP
RM
RPE
RPO

0
1
1
0.0
0 0
1 1
1 1
1 0
1 0

0
0

0

1

0

RESTART

4

RST

STACKOPS
PUSHB

ClOck
Cyclea

1
1

Mnemonic
JPO
PCHL

5

,S S S Move register to register
S S S Move register to
memory
1 1 0 Move memory to register
1 1 0 Move Immedlste register
1 1 0 Move immediate
memory
0 0 1 Load Immediate register
PairB&C
0 0 1 Load immediate register
PalrO&E
0 0 1 Load Immedlste register
PairH&L
0 i 0 Store A Indirect
0 1 0 Store A indirect
0 1 0 Load A Indirect
0 1 O. Load A Indirect
0 1 0 Store A direct
0 I, 0 Load A direct
0 f 0 Store H & L direct
0 1 0 Loed H & L direct
0 1 1 Exchange 0 & E, H & L
Registers

Operation.
Daecrlpt,on

Inelrucllan Code [1)
De Ds D4 D:! D:z Dl

11

o

0
1

0
1
0
1
1

o

o

tl

0

11

I

INXO

0

0 0 1 0 0

1

1

INXH

0

0

1

0

1

1

DCXB
DCXO
DCXH
ADD
ADDr
Acer

0
0

0

0
0
0

0 0 1 0 1 1
0 1 1 0 1 1
1 0 1 0 1 1

1
1

0 0 0 0 S S S Add register to A
0 0 0 1 S S S Add register to A

ADOM
ADCM

1
1

0

AOI
ACI

1
1

1
1

0 0 0 1
0

0

1

1

1
1

OAOB
DADO
OADH
OAOSP

0
0
0
0

0

0

0

1

0

0

11
0

0

10
10
10
10

11

5
5
10
10'

"

5

5
5
5
5
5
4
4

with carry
18

0 0 0 1 1 0 Add memory to A
0 0 0 1 1 1 0 ,Add memory to A

5
10

5
5
10
10
10
10
10
10
10
10

2-8

0 0 1 1 0 0
0
0

1
1

0
1

1
1

0
0

0
0

with carry
Add immediate to A
Add immediate to A
with carry
I, AddB&CtoH&L
1 AddO&EtoH&L
1 AddH&LtoH&L,
1 AcId stack pointer to
H&L

0
0

7
7
7
7
10
10
10
10

AFN-0073SC

intJ

8080Al8080A·1/8080A·2
Summary of Procauor In_Ion. (Cont.)
Clock
Cycle.

Clock
In_Ion Code [1J
D6 Ds D4 D:l D:! D,

Mnamonlc

Dr

SUBTRACT
SUBr

,

0

0

1

SBBr

1

0

0

1

SUBM

1 0 0

1

SBBM

1

0

0

1

SUI

1 1 0

1

SBI

1

1 0

1

LOGICAL
ANAr
XRAr

1 0

ORAr
CMPr
ANAM
XRAM
DRAM
CMPM

Do

Dr

RLC
RRC
RAL

0
0
0

0
0
0

0
0
0

0
0
1

0

0

1 1
1 1
1 1

1
1
1

7

RAR

0

0

0

1

1

1

1

1

7

SPECIALS
CMA
0 0 1 0 1
STC
0 0 1 1 0
CMC
0 0 1 1 1
OM
0 0 1 0 0
INPUT/OUTPUT
1 1 0 1 1
IN
1 1 0 1 0
OUT
CONTROL
1 1 1 1 1
EI
1 1 1 1 0
01
NOP
0 0 0 0 0
HLT
0 1 1 1 0

1 1
1 1
1 1
1 1

1
1
1
1

0
0

1
1

1 Input
1 Output

0
0
0
1

1 1
1 1
0 0
1 0

S S S Subtract register
from A
S S S Subtract register from
Awlth borrow
0 1 1 0 Subtract memory
from A
l' 1 1 0 Subtract memory from
A with borrow
0 1 1 0 Subtract Immediate
from A
1 1 1 0 Subtract Immediate
from A with borrow

4

1

4

0

4
4

1 0
1 0

1
1
1

0
0
0
0

1
1
1
1

1 0 S S
1 1 S S
0 0 1 1
0 1 1 1

1

0

1
1

1 0

1 0

1

1

1
1

1 .0
1 0

S S S And register with A

1 S S S Exclusive Or register
S
S
0
0

ANI
XRI

1

1
1

1
1

0
0

0
1

1
1

1
1

0
0

ORI
CPI

1 1
1 1

1
1

1
1

0

1
1

1
1

0
0

1

with A
Or ragister with A
Compara register with A
And memory with A
Exclusive Or memory
with A
·Or memory with A
Compare memory with
A
And immediate with A
Exclusive Or immediate
with A
Or Immediate with A
Compare immediate

Operations
Description

Instruction Code III
D6 Os D4 D:l D2 D, DC

Mnemonic

[2J

0

0

1

Cycl••
ROTATE

1

1

Operatlone
De_lpllon

7
7

4
4

7
7

,

121

Rotate A left
Rotate A right
Rotete A left through
carry
Rotate A rrght through
carry

4
4
4

Complement A
Set carry
Complement carrY
Decimal ad'ust A

4
4
4

Enable Interrupts
Disable Interrupt
No-operation
Hall

4

4
10
10

4

4
4
7

7

7
7
7
7
7

with A
NOTES:
1. DOD orSSS: B=OOO, C=OOI, 0=010, E=OII, H=I00, L=101, Memory=110, A=111.
2. l\vo possible cycle times (6/12) indicate Instruction cycles dependent on condition flegs.
"All mnemonics copyright Clntel Corporation 19n

2·9

AFN·00735C

intJ
8085AH/8085AH-218085AH-1
8-BIT HMOS MICROPROCESSORS
• Single +5V Power Supply with 10%
Voltage Margins

• On-Chip System Controller; Advanc:;ed
Cycle Status. Information Available for
Large System Control
• Four Vectored Interrupt Inputs (One is
Non-Maskable) Plus an
8080A-Compatible Interrupt
• Serial In/Serial Out Port
• Decimal, Binary and Double Precision
Arithmetic
• Direct Addressing Capability to 64K
Bytes of Memory
• Available in EXPRESS
- Standard Temperature Range
- Extended Temperature Range

• 3 MHz, S MHz and 6 MHz Selections
Available
• 20% Lower Power Consumption than
8085A for 3 MHz and 5 MHz
• 1.3 fJ-S Instruction Cycle (8085AH); O.S
fJ-s (8085AH-2); 0.67 /.LS (8085AH-1)
• 100% Compatible with 808SA
• 100% Software Compatible with S080A
• On-Chip Clock Generator (with
External Crystal, LC or RC Network)

The Intel® 8085AH is a complete 8 bit parallel Central Processing Unit (OPU) implemented in N-channel,
depletion load, silicon gate technology (HMOS). Its instruction set is 100% software compatible with the8080A
microprocessor, and it is designed to improve the present 8080A's performance by higher system speed. Its
high level of system integration allows a minimum system of three IC's [8085AH (CPU), 8156H (RAM/IO) and
8355/8755A (ROM/PROM/IO)) while maintaining total system expandability. The 8085AH-2 and 8085AH-1 are
faster versions of the 8085AH.
The 8085AH incorporates all of the features that the 8224 (clock generator) and 8228 (system controller)
provided for the 8080A, thereby offering a high level of system integration~
The 8085AH uses a multiple)80na \

4700

I C'NT

~ ~15pF

1KO

/

x,

·20 pF CAPACIYORS REQUIRED FOR
CRYSTAL FREQUENCY" 4 MHz ONLY.

a. Quartz Crystal Clock Driver
r

.J

!

'1

·X2 LEFT FLOATING

d. 1-6 MHz Input Frequency External Clock
Driver Circuit
.

I

I C'NT

...l.. -15pF

LEXT

I
..

8085AH

x,

!-----,

.....I

CEXT

I

~ ~2_ _ _ ..J

+5V

'-

.-+._470_0_/:.....
_LO..,W nME > 40 no

b. LC Tuned Circuit Clock Driver

)0
X,

8085AH

x,

4700

r

-8K

aPF
X2

e. 1-12 MHz Input Frequency External Clock
Driver Circuit

c. RC Circuit Clock Driver

Figure 5. qlock Driver Circuits

GENERATING AN 8085AH WAIT STATE

-

~

CLEAR
ALE* ......... ClK

If your system requirements are such that slow
memories or peripheral devices are being used, the
circuit shown in Figure 6 may be used to insert one
WAIT state in each 8085AH machine cycle.

CLKOUTPUT'

"0"
F/F
+5V- 0

Q

-

"0"
F/F
0

----TO

ClK

Q

READY
IN PUT

·AlE AND ClK (OUT) SHOULD BE BUFFERED IF CLK INPUT OF LATCH
EXCEEDS 8085AH 10l OR 10H.

The D flip-flops should be chosen so that
• ClK is rising edge-triggered
• CLEAR is low-level active.

Figure 6. Generation of

a Walt State for 8085AH

CPU

2-15

AFN·O'835C

..
8085AH!8085AH-2I8085AH-1

AB--15

-

A
ADO-7

<

ALE

~ r'

IIIl
I'IA

I-I--

10/lll

elK

r-r--

RESET OU1

Vee
Vee

I--

READY

I
I.
ITIMER

REseT

-

r--

I

WRRB

IN

ALE eE,

AD
07

,

101M

7:~~'

fE I~I
7~D
07

I
I·
I

ALE

Vee

1iD~ :l. STlRDY

I

Tb~~R_

_[ROM + 110]
OR
875M [PROM + VOl

815811
[RAIl + VO + COUNTERITIMER]

BB B

*NOTE OPTIONAL CONNEC-fiON

88

Figure 8. MCS-85"" Minimum System (Memory Mapped 1/0)

-----

x,

TRAP

x,

RESET IN

HOLD

RST1
RST.

-

II810_
s, Is.1-

HLDA

SOD

IIOI&AH

RST5

INTR
RESET

iN'fA.

ADDR/
OUT
DATA ALE Al)'WR 101M
RQVCLK

ADOR

18)

181

101M (es)

WR
8212

r-

liD
DATA

-

STANDARD

J-

L-

MEMORY
ADDR leS)

r

(16)

~ eLK

~ -r--

RESET

101M (es)

I/O POR TS.

¢)

WR
liD
DATA

LS

STANDARD

I/O
ADOR

~LJ.

D I IIr

v"
v"
Vee

Figure 9. MC8-85® System (Using Standard Memories)

2-16

AFN·Ol835C

8085AH/8085AH-2/8085AH-1

As in the 8080, the READY line is used to extend the
read and write pulse lengths so that the 8085AH can
be used with slow memory. HOLD causes the CPU to
relinquish the bus when it is through with it by floating the Address and Data Buses.

----

RSTIi.5
RST5,5

INTR

1l.
ADClR

The 8085AH family includes memory components,
which are directly compatibie to the 8085AH CPU.
For example, a system consisting of the three chips,
8085AH, 8156H, and 8355 will have the following
features:

-

RST7,5

=

SYSTEM "NTERFACE

r1D~x, vi'vl' I

x,

TAAP

ADOR!
OATA ALE M)

lSi

WJi

RESET IN

HOLD
HLDA

SOD

Irt-

S'Ol-

s'rs'r-

RESET

OUT
101M

ROY elK

II

lSi

I~-

POR~rN

CE

~~
:~: POR~
PORT

(8)

Rli 111811 •
AI

•
•
•
•
•
•
•

(61

-

AOOR

2K Bytes ROM
256 Bytes RAM
1 Timer/Counter
4 8-bit I/O Ports
1 6-bit I/O Port
4 Interrupt Levels
Serial In/Serial Out Ports

~t-

r-

IO/~

'N
TIMER

---- r-RESET

OUT

r
-lOw
Rli

ALE

Ihtl~

This minimum system, using the standard I/O technique is as shown in Figure 7.

PORT

~

A

Cl
Ag. 1O

8355/
8755A
DATA/
ADDR

In addition to standard I/O, the memory mapped I/O
offers an efficient I/O addressing technique. With
this technique, an area of memory address space is
assigned for I/O address, thereby, using the memory
address for I/O manipulation. Figure 8 shows the
system configuration of Memory Mapped I/O using
8085AH.

~t~.

101M

r:

RESET

~

eLK

PORT

B

ROY

iOii

vst vIc J

~
v"
...J

OD tROG

V
*NOTE

The 8085AH CPU can also ,interface with the standard memory that does not have the multiplexed
address/data bus. It will require a simple 8212 (8-bit
latch) as shown in Figure 9.

v"

v"

v,,

V
OPTIONAL CONNECTION

Figure 7. 8085AH Minimum System (Standard 1/0
Technique)

2-17

AFN·01835C '

inter

, , 80~5AH/8085AH·218085AH·1

BASIC SYSTEM TIMING

Table 3. 8085AH Machine Cycle Chart

The 8085AH has a multiplexed Data Bus. ALE is used
as a strobe to sample the lower a-bits' of add res,s on
the Data Bus. Figure 10 shows an instruction fetch,
memory read and 1/0 write cycle'(as would occur
during processing of the OUT instruction). Note that
during the 1/0 write and read cycle that the I/O port
address is copied on both the upper and lower half
of the address.

STATUS
IO/M 51

MACHINE CYCLE
OPCOOE FETCH
MEMORY REAO
MEMORY WRITE
I/O READ
I/O WRITE
ACKNOWLEDGE
OF INTR
BUS IDLE

There are seven possible type~ of machine cycles.
Which of these seven takes place is defined by the
status of the three status lines (101M, 51, So) and the
three control signals' (Rl5,
and INTA). (See Table
3.) The status lines can be used as advanced controls (for device selection, for example),' since they
become active at the T1 state, at the outset of each
machine cycle: Control lines Fm and WR' become
active later, at the time when the transfer of data is to
take place, so are used
command lines.
'

CONTROL

SO· IRD_

'~ 1NTA

0
0
1
0
1

1

I'

~

1

1
0

\1
0
1
0
1

0
1
0

1
1
1

1
0

1
1

1
0

1
1

1
1

0
1

TS

1
0

0

1
TS

1
TS

(OF)
(MR)
(MW)
1I0R)
1I0W)

0
0
0
1
1

IINA)
(BIl DAD
ACK OF
RST,TRAP
HALT

1

J
0

,

,

Table 4. 8085AH Machine State Chart

vm,

Status & Buses

I

,A machine cycle normally consists of three T states,
with the exception of OPCODE FETCH, which normally has either four or six T states (ul'!less WAIT or
HOLD states are forced by the receipt of READY or
HOLD inputs). Any T state must be one of ten
possible states, shown in Table 4.

X

X

X

X

,

T2

X

X

X

X

X

"X

0

TWA IT

X

X

X

X

X

X

0

T3

X

X

X

X

X

1

X

TS

Ot

X

TS

Te

,
,

Ot

O'

X

TS

, ,
,
,

0

T4

TRESET

X

TS

TS

TS'

"

0

TS

1

'0

THALT

0

TS

TS

TS

TS

1

X

TS I

TS

TS

TS

,

0

THOLO
0"" LogiC "0"
1 = LogiC "1"

'

Rii.WR iNTA ALE

Tl

T5

"

Control

Machine
State SUO 101M A.-A,S ADo-AD1

as

,,

X

1

,'.

0
0

0

T8" High Impedance
X = Unspecified

* ALE not generated dUring 2nd and 3rd machine cycles of DAD Instruction
t 101M" 1 during 14-Ta of INA machine cycle

eLK

T1

PC H (HIGH ORDER ADDRESS)

,

ALE

WR

101M

STATUS

s,s"

(FETCH)

Figure

10 (READ)

10~

01 WRITE

11

8085AH Basic System Timing
2-18

AFN·O,835C

8085AH/8085AH~21"085AH·1

"NOTICE: Stresses' above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in·t/:le operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

ABSOLUTE MAXIMUM RATINGS·
Ambient Temperature Under Bias, ......... O°C to 70°C
Storage Temperature ........... , ... -65°C to +l50~C
Voltage on Any Pin
With Respect to Ground .............. -0.5V to + 7V
Power Dissipation ........................... 1.5, Watt

D.C. CHARACTERISTICS

I

8085AH. 8085AH-2: .(TA = O°C to 70°C, Vee = 5V ±10"lo. Vss =OV; unless otherwise specified)"
8085AH-l: (TA = O°C to 70°C, Vee = 5V ±5"1o. Vss = OV; unless otherwise specified)
Units

Test Conditions

Parameter

Min.

Max.

VIL

Input low Voltage

-0.5

+0.8

V

VIH

Input High Voltage

2.0

Vee +0.5

V

VOL

Output low Voltage

0,45

V

IOL = 2mA

VOH

Output High Voltage

V

IOH = -400p.A

Icc

Power Supply Current

Symbol

2.4
135

mA

8085AH, 8085AH-2

200

mA

8085AH-l (Preliminary)

IlL

Input leakage

±10

p.A

o ,,;VIN ,,;Vee

±10

!LA

0.45V '" VOUT ,,; Vee

ILO

Output leakage

VILR

Input low level, RESET

-0.5

+0.8

V

VIHR

Input High level. RESET

2.4

Vee +0.5

V

VHY

Hysteresis. RESET

0.15

V

A.C. CHARACTERISTICS
8085AH,8085AH-2: (TA = O°C to 70°C. Vee = 5V ±10"lo. vss = OV)"
8085AH-l: (TA = O°C to 70°C. vee = 5V ±5"1o. vss = OV)

Symbol

Parameter

8085AH[2)
(Final)

8085AH.2[21
(Final)

8085AH-1
(Preliminary)

Min.

Max.

Min.

Max.

Min.

Max.

2000

200

2000

167

2000

teye

ClK Cycle Period

320

tl

ClK low Time (Standard ClK loading)

80
120

40

20

ns
ns

t2

ClK High Time (Standard ClK loading)

t r • tf

ClK Rise and Fall Time

tXKR

Xl Rising to ClK Rising

20

120

20

,100

20

100

ns

tXKF

Xl Rising to ClK Falling

20

150

20

110

20

110

ns

tAe

Aa_15Valid to leading Edge of Control[l)

270

115-:

70

ns

tAeL

Ao-7 Valid to leading Edge of Control

240

115

60

ns

tAD

Ao-15 Valid to Valid Data In

tAFR

Address Float After leading Edge of
READ (INTA)

tAL

Aa-15 Valid Before Trailing Edge of ALE [11

70

Units

30

50
30

ns
30

ns

575

350

225

ns

0

0

0

ns

115

50

,25

ns

"Note: For Extended Temperature EXPRESS use M8085AH Electricals Parameters.
2-19

AF't01835C

·808SAH/8085AH"21808SAH·1

A.C. CHARACTERISTICS (Continued)

Symbol

8085AH[21

8085AH.2[21

8085AH·1

(Final)

(Final)

(Preliminary)

Parameter

Min. . Max.
tAll

Ao-7 Valid Before Trailing Edge of ALE

90

Min.

Max.

50
220

Min.

Units

Max.

25
100

ns

tARY

READY Valid from Address Valid

tCA

Address (Aa-1S) Valid After Control

120

60

30

40

ns
ns

tcc

Width of Control low (m5, WR, iN'fA)
Edge of ALE

400

230

150

ns

tCl

Trailing Edge of Control to leading Edge
of ALE

50

25

0

ns

tow

Data Valid to ~raillng Edge of wmfE

420

230

140

ns

tHABE

HlDA to Bus Enable

210

150

150

ns

tHABF

Bus Float After HlDA

210

150

150

ns

tHACK

HlDA Valid to Trailing Edge of ClK

tHOH

HOLD Hold Time

110

40

0

ns

0

0

0

ns

170

120

120

ns

0

0

0

ns

tHOS

HOLD Setup Time to Trailing Edge of ClK

tiN'"

INTR Hold Time

tiNS

INTR, RST, and TRAP Setup Time to
Falling Edge of ClK

160

150

150

ns

tLA

Address Hold Time After ALE

100

50

20

ns

tLC

Trailing Edge of ALE to leading Edge
of Control

130

60

25

ns

tLCK

ALE low During ClK High

100

50

15

ns

tLOR

ALEta Valid Data During Read

tLOW

ALE to Valid Data During Write

tLL

ALE Width

tLRY

ALE to READY Stable

tRAE

Trailing Edge of READ to Re-Enabling
of Address

tRO

REAl> (or INTA) to Valid Data

tRY

Control Trailing Edge to leading Edge
of Next Control

tRoH

Data Hold Time After REAl>

tRYH

READY Hold Time

tRYS

.

460

270

175

ns

200

140

110

ns

140

80
110

150

30
90

ns

10

ns

50
150

300

rns

50

75

J

ns

400

220

160

ns

0

0

0

ns

0

0

5

ns

READY Setup Time to leading Edge
ofClK

110

100

100

ns

two

Data Valid After Trailing Edge of WRITE

100

60

30

ns

tWOL

lEADING Edge of WRITE to Data Valid

fIiITA

40

2-20

20

30

ns

AFN-01835C

inter

8085AH/8085AH-2/8085AH-1

3. For all output timing where CL "# 150 pF use the following
correction factors:
25 pF .. CL < 150 pF: -0.10 ns/pF
150 pF < CL .. 300 pF: +0.30 ns/pF
4. Output timings are measured with purely capacitive load.
5. To calculate timing specifications at other values of teye use
Table 5.

NOTES:
1. As-A,s address Specs apply IO/f;if. So. and 5, except As-A,s
are undefined during T4 - Ts of OF cycle whereas IOtM. So. and
$, are stabl".
2. Test Conditions: teye = 320 ns (8085AH)/200 ns (8085AH-2);/
167 ns (8085AH-1); CL = 150 pF.

A.C. TESTING LOAD CIRCUIT

A.C. TESTING INPUT, OUTPUT WAVEFORM
INPUT/OUTPUT

u=x >
2.0

0.8

045

A C TESTING

< )C
2.0

TEST POINTS

DEVICE

~C'=150PF

UNDER
TEST

0.8

INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC 1 AND 0 45V FOA

A LOGIC 0 TIMING MEASUREMENTS ARE MADE AT 2 ov FOR A LOGIC 1
AND 0 BV FDA A LOGIC 0

CL = 150pF
C L INCLUDES JIG CAPACITANCE

Table 5. Bus Timing Specification as a TCYC Dependent
Symbol

8085AH

8085AH~1

8085AH-2

tAL

(1/2) T - 45

(1/2) T - 50,

(1/2) T - 58

Minimum

tlA

(1/2) T - 60

(1/2) T - 50

(1/2) T - 63

Minimum

tll

(1/2) T - 20

(1/2) T - 20

(1/2) T- 33

Minimum

tlCK

(1/2) T - 60

(1/2) T - 50

(1/2) T - 68

Minimum

tlC

(1/2) T - 30

(1/2) T - 40

(1/2) T - 58

Minimum

·tAO

(5/2

+ N) T

- 225

(5/2

+ N)T

- 150

tRO

(3/2

+ N)T

- 180

(3/2

+ N)T

- 150

tRAE

(1/2) T - 10

(1/2)T-10

(1/2) T - 33

Minimum

tCA

(1/2) T - 40

(1/2) T - 40

(1/2) T - 53

Minimum

tow

(3/2

two

(1/2) T - 60

+ N) T
+ N) T

- 60

(3/2

+ N) T

- 70

(1/2) T - 40

tcc,

(~/2

tCl

{1/2)T - .110

(3/2

- 80

+ N) T

,

(5/2

+ N) T '-

(3/2

+ N) T

(3/2

192

Maximum

- 175

Maximum

+ N)T

-110

(1/2) T - 53
- 70 .

(3/2

+ N)T

-100

Minimum
Minimum
Minimum

(1/2) T - 75

(1/2) T - 83

Minimum

(3/2) T - 200

(3/2) T - 210

Maximum

(1/2) T - 83

Minimum

tARY

(3/2) T - 260

tHACK

(1/2) T - 50

tHABF

(1/2) T

+ 50

(1/2) T

+ 50

(1/2) T

+ 67

Maximum

tHABE

(1/2) T

+ 50

(1/2) T

+ 50

(1/2) T

+ 67

Maximum

. (1/2) T - 60

tAC

(2i2) T - 50

(2/2) T - 85

(2/2) T - 97

Minimum

t1

(1/2) T - 80

(1/2) T - 60

(1/2) T - 63

Minimum

t2

(1/2) T - 40

(1/2) T - 30

(1/2) T - 33

Minimum

tRY

(3/2) T - 80

(3/2) T - 80

(3/2) T - 90

Minimum

(4/2) T - 180

(4/2) T - 130

(4/2) T - 159

Maximum

tLDR
NOTE:

N is equal to the total WAIT states. T '" teye.
AFN·01835C

8085AH/8085AH-218085AH.1

WAVEFORMS (Continued)
READ OPERATION WITH WAIT CYCLE (TYPICAL) 'TO WRITE
T,

T,

SAME READY TIMING APPLIES
.

elK

AsA15

~~--+---------+---------~I~----------+-~~----

ALE

1---+----'·0---1----'

ROIINTA'-T--*---\I-~--l

~~-+--------~I~----------~

READY

NOTE 1 READY MUST REMAIN STABLE DURING SETUP AND HOLD TIMES

INTERRUPT AND HOLD
T,

T2

T,

A8-15=X========~===~-------------;
AD()"7

--<........_ - - 1
11------

BUS FLOATING·

-----o.!

ALE

RD'---------r---~----------.....;
INTA

HoLD

HlOA

*IO/M IS ALSO FLOATING DURING THIS TIME.

2-22

AFN·O'835C

8085AH/8085AH-218085AH-1

Table 6. Instruction Set Summary
Instruction Code
Mnemonic

Operations
Osscrlptlon

07 De D5 ,D4 D3 D2 D1 Do

In.....ctlon Code
Mnemonic DrDeD5D4Da~D1 Do

MOVE, LOAD, AND STOAE
MOVr1 r2
MOVM.r
MOVr.M
MVI r
MVIM
LXIB

0
0
0
0
0
0

0
0
0 0

0

0
0 0

LXI 0

0

0 0

1

0

0

0

1

LXI H

0 0

1

0

0

0 0

1

STAXB
STAXO
LOAX B
LOAX 0
STA
LOA
SHLO
LHLO
XCHG

0
0
0
0
0
0
0
0

0 0
0 0
0 0
0 0
0 1
0 1
0 '1
0 1

0

1

1

0 0
0 0
1 0
1 1 0
1 0 0
1 1 0
0 0 0
0 1 0
1 0 1 0

STACK OPS
PUSHB

1

1

0

0

0

1

0

PUSH 0

1

1

0

1

0

1

0

PUSH H

1

1

1

0

0

1 0

PUSH PSW

1

1

1

1

0

1

POPB

1

1

0

0

0

0 0

POP 0

1

1

0

1

0

0 0

POP H

1

1

1

0

0 0

0

POPPSW

1

1

1

1

0

0

0

XTHL

1

1

1

0

0

0

1

SPHL
LXI SP

1

1

1
1

1

0 0

1
1

INX SP
OCXSP

0 0
0 0

1
1

1
1

0 0 1
1 0 1

JUMP
JMP
JC
JNC
JZ
JNZ
JP
JM
JPE
JPO
PCHL
CALL
CALL
CC
CNC

1
1
1

1
1
1

r

0
1
0
0
1

0

0
0
0

S
S
1
1
1

1

0

0 0

S
S
1
1
1

0
0
0

1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 1

0

1
1
1

1

1

0 0 1 1 0
0 1 1 1 0
0 1 0 1 0

1

1
1
1

1
1
1

1
1

0
0
0

Move immediate register
Move Immediate memory

1

Pair B & C
I.oad immediate register
PalrO&E
Load immediate register
Pair H & L
Store A indirect
Store A indirect
Load A indirect
Load A indirect
Store A direct
Load A direct
Store H & L direct
Load H & L direct
Exchange 0 & E, H & L
Aeglsters

I~

Push register Pair B &
C on stack
1 Push register Pair 0 &
E on stack
1 Push register Pair H &
L on stack
1 Push A and Flags
on stack
1 Pop register Pair B &
Coif stack
1 Pop register Pair 0 &
E off stack
1 Pop register Pair H &
L off stack
1 Pop A and Flags
off stack
1 Exchange top of
stack, H & L
1 H & L to stack pOinter
1 Load Immediate stack
pOinter
1 Increment stack pointer
1 Decrement stack
pOinter

0

1

0
0

Move register to memory
Move memory' to register

1

1
1
1
1
1

1
1
1
1
1
1

1

1 1 0 0 1
CZ
CNZ
1 1 0 0 0
CP
1 1 1 1 0
CM
1 1 1 1 1
CPE
1 1 1 0 1
1 1 1 o 0
CPO
AETUAN
AET
1 1 0 0 1
AC
1 1 0 1 1
ANC
1 1 0 1 0
AZ
1 1 0 0 1
ANZ
1 1 0 0 0
AP
1 1 1 1 0
AM
1 1 1 1 1
APE
1 1 1 0 1
APO
1 1 1 0 0
AESTAAT
AST
1 1 A A A
INPUT/OUTPUT
IN
1 0 1 1
OUT
1 0 1 0
INCAEMENT AND OECAEMENT
INA'r
0 0 0 0 0
,0 0 0 0 0
DCA r
INAM
0 0 1 1 0
OCAM
0 0 1 1 0
INX B
0 0 0 0 0

Move register to register

0 1 Load immediate register

0 0
0 0 0

0 0
1 0
0 0
1 0
0 0
0 0
1 0
1 0
0 0
1 0

S
S

0
0
0
0
0
0
0
0

1 0
1 0
1 0
1 0
1 1
1 1
1 1
1 1
1 1

1

0
1
0
0
1

0
0

1
1
1
1
1
1

0
0
0
0

~ ~

Call on zero
Call on no zero
Call on positive
Call on minus
Cal: : parity even
I Can i oanty odd

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0

Aetum
Return
Return
Return
Return
Return
Return
Return
Aeturn

0
0
0
0

1

1

1

1

Aestart

1 ·1
1 1

Input
Output

1
1
1
1

0
0
0
0

0

1

1
1

Increment register
Decrement register
Increment memory
Decrement memory
Increment B & C
registers
Increment 0 & E
registers
Increment H & L
registers
Decrement B & C
Decrement 0 & E
Decrement H & L

0
1

0

0 0' 0

1

0 0

1

1

INXH

0 0

0

0 0

1

1

OCX B
OCXO
OCX H
ADD
AOOr
AOCr

0 0 0 0 1 0
0 0 0 1 1 0
0 0 1 0 1 0

1
1
1

1
1
1

AOOM
ADCM

1 0
1

0 0

0

AOI
ACI

1
1

1 0
1 0

DAD B
DAD 0
OAOH
OAOSP

0
0
0
0

0 0 0
0 0 1
0 1 0
0 1 1

1
1
1
1

0 0
0 0
0 0
0 0

SUBTAACT
SUB r

1

0 0

1

0

S S S

Jump on no zero
Jump on positive
Jump on minUS

SBB r

1

0

1

1

Jump on parity even
Jump on parity odd
H & L to program
counter

SUB M

1

0 0

1 0

SBBM

1

0 0

1

1

SUI

1

1

0

1

0

SBI

1

1 0

1

1

Jump
Jump
. Jump
Jump

unconditional
on carry
on no carry
on zero

Call unconditIonal
Call on carry

1
1

0 0
0 0

0 0 S S S Add register to A
0 1 S S S Add register to A
0

1

1

1

1
1

0 0 1
0 1 1

1
1

C 0

0

on carry
on no carry
on zero
on no zero
on positive
on minus
on parity even
on parity odd

0
0

INXO

1

Operations
Description

with carry
Add memory to A
Add memory to A
with carry
0 Add immediate to A
0 Add immediate to A
With carry
1 AddB&CtoH&L
1 AddO&EtoH&L
1 AddH&LtoH&L
1 Add stack pointer to
H&L

0
0

Subtract register
from A
S S S Subtract register from
A with borrow
1 1 0 Subtract memory
from A
1 1 0 Subtract memory from
A with borrow
1 1 0 Subtract immediate
from A
1

1

0 Subtract immediate
Irom A With borrow

Call on no carry

2-23

AFN·OI835C

inter

8085AH/8085AH-218085AH-1

Table 6. Instruction Set Summary (Continued)

Mnemonic

II?

Instructl... Code
Os 05 04 II:! II:! 0, 00

LOGICAL
ANA.
XRAr

1 0 1, 0 0 S S S
1 ,0 1 0 1 S S S

ORAr
CMPr
ANAM
XRAM

1 0'
1 - 0'
1 a
1 ,0

1

1
1 1
1 0
1 0

0

ORAM,
CMP~

1 0
1 0

l' t
1 j

0 1, 1 0
1 1 1 0

ANI
XRI

1 1
1 1

1 0 0 1 1 0
1 0 1 1 1 0

ORI
CPI

1 1 1 1 0 1
1 1 1 1 1 1

ROTATE
RLC
RRC
RAL
I'RAR

1
0
1

S S S
S S S

1 1 0
1 1 0

1 0
1 0

0 0 0 0 1 1 1
0 0 0 0 1 1 1 1
0 0 0 1 0 1 1 1

0

0 0 0

1 1 1

1

1

Operations
Deec.lptlon '

,

And register with A
Exclusive OR register
with A
OR register with A
Compare register with A
And memory with A
Exclusive OR memory
with A
OR memory with A
Compare
memory with A
And Immediate with A
Exclusive OR immediate
with A
OR immediate with A
Compare Immediate
with A
Rotate A
Rotate A
Rotate A
carry
Rotate A
carry

•

Operations
Instruction Code
Oeecrtptlon
Mnemonic 07 Os 05 04 03 02 0, 00
SPECIALS
CMA
0 0 1 0 1 1 1 1 Complement
"
A
Sl'C
0 0 1 1 0 1 1 1 Set carry
CMC
0 0 1 1 1 1 1 1 Complement
carry
OM
0 0 1 0 0 1 1 1 Decimal ad'ust A
CONTROL
EI
1 1 1 1 1 0 1 '1 Enable Interrupts
01
1 1 1 1 0 0 1 1 Disable Interrupt
NOP
0 0 0 0 0 0 0 0 No-operation
HLT
0 1 1 1 0 1 1 0 Halt
NEW 8085A ISTRUCTIONS
RIM
0 0 1 0 0 0 0 0 Read Interrupt Mask
SIM
0 0 1 1 0 0 0 0 Set Interrupt Mask

left
right
left through
right throug,h

NOTES;
,
1. DDS or SSS: B 000, COOl, 0010, EOl1, H 100, L 101, Memory 110, A 111.
2. Two possible cycle times (6112) Indicate ,"struction' cycles dependent on condition flags.
"All mnemonics copyrighte aOaSA is a complete a bit parallel Central Processing Unit (CPU). Its instruction set is 100% software compatible
with the 80aOA microprocessor," and it is designed to improve the present 8080A's performance by higher system speed,
Its high level of system integration allows a minimum system of three IC's [808SA (CPU), 8156 (RAM/IO) and 83S5/8755A .
(ROM/PROM/IO)] while maintaining total system expandability. The 8085A-2 is a faster version of the 8085A.
The 8085A incorporates all of the features tllat the 8224 (clock generator) and 8228 (system controller) provided for the
8080A, thereby offering a high level of system integration.
The 808SA uses a multiplexed data bus. The address is split between the 8 bit address bus and the 8 bit data bus. The
on-chip address latches of 815S/8156/8355/87S5A memory products allow a direct interface with the 8085A.

*: *:
REG

REG

STACK POINTER

•

PROGRAM COUNTER

}REG1STfR
ARRAY

1161

1161

INCREMENteR/DECREMENTER
11&1
ADDRESS LATCH

A16-Aa

AODREsseus

Flgl,lr. 1. 808SA CPU Functional Block Diagram

X,

Vee

X2

HOLD

RESET OUT
SOD
SID
TRAP
RST 7 5
RST 6.5
RSTS.5
INTR'

HLOA
elK (OUT)

RESET IN
READY

101M
81

R5
WR

INTA

ALE

ADD

So

AD,

A15

AD2
AD3
AD4
ADS
ADS

A14
A13
A12
An
A10

AD7

A9

VSS . . ._ _...r

AJ

AOt-AOo

ADDRESS/DATA BUS

Figure 2; ·8OSSA Pin
. Configuration

I

2-26

AFN-01242C

inter

808SA/808SA-2
"NOTICE: Stresses abova those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this
specification is not implied. Exposure to absolute
maximum rating conditions for extended periods may
affect device reliability.

ABSOLUTE MAXIMUM RATINGS·
Ambient Temperature Under Bias......... OOC to 70°C
Storage Temperature ..............-65°C to +150°C
Voltage on Any Pin
With Respect to Ground ............ -0.5V to +7V
Power Dissipation. . . . . . . . . . . . . . . . . .
1.5 Watt

D.C. CHARACTERISTICS

(TA =

o·c to 700C, Vee

Parameter

=

ov ±5%, Vss =

OV; unless otherwise specified)

Min.

Max.

Units

V IL

Input Low Voltage

-0.5

+0.8

V

VIH

Input High Voltage

2.0

VCC·+O·5

V

VOL

Output Low Voltage

0.45

V

IOL

VOH

Output High Voltage

V

IOH

Icc

Power Supply Current

170

rnA

IlL

Input Leakage '

±10

/JA

0... VIN ... Vcc

ILO

Output Leakage

±10

/JA

0.45V';;; V out ';;; Vcc

VILR

Input Low Level, RESET

-0.5

VIHR

Input High Level, RESET

2.4

V HY

Hysteresis, RESET

Symbol

2.4

0.25

2-27

+0.8

V

Vcc +0.5

V

Test Conditions

= 2mA
=-400/JA

V

AFN-01242C

inter

8085A/8085A-2

A.C. CHARACTERISTICS
Symbol

(TA ==

ooe to 70oe, vee = ov

±5%,

vss = ,OV)

8085AI2J

Parameter

8085A·212J

Min.

Max•.

Min•

Max.

2000

2000

. tcvc
t1

CLK Cycle Period
(.iLK Low Time (:standard CLK Loaolng)

320
80

200
40

t2

CLK High Time (Standard CLK Loading)

120

70

t r, t f
tXKR
tVIt"'
tAC
tACL
tAO
tAFR
tAL
tALL
tARY
lel

tcc
tCL
tow
tHABE
tHABF
t HACK
t HOH
tHOS
tlNH
tiNS
tLA
tLc
t LCK
tLOR
tLow
tLL
t LRy

CLK Rise and Fall Time
X· Rilling to eLK RISing
X Rlslne to CLK Faliine

A8 _15 Valid to Leading Edge of Control llJ
Ao-7 Valid to Leading Edge of Control
AO-15 valla to valla Data In
Ao~ess F~oat ATter Leaolng Edge Of
READtiNTA}
AS- 15 Valid Before Trailing Edge of ALEI1J,
Ao-7 Valid Before Trailing Edge of ALE
HI:AUY valla from Aaaress valla
Aaaress lAa-15) valla A ter \.: ontro
Width of Control Low (RD, WR, INTA)
Edge' of ALE
Trailing Edge of Control to Leading Edge
of ALE
Data Valid to Trailing Edge of WRITE
HLDA to Bus Enable
Bus Float After HLDA
HLDA Valid to Trailing Edge of CLK
HOLD Hold Time
HOLD Setup Time to Trailing Edge of CLK
11111 H MOla lime
INTR, RST, and TRAP Setup Time to
Falling Edge of CLK
Address Hold Time After ALE
Trailing Edge of ALE to Leading Edge
of Control
ALE Low During CLK High
ALE to valla Data During Read
ALE to Valla Data Dunng write
ALI: Wldtn
ALE to READY Stable

2-28

30
30
270
240

30
120
150

30
30
115
115

575

ns
ns
ns

30
100
110
350

0

Units

0

ns
ns'
ns
. ns
ns
ns

120

60

ns
ns
ns
ns
ns

400

230

ns

50

25
230

115

50

90

50

220

100

110
0
170
0

40
0
120
0

ns
ns
ns
ns
ns
ns
ns
ns

160
100

150
50

ns
ns

130
100

60

ns
ns
ns
ns
ns
ns

420
210
210

150
150

50
460
200

140

270
120
80

110

30

AF~·01242C

intJ

8085A18085A·2

A.C. CHARACTERISTICS (Continued)
Symbol

8085A[2)

Parameter

Min.
tRAE

8085A·2[2)
Min.

Max.

150

Trailing Edge of READ to Re·Enabling
of Address

Units

Max.

90

ns

150

300

tRD

READ (or I":ITA) to Valid Data

tRV

Control Trailing Edge to leading Edge
of Next Control

400

220

ns

tRDH

Data Hold Time After READ INTA[7)

tRYH
tRYS

READY Setup Time to leading Edge
of ClK

0
0
110

0
0
100

ns

READY Hold Time

two

Data Valid After Trailing Edge of WRITE

tWDl

lEADING Edge of WRITE to Data Valid

100

ns
ns
ns

60

40

ns

20

\

ns

NOTES:
1.

As·A 15 address Specs apply to 101M, So' and S1 except As·A 15 are undefined during T4·Ts of OF cycle
whereas IOiM, So' andS1 are stable.

2.

Test conditions: teye = 320 ns (8085A)/200 ns (8085A·2); CL = 150 pF.

3.

For all output timing where Cl = 150pF use the following correction factors:
25pF .. CL < 150pF: -0.10ns/pF
150pF < CL" 300pF: +0.30ns/pF

4.

Output timings are measured with purely capacitive load.

5.

All timings are measured at output votage VL = 0.8V, VH ='2.0V, and 1.5V with 20ns rise and fall time on inputs.
To calculate timing specifications at other values of teye use Table 7.
Data hold time is guaranteed under all loading conditions.

6.
7.

A.C. TESTING LOAD CIRCUIT

A.C. TESTING INPUT, OUTPUT WAVEFORM
INPUT/OUTPUT

"=:X ?
2.0

0.8

0.45

<

:c

2.0

TEST POINTS

0.8

.

DEVICE

. UNDER

TEST

AC TESTING INPUTS ARE DRIVEN AT 2 4V FORA LOGIC "1" AND 045V FOR
A LOGIC "0" TIMING MEASUREMENTS ARE MADE AT 2 OV FOR A lOGIC "1"
AND
FOR A LOGIC "0 "

a.sv

'1CL~150PF

CL =150pF
CL INCLUDES JIG CAPACITANCE

2-29

A~12'2C

8155H/8,156H/8155H-218156H-2
2048-BrT STATIC HMOS RAM
WiTH 1/0 PORTS AND TIMER
• 1 Programmable 6-Bit I/O Port
• Programmable 14-Blt Binary Counter/

• Single +5V Power Supply with 10%
Voltage Margins
• 30% Lower Power Consumption than
the 8~55 and 8156
• 100% Compatible with 8155 and 8156
• 256 Word x 8 Bits
• Completely Static Operation
• Internal Address Latch
.' 2 Programmable 8-Blt I/O Ports

TIm~

~.
. I
'

,

• Compatible with 8085AH, 8085A and
8088 CPU
• Multiplexed Address and Data Bus
• Available In EXPRESS
- Standalll Temperature Range
- Extended Temperature Range

The Intele 8155H and 8156H are RAM and I/O chips implemented in N-Channel. depletion load. silicon gate technology
(HMOS). to be used in the 8085AH and 8088 microprocessor systems. The RAM portion Is designed with 2048 static cells
organized as 256 x 8. They have a maximum access time of 400 ns to permit use with no walt states in 8085AH CPU.The
8155H-2 and 8156H-2 have maximum access times of 330 ns for use with the 8085AH-2 and the 5 MHz 8088 CPU.
The 110 portion consists of three general purpose 110 ports. One of the three ports can be programmed to be status
pins. thus allowing the other two ports to operate in handshake mode.
A 14-blt programmable counter/timer is also Included on chip to provide either a square wave or terminal count pulse
for the CPU system depending on timer mode.

PC,
PC.
10 ' M

ADo 7

256

x8

STATIC
RAM

*
ALE
RD

Wii
RESET

TIMER

TIMER CLK
TIMER OUT

,.,_'l1li;2 =

B
B

PAo-,

iii, 81 _ _ _2 - CE

Figure 1. Block Diagram

TIMER IN

PC,

RESET

pc.

pc.

PB,

TIMER OUT

PBs

101M

PB.

PB.
PB".,

G
Lvcc

vee
pc.

PCO~5

(+5VI ,

V"IOV)

RD

PB,

Wii

PB.

ALE

PB,

AO.

PB.

AO,

PA,

AO.

PAs

AO,

PAs

AO.
AO.

PA.
PA,

AD.
AO,

PA,

Vss

Plio

PA.

Figure 2. Pin Configuration

Intel Corporation A.sum.. No Reaponaibilty for the Use of Any Circuitry Other Than Circuitry Embodl.d In an Intel Product. No Other Clf'Cult Patent Licenses 8f8lmplied.
© INTEL CORPOIlATION. ,~,.
2-30

8155H/8156H/8155H-2I8156H-2

Table 1. Pin Description
Type

Name and Function

I

R•••t: Pulse provided by the 8085AH to initialize the system (connect to 8085AH RESET OUT). Input
high on this line resets the chip and initializes the three I/O ports to input mode. The width of RESET
pulse should typically be two 8085AH clock cycle times.

I/O

Addr.../Data: 3-state Address/Data lines that interface with the CPU lower 8-bit Address/Data Bus.
The 8-blt address is latched into the address latch inside the 8155H/56H on the falling edge of ALE. The
address can be eltherfor the memory section or the I/O section depending on the 10/M input. The 8-blt
data is either written into the chip or read from the chip. depending on the WR or RD input signal.

CE or Cl:

I

Chip Enable: On the 8155H. this pin is CE and is ACTIVE LOW. On the 8156H, this pin is CE and is
ACTIVE HIGH.

RD

I

Read Control: Input low on this line with the Chip Enable active enables and ADO_7 buffers. If 10/M pin
is low, the RAM content will be read out to the AD bus. Otherwise the content of the selected I/O port or
command/status registers will be read to the AD bus.

WR

I

Write Control: Input Iowan this line with the Chip Enable active causes the data on the Address/Data
bus to be written to the RAM or I/O ports and command/status register, depending on lo/fi:l

ALE

I

Address Latch Enable: This control signal latches both the address on the ADo_7 lines and the state
of the Chip Enable and 101M Into the chip at the falling edge of ALE.

I

I/O Memory: Selects memory if low and I/O and command/status registers if high.

Symbol
RESET

ADo_7

10/M
PAO_7(S)

I/O

Port A: These 8 PinS are general purpose I/O pins. The in/out dlrecllon IS selected by programming
the command register.

PBO_7(8)

I/O

Port B: These 8 pins are general purpose I/O pinS The in/out direction is selected by programming
the command register

PCo_s(6}

I/O

Port C: These 6 pinS can function as either Input port, output port, or as control Signals for PA and PB.
Programming is done through the command register. When PCo-s are used as control signals, they
will provide the follOWing:
PCo - A INTR (Port A,lnterrupt)
PC 1 - ABF (Port A Buffer Full)
PC2 - A STB (Port A Strobe)
PC3 - B INTR (Port B Interrupt)
PC4 - B BF (Port B Buffer F'ull)
PC s - B STB (Port 6 Strobe)

TIMER IN

I

TIMER OUT

0

Timer Input: Input to the counter-timer.
Timer Output: This output can be either a square wave or a pulse, depending on the timer mode.

Vee

Voltage: + 5 volt supply.

Vss

Ground: Ground reference.

FUNCTIONAL DESCRIPTION

I
I

I
The 8155H/8156H contains the following:
• 2k Sit Static RAM organized as 256 x 8
• Twb 8-bit 110 ports I PA & PS I and one 6-bI! 110 port I PC)
• 14-bit timer-counter
The 101M 1I0/Memory Select I pin selects either the five
registers ICommand, Status, PAo-?, PSO-?, PCO-51 or
the memory IRAMI portion.
The 8-oit address·on the AddresslData lines, Chip Enable
input CE or CE, and I DiM ,pre all latched on-chip at the
falling edge of ALE

I
I

I

I

I

I

I

I

I
I
I

I
I

I

I
I
I

I

L ___ ~_

.
_________
.JI

Figure 3. 8155H/8156H Internal Registers

2-31

AFN·0196OC

8155H/8156H/8155H-218156H-2

CE(815SH)

\

/

'\

/

\

/

\

/

\

OR

CE(8l5SH)

101M

\

X

ADDRESS

X

\

DATA VALID

,

Al E

NOTE: FOR DETAILED TIMING INFORMATION, SEE FIGURE 12 AND A.C. CHARACTERISTICS.

Figure 4. 8155H/8156H On-Board Memory Read/Write Cycle

PROGRAMMING OF THE
COMMAND REGISTER

r=

ITM' TM;I 'Eel 'EAlpc,1 PC,

The command register consists of eight latches. Four
bits (0-31 define the mode of the ports, two bits 14-51
enable or disable the interrupt from port C when it acts
as control port, and the last two bits 16-71 are forthe timer.

'--.---1

pelPA]

.

The command register contents can be altered at any
time by using the 110 address XXXXXOOO dunng a WRITE
operation with the Chip Enable active and lo/liii = 1. The
meaning of each bit of the command byte is defined in
Figure 5. The contents of the command register may
never be read.

-

,

DEFINESPA..7

}

DEFINES PBO.7

0'" INPUT
1 '" OUTPUT

OQ=ALTl
,
DEFINES peO_5 {

11=ALT2
01 = AL T 3

10=AlT4
L -_ _ _ _ _ _ _ _ _ _ _ _

'-______~______•

READING THE STATUS REGISTER
The status register consists of seven latches, one for each
bit. six (0-51 for the status of the ports and one 161 for the
status of the timer.

~~~~~~~RTA
~~¢eBRLi;~RT

B

1
}

= ENABLE

0= DISABLE

00

=

NOP - DO NOT AFFECT COUNTER
6PERATION

01

=

STOP - NOP IF TIMER HAS NOT STARTED;
STOP COUNTING IF THE TIMER IS
RUNNING

10 = STOP AFTER Te - STOP IMMEDIATELY

AFTER PRESENT

~TIMER COMMAND

re

IS REACHED (NOP

IF TIMER HAS NOT STARTED)

11

=

START - LOAD MODE AND CNT LENGTH
AND STAAT IMMEDIATELY AFTER

lOADtNG !IF TIMER IS NOT PRESENTLY

The status of the timer and the 1/0 section can be polled
by reading the Status Flegister (Address XXXXXOOO).
Status word format is shown in 'Figure 6. Note that you
may never write to the status register since the command
register shares the same 1/0 address and the command
register IS selected 'when a write to that address is issued.

RUNNING) IF TIMER IS RUNNING, START
THE NEW MODE AND CNT LENGTH
IMMEDIATEl Y AFTER PRESENT TC
IS REACHED

Figure 5. Command Register Bit Assignment

2-32

AFN'Ol960C

inter

8155H/8156H/8155H-2/8156H-2

interrupt that the 8155H sends out. The second is an
output signal indicating whether the buffer is full or
empty, and the third is an input pin to accept a strobe
for the strobed input mode. (See Table 2.)
When the 'C' port is programmed to either ALT3 or AL T4,
the control signals for PAand ~Bare initialized as follows:
PORT A INTERRUPT REQUEST

L~

PORT A INTERRUPT ENABLE

CONTROL
SF
INTR

INPUT MODE
Low
Low

OUTPUT MODE
Low
High

PORr B INTERRUPT REQUEST

STB

Input Control

Input Control

PORT A BUfFER FULL/EMPTY
(INPUT/OUTPUT)

' - - - - - - - _ PORT B BUFFER FULl/EMPTY
(INPUT/OUTPUT)

' - - - - - - - - - _ PORT B IN·TERRUPT ENABLED

.

' - - - - - - - - - - - - - TIMER INTERRUPT (THIS BIT
IS LATCHED HIGH WHEN
TERMINAL COUNT IS
REACHED, AND IS RESET TO
LOW UPON READING OF THE
CIS REGISTER AND BY
HARDWARE RESET)

I/O ADDRESSSELECTION
A7 A6 AS A4 A3 A2 A1 AD

X
X
X
X
X
X

Figure 6. Status Register Bit Assignment

X
X
X
X
X
X

X
X

X
X
X
X

X
X
X
X
X
X

X
X
X
X
X
X

0

0
0

0

0

0
0

1
1

0

1
1

0
0

0

1
1
1

Interval Command/Status Register
General Purpose L'D Port A
General Purpose 1/0 Port B
Port C - General Purpose 110 or Control
Low~Order 8 bits of Timer Count
High 6 bits of Timer Count and 2 bits
of Timer Mode

X Don't Care

t

110 Address must be qualified by CE = 1 (8156H) or CE
order to select the approprrate register

'=

0 (8155H) and 101M"" 1m

INPUT/OUTPUT SECTION
The I/O section of the 8155H/8156H consists of five registers: (See Figure 7.)
• Command/Status Register (C/S) - Both registers are
assigned the address XXXXXOOO. The CIS address
serves the dual purpose.
When the CIS registers are selected during WRITE
operation, a command is written into the command
register. The contents of this register are not accessible
throug,h the pins.
When the CIS (XXXXXOOO) is selected during a READ
operation, the status information of the I/O ports and
the timer becomes available on the ADo-7 lines .

Figure 7. I/O Port and Timer Addressing Scheme

Figure 8 shows how I/O PORTS A and B are structured
within the 8155H and 8156H:

8155Hi8158H
ONE BIT OF PORT A OR PORT B

• PA Register - This register can be programmed to be
. either input or· output ports depending on the status of
the contents of the CIS Register. Also depending on
the command, this port can operate in either the basIc
mode or the strobed mode (See timing diagram). The
I/O pins assigned in relation to this register are PAO-7.
The address of this register is XXXXX001.
• PB Register - This register functions the same as PA
Register. The 110 pins aSSigned are P80-7. The address
of this register is XXXXX010 .
• PC Register - This register has the address XXXXX011
and contains only 6 bits. The 6 bits can be programmed to be either input ports, output ports or as control
signals for PA and PB by properly programming the
AD2 and AD3 bits of the CIS register.
When PCO-5 is used as a control port, 3 bits are
assigned for Port A and 3 for Port B. The first bit is an

NOTES·
(1) OUTPUT MODE }
(2) SIMPLE INPUT
(3) STROBED INPUT

(4)
MULTIPLEXER
CONTROL

= 1 FOR OUTPUT MODE
= 0 FOR INPUT MODE

READ PORT = (lO/M=l) _ (RD=O) _ (CE ACTIVE) _ (PORT ADORESS SELECTED) ,
WRITE PORT= (l0/M=1) _ (WFi:=O)_ (CE ACTIVE)- (PORT ADDRESS SELECTED)

'Figure 8. 8155H/8156H Port Functions
AFN·0196OC

81 55.H/81 56H/8155H.218156H~2

Table 2. Port Control Assignment
ALT 2.

ALT 1

Pin
PCO
PC1
PC2
PC3
PC4
, PC5

Input
Input
Input
Input
Input
Input

Output
Output
Output
Output
Output
Output

Port
Port
Port
Port
Port
Port

Port
Port
Port
Port
Port
Port

ALT3

ALT4

A INTR (Port A Interrupt)
A BF (Port A Buffer Full)
A STB (Port A Strobe)
Output Port
Output Port
Output Port

A INTR (Port A Interrupt)
A BF (Port A Buffer Full)
A STB (Port A Strobe)
B INTR (Port B Interrupt)
B BF (Port B Buffer Full)
B STB (Port B Strobe)

Note In the diagram that when the 1/0 ports are programmed to be output ports, the contents of the output
ports can still be read by a READ operation when approprlatelyaddressed.

TIMER SECTION
The timer is a 14-bit down-counter that,counts the TIMER
IN pulses and provides either a square wave or pulse
when terminal count (TCI is reached.

The outputs of the 8155H/8156H are "glitch-free" meaning
that you can write a "1" to a bit position that was previously "1" and the level at the output pin will not change,

The timer has the I/O address XXXXX100forthe low order
byte of the register and the I/O address XXXXX101 for
the high order byte of the register, (See Figure 7,)

Note also that the output latch is cleared when the port
enters the Input mode, The output latch cannot be loaded
by writing to the port if the port is in the input mode. The
result is that each time a port mode is changed from input
to output, the output pins will go low, Wheri the8155H/56H
is RESET, the output latches are all cleared and all 3 ports
enter the input mode,

To program the timer, the COUNT LENGTH REG is
loaded first, one byte at a time, by selecting the timer
addresses, Bits 0-13 of the high order count register will
specify the length of the next count and bits J4-15 of the
high order register will specify the timer output mode
(see Figure 10). The value loaded into the count length
register can have any value from 2H through 3FFH in
Bits 0-13.

When in the AL T 1 or AL T 2 modes, the bits of PORT C
are structured like the diagram above in the simple input
or output mode, respectively.

4

Reading from an input port with nothing connected to the
PinS will provide unpredictable results.

Mz

Figure 9 shows how the 8155H/8156H I/O ports might be
configured in a typical MCS-85 system.

Ml

I

T131 T121 Tlll T lOl T91

II

I

I

Te

I
I

I

MSB OF CNT LENGTH

TIMER MODE

T7

2

4

6

Tsl Tsl T4

I

.1
T31

Tzi

Tl

0

I I
To

I

I

LSB OF CNT LENGTH

Figure 10. Timer Format

.--r

-"

PORT A

PORT C'

OUTPUT

There are four modes to choose from: M2 and M1 define
the timer mode, as shown in Figure 11,

TO 8085AH RST INPUT
PORT A

A INTR ($'IGNALS DATA RECEIVED)

t

TIMER OUT WAVEFORMS

' ' 'DATA
' ..,,"
• He
A srB,.,""
(ACKNOWL
RECEIVED)

}

TO/FROM

• B STB (LOADS PORT B LATCH)

J

6 SF (SIGNALS BUFFER IS FULL)
B INTR (SIGNALS BUFFER
READY FOR READINGI

PORT B A

v

INPUT

PERIPHERAL

INTERFACE

1

START
COUNT

MODE
BITS
M2

'0

TO INPUT PORT (OPTIONAL)

,

M1

(TERMINAL)
COUNT

_____ l ____ _

1 SINGLE
SQUARE WAVE

3 SINGLE
PULSE ON
TERMINAL COUNT
4 CONTINUOUS
PULSES

=

COUNT

2 CONTINUOUS
SQUARE WAVE

TO eOe5AH RST INPUT

Figure 9. Example: Command Register

TERMINAL

~

00111001 '
2-34

u---.:- ---------

v

Figure 11. Timer Modes
AFN,Ol960C

inter

8155H/8156H/8155H-218156H-2

Bits 6-7 (TM2 and 'TM1) of command register contents
are used to start and stop the counter. There are four
com";1ands to choose from:
TM2

TM1

o
o

0

NOP - Do not affect counter operation.
STOP - NOP if timer has not started.;
stop countil"1g if the timer is running.

o

STOP AFTER TC - Stop immediately
after present TC is reached (NOP iftimer
has not started)
START - Load mode and CNT length
and start immediately after loading (if
timer is not presently running). If timer
is running, start the new mode and CNT
length immediately after present TC is
reached.

Note that while the counter is counting, you may load a
new count and mode into the count length registers.
Before the new count and mode will be used by the
counter, you must issue a START command to the
counter. This applies even though you may only want to
change the count and use the previous mode.

The counter in the 8155H is not initialized to any particular
mode or count when hardware RESET occurs, but RESET
does stop the counting. Therefore, counting cannot begin
following RESET until a START command is. issued via the
CIS register.
Please note that the timer circuit on the 8155H/8156H chip
is designed to be a square-wave timer, -not an event
counter. To achieve thiS, it counts down by twos twice
in completing one cycle. Thus, its registers do not contain values directly representing the number of TIMER IN
pulses received. You cannot load an initial value of 1 into
the count register and cause the timer to operate, as its
terminal count value is 10 (binary) or 2 (decimal). (For
the detection of single pulses, it is suggested that one
of the hardware interrupt pins on the 8085AH be used.)
After the timer has started counting down, the values
residing in the count registers can be used to calculate
the actual number of TIMER IN pulses required to complete the timer cycle if desired. To obtain the remaining
count, perform the following operations in order:
1. Stop the count
2. Read in the 16-bit value from the count length registers
3. Reset the upper two mode bits

In case of an odd-numbered count, the first half-cycle
of the squarewave output, which is high, is one count
longer than the second (lOW) half-cycle, as shown in
Figure 12.

4. Reset the carry and rotate right one position al116 bits
~ro~h~~

.

5. If carry is set, add 1/2 of the full original count (112 full
count - 1 if full count is odd).

Note: If you started with an odd count and you read the
count length register before the third count pulse occurs,
you will not be able to discern whether one or two counts
has occurred. Regardless of this, the 8155H/56H always
counts.out the right number of pulses in generating the
TIMER OUT waveforms.
NOTE 5 AND 4 REFER TO THE NUMBER OF CLOCKS IN THAT TIME PERIOD

Figure 12. Asymmetrical Square-Wave Output
Resulting from Count of 9

2-35.

AFN·Ol96OC

~15S.H/8156H/8155H~218156H.2

808SA MINIMUM SYSTEM CONFIGURATION
Figure 13a shows a minimum system using three chips,
.containing:
•
•

•
•
•

256 Bytes RAM
2K Bytes ROM
38 1/0 Pins
1 Interval Timer
4 I nterrupt Levels

8085 MINIMUM SYSTEM CONFIGURATION

t-..
AS-1S

v
A
AOO·7

-=

ALE

. 8085AH

RiS

;:..

-

~

-

101M

-

eLK

-

RESET OUT

READY

-

Vee
TIMER

RESET

T6~~R_

WR Ri5

IN

B

ALE

L.j
-'-CONTROL

7-

eE'(

I
LATCHES

I

'101M

~

7:~~" 7-~~

CE

Igi

ALE

RiSIKWi eLK RST

RDY

I

I

8355 I ROM + I/O I

256 x 8
RAM

8755A [PROM + I/OJ

OR
\

8158H

-

I

~~~~
,

'B BB

BB

,
Figure 13a. 8085AH Minimum System Configuration (Memory Mapped 1/0)

2-36

. AFN-01960C

inter

8155H/8156H/8155H-218156H-2

• 381/0 Pins

8088 FIVE CHIP SYSTEM
Figure 13b shows a five

~hip

• 1 Interval Timer

system containing:

• 2 Interrupt Levels

• 1.2SK Bytes RAM

• 2K Bytes. ROM

/'

I

1~t-

Vss Vee

I I

POR!~

CE

~t--'-WR
Ali

PORT
"&111-2 8

00
(8)

. ALE
PORToo
DATAl
C
(8)
ADDR
IN_
101M TIMER
OUT

r-

RESET

A8-A19

~.

I\"

lOW

V
CLKADo- AD7

Ali

h
r~

/1

,--

ADDRIDATA

ALE

.. r-..

L.:8088

RST

®

ClK

READY ~

ALE

f-

f-

Rli

I--

I-- I-

WR

1--'

101M

f'f-

.--

REli
828'
RESET

8755A-2
DATAl
ADDR
101M

I

PORT

~--' RESET

f-

00

'355-2/

'. V

MN/MX I--Vee

O

ROY'

AS _10

r--

r - READY

.,r l"

PORT
A

CE

B

READY

00·
Vee

~-'

, I II

lpROG
Vss Vee VDD

Vee

WR

......

Ali

CD

•

eel 818502
ALE

If-

11'1I~t-

Cli.
CE,

"e.'"
APo·,

! !.

Vss

,

Vee·

7

Figure 13b. 8088 Five Chip System Configuration

2-'37

AFN·Ol98OC

,

8155H!8158H18155H-218158H-2

ABSOLUTE MAXIMUM RATINGS·
TemperatureUnderBias ................ 0·Cto+70·C
Storage Temperature ..•............ -65·C to +150·C
Voltage on Any Pin
With Respectto Ground ............... -0.5V to +7V
Power Dissipat jon . .'........................... 1.5W

D,C. CHARACTERISTICS

(fA =

,

"'r:'"

0').

~

o·c to 700C. Vee = 5V ± 10%)

Parameter

Min.

Max.

Units

V'l

Input Low Voltage

-0.5

0.8

V

2.0

Vcc+O.5

V

0.45

V

Iol = 2mA

V

IoH = -4OO1tA

V'H

Input High Voltage

VOL

Output Low Voltage

VoH

Output High Voltage

I'l

Input Leakage

±10

IlO

Output Leakage Current

±10

ItA
ItA

Icc

Vee Supply Current

125

mA

l'llCE)

Chip Enable Leakage
8l55H
8l56H

+100
-100

p.A
p.A

2.4

(fA

.

'NOTICE: Stresses above those listed (/fider "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functionaloperation of the device at these or any other conditions above
those indicated in the operational sections, of this
specification is not implied. Exposure to absolute maximum rating conditions fOf extended periods may affect
device reliability.

Symbol

A.C. CHARACTERISTICS

,

Test Conditions

OV"" VIN "" Vec'
0.45V .;;; VOUT .;;; VCC

OV"" VIN "" Vec

= o·c to 700C. Vce = 5V ±10%)
8155H18156H

8155H-218156H-2

Symbol

Parameter

tAL

Address, to Latch Set Up Time

50

30

tlA

Address Hold Time after Latch

80

30

ns

tlC

Latch to READIWRITE Control

100

40

ns

tRO

Valid Data Out Delay from READ Control

Min.

Max.

Min.

170

400

Max.

Units
ns

140

ns

330

ns

tAD

Address Stable to Data Out Valid

tLL

Latch Enable Width

tROF

Data Bus Float After READ

0

tCl

READIWRITE Control to Latch Enable

20

10

ns

tcc

READIWRITE Control Width

250

200

ns

tow

Data In'to WR ITE Set Up Time

150

100

ns

two

Data In Hold Time After WR ITE

25

25

ns

tRv

Recovery Time Between Controls

300

200

twp

WR ITE to Port Output

tPR

Port Input Setup Time

70

tRP

Port Input Hold Time

50

tSBF

Strobe to Buffer Full

tss

Strobe Width

tRBE

READ to Buffer Empty

tSI

Strobe to I NTR On

100
100

0

400

80

ns

ns
300

,

ns

50

ns

10

ns

400

300

ns

400

300

' ns

400

300

hs

200

,

ns

70

ns

150

AFN-019BOC

intJ

8155H18156H/8155H-218156H-2

A.C. CHARACTERISTICS

(Continued) (TA = O·C to 70·C. Vee = 5V :t10%)

8155H/8156H

Symbol

Parameter

Min.

8155H-218156H-2

Max.

Min.

Max.

400

tRDI

READ to INTR Off

tPSS

Port Setup Time to Strobe Strobe

Units

300

50

ns
ns

0

tl'HS

Port Hold Time After Strobe

tSBE

Strobe to Buffer Empty

400

300

ns

tWBF

WR ITE to Buffer Full

400

300

ns

tWI

WR ITE to I NTR Off

400

300

ns

tTL

TIMER-IN to TIMER-OUT Low

400

300

ns

tTH

TIMER-IN to TIMER-OUT High

400

300

ns

tRDE

Data Bus Enable from READ Control

tl

t2

.120

100

ns

·10

10

ns

TIMER-IN Low Time

80

46

ns

TIMER-IN High Time

120

70

ns

A.C. TESTING INPUT, OUTPUT WAVEFORM

A.C. TESTING LOAD CIRCUIT

INPUT/OUTPUT

"-V>-~~

TEST POINTS

O.B

0.45

<"')C

DEVICE
UNDER
TEST

O.B

A C TESTING INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC 1" AND 0 45V FOR
TIMING MEASUREMENTS ARE MADE AT 2 OV FOR A LOGIC 1
A LOGIC
AND 08V FOR A LOGIC 0

o·

rr

C ':150 P F

C, = 150pF
C, INCLUDES JIG CAPACITANCE

2-44

,

AFN-00201P

inter
8185/8185-2
1024 x 8-BIT STATIC RAM FOR MCS-SS-

• Multiplexed Address and Data Bus

• Low Standby Power Dissipation

• Directly Compatible with 8085A
and IAPX 88 Microprocessors

• Single +5V Supply

• Low Operating Power Dissipation

• High Density 18·Pln Package

The Intel llD 8185 is an 8192-bit static random access memory (RAM) organized as 1024 words by 8-bits using N-channel
Silicon-Gate MOS technology. The multiplexed address and data bus allows the 8185 to, interface directly to the 8085A and
iAPX 88 microprocessors to provide a maximum level of system integration.
The low standby power dissipation minimizes system power requirements when the 8185 is disabled.
The 8185-2 is a high-speed selected version of the 8185 that is compatible with the 5 MHz 8085A-2 and the5 MHz iAPX 88.

Yee

ADo

es

CE,
~

IIIW
LOGIC

lID
WR

ALE

DATA
BUS
BUFFER

ADo-AI>,

lK . ,
RAM
MEMORY
ARRAY

AD,

lID

AD2

WR

ADa

AU:

AD,

es

AD.

CE,

AIle

CE2

AI>,

As

vss

As

ADcr-AD7 ADDIIES1I/IIATAUNES

CE,
CE2

_UNES'
CHIPIELECT
CHIP ENAIILE (10/11)
CHIP ENAIIU!
_
LATCH ENABLE

WR

WRITE ENABLE

As.Ag

cs
ALE
As.
As

=====L---=J

ALE

r

Figure 2. Pin Configuration

Figure 1. Block Diagram

Intel Corporation As.um•• No Responlibltty for the Uae of Any Circuitry Other Than Circuitry Embodied In an Intel Product No Other Circuit Patent Licene•• .,.Implled

, @INTEL'CORPORATION,

'9ao

245

A~l230C

8185/8185-2
FUNCTIONAL DESCRIPTION
The 8185 has been designed to provide for direct interface
to the multiplexed bus sfructure and bus timing of the
8085A microprocessor.

----

At the beginning of an 8185 memory access cycle, the 8bit address on ADo-7, As and As, and the status of CEl and
CE2 are all latched internally in the 8185 by the falling edge
of ALE. If the latched status of both CEl and CE2 are
active, the 8185 powers its!!1f up, but no action occurs until
the CS line goes low and the appropriate Ri5 or WR control
signal Input is activated.

CE 2

CS

8185 StatuI

1

X

X

0

Power Down and
Function Disablell]

X

0

X

0

Power Down and
Function Disablell]

III
RESET IN

HOl.D I HlOA

RST7,S
R516,5

SOD

8085A

R8T5,5

SID
' S,

INTR
RESeT

mTA
ADOR

IIfI-

Sol-

OUT
ADDR/
OAT A ALE AD WR 101M
ROY eLK

T

Vi'

181

[~-

W

CE

POR!W

WR

PORT

8

II

Ali 815s B

PORT~

ALE
DATAl
ADDR
IO/~

C

IN
TIMER

RESET

Table 1.
Truth Table for
Power Down and Function Enable
CE l

Vss Vee

X2

X,

TRAP

181

The Cs input is not latched by the 8185 In order to allow
the maximum amount of time for address decoding in
selecting the 8185 chip. Maximum power consumption
savings will occur, however, ohly when CEl and CE2 are
activated selectively to power down the 8185 when it is not
in use. A possible connection would be to wire the 8085A's
101M line to the 8185's CElinput, thereby keeping the
8185 powered down during 1/0 and interrupt cycles.

(CS*)12]'

DD~

OUT

,

f:=

'OW

Ali
ALE

[t~=

i

PORT
A

CE

-" As to

:

~

8355/
8755A
DATAl
ADDR

101M
RESET

0

1

1

0

Powered Up and
Function Disablell]

0

1

0

1

Powered Up and
Enabled

pV

ROY

...- ClK

.1 1J

t

Vss Vee Voo PROG

NOTES: •
X: Don't Care.
t: Function Disable implies Data Bus in high impedance state
and not writing.
2: CS' = (CEl = 0). (CE2 = 1),0 (CS = 0)
CS' = 1 signifies all chip enables and chip select active

WR
RD
CE,

8185

ALE

I~I~-

CS, eE2
As. Ag

Table 2.
Truth Table for
Control and Data Bus Pin Status
(CS*) RD

PORT
B

A°0-7

t vL

Vss

Vee

ADo-7 During Data
WR Portion of Cycle
8185 Function

X Hi-Impedance

Vee

No Function

0

X

1

0

1

Data from Memory Read

1

1

0

Data to Memory

Write

1

1

1

Hi-Impedance

Reading, but not·
Driving Data Bus

Figure 3. 8185 in an Me8-85 System
4 Chips:
2K Bytes ROM
1.25K Bytes RAM
38 liD Lines
1 CounterlTimer
2 Serial I/O Lines
5 Interrupt Inputs

NOTE:
X: Don't Care.

2-46

AFN-Q1230C

inter

8185/8185-2

IAPX 88 FIVE CHIP SYSTEM:
•
•
•
•
•

1.25 K Bytes RAM
2 K Bytes ROM
38110 Pins
1 Internal Timer
2 Interrupt Levels

Vss Vee

j

j
POR1~

~

I It-

~j----_WR

POR~

Rii

~
(8)

8155-2
ALE
DATAl
ADOR

PORT~
C

(6)

IN_
101M TIMER
OUT

RESET

..

As

,---

ADDR

A19

ADo- AD7

ClK

~
V

",

ADDRIDATA

,---

lOW

'Rii

~

ALE

~~

~.

~4? ' '.,
~

GND
(VSS)

GND

MANUAL
RESET

rDl
X,

, - RST

®

X,
ClK
READY

t--

8284A

ALE

f--

c--

Rii

f-- f-

WR

f-f--

101M

f--

..----

f--

8355-21

8755A·2

I

101M

PORT

RESET

B

~
Vee

READY

iOR

111

f--

RESET

RCYl

~

DATAl
ADOR

,---

RES

A e•1o

-V

READY

MNIMX -Vee

Vee

PORT
A

CE

?~

8088

I--

..J

L

pROG

Vss Vee Voo

Vee

-

....

ViR

Rii

CD

eEt.

81.2

ALE

If--

Irf-\--

es.
CE,

As. Ag
ADO_7

1 Vee1

v's

Figure 4. iAPX 88 Five Chip System Configuration

2-47

AFN-OI230C

\.

,8185/8185-2
-NOTICE: Stresses above those'listed under "Absolute
Maximum Ratings" may cause permanent' damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

ABSOLUTE MAXIMUM RATINGS*
Temperature Under Bias ...•......•... o·c to +70·C
Storage Temperature .•...•.•.••... -65·C to +150·C
Voltage on Any Pin
with Respect to Ground .............• -0.5V to +7V
Power Dissipation ..••••...••.................. 1.5W

D.C. CHARACTERISTICS

(TA =

o·c to 70·C. Vee =

5V ± 5%)

Min.

Max.

Units

Input Low Voltage

-0.5

0.8

V

VIH

Input High Voltage

2.0

Vee+0.5

V

VOL

Output Low Voltage

0,45

V

VOH

Output High Voltage

ill

Input Leak'age

±10

!,A

OV ,;;VIN .;;VCC

IlO

Output Leakage Current

±10

IJA

0.4SV ::;; VOUT ::;; Vee

Icc

Vce Supply Current
Powered Up
Powered Down

100
35

mA
mA

Symbol

Vil

Parameter

A.C. CHARACTERISTICS

(TA

Test Conditions

IOl = 2mA

2.4

IOH = - 400!,A

= o·c to 70·C. Vee = 5V ± 5%)
8185-2

8185
Symbol

Parameter

Min.

Max.

Min.

Max.

Units

tAL

Address to Latch Set Up Time

50

30

ns

tlA

Address Hold Time After Latch

80

30

ns

tLe

Latch to READ/WRITE Control

100

40

tRO

Valid Data Out Delay from READ Control

170

140

ns

lLo

ALE to Data Out Valid

300

200

ns

. ILL

Latch Enable Width
~us

70

100

Float After READ

0

ns

0

ns
ns

Data

tel

READ/WRITE Control to Latch Enable

20

10

ns

tee

READ/WRITE Control Width

250

200

ns

tow

Data In to WRITE Set Up Time

150

150

ns

two

Data In Hold Time After WRITE

20

20

ns

tse

Chip Select Set Up to Control Line

10

10

ns

tcs ,

Chip Select Hold Time After Control

10

10

ns

tAleE

Chip Enable Set Up to ALE Falling

30

10

ns

tlACE

Chip Enable Hold Time, After ALE

50

30

ns

2-48

100

80

tROF

AFN·01230C

inter

8185/8185-2

A.C. TESTING INPUT, O~TPUT WAVEFORM

A.C. TESTING LOAD CIRCUIT

INPUT/OUTPUT

,

u~u >

TEST POINTS

OAS

0.8

<")C

DEVICE

UNDER
TEST
IJCL_nOPF

0,'

A C TESTING INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC "I" AND 0 45V FOR
A LOGIC "0" TIMING MEASUREMENTS ARE MADE AT 2 OV FOR A LOGIC "I"
AND 0 81/ FOR A LOGIC "0 "

CL = 150'pF
CL INCWDES JIG CAPACITANCE

WAVEFORM

ALE

(CE,-O).
IC E2'"

WR,Fffi

ADo-AI>,
IA., A,)

(READ CYCLE)

~-----~c--~---'I

ADO·AD?

(WRITE CYCLE)

\'--_-.J.I_~
ISELECTED)

IDESELECTED)

2-49

AFN-0123OC

8205
HIG·H SPEED 1 OUT OF 8 BINARY DECODER
• Low Input Load Current - .25 mA
max., 1/6 Standard TTL Input Load
• Minimum Line Reflection - Low
Voltage Diode Input Clamp

• 1/ 0 Port or Memory Selector

• Simple Expansion - Enable Inputs
• High Speed Schottky Bipolar
Technology - 18ns Max. Delay

• Outputs Sink 10 mA min.
• 16·Pin Dual·ln·Line Ceramic or
Plastic Package

• Directly Compatible with TTL Logic
Circuits

The Intele 8205 decoder can be used for expansion of systems which utilize input ports, output ports, and memory
components with active low chip select input. When the 8205 is enabled, one of its 8 outputs goes "low," thus a single row
of a memory system is selected. The 3-chip enable inputs on the,8205 allow easy system expansion. For very large systems,
8205 decoders can be cascaded such that each decoder can drive.8 other decoders for arbitrary memory expansions.
The 8205 is packaged in a standard 16-pin dual in-line package, and its performance is specified over the temperature
range of O°C to +75°C, ambient. The use of Schottky barrier diode clamped transistors to obtain fast switching speeds
results in higher performance than equivalent devices made with a gold diffussion process.

AO
A,

Ao

16

Vee

A,

A,

15

00

A,

14

0,

E,

13

0,

8205

8205

ADDRESS

" " "

L
H
L
H
L
H
H

L
L
H
H
L
L
H
H

L
L
L
L
H
H
H
H

X
X
X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X
X
X
X

L

E,

E,

12

03

E,

E3

11

0,

E,

0,

10

°5

GRD

,.9

06

ENABLE
E, E, E,
L
L
L
L
L
L
L
L
L
H
L
H
H
L
H

L
L
L
L
L
L
L
L
L
L
H
H
L
H
H

H
H
H
H
H
H
H
H
L
L
L
L
H
H
H

a
L
H
H
H
H
H
H
H
H
H
H
H
H
H
H

,
H
L
H
H
H
H
H

H
H
H
H
H
H
H
H

2

,

H
H
L
H
H
H
H
H
H
H
H
H
H
H
H

H
H
H
L
H
H
H
H
H
H
H
H
H
H
H

OUTPUTS
4

G

G

I

H
H
H

H

H
H

H
H
H
H
H
H
L
H
H
H
H
H
H
H

H

H

H

.H

H

L
H
H
H
H
H
H
H
H
H
H

H
L
H
H
H
H
H
H
H
H
H

H
H
H
L
H
H
H
H
H
H
H
H

H

Figure 1. Logic Symbol

AO A2
E 1 E3

ADDRESS INPUTS
ENABLE INPUTS

00 0,

DECODED OUTPUTS

Figure 2. Pin Configuration

2·50

8205

FUNCTIONAL DESCRIPTION

Decoder
The 8205 contains a one out of eight binary decoder. It accepts a three bit binary code and by gating this input, creates
an exclusive output that represents the value of the input
code.

...

0-;

A,

6~

A,

0,
if)
DECODER

For example, if a binary code of 101 was present on the AO,
A 1 and A2 address input lines, and the device was enabled,
an active low signal would appear on the ii5 output line.
Note that all of the other output pins are sitting at a logic
high, thus the decoded output is said ~o be exclusive. The
decoders outputs will follow the truth table shown below in
the same manner for all other input variations.

0;

0;
o~

0;

Enable Gate

ENABLE GATE

E,

r,

When using a decoder it is often necessary to gate the outputs with timing or enabling signals so that the exclusive
output of the decoded value is synchronous with the overall
system.

(f; E2 E3)

E,

Figure 3. Enable Gate

The 8205 has a bu ilt·in function for such gating. The three
enable inputs (Ei, E2, E3) are ANDed together and create
a single enable signal for the decoder. The combination of
both active "high" and active "low" device enable inputs
provides the designer with a powerfully flexible gating function to help reduce package count in his system.

ADDRESS
A, A z

Ao
L

2-51

L

L

H

L

L

H

L
L
L

H

H

L
H

L
L

L

H

H

H

X
X
X
X
X
X
X

X
X
X
X
X
X
X

H
H
H
H
X

X
X
X
X
X
X

ENABLE

OUTPUTS

E,

E,

E3

a

1

2

3

4

S

6

7

L
L
L
L
L
L
L

L
L
L
L
L
L
L

H
H
H

L

H

H

H
H
H

H
H

H
'i
H

H
H
H

H
H
H
H
H
H
H
L
H
H

L

L

L

L
L
H,
H

L

H
L

H
H

L
H

H
H

H

L

H

H

H

L

H
H
H
H

H
H
H
H
H

L

H

H
H
H

H

H

H

H

H
H
H

H
H

H

L

H
H
H

L
L

H
H

H
H

H
H
H

H
H
H

H

H
H
H
H

H
H

H
H

L

H
H

H
H

H
H

H

H
H
H

H
H

..,

H

L

H
L

H
H

H
H
H

H
H

H
H
H
H
H
H

H

H

H
H

H

H
H

H

H

H
H

L
H
H
H

H
H

H
H
H
H

H

AFN-Q0204C

inter

8205'

Applications of the 8205

ray of 8205s can be used to create a simple interface to a
24K memory system.

The 8205 can be used in a wide vllriety of applications in
microcomputer systems. 1/0 ports can be decoded from the
address bus, chip select signals can be generated to select
memory devices and the type of machine state such as in
8008 systems can be derived from a simple decoding of the
state lines (SO, S1, S2) of the 8OO8,CPU. .
'

I/O PORT DECODER
Shown in the figure below is a typical application of the
8205. Address input lines are decoded by a, group of 8205s
(3). Each input has a binary weight. For example, AO.is as·
signed a value of 1 and is the LSB; A4 is assigned a value of
16 and is the MSB: By connecting them to the decoders as
shown, an active low signal that is exclusive in nature and
represents the value of the input address lines, is available at
the outputs of the 8205s.
This circuit can be used to generate enable signals for 1/0
ports or any other decoder related application.
Note that no external gating is required to decode up to 24
exclusive devices and that a simple addition of an inverter
or two will allow expansion to even larger decoder net·
wor1

USing a very similar circuit to the 1/0 port decoder, an ar-

.,

.,

A,

A,

A,

0,

.,

A"

A,

Au

A,

Au

A,

E,

A,

E,

'N

E,

Au

e;

0, :>--'

V"

E,

0,

.,

0. :>--'

EN

"

E,

13

;;

14

E,

"

.,
A,

17

A,

,.

E,

.,

E,

~

0; :>--'

-A,

0, :>--'cs"

'Z05

NUMBERS

I

;;

,
I

E,

L=:A'
A,

"

8206

21

22
23

Figure 4. 110 Port DeCQder

0; :>--

E,

0;

.,

0. :>---

;;

CHIP
SELECTS

o,p---o,p---o;p---0, p----

~.,

2.

0,:>--'fS';,
0; P'-- ~

o,p---- CS;;
0; p---- es,.
o;p---- cr.,

E,
GNO

:>--'

-A,

PORT

,.
.205

EN

1.
11

=>=--,es,

~ :>--'

,

....

0;

E,

.,
A,

0; :>--'es,
0; :>--'CS,

A"

I

A,

0, :>--'cs,
0, :>--'CS,

8 ...

8206

A,

~~MORIES

., .. IL _ _ _ _ _ _ _ _

D---

0; :>---

Figure 5. 24K Memory Interface

2-52

AFN-G0204C

inter

8205

ABSOLUTE MAXIMUM RATINGS·
Temperature Under Bias:
Ceramic .......................... -65°C to +125°C
Plastic ............................ -65°C to + 75°C
Storage Temperature ............... -65°C to +160°C
All Output or Supply Voltages ........ -0.5 to +7 Volts
All Input Voltages .................. -1.0 to +5.5 Volts
Output Currents ............................. 125 rnA

-NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or at any other condition above
those indicated in the operational sections of this specification is not .implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

D.C. CHARACTERISTICS (TA = O°C to + 75°C, Vee = 5V ±5%)
Symbol

Limit

Parameter

f-Mln~-

IR

INPUT LOAD CURRENT
._-----INPUT LEAKAGE CURRENT

Ve

INPUT FORWARD CLAMP VOLTAGE

VOL

OUTPUT "LOW" VOLTAGE

IF

-_.

Max.-

Unit

-025

rnA

Test Conditions
Vee = 5.25V. V F - 0.45V

10

~A

Vee = S 25V. V R = S.2SV

-10

V

Vee = 4 75V. Ie = -5.0 rnA

.---~

V
045
------V
OUTPUT HIGH VOLTAGE
24
._---------_. ------ - --- - - - - - _ . - - _ .
INPUT "LOW" VOLTAGE
V
085
-- .... - - - - - - INPUT "HIGH'" VOLTAGE
20
V
- - - - - - - f---- - - - - - -40
-120
rnA
OUTPUT HIGH SHORT
CIRCUIT CURRENT

Vee = 4.7SV. IOL = 10.0 rnA

Vox

OUTPUT "LOW" VOLTAGE
@ HIGH CURRENT

lee

POWER SUPPL Y CURRENT

..

VOH
VIL
V IH
Ise

----

Vee =4.75V.l oH = -1.SrnA

--

Vee

= 5 OV
= 5.0V
= S.OV.

----VOUT

V

Vee

= S.OV.

lox

rnA

Vee

= S 25V

Vee
Vee

"---

= OV

-------.

08
70

= 40 rnA

A.C. CHARACTERISTICS (TA = O°C to + 75°C, Vee = 5V ±5%; unless otherwise specified)
Symbol

Parameter

Max. Limit

'++
ADDRESS OR ENABLE TO
OUTPUT DELAY

t -+
t+

CIN
1

ns

18

ns

18

ns

18

t
(1)

INPUT CAPACITANCE

ns

4(typ.)
S(typ)

P8205
C820S

Test Conditions

Unit

18

pF
pF

MHz. Vee = OV
vBIAS = 2.0V. TA = 250 e

f = 1

ThIS parameter IS periodically sampled and IS not 100°'0 tested

TYPICAL CHARACTERISTICS
OUTPUT CURRENT VS.
OUTPUT "LOW" VOLTAGE

OUTPUT CURRENT VS.
OUTPUT "HIGH" VOLTAGE

DATA TRANSFER FUNCTION
50

80

10

;(

;(

.

!

.
.B

+

40

!

~ 60

~

0:
0:

20

0:
0:

"c.>

~I 40 I--+--+--t-~-It-

~

·30

20

-40

10

~

" 20 t-+--t--fJo¥+---+

"0

o

o

10
OUTPUT' lOW" VOL TAGE (VI

OUTPUT 'HIGH

2-53

VOLTAGE (VI

2

4

6

8

10

1214 16 18 20

INPUT VOLTAGE (V)

AFN.Q0204C

inter

8205

TYPICAL CHARACTERISTICS (Continued)
ADDRESS OR ENABLE TO OUTPUT
DELAY VS. LOAD CAPACITANCE
20

ADDRESS OR ENABLE TO OUTPUT
DELAY VS. AMBIENT TEMPERATURE

r----------

20 r - - - - - - - - - - - - - ,

t+_.t __

--------~~----------

'++

OL-_ _

o

~

_ _L __ _L __

50

100

150

__J

200

LOAD CAPACITANCE (PF)

AMBIENT TEMPEI1ATURE ("C)

SWITCHING CHARACTERISTICS
TEST LOAD

CONDITIONS OF TEST:

TEST LOAD:
390n

Input pulse amplitudes: 2.5V
Input rise and fall times: 5 nsec
between 1V and 2V
Measurements are made at 1.5V

All TransIstors 2N2369 or EQUivalent

CL

=

30 pF

WAVEFORMS
ADDRESS OR ENABLE
INPUT PULSE

\

----I

I ' - - - ,- - - - - - - -

-..It_+,t __ , " ' -

~--~-----------------~

OUTPUT

.

.

~ _______________ _

______________ J

2·54

AFN-00204C

8212
8-BIT INPUT/OUTPUT PORT
• Fully Parallel 8-Blt Data Register and Buffer
• Service Request Flip-Flop for
Interrupt Generation
• Low Input Load Current - .2SmA Max.
• Three State Outputs
• Outputs Sink 1SmA
• 3.6SV Output High Voltage for
Direct Interface to 8008, 80aoA, or
808SA CPU

• 'Asynchronous Register Clear
• ReplaCes Buffers, Latches and
Multlplexe,. In MicroComputer
$ystems
• Reduces System Package Count
• Available In EXPRESS
- Standard Temperature Range
- Ext~nded Temperature Range
,

The 8212 Input/output port consists of an 8-bit latch with 3-state output buffers along with control and device selection
logic. Also Included is a service request flip-flop for the generation and control of interrupts to the microprocessor.
The device Is multi mode In nature. It can be used to Implement latches, gated buffers or multiplexers. Thus, aU of the
principal peripheral and input/output functions of a microcomputer system can be implemented with this device.
SERVICE REOUEST FF

'\
liD DSZ

IL> MD ---f+-L..J
lIT> STB~--4-,-L~

[[> D IZ --------=<'""-"H

OS,

vcc

MD

INT

01,

01.

DO,

DOa

01,

01,

DO,

00,
016 .

Dl3
0°3
01.

0°6

D0.

0°5

ST8

CUi
os,

015

GND

II> D 14 ---------''""-"H
§>DIS ------~c-H

[9 DI 6 - - - - - - - : - - H

DI,-olo

DATA IN

00.·Il00
MD

DATA OUT
DEVICE SELECT
MODE

STa

STROBE

INT
CLR

INTERRUPT CACTIYE LOWI
CLEAR IACTIYE LOWI

DSi-D8z

Ill> D'e - - - - - - - - J - H
(E>CLR----- os,
@>OS2

The high-impedance state allows the designer to connect
the 8212 directly onto the microprocessor bi-directlonal
data bus.

---+H_'"

[I>

MO

[IT>

ST 8 ~-.......

--t._,/

OUTPUT

BUFFER

Control Logic

IT> 0', ---------+-+1

The 8212 has control inputs OS1, OS2, MO and STB.
These inputs are used to control device selection, data
latching, output buffer state and service request flip-flop.

DO,@>

[E> D '2 - - - - - - - - = - + 1

DS1, DS2 (Device Select)
These 2 inputs are used for device selection. When OS1 is
low and OS2 is high (OS1 • OS2) the device is selected. In
the selected state the output buffer is enabled and the
service request flip-flop (SR) is asynchronously set.

[E> D', - - - - - - - - - + . - + I

Ii§> D 's - - - - - - - - - - t - + l

MD (Mode)
This input is used to control the state of the output buffer
and to determine the source of the clock input (C) to the
data latch.
When MO is high (output mode) the output buffers are
'enabled and the source of clock (C) to the data latch is
from the device selection logic (OS1 • OS2).
When MO is low (input mode) the output buffer state is
determined by the device selection logic (DS1' OS2) and
the source of clock (C) to the data latch is the STB
(Strobe) input.

§> D'8-------~_ti

rsTBMO---iD5, D~TAOUT EauAiSl

!

0

~
i'
r

o

STB (Strobe)
This input is used as the clock (C) to the data latch for the
input mode MO = 0) and to synchronously reset the
service request flip-flop (SR).

0

~

0

~

.

3 STATE

~!~~TLEA'tCH

1
I

eLA
0

~

1

0

DATA LATCH

'1

0

,

DATA LATCH.

j

1

DATA IN

: 6 .~
L~ l,!

~

g~+: :~I"
---'

1

los, 082)
•

STB
4

0

~
0

0

; '- '
-INTERNAL SR F'LIP FLOP

eLA - RESETS DATA LATCH
SETSSR FLIP FLOP
(NO EFFECT ON OUTPUT BUFFER!

Note that the SR flip-flop is negative edge triggered.

2-56

AFN.()()731C

8212
ABSOLUTE MAXIMUM RATINGS·

"NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional opera.tion of the device at these or any other conditions above
those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

Temperature Under Bias Plastic ..••..• O·C to +70·C
Storage Temperature ••..•..•...... -65~C to +160·C
All Output or Supply Voltages •..••.•• -0.5 to +7 Volts
All Input Voltages .................. -1.0 to 5.5 Volts
Output Currents ............................. 100mA

D.C. CHARACTERISTICS
Symbol

(TA=O°C to +-75°C, Vcc= +5V ± 5%)
Limits

Parameter

Typ.

Min.

Unit

Max.

Test Conditions

IF

Input Load Current, ACK. OS2, CR,
011-01s Inputs

-.25

mA

IF

Input Load Current MO Input

-.75

mA

VF = .45V

IF

Input Load Current OS1 Input

-1.0

mA

VF - .45V

IA

Input Leakage Current, ACK, OS, CR,
011-01s Inputs

10

p.A

VA

'5,

Vce

IA

Input Leakage Current MO Input

30

p.A

VA

'5,

Vce

IA

Input Leakage Current OS1 Input

40

p.A

VA

'5,

Vee

Ve

Input Forward Voltage Clamp

-1

V

VIL

Input "Low" Voltage

.85

V

VIH

Input "High" Voitage

VOL

Output "Low" Voltage

VOH

Output "High" Voltage

3.65

Ise

Short Circuit Output Curr!!nt

-15

1101

Output Leakage Current High
Impedance State

lee

Power Supply Current

CAPACITANCE·
Symbol

.45
-75

9pF 12pF
5pF 9pF

COUT

001-00a Output Capacitance

8pF 12pF

10H = -lmA

mA

Vo - OV, Vee - 5V

20

p.A

Vo = .45V/5.25Vee

130

mA

Input Pulse Amplitude = 2.5V
Input Rise and Fall Times 5ns
Between lV and 2V Measurements made at 1.5V
with 15mA and 30pF Test Load

Typ. Max.

OS1 MO Input Capacitance

10L -15mA

Conditions 01 Test

Limits

OS2, CLR, STB, 01,-0Is
Input Capacitance

V

SWITCHING CHARACTERISTICS

(F = lMHz, VBIAS = 2.5V,
Vee = +5V, TA = 25°C)

CIN

V

4.0

90

CIN

Ie - -5mA

V

2.0

Telt

VF = .45V

NOTE:

"This parameter is sampled and not 100% tested.

1

A.C. TESTING LQAD CIRCUIT

Test
tPD. tWE, tR, ts, tc
tE, ENABLEI

-rVcc
R,

DEVICE
UNDER
TEST

CL·

R,

R2.

30pF

3000

6000

30pF

10KO

lKl)

tE, ENABLE I

. 30pF

3000

6000

tEo DISABLEI

5pF'

3000

6000

te. DISABLEI

5pF

10KO

lKO

,.

"Includes probe and JIg capacItance.

CL INCWDES JIG CAPACITANCE

~-57

AFN-<)0731C

inter

8212

A.C. CHARACTERISTICS
Symbol

(TA'" O"C to

+7o·c: vcc =

+5V ± 5%)"

Limit.

Parameter

Min.

Unit

Max.

Typ.

30

Te.t CQndltlon.

tpw

Pulse Width

tpo

Data to Output Delay

30

ns
ns

Note 1

tWE

Write Enable to Output Delay

40

ns

Note 1

tSET

Data Set Up Time

15
20

ns
ns

tH

Data Hold Time

tR

Reset to Output Delay

40

ns

Note 1

ts

Set to Output Delay

30

ns

Note 1

tE

Output Enable/Disable Time

45

ns

Note 1

tc

Clear to Output Delay

55

ns

Note 1

"Note: For extended Temperature EXPRESS use M8212 AC Electncals Parameters.

APPLICATIONS
Basic S~hematlc Symbols
Two examples of ways to draw the 8212 on system schematics-(l) the top being the detailed view showing pin numbers.
and (2) the bottom being the symbolic view showing the system input or output as a system bus (bus containing
8 parallel lines). The output to the data bus is symbolic in referencing 8 parallel lines.
OUTPUT DEVICE

INPUT DEVICE

---...,,,
~

01 STB DO

:

,.

8212

10
15
17

01

•

16

,.
16

(DETAllEDf

"

ST.

DO

8212

20
22
23

!NT

CLR
MD

4
6
10
15
17

,.
21
14

SYSTEM
OUTPUT

, (SYMBOLIC)

GND

DATA BUS

Figure 3. Basic Schematic Symbols

Gated B'uffer (3-State)

Vee - . . , . . . . - - - - - - - ,

The simplest use of the 8212 is that of a gated buffer. By
tying the mode signal low and the strobe input high. the
data latch is' acting as a strai,ght through gate, The output
buffers are then enabled from the device selection logic'
i5S1 and DS2.

STB

INPUT

DATA
(250 ,.AI

OUTPUT

DATA
("SmA)

(36SV MIN)

When the device selection logic is false. the outputs are 3state.
'
GATING

When the device selection logic is true. the input data from
the system is directly transferred to the output. The input
data load is 250 micro amps. The output data can sink 15
milli amps. The minimum high output is 3.65 volts.

CONTROL

168100821

{

- - -_ _ _ _--'

Figure 4. Gated Buffer
2-58

AFN'()()731C

8212
Bi-Directlonal Bus Driver

Interrupt Instruction Port

A pair of 8212's wired (back-to-back) can be used as a
symmetrical drive, bi-dlrectional bus driver. The devices
are controlled by the data bus input control which is
connected to OS1 on the first 8212 and to OS2 on the
second. One device Is active, and acting as a straight
through buffer the other is In 3-state mode. This is a very
useful circuit In small. system design.

The 8212 can be used to gate the interrupt instruction,
normally RESTART instructions, onto the data bus. The
device is enabled from the interrupt aCknowledge signal
from the microprocessor and from a port selection signal.
This signal is normally tied to ground. (OS1 could be used
to multiplex a variety of interrupt instruction ports onto a
common bus).
DATA
BUS

STB

STB

DATA
BUS

r-----'"

RESTART

8212

INSTRUCTION

. - - ' - - - - - , . DATA

(RST 0 -

BUS

DATA BUS

(BST)

CONTROL
10, L - A)
II" A -

AST 7)

PORT SELECTION

INTERRUPT ACKNOWLEDGE - _ - _ - - '

L)
STB

Figure 7. Interrupt Instruction Port

Output Port (With Hand-Shaking)
The 8212 can be used to transmit data from the data bus to
a system output. The output strobe could be a handshaking signal such as "reception of data" from the device
that the system is outputting to. It in turn, can interruptthe
system signifying the reception of data. The selection of
the port comes from the device selection logic.( i5S1 • OS2)

GND

Figure 5. Bidirectional Bus Driver

DATA
BUS

Interrupting Input Port

, . . - - - - OUTPUT STROBE

This use of an 8212 is that of a system input port that
accepts a strobe from the system input source, which in
turn clears the service request flip-flop and interrupts the
processor. The processor then goes through a service
routine, identifies the port, and causes the device
selection logic to go true - enabling the system input data
onto'the data bus,

STB

SYSTEM OUTPUT

SYSTEM RESET

DATA
SYSTEM

BUS

INTERRUPT

L_.c.:..___

}

PORT SELECTION

:~~;'~2~ONTAOL)

STB

Figure 8. Output Port
SYSTEM

INPUT
SYSTEM

RESET,

PORT

SELECTION

IDS'.DS2)

{
------'

+-___ T;>c~f~~RlI6~)CKT
OR

•

TO CPU

INTERRUPT INPUT

Figure 6. Interrupting Input Port
2-59

AFN·00731C

inter

8212

808A Status Latch
,1

Here the 8212 Is used as the status latch for an 8080A
microcomputer system. The input to the 8212 latch is
dlreotly from the 8080A.data bus. Timing,shows that when
the SYNC signal is true, which is connected to the DS2
input and the phase 1 signal is true, which is a TTL level
coming from the clock generator; then, the status data will
be latched into the 8212.

~

,2
SYNC

DATA

STATUS

~

_ _I-I-_

f---f-A.--1

10
9

0,
8
O2
7
03

DATA BUS

3

0,
4
d.

8080A

5

D.
6
07
SYNC
OBIN

¢1

19

r!L-

02
22

STATUS
LATCH

15

~

12Vn

~7

ovJ \..• ..L; ~

CLOCK GEN.
80 DRIVER

9
16
18
20
22

~TL)

-;i

0,

Do

~

fo-

tt"iT

8212

~

1L
CLR
OS2 MO

13 12

Note: The mode signal is tied high so that the output on the
latch is active and enabled all the time.

~

INTA
STACK
HLTA
OUT
M1
INP
MEMR

BASIC
CONTROL
BUS

OS,
"

OBIN

It is shown that the two areas of concern are the bidirectional data bus of the microprocessor and the control
bus.

2-60

AFN-00731C

inter

8212

TYPICAL CHARACTERISTICS
INPUT CURRENT VS. INPUT VOLTAGE

l00r------r------r------r----~

~~

Vee -lsov
-60

Vee· +I.OV

",I'

~ ~100
T. -O"C'

i

OUTPUT CURRENT VS. OUTPUT "LOW" VOLTAGE

.;'"

H~----_+------~------+-----~

VT. -2S"C
""vT. -7S"C

a:: -150

il

i!

-200

-250

-300-3

-2

-1

'2

"

'3

INPUT VOLTAGE (VI

OUTPUT "LOW" VOLTAGE (V)

OUTPUT CURRENT vs.
OUTPUT "HIGH" VOLTAGE

DATA TO OUTPUT DELAY
VS. LOAD CAPACITANCE
50

Vee
TA ..

40

!

>

~
...0

"'~50V

r-T

0

....

1

I

30

~
:>

...0

25~C

I

20

0(

It0
10

\-1""'",-

-

.......... 1-

~
I

so

r-r-

f-o ....

l-- ~

I

100

150

200

250

OUTPUT "HIGH" VOLTAGE (V)

LOAD CAPACITANCE (pF)

DATA TO OUTPUT DELAY
VB. TEMPERATURE

WRITE ENABLE TO OUTPUT DELAY
VS. TEMPERATURE

22

300

40
Vee

Vee =+SDV

20

!

I

):"...,."

.... ......

t--

+5 OV

I

>

~

,/',

•

=

36

1--;'

...0

30

0
0

2S

z~

20

~

...w

-.......

I
I
ST~<
OS,

w
w

......~!..

_---'
.. r--,,,.or
...."

f----

.....

~-

t+_
t __

OS;< ~

-

!:

a:

2

10
-25

~

25

50

1S

15

10
-25

100

TEMPERATURE lOCI

25

50

TEMPERATURE

2-61

1S

100

rei

AFN.()()731C

inter

8212'

WAVEFORMS

DATA

STB ••

,.5VX-- - - - - - -.- -Y,.5V
------'.
I;==tpw
·1' tH :..j'----OS,.
,.5Vl
\:.' 5._V_______
OS2

I.-- tWE-----I
-"\1,--------

'OUTPUT

OS,.

_ _ ....:... _ _ _ _ _ _ _ _

'._5V___·_______

. . . - / \...

'SV/

052

_____
~_tE-+j
OUTPUT

~

_______

\',.SV
r _______

X

.

\:::-to--:j---

~'"'==-=:------'r-

----------,-SV. ,. itpwiI, ~V

CLR

_______I,___tc_~·1 , ____ _
DO

______________

,5VX----------"'5V

DATA

-----..Jt;
STB ••

r

i?S, • 052

"0,"",

STB

JX'-'_5V______

_____

tSET ~

r

tH

-~'----

'5V\'--____________

~~~1;.;-----' -----:

_~'5V
---I ----------------

•

~ tpw

-~~---;'--,--.-'\-

2-.62

AFN·0073,C

.intel~
8216/8226

4·BIT PARALLEL BIDIRECTIONAL BUS DRIVER
• Data Bus Buffer Driver for 8080 CPU

• 3.65V Output High Voltage for Direct
Interface to 8080 CPU

• Low Input Load Current - 0.25 IT!A
Maximum

• 3·State ~utputs
• Reduces System Package Count

• High Output Drive Capability for
Driving System Bus

• Available in EXPRESS
- Standard Temperature Range

The 8216/8226 Is a 4·blt bidirectional bus driver/receiver. All inputs are low power TIL compatible. For driving MOS, the
DO outputs provide a high 3.65V Vo H, and for high capacitance terminated bus structures, the DB outputs provide a
high 50 mA 10l capability. A non·lnvertlng (8216) and an inverting (8226) are available to meet a wide variety of applica·
tlons for buffering In microcomputer systems.
'Nole: The specifications for Ihe 321613226 are ,,,nlical wilh thosa

f~r the 821618226.

8216

8226

cs

0',

O~

DB.

00.

DB,
DO,

01,

6iEN

os,

00,

O~

DB,

00,

0,>

De,

00,

DI, ,

DB,

DB,

00,

DO,

0',

DI,

DB,

00,

DB,

0',

01,

GNO

0.,

00,

D~

01,

.----<>

DB,

DB,

00,

00,

'----+_----<> CS

'-----+-~----<>cs

O'EN

Vee

00.

<>-_+-___...1

O'EN

o - _......_ _ _.-J

Figure 1. Block Diagrams

2-63

os,-oa,

I)ATAIUS
.'-DIRECTIONAL

0'0.0,>
DOo·003

DATA INPUT

OlEN

OAT A IN ENABLE
DIRECTION CONTROL

a

CHtPSELECT

DATA OUTPUT

Figure 2. Pin Configuration

8216/8226

FUNCTIONAL DESCRIPTION
Microprocessors like the 8080 are MOS devices and are
generally capable of driving a single TTL load. The same is
true for MOS memory devices. While this type of drive is
sufficient in small systems with few components, quite often
it is necessary to buffer the microprocessor and m(lmories
when adding components or expanding to a multi-board
system.

DB,

OO,o---I----+--,
DB,

DO,o---t--___~t--+~

The 8216/8226 is a four bit bi·directional bus driver specif·
ically designed to buffer microcomputer system components.

01,0---1--1.>-+.......,

Bidirectional Driver

00,0---+--< t--+-~

DB,

Each buffered line of the four bit driver consists of two
separate buffers that are tri·state in nature to achieve' direct
bus interface and bi·directional capability. On one side of
the driver the output of one buffer and the input of another
are tied together (08), this side is used to interface to the
system side components such as memories, I/O, etc., be·
cause its interface is direct TTL compatible and it has high
drive (50mA). Oli the other side of the driver the inputs
and outputs are separated 10 provide maximum flexibility.
Of course, they can be tied together so that the driver can
be used to buffer a true bi·directional bus such as the 8080
Data Bus, The DO outputs on this side of the driver have a
special high voltage output drive capability (3.65V) so that
direct interface to the 8080 and 8008 CPUs is achieved with
an adequate amount of noise immunity (350m V worst'case).

01,0---+--1 ...._-+-,
DB]

00] <>---I----Q-+---'

~---t-.----~cs

Figure 3a. 8216 LogiC; Diagram

01,

DB,
DO.

DI,

Control Gating OlEN, CS

DB,

The CS input is actually a device select, When it is "high"
the output drivers are all forced to their high·impedance
state. When it is at "zero" the device is selected (enabled)
and the direction of the data flow is determined by the
OlEN input.
The OlEN input controls the direction of data flow (see
Figure 3) for complete truth table. This direction control
is accomplished by forcing one of the pair of buffers into its
high impedance state and allowing the other to transmit its
data. A simple two gate circuit is used for this function.
The 8216/8226 is adevice that will reduce component count
in microcomputer systems and at ths same time enhance
noise immunity to assure reliable, high performance op·
eration.

DO,

01,

DB,
DO,

'OIJ

DB]
D0]

~---~~-------ocs

OlEN 0 - - -....- - - - - - - - '

OlEN

0

,

0

r-;-

cs
0
0

,

,

01
DB

DB
00

} HIGH IMPEDANCE

Figure 3b. 8226 Logic Diagram

2-64

AFN-00733C

821618226

ABSOLUTE MAXIMUM RATINGS·
Temperature Under Bias ............ "

"NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

aOc to 70°C

Storage Temperature . , ....... , .. -65°C to +150°C
All Output and Supply Voltages. . . . . ..

-0.5V to +7V

All Input Voltages .. , ...... , , .... -1.0V to +5.5V
Output Currents ...... , . • . . . . . . . . . . .. 125 mA

D.q. CHARACTERISTICS

(TA

= o·e to + 70·e, Vee = +5V ±

5%)

Limits
Typ.

Max.

Unit

IF1

Inpllt Load Current OlEN, CS

-0.15

-.5

mA

VF ~0.45

IF2

Input Load Current All Other Inputs

-0.08

-.25

mA

VF =0.45

Symbol

Parameter

Min.

Conditions

IR1

Input Leakage Current OlEN, CS

80

IJ.A

VR =5.25V

IR2

Input Leakage Current 01 Inputs

40

itA

VR =5.25V

Ve

Input Forward Voltage Clamp

-1

V

Ie = -5mt\

Vil

Input "Low" Voltage

.95

V

20
100

itA

VIH

Input "High" Voltage

1101

Output Leakage Current
(3-Statel

2.0

Icc

Power Supply Current

VOL1

Output "Low" Voltage

VO l 2

Output "Low" Voltage

VOH1

Output "High" Voltage

3.65

VOH2

Output "High" Voltage

2.4

los

Output Short Circu it Current

-15
-30

-35
-75

.

V

DO
DB
8216

95

130

mA

8226

85

120

mA

0.3

.45

V

Vo = .45V/5.25Vee

DO Outputs IOl=15mA
DB Outputs 10l =25mA

8216

0.5

.6

V

DB Outputs Iol =55mA

8226

0.5

.6

V

DB Outputs 10l=50mA

4.0

V

DO Outputs 10H = -lmA

3.0

V
-65
-120

mA
mA

DB Outputs 10H = -1 OmA
DO Outputs Voi!!!OV,
DB Outputs VcC=5.0V

NOTE:

, Typical value. are for TA

= 25· C. Vec =5.0V.

2-65

AFN'()0733C

inter

821618226

CAPACITANCE'SI

(VBIAS = 2.5V, Vec = 5.0V, TA = 25°C, f = 1 MHz)
Parameter

Max.

Unit

Input Capacitance

4

8

pF

COUT!

Output Capacitance

6

10

pF

COUT2

Output Capacitance

13

18

pF

A.C. CHARACTERISTICS

Min .

Limits
Typ.!l]

C,N

.Symbol

(TA = O°Cto +70°C. Vee = +5V ± 5%)
Limits

Symbol

Min.

Parameter

Typ.!l]

Max.

Unit

CL =30pF, R,=300n
R2=600n

TpDI

Input to Output D~lay DO Outputs

15

25

ns

TpD2

I nput to Output Delay DB Outputs
8216

Te

To

Conditions

19

30

ns

CL =300pF, R , =90n

8226

16

25

ns

R2 = 180n

8216

42

65

ns

(Note 2)

8226

36

54

ns

(Note3)

16

35

ns

(Note4)

Output Enable Time

Output Disable Time

NOTE:
Input pulse amplitude of 2.5V.
Input rise and fall times of 5 ns between 1 and 2 volts.
Output loading is 5 mA and 10 pF.
Speed measurements are made at 1.5 volt levels.
NOTES:
1. TYPIcal values are for TA = 2So C, VCC = S.OV.
2. DO Outputs, CL' 30pF, Rl = 300/10 Kn, R2 = 180/1Kn; DB Outputs, CL = 3OOpF, R, = 90/10 Kn, R2 = 18011 Kr.
3. DO Outputs, CL = 30pF, R, = 300/10 Kn, R2 = 600/1K; DB Outputs, CL = 30OpF, Rl =90/10Kn, R2 = 180/1 Kn.
4. DO Outpu,s, CL = SpF, Rl = 300/10 Kn, R2 = 600/1 Kn; DB Outputs, CL = SpF, R, = 90/10 Kn, R2 = 180/1 Kn.
S. This parameter is portodtcally sampled and not 100% tested.

"
A.C. TESTING LOAD CIRCUIT
-,- Vee

R,

eli

DEVICE
UNDER
TEST

2-66

R,

-=E"

AFN·00733C

inter

8216/8226

WAVEFORM

INPUTS

OUTPUT
EN....LE

~'oj. Y

OUTPUTS

15V'X,.-----..F- ·
t

-------....

~H

~~L
5V

2-67

AFN'()()733C

8218/8219
BIPOLAR MICROCOMPUTER BUS
CONTROLLERS FOR MCS-SO®,AND MC8-85® FAMILIES
• 8218 for Use In MCS-80® Systems

• Reduces Component Count In
Multlmaster Bus Arbitration Logic

• 8219 for Use InMCS-85® Systems

• Single +5 Volt Power Supply

• Coordinates the Sharing of a Common
Bus Between Several CPU's

• 28 Pin Package

The 8218 and 8219 Microcomputer Bus Controllers consist of control logic which allows a bus master device such as a CPU
or DMA channel to interface with other masters on a common bus, sharing memory and I/O devices. The 8218 and 8219
consist of:
1. Bus Arbitration Logic which operates from the Bus Clock (SCU<) and resolves bus contention be~ween devices sharing
a common bus.
2. Timing Logic which when initiated by the bus arbitration logic generates timing signals for the memory and I/O
command lines to guarantee set-up and hold times ofthe address/data lines onto the bus. Thetiming logicals0signals
to the bus arbitration logic when the current data transfer is completed and the bus is no longer needed.
3. Output Drive Logic which contains the logic and output drivers for the memory and I/O command lines.
An external RC time constant is used with the timing logic to generate the guaranteed address set-up and hold times on the
bus. The 8219 can interface directly to the 8085A CPU and the 8218 interfaces to the 8080A CPU chip and the 8257 DMA
controller.

BCR1

{EI
RSTB

vee
BUS ARBITRATION

OVRO

lOGIC

RSTB

ADm

BeR1

OVRO

{EI
{BI

TOTHE~
BUS

BREQ

{el

OtYAOJ

BeLK

~TOTHE

XSTR

L-.y' BUS

MASTER

ANYR

ADEN

ROD

BiJSY

MROC

fi5Wc

xep

IORC

MWTC

xcv

GND

DLYADJ

§ill

ANVR

{AI

{AI

iOWA

(B) MWTR

{el IDRR
{DI MRiiFi

{BI
OUTPUT DRIVE lOGIC

(E)

{el

Bcfi2

§ill
101M

WR

AD
ASRQ
BCR2

{DI
ROD

N.C. = NO CONNECT

Figure 1. Block Diagram

Figure 2. Pin Configuration

2-68

AFN-00208C

intJ

8218/8219
Table 1. Pin Description

Signall Intertaced Directly
I

Symbol

BREQ

BUSY

BCLK

,

BPRN

to the Syltem BUI,

Type

Name end Function

0

Bu, Reque't: The Bus Request is used
with a central parallel priority resolution
circuit. It 'indicates that the device needs to
access the bus for one or more data transfers. It is synchronized with the Bus Clock.

I/O

I

I

Bus Clock: The neg alive edge of Bus Clock
is used 10 synchronize the bus conlention
resolution circuit asynchronously to the
CPU clock. It has 100ns min. period, 3S%6S% duty cycle. It may be slowed, single
stepped or stopped.
Bu, Priority In: The Bus Priority In indicates to a device that no device of a higher
priority is requesting the bus. It is synchronous with the Bus clock.

0

Bus Priority Out: The Bus Priority .out is
used with serial priority resolution circuits.
Priority may be transferred to the next lower
in priority as BPRN.

INIT

I

Initialize: The Initialize resets the 8218/
8219 to a known internal stdle.

.0

Memory Read Control: ThE! Memory Read
Control indicates that the Master is requesting a read operation from the addressed
location. It is asynchronous to the Bus
Clock.

.

Type

Name and Function

ADEN

0

Addres, end Data Enable: Address and
Data Enable indicates the Master has control of the bus. It is, often used to "mabie
Address and Data Buffers on the bus, It is
synchronous with Bus Clock.

ROD

0

Read Data: Read Data controls the direction of the bi-directional data bus drivers. It
is.asynch'ronous to the Bus Clock. Ahigh on
ROD indicates a read mode by the master.

OVRD

I

Override: Override inhibits automatic deselect between transfers caused by a higher
priority bus request. May be used for consecutive data transfers such as readmodify-write operations. It is asynchronous
.
to the Bus Clock.

XSTR

I

Transfer Start Requeat: 'Transfer Start Request indicates to the 8218/8219 that a new
data transfer cycle is requested to start. It 'is
raised for each new word transfer in a multiple data word transfer. It is asynchronous"
to the Bus Clock.

XCP

I

Transfer Complete: Transfer Complete indicates to the 8218/8219 that the data has
been received by the slave device in a write
cycle or transmitted by the slave and received by master ina read cycle. It is asynchronous to the Bus Clock.

XCV

0

Date Transfer: Indicates that a data transfer is in progress. It is asynchronous to the
Bus Clock.

I

Write, Read, 10/Memory: WRITE, READ,
10lMemory are the control request inputs
used by the 808S and are Internally decoded
by the 8219 to produc~request signals
MRDR, MWTR, 10RR, IOWR. They are asynchronous to the Bus Clock. (8219 only)

I

Asynchronous Bus Request: Can be used
for interrupt status from the 8OBS.l\cts like a
level sensitive asynchronous bus
request-no RSTB needed. It is asynchronOuSiOihe Bus Clock. (8219 only)

I

Memory Read Request, Memory Write
Reque~t, 1/0 Read Request, or 1/0 Write
Request: Indicate that address and data
have been placed on the bus and the appropriate request is being made to the addressed deVice. Only one of these inputs
should I:!e active at anyone time. They are
synchronous to the Bus Clock. (8218 only)

.0

Any Request: Any Request is the logical
OR of the active state of MRDR, MWTR,
i15RR, iOWA. It may be tied to XSTR when
the rising edge of ANYR is used to initiate a
transfer.

I

Delay Adjust: Delay Adjust is used for connection of an external capacitor and resis..
tor to ground to adjust the required set-up
and hold time of address to control signal.

Symbol

Bu, Bu,y: Bus Busy indicates to all master
devices on the bus thai the bus is in use. II
inhibits any olher device from gelling Ihe
bus. It is synchronized wilh Bus Clock.

BPRO

MRDC

Signal, Generated or Received by the Bus Master
(Continued)

MWTC

.0

Memory Write Control: The Memory Write
Control indicates that data and an address
have been placed on the bus by the Master
and the data is to be deposited at that location. It is asvnchronous to the Bus Clock.

WR,RD,
101M

,iORc

0

I/O Read Control: The 1/0 Read Control indicates that the Master is requesting a read
operation from the I/O device addressed. It
is asynchronous to the Bus Clock.

ASRQ

10WC

0

1/0 Write Control: The 1/0 Write Control indicates that Data and an I/O device address
has been placed on the bus by the Master
and the data is to be deposited to the 1/0
device. It is asynchronous to'the Bus Clock.

MRDR,
MWTR,
10RR,
IOWR

"

.

I

Signals Generated or Received by the Bus Master
BCR11
BCR2

RSTB

I

I

Bus Control Request: Bus Control Request 1 or Bus Control Request 2 indicate to
the 8218/8219 that the Master device is making a request to control the bus. BCR2 IS
active low in the 8218 (BCR2). BCR2 is active high in the 8219.

ANYR

Request Strobe: Request Strobe latches
the status of BCR1 and BCF\2 into the
821818219. The strobe is active low in the
8218 and negalive edge triggered in the
8219.

DLYADJ

2-69

AFN-00208C

8218/8219
FUNCTIONAL DESCRIPTION

BPRO is used 10 allow lower priority devices to gain the
bus 'when a serial priority resolving structure is used.
B/5J!iO would go to msmiI of the next lower priority Master.

The 8218/8219 is a bipolar Bus Control Chip which
reduces component count In the interface between a
master device and the system Bus. (Master device: 8080,
8085, 8257 (DMAU

When priority is granted to the Master (a low on BPRN and
a high on ~) the Master outputs a MmV signal on the
next falling edge of BCLR. The. BUSY signal locks the
master onto the bus and prohibits the enable of any other
masters onto the bus.

The 8218 and 8219 seNe three major functions:
1. Resolve bus contention.
2. Guarantee set~up and hold time of address/data lines
to . I/O and Memory read/wrIte control signals
(adjustable by external capacitor).
3: Provide sufficient drive on all bus command lines.

At the Same time BUSY goes active, Address and Data
Enable iADENi goes active signifying that the Master has
control of the bus. ADEN is often used to. enable the bus
drivers.
The Bus will be released only if the master loses priority; is
not in the middle of a transfer, and Override is not active
or, if the Master stops req)Jesting the bus, is not in the
middle of a data transfer, and Override is not active. ADEN
then goes inactive.

BUI Arbitration Logic
Bus Arbitration Logic activity begins when the Master
makes a request for use of the bus on BCR1 or 'EiCR2. The
request is strobed in by RSTB. FQllowing the next two
falling edges of the bus clock (BCLK) the 8218/8219
outputs a bus request (BREQ) and forces Bus Priority Out
inactive (BPRO)' See Figures 1a and 1b.
BRECi is used for requesting the bus when priority is
decided by a parallel priprity resolver circuit.

OVRIDf

BCRl

II

Iic1l2

-

\-

:1

-

Provision has been made in the 8218 to allow bussynchronous requests. This mode is activated when
BCR1, BCR2 and RS'i'B are all low. This action
·asynchronously sets the synchronization flip flop (FF2) in
Figure 3a.

=u-

~
SET

......
V"

Q

ASYNCH.
REQUEST

SET
D

Q

SYNCH.

PRIOR'ITY

REQUEST

AND
REQUEST
~QGIC

FFl

r----<=

'I

SPRN

FF2

q

CLK

' CLR

CLR

1'""'

----

BUSY

Figure 3a. 8218 Bus Arbitration Logic

2-70

AFN'()()208C

inter

·8218/8219

ADEN

OVRIDE
ASRO

1

iiiiSY

SET
BeR'

BCR2

I

J

ASYNCH.

a

0

REQUEST

a

0

SYNCH

PRIORITY

REQUEST

AND
REQUEST

BRea

BPRN

LOGIC

FF2

FF.

BPRO

iffi'ii

,---<

eLK

eLK

CLR·

eLR

I

I

. iiClK

I

INIT

Figure 3b. 8219 Bus Arbitration Logic

Timing Logic
Timing Logic activity begins with the rising edge of XSTR
(Transfer Start Request) or with ADEN going active,
whichever occurs second. This action causes XCV
(Transfer Cycle) to go active. 50-200ns later (depending on
resistance and capacitance at DLYADJ) the appropriate
Control Outputs will go active if the control input is active.

MRDC

MRDR
IOAR

OUTPUT
CONTROL
lOGIC

MWTR

lowe

IOWR

XSTR can be raised after the command goes active in the
current transfer cycle so that a new transfer can be
initiated 'immediately after the current transfer is
complete.

IO~C

MWtC

ANY A

A negative going edge on XCP (Transfer Complete) will
cause the Control Outputs (MRDC, etc.) to go inactive.
50-200ns later (depending on capacitance at DL YADJ)
XCV will go inactive indicating the .transfer cycle is
completed,

CONTROL

OUTPUT
INACTIVE

Additionallbgic within the 8218/8219 guarantees that if a
transfer cycle is started (XCY is active), but the bus is not
requested (BREQ is inactive) ana there is no command
request input (ANYR is output low), then thfl transfer cycle
will be cleared. This allows the bus to be released in
applications where advanced bus req'uests are generated
but the processor enters a HALT mode.

ROD

Figure 4a. 8218 Control Logic

IO/M-~---------I

Control Logic

DECODING

RD------~-----I

The control outputs are generated in the 8219 by decoding
the 8085 system control outputs (I.e., RD, WR, 101M) or in
the 8218 by directly buffering the control inputs 1"0 the
control outputs for use in an 8080 or DMA system (see
Figures 4a and 4b>' The control outputs may be held high
. ANYR goes high (active) if
any control requests (IOWR, etc.) are active. ROD controls
the direction of the Masters Bi-directional Data Bus
Drivers. The Bus Driver will always be in fhe Write mode
(ROD = Low) except from the start of a Read Control
Request to 25 to 70ns after XCP is activated.

INACTIVE
ROO_----/

Figure 4b. 8219 Control Logic

2-71

AFN'()()20BC

inter

8218/8219

ABSOLUTE MAXIMUM RATINGS*
Ambient Temperature Under Bias ...•.. ODC to 70DC
Storage Temperature ...........•.• -65 DC to +150·C
Supply Voltage (Vee) . .. . . • .• . . . • . . . . .. -0.5V to +7V
Input Voltage.................. -1.0V to Vee + 0.25V
Output Current .............................. 100mA

D.C. CHARACTERISTICS

(TA

'NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this specification is not implied. Exposure ·to absolute maximum
rating conditions for extended periods may affect device
reliability.

= ODC to 70 C; Vee = 5V ±
D

5%)

LImits
Symbol

Parameter

Min.

Ve

Input Clamp Voltage

IF

Input Load Current
MRDR/INTA/MWTR/WR
iOA'RiRD, IOWR/IOiM
Other

IA

Typ.

Input Leakage Current

VTH

Input Threshold Voltage

Icc

Power Supply Current

VOL

Output Low Voltage

0.8
200

MiffiC, MWi'C,

IORC, IOWC
BREQ, BUSY
XCY,RDD,ADEN
BPRO,ANYR

VOH

Max.

Unit

-1.0

V

-0.5
. -0.5

mA
mA

100

!J.A

= O.OV, Ie = -5 mA

Vee = 5.25V
VF = 0.45V
Vee = 5.25
VA = 5.25 .

2.0

V

Vee

240

mA

Vee

= 5V
= 5.25V
Vee = 4.75

0.45
0.45
0.45
0.45

V
V
V
V

10L = 32mA
10L = 20m A
10L = 16mA
.I0L = 3.2mA

Output High Voltage

MRiSC,

Test Conditions
Vee

= 4.75V
= -2m A
10H = -4OO!J.A
Vee = 5.25V, Vo ;" OV
Vee = 5.25V, Vo = .0.45V
Vee = 5.25V, Vo = 5.25V
Vee

MWTC, IORC, IOWC

All Other Outputs

2.4

10H

2.4

los

Short Circuit Output Current

10 (OFF)

Tri-State Output Current

-10

-90

mA

-100

!J.A

+100

!J.A

CIN

Input Capacitance Except Busy

10

20

pF

CIO

Input Capacitance Busy

25

35

pF

8218/8219 XSTR TO OUTPUT DELAY (Tsew

•••
'7S

,SO

..

,
DELAY

'00
7S

_A

. . . .F

S.

'00"

..

loopF

...

-

__~~
~

'S~~~~~~~~~~~-=~~
~
~
~
~
~
~
OHMS

One Shot Delay Versus Delay Adjust Capacitance And Resistance
AFN-00208C

8218/8219
A.C. CHARACTERISTICS
Symbol
tacy

(TA = DoC to 70°C; Vcc = 5V ± 5%)

Parameter

Min.

Bus Clock Cycle Time

100
35
25
15

tpw

Bus Clock Pulse Width

tROS

RSTB to

tcss

BCR1 and BCR2 to RSTB
Set-Up Time

tCSH

BCR1 and BCR2 to RSTB
Hold Time

tROD

BCLK to BREQ Delay

tPRNS

BPRN to BCLK Set-Up Time

BlXR Set-Up Time

taNo

BRPN to BPRO Delay

teYD

BCLK to BUSY Delay

tCAD

MRDR, MWTR, IORR, IOWR'
to ANYR Delay

Lhnlt.
Typ.

Max.

Unit

0.65 tacy

ns
ns
ns

15

ns

35

ns

23

ns

30
55
30

tsxD

XSTR to XCV Delay

tSCD

XSTR to MRDC, MWTC, IORC,
IOWC Delay

50

txsw

XSTR Pulse Width

30

tXCD

XCP to MRDC, MWTC, IORC,
IOWC Delay

txcw

XCP Pulse Width

tCCD

XCP to XCV Delay

tCMD

MRDR, MWTR, IORR, IOWR
to MR5C, MWTC, IORC, IOWC

tCRD

MRDR, MWTR, IORR, IOWR
to ROD Delay

tRW

RSTB Min. Neg. Pulse Width

tCPD

BCLK to BPRO Delay

tXRD

XCP to ROD Delay

Test Conditions

35% to 65% Duty Cycle

ns

ns
ns
ns

40
200

ns

50

ns

ns
\Adjustable by External RIC

ns

35
50

ns

200
35

ns

25

ns

40
70

ns

Adjustable by External RIC

ns

30

ns

25

ns

A.C. TESTING LOAD CIRCUIT

A.C. TESTING INPUT, OUTP.UT WAVEFORM
INPUT/OUTPUT

...,... Vl
RL
DEVICE
UNDER
TEST

-

I
A C TESTING INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC l' AND 0 45V FOR
A LOGIC 0 TIMING MEASUREMENTS ARE MADE AT 1 5V FOR BOTH A
LOGIC 1 AND 0 .

VL -

CL

24V

~:: ~~F

ct: INCLUD~S JIG CAPACITANCE

2-73

AFN-Q0208C

intel'

8218/8219

WAVEFORMS
SYNCHRONOUS BUS TIMING (System Bus Previously Not In Use)

ilSfii-----'

leVD

~~

-

181'0--

------------------___~--------'l_+----~--

.

-"[ --f---7-1

"'0 _____________________________________________

:N] "N°d....
to"

CONTROL CYCLE (System Bus Previously Not In Use)

M'R5"R

MWTR

lORA

IOWA

~

I'----

!--tcAD_

I-tcAD-

~

ANYR

j

/

j+--'CRD_
ROD

.

-.i

- ~~1::-

XSTR _ _

I
xcv

_~ ____ ~

J

XCP --""

MWTC

lORe

lowe

H~1-

~
I

1\..,.-j+---tcCD-

)

..... ·XCD-

-'SXDMRi5C

t)(RD

'l
\
tSCD_

I-tcMO-

 CPU With 8219 Using Local Memory

2-77

AFN'()()208C

"__ I"

I'.-e-.

8218/8219

TO/FROM LOWEST
PRIORITY BUS MASTER

TO/FROM HIGHEST

PRIORITY BUS MASTER

8218

8219

8218

BUS CLOCK

"DAISY CHAIN" CON FIGURATION

U

~J

1

REQUEST

ADEN
8219

iiij§V

t
BUS CLOCK

BREQ

Bl'RN

~l

f
ADEN

REQUEST

REQUEST

821B

iiC[j(

iiij§V

t

t

I

BREa

iii'Riii

ADEN
8219

iiC[j(

-f
j

BUSY

t

BREQ

'iPRN

iiC[j(

1

!

1

PRIORITY
RESOLVING
LOGIC

I

I

PARALLEL REQUEST CONFIGURATION

lWo Methods of Connecting Multiple 8218/8219's To Resolve Bus Contention Among Multiple Masters

2-.78

AFN-00208C

8224
CLOCK GENERATOR AND DRIVER
FOR 8080A CPU
Single Chip Clock Generator/Driver for
• 8080A
CPU
• Power-Up Reset for CPU
• Ready Synchronizing Flip-Flop
• Advanced Status Strobe

Oscillator
• Timing

Outp~t

for'External System

Crystal ControUed for Stable System
• Operation
• Reduces System Package Count
in EXPRESS
• '-Available
Standard Temperature Range

The Intel 8224 is a single chip clock generator/driver for the 8080A CPU, It is controlled by a crystal, selected by the
.
designer to meet a variety of system speed requirements,
Also included are circuits to provide power-up reset, advance status strobe, and synchronizlltion of ready,
The 8224 provides the designer with a significant reduction of packages used to generate clocks and timing for 8080A

RESET

§>

XIAll

asc

1!9

XTAl2

@>

TANK

.,

.,

@>

Vee

RESIN

XTAL 1

RDY1N

XTAl2

READY

IT]>

TANK

¢2 (TTL)

.,

STSTB

~,

a80

SYNC

Ii9
.,ITTLIIE>

Voo

GND

IE>

SYNC

[D

RESIN

[D

RDYIN

sms[D

AESET

IT>

AEADY~

RESIN

RESET INPUT

RESET

RESET OUTPUT

RDYIN
READY
SYNC

READY INPUT

XTAL 2

READY OUTPUT

TANK

STSTS

.,

~

Figure 1. Block Diagram

SYNC INPUT

STATUSSTB
(ACTIVE LOW)

~ 8080
CLOCKS

~-

!

CONNECTIONS
FOR CRYSTAL
USED WITH OVERTONE XTAL

asc

OSCILLATOR OUTPUT

¢2 (TTL)

¢2 eLK (TTL lEVEL)

Vee

+5V
+12V
OV

Voo
GND

Figure 2. Pin Configuration

2-79

inter

8224

ABSOLUTE MAXIMUM RATINGS·
Temperature Under Bias .......... ' ..... O°C to 70°C
Storage Temperature .............. _65°C to 150°C.
Supply Voltage, Vee ................ -0.5V to +7V
Supply Voltage, Voo .............. -0.5V to +13.5V
Input Voltage ..................... -1.5V to +7V
Output Current ........•................ 100mA

D.C. CHARACTERISTICS
Symbol

,

(TA

"NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

= o·c to 70·C. Vee = +5.0V ±5%. Voo = +12V ±5%)

Parameter

Limits
Typ.

Max.

Units

IF

Input Current Loading

-.25

mA

VF = .45V

IR

Input Leakage Current

10

p.A

VR = 5.25V

Ve

Input Forward Clamp Voltage

1.0

V

le= -5mA

Vil

Input "Low" Voltage

.8

V

Vee = 5.0V

VIH

Input "High" Voltage

2.6
2.0

V

Reset Input
All Other Inputs

V1WVIl

R.ES I N I nput Hysteresis

.25

VOL

Output "Low" Voltage

VOH

Min.

Test Conditions

V

Vee = 5.0V

.45

V

VPl,tP2), Ready, Reset,STSTB

.45

V

IOl =2.5mA,
All Other Outputs
IOl = 15mA

V
V
V

IOH = -1001lA
IOH = -100p.A
IOH = -lmA

-60

mA

Vo =OV
Vee =!;i.OV

Output "High" Voltage
<1>1

, <1>2

READY, RESET
All Other Outputs

9.4
3.6
2.4

Ise[IJ

Output Short Circuit Current
(All Low Voltage Outputs Only)

Icc

Power Supply Current

115

mA

100

Power Supply Current

12

mA

-10

Note: 1. Caution, 4>1 and ¢2 output drivers do not have short circuit protection

Crystal Requirements
Tolerance: 0.005% at 0·C-70·C
Resonance: Series (Fundamental)"
Load Capacitance: 20-35 pF
Equivalent Resistance: 75-20 ohms
Power Dissipation (Min): 4 mW
·Wlth tank circuit use 3rd overtone mode.

2-80

AFN·OO732C

inter

8224

A.C. CHARACTERISTICS
Symbol

(Vee

= +5.0V

Parameter

±5%, Voo

±5%, TA

= O°C to 70°C)

limits
Typ.

Min.

tq,1

2 Delay

,

= +12.0V

Max.

Test
Conditions

9
9
ns
CL = 20pF to SOpF

9

2tcy

2tcy + 20ns

9

9

2

tPl
tfi2

tOl

Delay tPl to tP2

t./>1

Min.

Limits
Typ.

= O"C to 70"C, VOO = +5V ±5%;
,

Max.

Units

89

Pulse Width

236

ns

0

ns

t02

Delay tP2 to tPl

95

t03

Delay tPl to tP2 Leading Edges

109

tr
tf
toss

Test Conditions·

ns

Pulse Width

ns
129

ns

Output Rise Time

20

ns

Output Fall Time

20

ns

326

ns

tP2 to STSTB Delay
tP2 to tP2 (TTL) Delay

296

t04>2
tpw

Status Strobe Pulse Width

40

ns

tORS

RDYIN Setup Time to STSTB

-167

ns

tORH

RDYIN Hold Time after STSTB

217

ns

tOR

READY or RESET
to tP2 Delay

192

ns

fMAX

Oscillator Frequency

-5

+15

I-

tPl

&

tP2

Loaded to

CL = 20 to 50pF

ns

18.432

A.C. TESTING INPUT, OUTPUT WAVEFORM

tcy=488.28ns

Ready & Reset Loaded
to 2mA/l0pF
All measurements
referenced to 1.5V
unless sPl'Cified .
otherwise.

MHz

A.C. TESTING LOAD CIRCUIT

INPUT/OUTPUT
-,- Vee

U=>\: : >

8.45

<:::VA-

R,
DEVICE
UNDER
TEST

TESTPQINTS
-_ _ _ _ _ _ _ _

-

A.C.TESTlNO:INPUTSAREDRlVENAT2.4VFORA LOGIC"I"ANOO.45VFOR
A LOGIC "0." TIMING MEASUREMENTS ARE MADE AT2.OV FORA LOGIC "1"
AND 0.8V FOR A LOGIC "0" (UNLESS OTHERWISE NOTED).

.,

CL INC WOES JIG CAPACITANCE

2-82

AFN·OO732C

inter

8224

WAVEFORMS

\
SYNC
(FROM 8D8OA)

I

I--·--------·DII'--------i-~

i - - - - - - - 10 A H - - - - - - i

READVOUT__~__________________-J~

RESET OUT

VOLTAGE MEASUREMENT POINTS: 4>,.4>2 Logic "0" = ,.OV. logic ",". a.ov. Another signals m...ured at '.5V.

-,'

2-83 . ,

AFN·OO732C

8228/8238
SYSTEM CONTROLLER AND BUS DRIVER
FOR 8080A CPU
• Single Chip System Control for
MCS-801R> Systems

• User Selected Single Level Interrupt
Vector (RST 7)
• 28·Pln Dual In· Line Package

• Bullt·ln Bidirectional Bus Driver for
Data Bus Isolation

• Reduces System Package Count
• 8238 Had Advanced IOW/MEMW for
Large System Timing Control

• Allows the Use of Multiple Byte .
Instructions (e.g. CALL) for Interrupt
Acknowledge

• Available In EXPRESS
- Standard Temperature Range

The Intel· 8228 Is a single chip system controller and bus driver for MCS·80. It generates all signals required to
directly Interface MCS-80 family RAM, ROM, and I/O components.
A bidirectional bus driver is Included to provide high system TIL fan·out. It also provides isolation of the 8080 data bus
from memory and I/O. This allows for the optimization of control Signals, enabling the systems designer to use slower
memory and I/O. The Isolation of the bus driver also provides for enhanced system noise immunity.
A user selected single level Interrupt vector (RST 7) is provided to simplify real time, interrupt driven, small system
requirements. The 8228 also generates the correct control signals to allow the use of multiple byte instructions (e.g.,
CALL) in response to an Interrupt acknowledge by the 8080A. This feature permits large, interrupt driven systems to
have an unlimited number of Interrupt levels.
The 8228 Is designed to support a wide variety of system bus structures and also reduce system package count for
cost effective, reliable design of the MeS·SO systems.
Note: The speclflcallons for tho 322813238 are Identical with thos,. lor the 822818238

r-

0,_

CPU
DATA
BUS

°2°3D._
0,0,0,_

-~l
:=:

STSTS

Vco

HLOA

IIOW

-OB,

- 0 82

g:~

SYSTEM OAT A BUS

WR

-DO,
_

08.

M£Mw

iiOR

DSIN

-oB,

084

MEMR

INTA

04

l§..

=
LATCH

OB7

tmn
07

!mfW

06

OB3

i70R

03

I!OW

0.2

sfSi'i

086
OS

D.,

02

_liUmii

OBIN

BUSEN

01

WA

0.,

HlDA

If- - - - - - - - - - - - - -

VOLTAGE MEASUREMENT POINTS: 00-07 (when outputs) Logic "0" = O.BV, Logic "1" = 3.0V. All other Signals measured
at 1.5V.
"ADVANCED IOW/MEMW FOR 8238 ONLY.

2-87

AFN-00213C

8237A/8237A-4/8237A-5
HIGH PERFORMANCE
PROGRAMMABLE DMA CONT,ROLLER,
• High performance: Transfers up to 1.6M
Bytes/Second with 5 MHz 8237A·5
• Directly Expandable to any Number of
Channels
• End of Process Input for Terminating
Transfers
• Software DMA Requests

• Enable/Disable Control of Individual
DMA Requests
• Four Independent DM~ Channels
• Independent Autoinitialization of all
Channels
• Memory·to·Memory Trensfers

• Independent Polarity Control for DREQ
and DACK ~Ignals
• Available In EXPRESS
- Standard Temperature Range

• Memory Block Initialization .
• Address Increment or Decrement

The 8237A Multlmode Direct Memory Access (DMA) Controller Is a peripheral Interface circuit for microprocessor systems. It Is designed to Improve system performance by allowing external devices to directly transfer Information from
the system memory. Memory-to-memory transfer capability Is also provided. The 8237A offers a wide variety of programmable control features to enhance data throughput and system optimization and to allow dynamic reconflgura.
tion under program control.
The 8237A Is designed to be used In conjunction with an external 8-blt address register such as the 8282. It contains
four independent channels and may be expanded to any number of channels by cascading additional controller chips.
The three basic transfer modes allow programmability of the types of DMA service by the user. Each channel can be
Individually programmed to Autoinitialize to Its Qrlginal condition following an End of Process (EOP).
.
Each channel has a full 64K 'address and word count capability.
The 8237A-4 and 8237A-5 are 4 MHz and 5 MHz selected versions of the standard 3 MHz 8237A respectively.

110 BUFFEfI

""
'"IT

.

;ow

REAOY

iiEiiIi

CLOCK

IifIIW

, TIMING

.....
....

INOTE11)
ROADY

.ND
CONTROL

'IN

•
•
•

3

HLOA

iIII!W

AEN

COMMAND

RIll

...

Vcc(+6V)

HR.

CDNTRDL

lOW

ell
eLK

DR...•
0 ....

""0

...KDDACKt

.BDO'.

RISET

.
.

....'"

DAEQ3
DR'"
DREQ1

"
____--r

.1,

Figure 2.
Figure 1. Block Diagram

2-88

Pin Configuration

inter

8237A/8237~4/8237~5

Table 1. Pin Description
Symbol

Type

Vee
Vss
ClK

Type

Ground: Ground.
I

Clock Input: Clock Input controls
the Internal operiltlons of the
8237A and Its rate of data trans·
fers. The Input. may be driven at up
to 3 MHz for the standard 8237A
and up to 5 MHz for the 8237A·5.

I

Chip Salect: Chip Select Is an ac·
tlve low Input used to select the
8237A as an I/O device during the
Idle cycle. This allows CPU com·
municatlon on the data bus.

RESET

I

Reaet: Reset is an active high In·
put which clears the Command,
StatuB, Request and Temporary
registers. It also clears the
flrstllast f1iplflop and sets the
Mask register. Following a Reset
the device is in the Idle cycle.

I

Ready: Ready Is an Input used to
extend the memory read and write
pulses from the 8237A to accom·
modate slow memories or I/O per·
Ipheral devices. Ready must not
make transitions during its speci·
fied setuplhold time.

HLDA

I

Hold Acknowledge: The active
high Hold Acknowledge from the
CPU Indicates thaI it has relin·
quished control of the system
busses.

DREQO-DREQ3

I

DMA Request: The DMA Request
lines are Individual asynchronous
channel request Inputs used by pe·
ripheral circuits to obtain DMA
service. In fixed Priority, DREQO
has the highest priority and
DREQ3 has the lowest priority. A
request is generated by activating
the DREQ line of a channel. DACK
will acknowledge the recognition
of DREQ signal. Polarity of DREQ
Is programmable. Reset intlalizes
these 1.lnes to active high. DREQ
must be maintained until the corresponding DACK goes active.

I/O

Data Bus: The Data Bus lines are
bidirectional three·state signals
connected to the system data bus.
The outputs are enabled In the Pro·
gram condition during the 1/0 Read
to output the contents of an Ad·
dress register, a Status register,
the Temporary register or a Word
Count register to the CPU. The out·
puts are disabled and the inputs
are read during an I/O Write cycle
when the. CPU Is programming the
8237A control registers. During
DMA cycles the mos! significant 8
bits of the address are output onto
the data' bus to be strobea Into an
external latch by ADSTB. In memo

DBQ-DB7

SYll1bol

Power: + 5 volt supply.

CS

READY

~------~---r----------------~

Name and Function

I

2-89

lOR

I/O

lOW

I/O

EOP

I/O

AO-A3

1/0

Name and Function

ory·to·memory operations, data
from the memory comes Into the
8237A on the data bus during the
read-from-memory transfer. In the
wrlte-to-memory transfer, the data
bus outputs place the data Into the
new memory locallon.
I/O Read: I/O Read Is a bidirectional active low three-state line. In
the Idle cycle, It Is an Input control
signal used by the CPU to read the
control registers. In the Active cycle, It Is an output control signal
used by the 8237A to access data
from a peripheral during a DMA
Write transfer.
1/0 Write: I/O Write Is a bidirectional acllve low three-state line. In
the Idle cycle, It Is an Input control
signal used by the CPU to load Information Into the 8237A.ln the Aclive cycle, It Is an output control
signal used by the 8237A to load
data to the peripheral during a
DMA Read transfer.
•
End of. Proce..: End of Process III
an active low bidirectional signal.
Information concerning the com·
pletlon of DMA services Is available at the bidirectional EOP pin.
The 8237 A allows an external signal to terminate an active DMA
service. This Is accomplished· by
pulling the EOP Input low with an
external EOP signal. The 8237A also generates a pulse when the ter·
mlnal count (TC) for any'channells
reached. This generates an EciP
!!anal which Is output through the
EOP Line. The recepllon of EOP,
either Internal or external, will
cause the 8237A to terminate the
service, reset the request, and, If
Autoinitialize Is enabled, to write
the base r\lgisters to the current
registers of that channel. The mask
bit and TC bit In the status word
will be set for the currenlly active
channel by EOP unless the channel
Is programmed for Autoinitialize. In
that case, the mask bit remains unchanged. During memory-to'memory
transfers, EOP will be output wlJen
the TC for channel 1 occurs. EOP
should be tied high with a pull·up
resistor If It Is not used to prevent
erroneous end of process inputs.
Address: The four least significant
address lines are bidirectional
three·stale signals. In the Idle cy·
cle they are inputs and are used by
the CPU to address the register
to be loaded or read. In the Active
cycle they are outputs and provide
the lower 4 bits of the output
. address.

AFN·OO7890

inter

8237A/8237Ar-4/8237Ar-5 .
Table 1. Pin Description (Continued)

lYpe

Symbol

Name and Function

Symbol

A4-A7.

0

Address: The four most significant
address lines are three-state outputs and provide 4 bits of address.
These lines are enabled only during
the OMA service.

HRO

0

Hold Request: This Is the Hold Re·
quest to the CPU and Is used to reo
quest control of the system bus. If
the corresponding mask bit Is
clear, the presence of any valid
OREO causes 8237A to issue the
HRO. After HRO goes active at
least one clock cycle (TCY) must
occur before H LOA goes active.

DACKD-OACK3

0

DMA Acknowledge: OMA Acknowledge is used to notify the in·
dividual peripherals when one has
been granted a OMA cycle. The
sense of these lines is programmable. Reset initializes them to active low.

Type

AEN

0

Addre•• Enable: ·Address Enable
enables the 8-bit latch containing
~the upper 8 address bits onto the
system address bus. AEN can also
be used to disable other system bus
drivers 'during OMA transfers. AEN
is active HIGH.

AOSTB

0

Addre•• Strobe: The active high,
Address Strobe is used to strobe the
upper address byte into an "xternal
latch.

~

0

Memory Read: The Memory Read
signal is an active low three-state
output used to access data from the
selected memory location' during a
OMA Read or a memory-to-memory
transfer.

MEMW

0

Memory Write: The Memory Write
is an active low three-state output
used to write data to the selected
memory 'Iocation during a OMA
Write or a memory-to-memory
transfer.

FUNCTIONAL DESCRIPTION
The 8237A block diagram Includes the major logic
blocks and all of the internal registers. The data inter·
connection paths are also shown. Not shown are the
various control signals between the blocks. The 823711.
contain~ 344 bits of Internal memory In the form of
registers. Figure 3 lists these registers by name and
shows the size of each. A detailed description of the
registers and their functions can be found under
Register Description.
Name

Size

Number

Baae Address Registers
Base Word Count Registers
Current Address Registers
Current Word Count Registers
Temporary Address Register
Temporary Word Count Register
Status Raglsier
Command Register
Temporery Register
Mode Raglsters
. Mask Register
Request Register

16 bits
16 bits
16 bits
16bits
16 bits
16 bits
8blts
8 bits
8blts
6 bits
4blts
4 bits

4
4
4

Name and Function

be the 2 TTL clock from an 8224 or ClK from an
8085AH or 8284A. For 8085AH-2 systems above 3.9 MHz,
the 8085 ClK(OUn does not satisfy 8237A-5 clock lOW
and HIGH time requirements. In this case, an external
clock should be used to drive the 8237 A·5.

DMA Operation
The 8237A is deSigned to operate in two major cycles.
These are called Idle and Active cycles. Each device cy·
cle is made up of a number· of states. The 8237 A can
assume seven separate states,each composed of one
full clock period. State I (SI) is the inactive state. It is
el\tered when the 8237A has no valid DMA requests
pending. While in SI, the DMA controller is inactive but
may be in the Program Condition, being programmed by
the processor. State SO (SO) is the first state of a DMA
service. The 8237A has requested a hold but the pro·
cessor has not yet returned an acknowledge. The 8237A
may still be programmed until it receives HlDA from the
CPU. An acknowledge frdm the CPU will signal that
DMA transfers may begin. S1, S2, S3 and S4 are the .
working states of the DMA service. If more time is
needed to complete a transfer than is available with nor·
mal tilning, wait states (SW) can be inserted between S2
or S3 and S4 by the use of the Ready line on the 8237A.
Note that the data is transf\med directly from the I/O
device to memory (or viCE! versa) with lOR and MEMW (or
.MEMR and !OW) being active at ,the same time. The data
is not read into or driven out of the 8237A in I/O·to·
memory or memory·to·I/O DMA.transfers.

4

1
1
1
1
1
4
1
1

Figure 3. 8237A Internal Registers
The 8237A contains three basic blocks of control logic.
The Timing Control block generates internal timing and
external control signals- for the 8237A. The Program
Command Control block decodes the various com·
mands given to the 8237A by the microprocessor prior
to servicing a DMA Request. It also decodes the Mode
Control word used to select the type of DMA during the
servicing. The Priority Encoder block resolves priority
contention bj!tween DMA channels requesting service
simultaneously.

Memory·to·memory transfers require a read·from and a
write·to·memory to complete each transfer. The states,
which resemble the normal working states, use two
digit numbers for identification: Eight states are required for a single transfer. The first four states (S11,
S12, S13, S14) are used for.the read·fr9m·memory half

The Timing Control block derives internal timing from
the ~clock. input. In 8237A systems this Input will usually

2-90

AFN·OO789D

8237A/8237~4/8237~5
becomes active. Again, an Autoinitiallzation will occur
at the end of the service If the channel has been pro·
grammed for It.

and the last four states (521, 522, 523, 524) for the write·
to-memory half of the transfer.
IDLE CYCLE
When no channel Is requesting service, the 8237A will
enter the Idle cycle and perform "SI" states. In this
cycle the 8237A will sample the DREQ lines every clock
'cycle to determine If any channel Is requesting a DMA
service. The device will also sample eg, looking for an
attempt by the microprocessor to write or read the Inter·
nal registers of the 8237A. When CS Is low and HLDA Is
low, the 8237A enters the Program Condition. The CPU
can now establish, change or Inspect the Internal deflnl·
tlon of the part by reading from or writing to the Internal
registers. Address lines AO-A3 are Inputs to the device
and select which registers will be read or written. The
lOR and iOW lines are used to select and time reads or
writes. Due to the number and size of the Internal regis·
ters, an Internal fIIp·flop Is used to generate an addl·
tional bit of address. This bit Is used to determine the
upper or lower byte of the 16·bit Address and Word
Count registers. The fIIp·flop Is reset by Master Clear or .
Reset. A separate software command can also reset this
fIIp·flop.
Special software commands can be executed by the
8237A In the Program Condition. These commands are
decoded as sets of addresses with the C5 and lOW. The
commands do not make use of the data bus. Instruc·
tions include Clear First/Last Flip·FLop and Master
Clear.

Demlnd Trlnsfer Mode - In Demand Transfer mode the
device Is programmed to continue making transfers
until a TC or external EOP Is encountered or until DREQ
goes Inactive. Thus transfers may continue until the 110
device has exhausted Its data capacity. After the 110
device has had a chance to catch up, the DMA service Is
re·establlshed by means of a DREQ. During the time
between services when the microprocessor Is allowed
to operate, the Intermediate values of address and word
count are stored In the 8237A Current Address and Current Word Count registers. Only an EOP can cause an
Autoinitialize at the end of the service. EOP Is generated
either by TC or by an external signal.
Cascade Mode-This mode is used to cascade morethan one
8237 Atogether for Simple system expansion. The HRQ and
HLDA signals from the additionat8237 A are connected to the
DREQ and DACK signals of.a channel of the initial 8237A.
This allows the DMA requests of the additional device to
propagate through the priority network circuitry of the preceding device. The priority chain is preserved and the new device
must wait for its turn to acknowledge' requests. Since the
cascade channel of the initial 8237 A is used only for prioritizing the additional device, it does not output any address
or control signals of its own. These could conflict with the
outputs olthe active channel in the added device. The 8237A
will respond to DREQ and DACK but all other outputs except
HRQ will be disabled. The ready input is ignored.

ACTIVE CYCLE
Figure 4 shows two additional devices cascaded Into an
Initial device using two of the previous channels. This
forms a two level DMA system. More 8237As could be
added at the second level by using the remaining chan·
nels of the first level. Additional devices can also be
added by cascading into the channels of the second
level devices, forming a third level.

When the 8237A Is in the Idle cycle and a non·masked
channel requests a DMA service, the device will output
an HRQ to the microprocessor and enter the Active cycle. It is In this cycle that the DMA service will take
place, in one of four modes:
Single Transfer Mode - In Single Transfer mode the
device is programmed to make one transfer only. The
word count will be decremented and the address dec·
remented or incremented following each transfer. When
the word count "rolls over" from zero to FFFFH, a Ter·
minal Count (TC) will cause an Autoinitialize if the chan·
nel has been programmed to do so.

2ND LEVEL

\

1-

HRQ

DREQ

~

HLOA

DACK

8237A
DREQ
DACK

INITIAL DeVICE

Block Transfer' Mode - In Block Transfer mode the
device Is activated by DREQ to continue making trans·
fers during the service until a TC, caused by word co~nt
going to FFFFH, or an external End of Process (EOP) is
encountered. DREQ need only be held active until DACK

8237A

1ST LEVEL

MICROPROCESSOR

DREQ must be held active until DACK becomes active In
order to be recognized. If DREQ Is held active throughout the Single transfer, HRQ will go Inactive and release
the bus to the system. It will again go active and, upon
receipt of a new HLDA, another single transfer will be
performed, in8080A, 8085AH, 8088,.or 8086 system this
will ensure one full machine cycle execution between
DMA transfers. Details of timing between the 8237A and
other bus control protocols will depend upon the char·
acterlstics of the microprocessor involved.

1-

-

--

HRQ
HLDA

HRQ

HLOA
8237A

ADDITIONAL
DeVICES _

Figure 4. Cascaded8237As
2-91

AFN-00789D

8237A/8237Af.4/8237J4t.5
TRANSFER TYPES
Each of the three active transfer modes can perform three
different types of transfers. These are Read, Write and Verify.
Write transfers move data from and 110 device to the memory
by actlvetlng ~ and lOR. Read transfers move data from
memory to an 1/0 device by activating MEMR and R5W. Verify
transfers are pseudo transfers. The 8237A operates as in
Read or Write transfers generating addresses, and responding
to EOp, etc. However, the memory and 1/0 control lines all
remain inactive. The ready input is ignored in verify mode.
Memory·to-Memory-To perform block moves of data from
:)ne memory address space to another with a minimum of
program effort and time, the 8237A includes a memory-tomemory transfer feature. Programming a bit in the Command
register selects chan nels 0 to 1 to operate as memory-tomemory transfer channels. The transfer is initiated by setting
the software DREQ for channel O. The 8237A requests a DMA
service in the normal manner. After HLDA is true, the device,
using four state transfers in Block Transfer mode, reads data
from the memory. The channel 0 Current Address register is
the source for the address used and is decremented or incremented in the normal manner. The data byte read from the
memory is stored in the 8237A internal Temporary register.
Channell tben performs afour-stete transfer of the data from
the Temporary register to memory using the address in its
Current Address register and incrementing or decrementing it
In the normal manner. The channe.1 1 current Word Count is
decremented. When the word count of channel 1 goes to
FFFFH, a TC is generated causing an EQj5 output terminating
the service.
Channel 0 may be programmed to retain the same address for all transfers. This allows a Single word to be
written to a block of memory.
The 8237A will respond to external EOP signals during
memory-ta-memory transfers. Data comparators, in
block search schemes may use this input to terminate
the service when a match is found. The timing of
memory-to-memory transfers is found in Figure 12.
Memory-ta-memory operations can be detected.as an
active AEN with no DACK outputs.
AulDinltlallze-By programming a bit in the Mode register, a
channel may be set up as an Autoinitialize channel. During
Autoinitialize ini~alization, ,the original values of the Current
Address and, Current Word Count registers are automatically
restored from the Base Address and Base Word count registers
of that channel following EOI5. The base registers are loaded
simultaneously with the current registers by the miCrOProcessor and remain unchanged throughout the DMA service.
The mask bit Is not altered when the channel is in Autoinitialiie. _
Following Autoinitialize the channel is ready to perform
another DMA service, without CPU intervention, as soon as a
valid DREQ Is detected. In order to Autoninitialize both channels in a memory-to-memorytransfer, both word counts should
be, programmed identically. If interrupted externally, EQj5
pulses should be applied in both bus cycles.

Priontv-The 8237A has two types of priority encoding available as software selectable QPtions. The first is Fixed Priority

which fiXes the channels in priority order based upon the
descending value of their number. The'channel with the lowest
priority is 3 followed by 2, 1 and the highest priqrity channel"
O. After the recognition of anyone channel for service, the other channels are prevented from interferring with that service until it is completed.
The second scheme Is Rotating Priority. The last channel to get service becomes the lowest priority channel
with the bthers rotating accordlrigly.,
'

1et
Senlce
highest

lowest

2nd

.

s4n1ce '

o

1'_serylce~ 3_request
2
,0

2_servICe\3_SeivICe
,0
1

3

1

2

, With Rotating Priority In a single chip DMA system, any
device requesting service Is guaranteed to be recognized after no more than three higher priority services
have occurred. This prevents anyone channel from
monopolizing the system.
Compressed Timing - In order to achieve even greater
throughput where system characteristics permit, the
8237A can compress the transfer, time to two clock
cycles. From Figure 11 It can be seen that state S3 Is
used to extend the access time of the read pulse. By
removing state S3, the read pulse width is made equal to
the write pulse width and a transfer consists only of
state 52 to change the address and state S4 to perform
the read/write. 51 states will stili occur when A8-A15
need updating (see Address Generation). Timing for
compressed transfers is found in Figure 14.
Address Generation - In order to reduce pin count, the
8237A multiplexes the eight higher order address bits
on the data lines. State Sl Is used to output the higher
order address bits to an external latch from which they
may be placed on the address bus. The failing edge of
Address Strobe (AD5TB) Is used to load these bits from
the data lines to the latch. Address Enable (AEN) Is used
to enable the bits onto the address bus through a threestate enable. The lower order address bits are output by
the 8237A directly. Lines AO-A7 should be connected to
the address bus. Figure 11 shows the time relatklOshlps
bet~een CLK, AEN, ADSTB, DBO-DB7 and AO-A7.
During Block and Demand Transfer mode services,
which Include multiple transfers, the addresses generated will be sequenilal. For many transfers the data held
In the ex.ternal address latch will remain t,he saine. Thl,s
data need only change when a carry or'borrow from A7
to A8 takes place In the normal sequenc,e of addresses.
transfers,' the 8237A executes
To save time and
Sl states only when updating of A8-A15 in the latch is
necessary. This I)'leans for long services, Sl states and
Address Strobes may occur only onc,e every 258 transfers, a savings :of 255 clock cycles for each 258
transfers.

speed'

AFN·OO789D

8237A/8237~4/8237~

Command Register

REGISTER DESCRIPTION

7

•

5

4

3

2

1

0

~III

Num....

l I I I I I II I

Current Address Raglstsr - Each channel has a HI..blt
Current Address register. ,This register holds the value
of the address used during DMA transfers. The address
Is automatically incremented or decremented after each
transfer and the Intermediate values of the address are
stored In the Current Ad,dress register during the transfer. This register Is written or read by the microprocessor in successive 8..blt bytes. It may also be relnl·
tiallzed by an Autoinitialize back to its original value.
Autoinitialize takes place only after an EOP.

Y

0
1

Mernory·to-memory dl8eble
Memory-to-memory enable

Y

0
1
X

Channel 0 add..... hold dluble
Channel 0 eddr_ hold enable
II bll 0 .. 0

I 0
I 1

f 01

tX

Current Word Raglster - Each channel has a 16-bit Cur·
rent Word Count register. This register determines the
number of transfers to be performed. The actual number
of transfers will be one more than the number programmed in the Current Word Count register (i.e., programming a count of 100 will result in 101 transfers). The
word count is decremented after each transfer. The
Intermediate value of the word count Is stored In the reg·
Ister during the transfer. When the value in the register
goes from zero to FFFFH, a TC will be generated. This
register is loaded or read in successive 8·blt bytes by
the microprocessor In the Program Condition. Follow..
ing the end of a DMA service it may also be reinitialized
by an Autoinitialization back to its original value. Autoinitialize can occur only when an EOP occurs. If it is not
Autoinitialized, this register will 'have a count of FFFFH
after,TC.

0

j

I 1

Normal timing
Compreeaed timing
II bit 0 .. 1
Fixed priority
Rotating priority

IX

f 01

Lat. write .electlon
Extended write .electlon
II bl13" 1

I 0
I 1

DREQ 88nse active high
DREQ 88nse active low

0

DACK 88nse active low
DACK len.e active high

j

I 1

Mode Register
7

I

8

5

4

3

2

1

04--BltNumber

I II I I II

-~L{ 01

'-,-""

00 Channel 0 select
Channel'l select
10 Channel 2 select
11 Channel 3 .elect

Base Address and Base Word Count Raglsters - Each
channel has a pair of Base Address and Base Word
Count registers. These 16·blt registers store the original
value of their associated current registers. During Auto·
initialize these values are used to restore the current
registers to their original values. The base registers are
written simultaneously with their corresponding current
register in 8·bit bytes in the Program Condition by the
microprocessor. These registers cannot be read by the
microprocessor.

00
01
10
11
XX

I o
I

1

I o

Command Raglster - This 8·bit register controls the
operation of the 8237A. It is programmed by the microprocessor In the Program Condition and is cleared by
!'teset or a Master Clear instruction. The following table
lists the function of the command bits. See Figure 6 for
address coding.

Controller eneble
Controller dl8eble

Verily transler
Write trensler
Reed transfer
Illegal
II bits 8 and 7 .. 11
Autoinitialization disable
Autoinitialization enable

I

1

Address Increment select
Address decrement select

f
l

00
01
10
11

Demand mode select
Slngl. mode .elect
Block mode .elect
C8acade mode select

o

Reaat request bit
Set request bit

Request Raglster

Mods Raglster - Each channel has a 6·bit Mode regis..
ter associated with it. When the register is being written
to by the microprocessor in the Program Condition, bits
o and 1 determine which channel Mode register is to be
written.

'-----i 1

Request Register - The 8237A can respond to requests
for DMA service which are initiated by software as well
as by a DF\EQ. Each channel has a request bit associ·
ated with it in the 4-bit Request register. These are non·
maskable and subject to prioritization by the Priority
Encoder network. Each register bit is set or reset sepa·

rately under software control or Is cleared upon genera·
tion of
T,C or external E()P.The entire register is
cleared by a Reset.. To set or reset a 'bit, the software
loads the proper form of the data word. See Figure 5 for
register address coding. In order to make a software reo
quest, the channel must be in Block Mode.

a

,2·93

AFN·OO7880

intJ.

S237A/S23"A-4/S237A-S

Mask Register ... Each channel has associated with It Ii
mask bit which can be set to disable the Incoming
DREQ. Each mask bit Is set when its associated channel
produces an ,mP If the channel Is not programmed for
Autoinitialize. Each bit of the 4-blt Mask register may
also be set or cleared separately under software control.
The entire register Is also set by a Reset. This disables
all DMA requests until a clear Mask register Instruction
allows them to occur. The Instruction to separately set
or clear the mask bits Is 'similar In form to that used with
the Request register. See Figure 5 for Instruction addressing.

I,
1

Channel 0
Ohannel 1
' - - - - - 1 Channel 2
' - - - - - - 1 ,Channel 3
Channel
Channel
Channel
Channel

L{

00 Select channel 0 maek bit
01 Select channel 1 mask bit
10 Select channel 2 mask bit
11 Select channel 3 mask bit

'-----I 0

1

4,3

2

1

O.--altHumber
o
1

Clear channel 0 mask bit
Set channel 0 mask bit

o

Clear channel 1 mask bit
Set channel 1 mask bit

1

' -_ _-! 0
1
' -_ _ _-I 0

1

Register

Operation

Ccmmand
Mode
Request
Mask
Mask
Temporary
Status

Write,
Write
Write
Set/Reset
Write
Read
Read

0
0
0
0
0

'0

0

lOR

1,
1
1
1
1
0
0

Clear channel 2 mask bit
Set channel 2 mask bit

Figure 6 lists the address codes for 'the software commands:

lOW

A3

A2

A1

AD

0

1
1
1
1
1
1
1

0
0

0
1
0
1
1

0
1
1

'0

0
0
1
1

I

Clear First/Last FliP-Flop: This co'mmand is executed
prior to writing or reading new address or word count
information to the 8231A. This Initializes the flip-flop
to a known state so that subsequent accesses to regIster contents by the microprocessor will address
upper and lower bytealn the correct sequence.

Clear Mask Register: This command clears the mask
bits of all four channels, enabling them to accept
DMA requests. '

Clear channel 3 mask bit
Set channel 3 mask bit

0

'1 request
2 request
3 request

Master Clear: This software instruction has the same
effect as'the hardware Reset. The Command, Status,
Request; Temporary; and Internal First/Last Flip-Flop
registers are,cleared and the Mask register is set. The
8237A will enter the Idle cycle.

Signals
OS

0 request

commands which can be e/Cecuted in the Program Condition.
They do not depend on any speCific bit pattern on the data
bus. The three ~ftware commands are:

Clear mask bit
Set mask bit

I

5

TC
TC
TC
TC

Software Commands-These are additional special80ftware

All four bits of the Mask register may also be written
with a single command.
8

reechld
reached
reached
reached

Temporary Register - The Temporary register Is used
to hold data during memory-to-memory transfers. 'Following the completion of the trarlsfers, the last word
moved can be read by the microprocessor In the Program Condition. The Temporary register always contains the last byte transferred In the previous memoryto-memory operation, unless cleared by a Reset.

. . . ."T"'-r-r-,~r1..,..O...,~ alt Hum. .

Don't Care

has
has
has
has

0
0
1
1

0

0
0

Sign."

O·
1
1
0

Figure 5_ Definition of Register Codea
Status Regl"er - The Status register'ls available to be
read out of the 8237A by the microprocessor. It contains
infotlnation about the status of the devices at this point.
This infonnatlon Includes which channels have reached
a terminal count and which channels have pending DMA
requests: Bits 0-3 are set every time a TC is reached by
that channel or an external &lP-is applied. These bits
are cleared upon Reset and on each Status Read. 'Bits
4-7 are set whenl!ver their corresponding channel Is,
requesting service.

A3

A2

AI

AD

lOR

iOW

1

,0

a

0

0

1

1

0

0

0

1

0

Write Command Regrater

1

0

0

1

0

1

Illegal

1

0

0

1

1

0

Wnte Reque.t Regllter

1

0

1

0

0

1

11_1

1

0

1

0

1

0

1

0

1

1

0

1

1

o .

1

1

1

0

Wnt. Mode Regl.lar '

1

1

0

0

0

1

Illegal

Operation
Read Statue Register

. Write SIngle Meak Register Bd

Illegat

1

1

0

0

1

0

Clear Byte POinter Flip/FlOP

,1

1

0',

1

0

1

Read Temporary Regllttl,

1

,1

0

1

1

0,

MaaterCfMr

1

1

1.

~

0

1

III•••,

1

1

1

0

1

0

Clear Mask Register

1

'1

1

1

'0

1

Illegal

1

1

1

1

1

0

Write All Mask,Realater Ekt.a

"

Figure 6_ Software Command Code.

2-94

AFN·OO7BBil

8237 A/8237A-4/8237A-5

Slgnols

,

Chlnnel

0

Register
Base and Current Address
Current Address
Base and Current Word Count
Current Word Count

1

Base and Current Address
Current Address
Base and Current Word Count
Current Word Count

2

Base and Current Address
Current Address
Base and Current Word Count
Current Word Count

3

Base and Current Address
Current Address
Base and Current Word Count
Current Word Count

Operltlon
Write
Read
Write
Read
Write
Read
Write
Read
Write
Read
Write
Read
Write
Read
Write
Read

A3

A2

At

AO

Intemll Flip-Flop

Dlte Bus DBO-DB7

0
0

1
1

0
0

0
0

0
0

0
0

0
0

0

AG-A7
AS-At 5

0
0

0
0

1
1

0
0

0
0

0
0

0
0

0

0
0

1
1

0
0

0
0

0
0

0
0

1
1

0

0
0

0
0

1
1

0
0

0
0

0
0

1
1

0

0
0

1
1

0
0

0
0

0
0

1
1

0
0

0

0
0

0
0

1
1

0
0

0
0

1
1

0
0

0

0
0

1
1

0
0

0

0
0

1
1

1
1

0

1)

0
0

0
0

1
1

0
0

0
0

1
1

1
1

0

0
0

1
1

0
0

0
0

1
1

0
0

0
0

0

0
0

0
0

1
1

0
0

1
1

0
0

0
0

0

0
0

1
1

0
0

0
0

1
1

0
0

t
1

0

0
0

0
0

1
1

0
0

1
1

0
0

1
1

0

0
0

1
1

0
0

0
0

1
1

1
1

0
0

0

0
0

0
0

1
1

0
0

1
1

1
1

0
0

0

0
0

1
1

0
0

0
0

1
1

1
1

1
1

0

0
0

0
0

1
1

0
0

1
1

1
1

1
1

0

CS , lOR

.

lOW

t
t
1
1
1
1
1
1
1
1
1
1
1
1
1
1

Ao-A7
AS-At5

WQ-W7
WS-WI5
wyJ-W7
W8-WI5
AO-A7
AS-At5
AG-A7
Ai-A15
Wo-W7
W8-Wt5
WO-W7
W8-WI5
AO-A7
AS-A15
Ao-A7
AS-At5
Wo-W7
WS-Wt5
wyJ-W7
W8-Wt5
AO-A7
AS-A15
Ao-A7
AS-A15
WO-W7
W8-W15
WtO-W7
W8-WI5

Figure 7. Word Count and Address Register Command Codes
PROGRAMMING
The 8237A will accept programming from the host processor any time that HLDA is inactive; this is true even if
HRQ ,is active, The responsibility of the host is to assure
that programming and HLDA are mutually exclusive.
Note that a problem can occur if a DMA request occurs,
on an unmasked channel while the 8237A is being pro·
grammed, For instance, the CPU may be starting to
reprogram the two byte Address register of channel 1
when channel 1 receives a DMA request. If the 8237 A is
enabled (bit 2 in the command register is 0) and channel
1 is unmaSked, a DMA service will occur after only one
byte of the Address register has been reprogrammed_
This can be avoided by disablin'g the controller (setting
bit 2 in the command register) or masking the channel
before programming any other registers. Once the programming is complete, the controller can be enabled/un·
masked,
After power·up it is suggested that all internal locations,
especially the Mode registers, be loaded with some
valid value. This should be done even if some channels
are unused.

2-95

AFN-00789D

8237A/8237~4/8237A·5
APPLICATION INFORMATION

operation comes out in two bytes - the least significant 8 bits on the eight address outpufs and the most
significant 8 bits on the data bus_ The contents of the
data bus are then latched into the 8282 8-bit latch to
complete the full 16 b,its of the address bus. The 8282 is
a high speed, 8-blt, three-state latch in a 2().pln package.
After the Initial transfer takes place, the latch is updated
only after a carry or borrow Is generated in the least significant address byte. Four DMA channels are provided
when one 8237A is used.

Figure 8 shows a convenient method for conflguril1g a
DMA system with the 8237 A controller and an 8080AI
808.5AH microprocessor system. The multi mode DMA
controller issues a HRQ to the processor whenever
there is at least one valid DMA request from a peripheral
device. When the processor replies with a HLDA signal,
the 8237 A takes control of the address bus, the data bus
and the cOl]trol bus. The address for the first transfer

)

ADDRESS BUS AO-A15

....

....

y

i"--

A8-A15

-"
....

I--

I

AO-A15

A4-A7

AO-A3

8282
STB

I

...

AEN

~

cs

8·BIT LATCH

....

ADSTB

BUSEN
HLDA

8237A

HLDA
l-

HOLD

HRQ,

~
u

CPU

w

gj

a:

iI i

I~

I )

CLOCK
RESET
MEMR

~

..,

..,

8w

."

a:

l2
u

DBODB7

,t

-.l\

,

r

i"--

"
f14

,

l~'

MEMW

BUS

iIDi
iOW

DBO-DB7

...
....

....

~
SYSTEM DATA BUS

~

)

r

Figure 8_ 8237A System Interface
2-96

AFN·OO789D

intJ

8237A/8237~4/8237~

ABSOLUTE MAXIMUM RATINGS·

'NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

AmblentTemperature under Bias ••••••••• O'C to 70'C
Storage Temperature ••••••••••••• -55'Cto + 150'C
Voltage on any Pin with
Respectto Ground •••••••••••••••••••• - 0.5 to 7V
Power Dissipation •••••••••••••••••••••••• : 1.5 Watt

D.C. CHARACTERISTICS (TA = O°C to 70°C, Vee =
Symbol
VOH

Parameter

Min.

Output High Voltage

VOL

Output LOW Voltage

5.0V ±5%, GND = OV)

1IJp.(1)

Max.

Unit

Test Conditions

"A
"A (HRQ Only)

2.4

V

IOH = -200

3.3

V

IOH = -100

45

V

IOl = 2.0rnA (data Bus)EIW
IOl = 3.2rnA (other outputs) (Note 8
IOl = 2.5rnA (ADSTB) (Note 8)

V

V IH

Input HIGH Voltage

2.2

Vcc+ 0•5

V il

Input LOW Voltage

-0.5

0.8

V

III

Input Load Current

±10

OV ~ VIN ~ Vcc

ILO

Output Leakage Current

±10

"A
"A

Icc

VeeSupply Current

110

130

rnA

TA=+25°C

130

150

rnA

TA=O°C

Co

Output Capacitance

4

8

pF

C1

Input Capacitance

8

15

pF

C1Q

I/O Capacitance

10

18

pF

.

O.45V

~ VOUT ~ Vcc

Ic = 1.0 MHz, Inputs = OV

NOTES:
1 Typical values are for TA = 25°C, nominal supply voltage and nominal processing parameters
2. Input liming panimeters assume transition times of 20 ns or less. Waveform measurement pOints for both input and output signals are 2 OV for HIGH and 0 8V
for lOW. unless otherwise noted.
3. OUlput loading is 1 m gate plus 150pF capacitance, unless otherwise noted.
4. The net lOW or MEMW Pulse wtdth for normal wrHe will be TCY-1 00 ns and for extended write wtll be 2TCY-100 ns. The net lOR or MEMR pulse WIdth for
normal read will be 2TCY-SO ns and for compressed read wtll be TCY-SO ns.
5. TOQ Is specified for two different output HIGH levels TOQ1 is measured at 2.0V. TOQ2 is measured at 3.3V. The value for TOQ2 assumes an external 3.3k2
pull-up resIstor connected form HRQ to Vcc.
6. DREQ should be held active unHI DACK Is returned.
7 DREQ and DACK signals may be active high or active low. Timing diagrams assume the active high mode.
8. A revision of the 8237 A Is planned for shipment In April 1964, which wtllimprove the folloWing charactaristics.
1. VIH from 2.2V to 2.0V
2. VOL from 0.45V to 0.4V on all outputs. Test condHion IOl = 3.2 mA
Please contact your local sales office at thai time for more Information.
9. Successive read andlor write operations by the external processor 10 program or examIne the controiler must be bmed to allow at least 600 ns for the 8237A,
at least 500 ns for the 82~7 A-4 and alleast 400 ns for the 8237 A-5, as recovery time between active read or wrila pulses
10. Emi is an open collector output. This parameter assumeslhe presence of a 2.2K puilup to Vcc.
11. Pin 5 is an Input thai should always be at a logic high level An Internal puil-up resistor wtll establish a logic high when the pin is left floating. II is recommended however, thai pin 5 be tied to Vcc.

A.C. TESTING INPUT, OUTPUT WAVEFORM
INPUT/OUTPUT

u~...>

TEST POINTS

~

~

ux=

<.
u

A C TESTING INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC "1" AND 0 45V FOR

~~ggl~v"~~~I~[NpGG:t:E.~S,~(=~rs ARE MADE AT 2 OV FOR A LOGIC "1"

2-97

AFN·OO789D

8237A/82~7A..4/8237 A-5
A.C. CHARACTERISTICS~DMA (MASTER) lI/IODE (TA=O·C to 70·C,
Vee= +5V:t5%. GND=OV)
8237A

Symbol

,

Parameter

Min.

8237A-S

8237A-4

Max.

Min.

Max.

Min.

Max.

Unit
ns

TAEl

AEN HIGH from ClK lOW (S1) Delay Time

300

225

200

TAET

AEN lOW from ClK HIGH .(81) Delay Time

200

150

130

ns

TAFAB

ADR Active to Float Delay from ClK HIGH

150

120

90

ns

TAFC

READ or WRITE Float from ClK HIGH

150

120

120

nS

TAFDB

DB Active to Float Delay from ClK HIGH

250

190

170

ns

TAHR

ADR from READ HIGH Hold Time

TAHS

DB from ADSTB lOW Hold Time

TAHW

ADR from WRITE HIGH Hold Time

TAK

TCY-100

TCY-100

.rCY-100

ns

50

40

30

ns

TCY-50

TCY-50

TCY-50

ns

DACK Valid from ClK lOW DelayTime (Note 7)

250

220

170

ns

EOP HIGH from eLK HIGH Delay Time (Note 10)

250

190

170

ns

EOP lOW from ClK HIGH Delay TIme

250

190

170

ns

250

190

170

ns

TASM

ADR Stable from ClK HIGH

i

TA$S

DB to ADSTB LOW Setup Time

I

TCH

100 •

100

100

Clock High Time (Transitions,,; 10 ns)

120

100

80

ns

TCl

Clock lOW Time (Transillons,,;10 ns)

150

110

68

ns

TCY

ClK Cycle Time

320

TOCl

ClK HIGH to READ or WRITE lOW Delay (Note 4)

TDCTR

READ HIGH from ClK HIGH (S4) Delay Time
(Note 4)

TOCTW

WRITE HIGH from ClK HIGH (84) Delay Time
(Note 4)

TOO1

!

HROValid from ClK HIGH Delay Time (Note 5)

TOO2
TEPS

EOP lOW from ClK lOW Setup Time

ns

200

250

ns

270

200

190

ns

270

210

190

ns

200

150

130

ns

160

120

120

ns

250

190

120

60

40

45

300

225

ns
ns

TEPW

EOP Pulse Width

TFAAB

ADR Float to Active Delay from ClK HIGH

250

190

220
170

ns
ns

TFAC

READ or WRITE Active from ClK HIGH

200

150

150

ns

TFADB

DB Float to Active Delay from ClK HIGH

30~

225

200

ns

THS

HlDA Valid to ClK HIGH Setup Time

TlDH

Input Data from MEMR HIGH Hold Time

TIDS

Input Data to MEMR HIGH Setup Time

TODH

Output Data from MEMW HIGH Hold Time

TODV

Output Data Valid to MEMW HIGH

TOS

DREO to elK lOW (SI, 84) Setup Time (Note 7)

TRH

100

75

75

ns

0

0

0

ns

250

190

170

20

20

10

ns

200

125

125

ns

0

0

0

ns

elK to READY lOW Hold Time

20

20

,20

ns

TRS

READY to ClK lOW Setup Time

100

60

60

TSTl

ADSTB HIGH from elK HIGH Delay Time

TSTT

ADSTB lOW from CLK HIGH

ns
/

D~layTime

2-98

200

150

140

110

.

ns
130

ns

90

ns

AFN-00789D

intJ

8237A/8237~4/8237~5

A.C. CHARACTERISTICS-PERIPHERAL (SLAVE) MODE

= OOC to 70°C, VCC =5.0V ±5%,
= OVr

(TA

GND
8237A

Parameter

Symbol

Min.

8237A-4
Min.

Max.

8237A-5

Max.

Min.

Unit

Max.

TAR

ADR Valid or CS LOW to READ LOW

50

50

50

ns

TAW

ADR Valid to WRITE HIGH Setup Time

200

.1 SO

130

ns

TCW

CS LOW to WRITE HIGH Setup Time

200

150

130

ns

TOW

Data Valid to WRITE HIGH Setup Time

200

lS0

130

ns

TRA

ADR or CS Hold from READ HIGH

0

0

0

TRDE

Data Access from READ LOW (Note 3)

TRDF

DB Float Delay from READ HIGH

TRSTD

Power Supply HIGH to RESET LOW Setup Time

TRSTS

'"

200
100

20

ns

200
100

20

140

ns

70

ns

0

500

SOO

500

ns

,RESET to First IOWR

2TCY

2TCY

2TCY

ns

TRSTW

RESET Pulse Width

300

300

300

ns

TRW

READ Width

300

2S0

200

ns

TWA

ADR from WRITE HIGH Hold Time

20

20

20

ns

TWC

CS HIGH from WRITE HIGH Hold Time

20

20

20

ns

TWO

Data from WRITE HIGH Hold Time

30

30

30

ns

TWWS

Write Width

200

200

160

. ns

WAVEFORMS
SLAVE MODE WRITE TIMING
L

TCW

I,

TAW
AO-A3

---.J

-

'-

=:)

(NOTE I)

I
-TWA

INPUT VALID

TOW
DBO-DB7

~TWC

)

TWWS

----,.

-i

-

-TWO

(

INPUT VALID

Figure 9. Slave Mode Write

SLAVE MODE READ TIMING

cs~

AO-A3~

iliA

(

ADDRESS MUST BE VALID

H'"l
t..

TRDE

DBO-DB7

Figure 10. Slave Mode Read

2-99

~-

(NOTE I)

TRW

t

TRDF3DATA OUT VALID

___

AFN·Q0789D

intJ

8237A/8237Ao4/8237A-S

WAVEFORMS (Continued)
DMA TRA~SFER TIMING

.,

elK

-jTQS

DtiQ

HO.

m

T~_

\\ l\

F
lLLi

11

I
TFADB
\

rFAAI

t,

~

TC"

I-

TAET

r

~TT

-

- - rEPS

~

1-

ADDRESS VALID

~

DACK

I
TFAC

-

i

""\

- ~~~T'SS
f:: r-r
AI~A15"i
- 1 FfiTAi'·O

,

I-

--

lAIM

-

-

TAFAI

I-

TAHW

f-TAHW

ADDRESS VALID

-fAHA

-TAHR

1\

/
~

""-,
~

TOCTA

,----..,.

I

~

<-_
(FOR

~ENDED

TDeTW

yl~_

WRITE)

INT'"
T£PW

I

-

,\ ,\\\\\\\\\

,,,TO

m_

~

TAELI--I

Tsn

I

TCV -

(NOTE 6)

-

I,

I

r

F

T~~

.EN

010-087

!\\ \'
l\\

Sf

TCl

1TQS~

l-

THS-

""OA

..

--f ~~~~~~~~~~~~ \..J ~~~~~
.
81

54

\\\\\\\\\\\

~

TDCTA

l-

I-

r-- TAFC

Ir-,",
TDCTW

~

I-

~<\
~

-},;--~

(jIllI I I I I I I I

Figure 11. DMA Transfer

2-100

AFN-00789D

inter

B237A/B237~4/B237~5

WAVEFORMS (Continued)
MEMORY-TO-MEMORY TRANSFER TIMING

ADSTB

AD-A7

DBO-DB7

EXT EOP

Figure 12. Memory·to-Memory Transfer

READY TIMING

ClK

TDCl --+~--I

EXTENDED
WRITE

1-

TRH

TRS
TRS1

READY

\\\\\\\\\\\

Figure 13. Ready

2-101

AFN·OO7B9D

inter

8237A/8237ftr;4/8237~5

WAVE,FORMS (Continued)
COMPRESSED TRANSFER TIMING

elK

AO-A7

REAOY

Figure 14. Compressed Transfer

RESET TIMING
Vee

r--------------------------------------~I~I-----------TRSTO - - - - - - - - - - 1

------J/ll-.-------

-----TRSTW - - - )
RESET _ _ _- . . J

---~

iOIi OR row

Figure 15. Reset

AFN-007890

8257/8257·5
PROGRAMMABLE DMA CONTROLLER
• MCS-85$ Compatible 8257-5

• Single TTL Clock

• 4·Channel DMA Controller

• Single

• Priority DMA Request Logic

+ 5V Supply

• Auto Load Mode

• Channel Inhibit Logic
• Terminal Count and Modulo 128
Outputs

• Available in EXPRESS
- Standard Temperature Range

The Intel' 8257 is a 4·channel direct memory access (DMA) controller. It IS specifically designed to simplify the
transfer of data at high speeds for the Intel@ microcomputer systems. Its primary function is to generate, upon a
peripheral request, a sequential memory address which will allow the peripheral to read or write data directly to or
from memory. Acquisition of the system bus in accomplished via the CPU's hold function. The 8257 has priority logic
that resolves the peripherals requests and Issues a composite hold request to the CPU. It maintains the DMA cycle
count for each channel and outputs a control signal to notify the peripheral that the programmed number of DMA
cycles is complete. Other output control signals simplify sectored data transfers. The 8257 represents a significant
savings in component count for DMA·based microcomputer systems and greatly simplifies the transfer of data at
high speed between peripherals and memories.

DAao

A,
A,

ORO 1

A,
A,
TC

A,
A,
OAO 2

A,

A,

A,_

A,

A,

cs--_---l

ClK

00
0,

A.

RESET

0,

A,

OACK 2

0,

A.

5AcK'3

A,

0,
DACK 0

r3ACi(1

'"

0,
GND

A ••

ADSTB
TC _ _ _...J
MAAIC. _ _ _ _-.J

Figure 2. Pin Configuration

Figure 1. Block Diagram

2·103

8257/8257 ·5

FUNCTION~L

DESCRIPTION

Block'Diagram Description

General
The 8257 is a programmable, Direct Mem,ory Access
(DMA) device which, when coup,l~ with a single IntelI!')
8212 I/O port device, provides a complete four-channel
DMA controller for use in Intel 18 micro~omputer systems.
After being initialized by software, the 8257 can transfer a
block of data, containing up to 16,384 bytes, between
memory and a peripheral device directly. without further
intervention required of the CPU. Upon receiving a DMA
transfer request from an enabled peripheral, the 8257:
1. Acquires control of the system bus.
2. Acknowledges that requesting peripheral which is
connected to the highest priority channel.
3. Outputs the least significant eight bits ofthe memory
address onto system address lines Ao-A7, outputs
the most significant eight bits of the memory address
to the 8212 110 port via the data bus (the 8212
places these address bits on lines A8"A,sl. and

1. DMA Channels
The 8257 provides four separate DMA channels (labeled
CH-O to CH-3). Each channel includes two sixteen-bit
registers: (1) a DMA address register, and (2) a terminal count register. Both registers must be initialized
before a channel Is enabled. The DMA address register is
loaded with the address of the first memory location to be
accessed. The value loaded into the low-order 14-bits of
the terminal count register specifies the number of DMA
cycles minus one before the Terminal Count (TC) output
is activated. For instance, a terminal count of 0 would
cause the TC output 10 be active in the first DMA cycl!! for
that channel. In general, if N = the number of desired DMA
cycles, load the value N-l into the low-order 14-bits of the
terminal count register. The most significant two bits of the
terminal count register specify the type of DMA operation
for that channel.

4. Generates the appropriate memory, and I/O read/
write control signals that cause the peripheral to
receive or deposit a data byte directly from or to the
addressed location in memory.
The 8257 will retain control of the system bus and repeat
the transfer sequence, as long as a peripheral maintains its
DMA request. Thus, the 8257 can transfer a block of data
to/from a high speed peripheral (e.g., a sector of data on a
floppy disk) in a Single "burst". When the specified
number of data bytes ·have been transferred, the 8257
activates its Terminal Count (TC) output, informing the
CPU that the Operation is complete.
The 8257 offers three different modes of operation:
(1) DMA read, which causes data to be transferred from
memory to a peripheral; (2) DMA write, which causes
data to be transferred from a peripheral to memory;
and (3) DMA verify, which 

TEST POINTS

0.8

0.45

<'")C

DEVICE
UNDER
TEST

'I

Cl ,,50 PF

0.8

A C TESTING INPUTS ARE DRIVEf'II AT 2 4V FOR A LOGIC 1 AND 0 45V FOA
A LOGIC 0 TIMING MEASUREMENTS ARE MADE AT 2 OV FOR A lOGIC '1
AND 08V FOR A LOGIC 0
C L INCWDES JIG CAPACITANCE

Tracking Parameters
Signals labeled as Tracking Parameters (footnotes 1 and 5·7 under A.C. Specifications) are signals that follow similar
paths through the silicon die. The propagation speed of thelile signals varies in the manufacturing process but -the
relationship between all these parameters is constant. The variation is less than or equal to 50 ns.
Suppose the following timing equation is being evaluated,
T A(MIN)

+

T B(MAX) oS 150 ns

and only minimum specifications exist for TA and TB. If TA(MIN) is used, and if TA and T B are tracking parameters,
.TB(MAX) can be taken as TB(MIN) + 50 ns.
TA(MIN) + (T B(MINI* + 50 ns)

oS

150 ns

* if TA and TB are tracking parameters

WAVEFORMS-PERIPHERAL MODE
WRITE

- - - , - TAW - -

I-TWA

CHIP SELECT

READ

~

TAW

--~

>t·

,

r

._1_ Two

~

_TWAf--

DATABUS_ _ _ _ _ _

i-·

row

I/OWR---------U

-

II;.--1
-:'

RESET
-/:"---'l-I

CHIP SElECT

lRSTS

I

Tww

2-113

AFN·OI840D

825718257 ·5

WAVEFORMS-DMA
CONSECUTIVE. CYCLES AND BURST MODE SEQUENCE
8'

I

8.

I

I

SO

I

8.

82

I

S3

I

8.

S4

82

S3

S4

I

8.

8'

CLOCk

DR003 __

~

__

~+-

______

~"

____-+____

-J~

+-____________

________

~-1

____-+____________

HRO ________J.

- \._----

HLDA ____________- ' .

AEN ____________

~--~

ADR07(LOWERAOR) _ _ _

DATAO 7 (UPPER AOR)-

TSH

ADR STB

----!'

MEM/WR/IIQ WR -

READY

Te/MARK

CLOCK

NOTE

The ctock w.....foffn "
dupl~fOfCI.rtty

'The 8257 r'WtU,rtI only
ontclodl,nput

8'

so

51

52

53

I

2-114

S4

I

5.

52

53

S4

5'

5'

5'

AFN-01840D,

825718257·5

WAVEFORMS (Continued)
CONTROL OVERRIDE SEQUENCE

I

S1

I

S2

I

53

I

Sol

SI

I

SI

I

! so

S1

I

52

CLOCK

OR003 ------V+---------+- -- -HRO

-----~ ~--------..J} F HS

HLOA
AEN

T

..J

NOT READY SEQUENCE

so

I

S1

SW

I

SW

I

Sol

I

SI

i

SI

I

SI

CLOCK

DROOl

-~~----~---~--

""""Ili,fORD _____

MEM-WR,f{)WR

READY

Te/MARK

J,...--r\--+I-----+I----I-r-.......\.. _---

_-_-_-_-_-_./:_-_-:_T-R_Sr?- ."b,. . .: : -~- - +!1-'_- -'-:T~R-S:-_/T_-_~-_~" 'I\. _- - --------l-"l'''------'..... \
I

2-115

\

AFN-01840D

intJ

·8257/8257·5

A"

..
I
I

A,LE

~

t

STI

'3

052

'212

6ii

01,--01 1

,

-

ADo
Y"

iIIi

~~A'
~I,

0,

~A,

~ctr

,
,
,

8
~

~8J

,

0,

~A.

sn (81

•
7

•

'2

13 8.

--

---

R!Il

lOW

CHIP

SELECT

i5l
1

IOID

L

=>

HOLD

HLOA
CLK(OUTI

IfRn iN
RESET OUT

A,

Y"

~

erA

MO

I
I

III)

_

ADDRESS
BUS

00,--00,

AD,

....

r==> ~"

ATffi

-

U

-

'---

I·

"1
:7

82575

R!Il

DRDo
DACK o

~ M"EMW

ORO,

iOW

DACK,

ORal
OACKI

"RO

ORaJ

HLOA

DACKl

----.!!..

CLK

----!!..

RESET

TC
MARK

t---

,.

25

ORa.
OACK a

'B
2.

ORO,

,."

OR0 2

,..

,

36

•

DACK,

i5AcK 1
ORal

6ACK)
TC

M.o.RK

j"
rn

01,
,
,

STB

DO,
,

,

8212

01,

MO

DO,

Dli

tJ
Figure 13. Detailed System Interface Sche.!I1atlc
2-116

IllI'i

8

DS2

,

CONTROL
aUs

v"

'3

---v'

R!Il

ADSTa

A'N

•

~

--

.,,, f-A,

0,

MEMR

,

DATA BUS

0,

READY

CS

--l.c

--12..
.,.-!-

,

I

y

REAOY

--Lc
--l.c

0,

,

-NOTICE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this specIfication is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

ABSOLUTE MAXIMUM RATINGS·
Ambient Temperature Under Bias ......... O°C to 700 e
Storage Temperature ............... -65°e to +150oe
Voltage on Any Pin
With Respect to Ground .............. -0.5V to + 7V
Power Dissipation ............................ 1 Watt

D.C. CHARACTERISTICS

(8257: TA = ooe to 70oe. Vee = 5.0V ±5%. GND = OV)
(8257-5: TA = ooe to 70oe. Vee = 5.0V ±10%. GND = OV)

Symbol

Parameter

Min.

Max.

Unit

Vil

Input Low Voltage

-0.5

O.S

Volts

2.0

Vee+· 5

Volts

VIH

Input High Voltage

Val

Output Low Voltage

VOH

Output High Voltage

VHH

HRQ Output High Voltage

Icc

Vee Current Drain

0.45

Volts

IOl = 1.6 rnA

2.4

Vee

Volts

IOH=-l50/.LA for AB,
DB and AEN
IOH =-80J.lA for other

3.3

Vee

Volts

IOH = -SO/.LA

120

rnA

III

Input Leakage

±10

/.LA

IOFl

Output Leakage During Float

±10

/.LA

CAPACITANCE
Symbol

(TA = 25°e;

Parameter

vee

= GND

Test Conditions

OV.,; VIN .,;Vee
0.45V .,; VOUT .,; Vee

= OV)
Min.

Max.

Unit

Test Conditions

CIN

Input Capacitance

10

pF

fc= lMHz

CliO

I/O Capacitance

20

pF

Unmeasured pins
returned to GND

2-117

Typ.

AFN-01B40D

825718257·5

A.C. CHARACTERISTICS-PERIPHER~L (SLAVE) MODE

=

=

=

(8257: TA O"C to 70"C, Vee 5.0V ±5%, GNO OV)
(8257-5: TA = O"C to 70"C, Vee = 5.0V ±10%, GNO = OV)

8080 "U8 paramete,.
READCYCLE·
8257·5

8257
Symbol

Min.

Parameter

Max.

Min.

Max.

Unit

TAR

Adr or CS~ Setup to RO~

TRA

Adr or

TRO

Data Access from

0

300

0

220

ns

TOF

DB-+Float Delay from ROt

20

150

20

120

ns

TRR

RD Width

250

cst Hold from ROt
Rfi ~

0

0

ns

0

0

ns,

Test Conditions

ns

250

WRITE CYCLE
8257·5

8257
Symbol

Parameter

TAW

Adr setup to WR~

TWA

Adr Hold from WRt

Tow

Data Setup to WR t

Two

Data Hold from

Tww

WR WIdth

Min.

Max.

Max.

Unit

20

ns

0

0

ns

200

200

ns

10

10

ns

200

200

ns

20

WiH

Min.

Test Conditions

OTHER TIMING
8257·5

8257
Symbol
TRSTW

Parameter

Min.

Reset Pulse W,dth

300
500

TRSTO

Power Supplyt (Vee) Setup to Reset~

T,

Signal Rise T,me

Tf

Signal Fall Time

TRSTS

Reset to FIrst IIOWR

Max.

Min.

Max.

300

IlS

ns

20

20

ns

20

2

Test Conditions

ns

500
20

Unit

2

tev

A.C. CHARACTERISTICS-DMA (MASTER) MODE
(8257: TA '= O·C to 70·C, Vee = 5.0V ±5%, GNO = OV)
(8257-5: TA = O·C to 70"C, Vec = 5.0V ±10%, GNO = OV)

TIMING REQUIREMENTS
,
Sym~1

8257

Parameter

Min.

8257·5
Max.

Min.

Mex.

TCY

Cycle Time (Period)

0.320

4

0.320

4

T,

Clock Active (High)

120

.8Tcy

80

.8TCY

Tos

ORQI Setup to ClKI (SI, S4)

120

TOH

ORQI Hold from HlOAII1]

T HS
TRs
TRH

-

120

0

0

HlOAI or ISetup to ClKI(SI, 84)

100

100

READY Setup Time to ClKI(S3, Sw)

30

30

READY Hold Time from ClKI(S3, Sw)

30

30

2-118

Unit

,.s
ns
nsns
ns
ns
ns
AFN·Ol840D

inter

825718257·5

A.C. CHARACTERISTICS-DMA (MASTER) MODE
(8257: TA = O°C to 70°C, VCC = 5.0V ±5%, GND = OV)
(8257·5: TA = O°C to 70·C, VCC = 5.0V ±10%, GND = OV)

TIMING RESPONSES
Symbol

8257

Parameter

Min.

8257·5
Max.

Min.

Unit
Max.

Too

HRQt or !Delay from CLKt (51,54)
(measured at 2.0V)

160

160

ns

T001

HRot or !Delay from CLKt (51, 54)
(measured at 3.3V)[3)

250

250

ns

TAEl

AENt Delay from CLK! (51)

300

300

ns

TAET

AEN! Delay from CLKt (51)

200

200

ns

TAEA

Adr (AB) (Active) Delay from AENt (51)[1)

TFAAB

Adr (AB) (Active) Delay from CLKt (51)[2)

250

250

ns

TAFAB

Adr (AB) (Float) Delay from CLKt (51)[2)

150

150

ns

TASM

Adr (AB) (5table) Delay from ClKt (51)[2)

250

250

ns

TAH

Adr (AB) (5table) Hold from CLKt (51

TASM-50

TASM-50

ns

TAHR

Adr (AB) (Valid) Hold from ROt (51, 51)[1)

60

60

ns

TAHW

Adr (AB) (Valid) Hold from wrt (51,51)[1)

300

300

TFAOB

Adr (DB) (Active) Delay from ClKt (51)[2)

TAFOB

Adr (DB) (Float) Delay from CLKt (52)[2)

TASS

Adr (DB) 5etup to Adr $tb! (51-52)[1)

100

100

TAHS

Adr (DB) (Valid) Hold from Adr 5tb! (52)[1)

20

20

TSTl

Adr 5tbt Delay from CLKt (51)

200

TSTT

Adr 5tb! Delay from ClKt (52)

140

Tsw

Adr 5tb Width (51-52)[1)

TASC

Rd! orWr(Ext)! Delay from Adr 5tb!
(52)[1)

20

P)

20

300
TSTT+20

250

TSTT+20

ns

ns
300

ns

170

ns
ns
ns

200
140

ns
ns

TCy-100

TCy-100

ns

70

70

ns

20

20

ns

,

TOBe

RO! orWR\Ext H Delay from Adr (DB)
(Float) (52) 1)

TAK

DACKt or! Delay from ClK! (52, 51) and
TC/Markt Delay from CLKt (53) and
'FC/Mark! Delay from CLKt (54)[4)

250

250

ns

TOCl

RD! orWr(Ext)~ Delay from ClKt (52) and
Wr! Delay from CLKt (53)[2,5)

200

200

ns

TOCT

Rdt Delay from CLK! (51, 51) and
wrt Delay fromClKt (~)[2,6)

200

200

ns

TFAC

Rd orWr (Active) from eLKt (51)[2)

300

300

ns

TAFC

Rd orWr (Active) from ClKt (51)[2)

150

150

ns

TRWM

Rd Width (52-51 or 51)[1)

2TCy+TO-50

2TCy+TO-50

ns

TWWM

WrWidth (53-54)[1)

TCy-50

TCy-50

ns

TWWME

WR(Ext) Width (52-54)[1)

2TCy-50

2TCy-50

ns

I

NOTES:
1. Tracking Parameter.

2. load

= + 50 pF. ,

3. load = VOH = 3.3V.
4:, aTAK < 50 ns,

2-119

5, aTOCl < 50 ns.
6. aToeT < 50 ns,
AFN,01640D

inter
8259A/8259A·2/8259A·8
PROGRAMMABLE INTERRUPT CONTROLLER
• IAPX 86, IAPX 88 Compatible

• Individual Request Mask Capability

• MCS-80®, MCS-85® Compatible

• Single

• Eight·Level Priority Controller

• 28·Pin Dual·ln·Line Package .

• Expandable to 64 Levels

• Available in EXPRESS
- Standard Temperature Range
- Extended Temperature Range

• Programmable Interrupt Modes

+ 5V Supply (No Clocks)

The Intel"' 8259A Programmable Interrupt Controller handles up to eight vectored priority interrupts for the CPU. It is
cascadable for up to 64 vectored priority Interrupts without additional circuitry. It is packaged in a 28-pin DIP, uses
NMOS technology and requires a single + 5V supply. Circuitry is static, requiring no clock input.
The 8259A is designed to minimize the software and realtime overhead in handling multi-level priority interruptI!. It has
several modes, permitting optimization for a variety of sYl!tem requirements.
The 8259A is fully upward compatible with the Inlel'" 8259. Software originally written for the 8259 will operate the
8259A in all 8259 equivalent modes (MCS-80/85, Non-Buffered, Edge Triggered).

°,-0 0

DATA

CONTROllQGIC

BUS
BUFFER

CS
WR
iii5
IRO
IR'
IR2

iffi
ViR

IR.

cs
CASO

CAS 1

Vee

...iN'fA

0,

IR7

D.

IR6

0.

IRS

D.

IR4

OJ

IR3

O2

IR2

0,

IRI

Do

IRO

CAS 0

INT

CAS 1

~/EN

GND

CAS2

CAS2

$PIEri

~INTERNAl

BUS

Figure 2. Pin Configuration .

Figure 1. Block Diagram

Intel Corporation Assumes No Responaibllty for the Use of Any Circuitry Other Than C,rcultrv Embodied tn an Intel Product No Other Circuit Patent' License. a,. Implied,
©INTEL CORPORATION, 1980

2-120

AFN-00221C

8259A/8259A·218259A·8

Table 1. Pin Description
Pin No.

Type

Vee

Symbol

28

I

GND

14

I

Ground.

es

1

I

·Chlp Select: A low on this pin enables RD and WR communication between the CPU and the'8259A.
INTA functions are independent of CS.

WR

2

I

Write: A low on this pin when CS is low enables the 8259A to accept command words from the CPU.

RD

3

I

Read: A low on this pin when CS is low enables the 8259A to release status onto the data bus for the
CPU.

4-11

o,.-Do

Neme and FuncUon
Supply: +5V Supply.

I/O

Bidirectional Data Bus: Control, status and interrupt-vector Information is'transferred via this bus.

CASo-CAS2 12,13,15

I/O

Ca.cade Une.: The CAS lines form a private 8259A bus to control a multiple 8259A structure. These
pins are outputs for a master 8259A and inputs for a slave 8259A.

SP/EN

16

I/O

Slave ProgramlEnable Buffer: This is a dual function pin. When in the Buffered Mode it can be used
as an output to control buffer transceivers (EN). When not in the buffered mode it is used as an input
to deSignate a master (SP = 1) or slave (SP = 0).

INT

17

0

Interrupt: This pin goes high whenever a valid interrupt request is asserted. It Is used to interruptthe
CPU, thus it is connected to the CPUls interrupt pin.

18-25

I

Interrupt Request.: Asynchronous inputs. An interrupt request is executed by raising an IR input
(low to high), and holding it high until it is acknowledged (Edge Triggered Mode), or just by a high
level on an IR input (Level Triggered Mode).

INTA

26

I

Interrupt Acknowledge: This pin is used to enable 8259A interrupt-vector data onto the data bus by
a sequence of interrupt acknowledge pulses issued by the CPU.

Ao

27

I

AO Addre •• Une: This pin acts in conjunction with the CS, WR, and RD pins. It is used by the 8259A
to decipher various Command Words the CPU writes and status the CPU wishes to read. It is typically
connected to the CPU AO address line (AI for iAPX 86, 88).

IRc-IR7

2-121

AFN·00221E

.,

inter

\

8259AJ8259A-2/8259A-8
match his system requirements. The priority modes can
be changed or reconfigured dynamicall·y at any time during the main program. This means that the complete
interrupt structure can be defined as required, basecl on
the total system environment.

FUNCTIONAL DESCRIPTION
Interrupts in Microcomputer Systems
Microcomputer system design requires that 1/0 devices
such as keyboards, displays, sensors and other components receive servicing In an efficient manner so that
large amounts of the total system tasks can be assumed
by the microcomputer with little or no effect on throughput.

CPU·DRIVEN
MULTIPLEXOR

CPU

The most common method of servicing such devices Is
the Polled approach. This Is where the processor must
test each device in sequence and In effect "ask" each
one if it needs servicing. It is easy to See that a large portion of the main program is looping through this con·
tinuous polling cycle and that such a method wouid
have. a serious, detrimental effect on system throughput, thus limiting the tasks that could be assumed by
the microcomputer and reducing the cost eff.ectlveness
of using such devices.

----

--)~

, MCS-85
. This sequence Is timed by three INTA pulses. During the
first iiiifApulse the CALL opcode is enabled onto the
data bus.

Content of First Interrupt
Vector Byte
07

os

D8

CALLCODEI,

D4

03

02

01

00

Content of Interrupt Vector Byte
for IAPX 86 System Mode

DO

,I

During the second iliITA pulse the lower address of the
appropriate service routine is enabled onto the data bus.
When Interval = 4 bits As-A7 are programmed, while AoA~ are automatically inserted by the 8259A. When Interval = 8 only A6 and A7 are programmed, while Ao-As are
automatically Inserted.

Content of Second Interrupt
Vector Byte

06

05

04

03

02

01

T7

T6

T~

T4

T3

I

I

1

IR6

T7

T6

T5

T4

T3

1

1

0

00

IR5

T7

T6

T5

T4

T3

1

0

1

IR4

T7

T6

T5

T4

T3

1

0

0

IR3

T7

T6

T5

T4

T3

0

I

1

IR2

T7

T6

T5

T4

T3

0

I

0

IRI

T7

T6

T5

T4

T3

0

0

I

IRO

T7

T6

T5

T4

T3

0

0

0

Inl.",.1-4

IR
7

07
IR7

07

D8

05

A7

A6

AS

,

D4

03

02

01

DO

PROGRAMMING THE 8259A

1

1

0

0
0

The 8259A accepts two types of command words gener·
ated by the CPU:

6

A7

A6

AS

1

1

0

S

A7

.A6

AS

1

1

0
0

4

A7

A6

A5

1

0
0

0

0

0

3
2

A7

A6

A5

0

1

1

0

0

A7

A6

AS

0

A7

A6

AS

0
0

1

1

1

A7

A6

A5

0

0

0
0
0

0
0

0

0
0

07

06

05

04

03

02

01

DO

7

A7

A6

1

1

1

0

0

0

6

A7

A6

1

1

0

0

0

5

A7

A6

1

0

1

0

0
0

0

2. Operation Command Words (OCWs): These are the
command words which command the 8259A to operate in various interrupt modes. These modes are:
a. Fully nested mode
b. Aotating priority mode
c. Special mask mode
d. Polled mode

4

A7

A6

1

0

0

0

0

3

A7

A6

0

1

1

0

0

0
0

The OCWs can be written into the 8259A anytime after
initialization.

2

A7

A6

0

1

0

0

0

0

1

A7

A6

0

0

1

0

0

0

0

A7

A6

0

0

0

0

0

0

0

1. Initialization Command Words (lCWs): Before normal
operation can begin, each 8259A in the system must
be brought to a starting point - by a sequence of 2 to
4 bytes timed by WR pulses.

0

Interval='

IR

INITIALIZATION COMMAND WORDS
(ICWS)
GENERAL

During the third INTA pulse the higher address of the
appropriate service routine, which was programmed as
byte 2 of the initialization sequence (As - A, s), is
enabled onto the bus.

Whenever Ii command is issued with AO= 0 and 04= 1,
this is.interpreted as Initialization Command Word 1
(ICW1). ICW1 starts the initialization sequence during
~hich the following automatically occur.

Content of Third Interrupt
Vector Byte
07

D8

05

D4

03

02

01

DO

A15

A14

A13

A12

All

Al0

,0.9

A8

iAPX 86, iAPX 88
iAPX 86 mode is similar to MC5-80 mode except that only
two Interrupt Acknowledge cycles are issued by the processor and no CALL opcode is sent to the processor. The
first interrupt acknowledge cycle is similar to that of
MCS-80, 85 systems in that the 8259A uses it to internal!y
freeze the state of the interrupts for priority resolution and
all a master it issues the interrupt code on the cascade
lines at the end of the INTA pulse. On this first cycle it does

a. The edge sense circuit is reset, which means that 101lowing initialization, an interrupt request (IA) input
must make a low-to-high transition to generate an
interrupt.
b. The Interrupt Mask Aegister is cleared.
c. IR7 input is assigned priority 7.
d. The slave mode address is set to 7.
e. Special Mask Mode is cleared and Status Read is set to
IAA.
f. If IC4=O, then all functions selected in ICW4 are set to
zero. (Non-Buffered mode', no Auto-EOI, MCS-80, 85
system).
-Note: MasterlSlave

2-125

In

leW4 is only used In the buffered mode
AFN-00221E

inter

825,9A/8259A~218259A·8
INITIALIZATION COMMAND WORD 3 (ICW3)

INITIALIZATION COMMAND WORDS 1 AND 2
(ICW1, ICW2)
A$-A 1s: Page starting address of servIce routinas. In an
MCS 80185 system, the 8 request levels will generate
CALLs to 8 locations equally spaced ,in memory. These
can' be programmed to be spaced at Intervals of 4 or 8
memory locations, thus the 8 routines will occupy a
page of 32 or 64 bytes, respectively.
The address formal Is 2 bytes long (A o-A l s). When the
routine interval is 4, Ao-A. are automatically inserted by
the 8259A, while As-A1S are programmed externally.
When the routine Interval Is 8, Ao-As are automatically
inserted, by the 8259A, while Aa-Als are programmed
externally.
The 8·byte interval will maintain compatibility with cur·
rent software, while the 4·byte Interval is best for a com·
pact jump table.
In an iAPX86 system A1S-Al1 are inserted in the five most
significant bits of the vectoring byte and the 8259A sets
the three least significant bits according to the interrupt
level. A10-As are ignored and ADI (Address interval) has
no effeyt.
LTIM:

If LTIM=1, then the 8259A will operate In the

level Interrupt mode. Edge detect logic on the
Interrupt Inputs will be disabled.
ADI:,

CALL address Interval. ADI = 1 then interval = 4;
ADI = 0 then interval = 8.

SNGL: Single. Means that this is the only 8259A in the
system. If SNGL= 1 no ICW3 will be Issued.
IC4:

If this bit is set - ICW4 has to be read. If ICW4
,Is not needed, set IC4 = O.

, This word is'read only when there is more 'than one
8259A in the system and cascading is used, in which
case SNGL = O. It will load the 8·bit slave register. The
functions of this register are:
a. In the master mode (either when SP = 1, or in buffered
mode when MIS = 1 In ICW4) a "1" Is set for each
slave in the system, The master then will release byte
1 of the cali sequence (for MeS·80/85 system) and
will enable the corresponding slave to release bytes 2
and 3 (for iAPX 86 only byte 2) through the cascade
'
lines.
b.ln the slave mode (either when ms=O, or if BUF= 1
and MIS = 0 in ICW4) bits 2-0 Identify the slave. The
slave compares its cascade Input with these bits and,
if they are equal, bytes 2 and 3 of the call sequence (or
just byte 2 for iAPX 86 are released by it on the Data
Bus.
. INITIALIZATION COMMAND WORD 4 (ICW4)
SFNM: If SFNM = 1 the special fully nested mode Is
programmed.
BUF: if BUF = 1 the b"uffered mode is programmed. In
buffered mode SJ5/EN becomes an enable output '
and the masterlslave determination is by MIS,
MIS: If buffered mode Is selected: MIS = 1 means the
8259A Is programmed to be a master, MIS = 0
means the 8259A Is programmed to be a slave, If
BUF = 0, MIS has no function.
AEOI: If AEOI = 1 the automatic end of Interrupt mode
Is programmed.
,.PM: Microprocessor mode: !-,PM = 0 sets the 8259A for
MeS-80, 85 system operation, !-,PM = 1 sets the
8259A for iAPX 86 system operation.

NO (SINGl = 1)

NO (IC4 '" 0

Figure 6. Initialization Sequence
2-126

AFN-00221E

inter

8259AJ8259A·~8259A·8

ICW'

1 ICW" NEEDED
0: NO ICW", MU.0I0

1 = SINGLE

o = CASCADE MODE
CALL "CORfSS INTERVAL

1- INTERVAL Of"
a_INTERVAL Of.

1 = LEVEL TRIGGERED MODE

o '" EDGE TRiGGERED MODE

ICW3 CMASTER DEVICtt

'-----'--L_-'-_-'-_.L...._L-----'~

_ _I

1

~

IA 'NPUT HAS A SLAVE

0 - 1ft II"WUT DOES NOT HAVE

A SLAVE
ICWllSLAVE DEVICEI

••

7

,

,

0

1 0

a

1

1

o

1

1

1

1

1 := 8086/8088 MODE
0= MCS-80f85 MODE

1

AUTO EOI

o ~ NORMAl EOI

)(
EfHj

NON BUFfERED MODE

.,

0

- BUfFERED MOOElSlAVE

1

1

- BUfFERED MODEIMASTER

1

=~ ~~~ IS

EQUAL

19 THE CORRESPONDING

'---------01

&"

0=

SPEQAL FULLY NESTED

~g~SPECIAL FULLY

NESTED MODE

Figure 7. Initialization Command Word Format

2-127

AFN·00221E

S259A18259A-2/8259A-8
OPERATION COMMAND WORDS (OCWs)

OPERATION CONTROL WORD 1 (OCW1)

After the Initialization Command Words (ICWs) are programmed into the 8259A, the chip Is ready to accept
Interrupt requests at its input lines. However, during the
8259A operation, a selection of algorithms can command the 8259Ato operate in various modes through
the Operation Command Words (OCWs).

OCW1 sets and clears the mask bits In the interrupt "
Mask Register (IMRI. M7 - Ma represent the eight mask
bits. M", 1 indicates the channel is masked
(inhibited), M '" 0 indicates the channel is enabled.

OPERATION CONTROL WORD 2 (OCW2)
R, SL, EOI - These three bits control the Rotate and
End of Interrupt modes and combinations of the two. A
chart of these combinations can be found on the Operation Command Word Format.

OPERATION CONTROL WORDS (OCWs)

AO

[Q

07

I M7

De

OCWI
05
04

03

02

01

DO

Me

M5

M3

M2

M,

MO

M4

I

L2 , L" Lo-These bits determine the interrupt level acted
upon when the SL bit is active.

OPERATION CONTROL WORD 3 (q<:W3)

0

I

OCW2
A

SL

EOI

0

0

L2

Ll

LO

I

ESMM - Enable Special Mask Mode. When this bit is
set to 1 it enables the SMM bit to set or reset the Special
Mask Mode. When ESMM 0 the SMM bit becomes a
"don't care".

=

=

OCW3

0

a

ESMM SMM

0

P

AA

AIS

I

SMM - Special Mask Mode. If ESMM = 1 and SMM 1
the 8259A wili enter Special Mask Mode. If ESMM = 1
and SMM = 0 the 8259A will revert to normal mask mode.
When ESMM = 0, SMM has no effect.

2-128

AFN·OO221E

inter

8259A18259A-2/8259A-8
'oew,
~

~

~

~

~

~

~

~.

~

Dew,
~

01

0

R

I

I

06

Os

O.

8L

I EOI I

0

0,

03

i

I

0

Do

0,

L, I L, I L,I
IRLEVEL TOlE
AC'IED"",,"

I

0

1

0

1

0

0

0

0

,,•••

7

1

0

1

0

1

1

1

0

0

1

0

0

1

1

1

,

0

1

r

l

rtO+
Or,- 1
1~

1

r-;

NON-8PECIFIC EOICOMMAHD
SPECIFtC Eot COMMAND

1
0

ROUTE ON NO.....CtFIC EOI COMMANO
N)TI(f'£

IN AU'rOMATIC EOI MODE (8El)

oror,-

0

ROTATE IN AUTOMATIC ECIt MODE (CLEAR)

1

'ROTATE ON SHelFIC EOI COMMAND

1

0

1

hotto

"U'T PRIORITY COMMAND
N00P1!I1AT1ON

l

END OF INTERRUPT

}

AiJToMATICROTAnoN

l

SPEctFIC ROTAT-ION

"l.O-U:AR£U8ED

Dew'
A~

I

0

D,

I

0

Db

Os

IESMMISMM I

D.

0

03

I

1

02

I

p

0,

I

OR

Do

I RIS

I

IL

READ REGtSTI!R COMMAND

0
0

I
I

1

0

0

1

1

READ

READ

IR REG
ON NEXT

ISReG
ON NEXT

RD PULSE

RDPULSE

NO ACTION

1

1...POLL COMMAND
8=NO POLL COMMAND

SPECIAL MASK MODE

0
0

I
I

1

0

1

0

1

1

RESET
SPECIAL
MAS«

SET
SPECIAL
MASK

NO ACTION

F:igure 8. Operation Command Word Format

2-129

AFN·OO221E

I

"

8259A/8259A-2/8259A-8
AUTOMATIC ROTATION

FULLY NESTED MODE
This mode is entered after initialization unless another
mode is programmed. The interrupt requests are
ordered in priority form 0 through 7 (0 highest). When an
Interrupt is acknowledged the highest priority request is
determined and its vector placed on the bus. Additionally, a bit of the Interrupt Service register (ISO-7) is set.
This bit remains set until the microprocessor issues an
End of Interrupt (EOI) command immediately before
returning from the service routine, or if AEOI (Automatic
End of Interrupt) bit is set, until the trailing edge of the
last INTA. While the IS bit is set, all further interrupts of
the same or lower priority are inhibited, while higher
levels will generate an interrupt (which will be
acknowledged only if the microprocessor internal Interrupt enable flip-flop has been re-enabled through software).

(Equal Priority Devices)
In some applications there are a number of interrupting
devices of equal priority. In this mode a device, after
being serviced, receives the lowest priority, so a device
requesting an interrupt will have to walt, in the worst
case until each of 7 other devices are serviced at most
once. For example, if the priority and "in service" status
is:
B.for. Rotat. (IR4 the highest priority requiring service)
157 lSI ISS 154 IS3 152 lSI
"IS" Slatus

101

1

L_••tPrlority
PriOrity Status

After the Initialization sequence, IRO has the higneSt
priority and IR7 the lowest. Priorities can be changed, as
~i11 be explained, in the rotating priority mode.

7

f

6

ISO

101,1 0 10101 0 1
15

Hlllh••'\.rlority

4 1 3 1 2 I 11'0 I

Aft.r Rotat. (IR4 was serviced, all other priorities
rotated correspondingly)

END OF INTERRUPT (EOI)
The In Service (IS) bit can be reset either automatically
following the trailing edge of the last in sequence INTA
pulse (when /-EOI bit in ICW1 is set) or by a command
word that must be issued to the 8259A before returning ,
from a service routine (EOI command). An EOI command
must be issued twice if in the Cascade mode, once for the
master and once for the corresponding slave.
There are two forms of EOI command: Specific and NonSpecific. When the 8259A is operated in modes which
preserve the fully nested structure, it can determine
which IS bit to reset on EOI. When a Non-Specific EOI
command is issued the 8259A will automatically reset
the highest IS bit of those that are set, since in the
fully nested mOQe the highest IS level was necessarily the
last level acknowledged and serviced. A non-specific EOI
can be issued with OCW2 (EOI = 1, SL = 0, R = 0).

IS7
"IS" Stalus

lSI 155 154 IS3

IS2 151

ISO

1 0 1' 1010101010101

'Priority Status

There are two ways to accomplish Automatic Rotation
using OCW2, the Rotation on Non-Specific EOI Command
(R = 1, SL = 0, EOI = 1) and the Rotate in Automatic EOI
Mode which is set by (R = 1, SL = 0, EOI = 0) and cleared
by (R = 0, SL = 0, EOI = 0).

SPE:CIFIC ROTATION

(Specific Priority)

When a mode is used which may disturb the fully nested
structure, the 8259A may no longer be able to determine
the last level acknowledged. In this case a Specific End of
Interrupt must be issued which includes as part of the
command the IS level to be reset. A specific EOI can be issued with OCW2 (EOI = 1, SL = 1, R = 0, and LO-L2 is the
binary level of the IS bit to be reset).
.

The programmer can change priorities by programming
the bottom priority and thus fixing all other priorities;
i.e., if IR5 is programmed as the bottom priority device,
then IR,6 will have the highest one.

It should be noted that an IS bit that is masked by an
IMR bit will not be cleared by a non-specific EOI if the
8259A is in the Special Mask Mode.

Observe that in this mode internal status is updated by
software control during OCW2. However, it is independent
of the End of Interrupt (EOI) command (also executed by
OCW2). Priority changes can be executed during an EOI
command by using the Rotate on Specific EOI command
in OCW2 (R = 1, SL = 1, EOI = 1 and LO-L2 = IR level to
receive bottom priority).

AUTOMATIC END OF INTERRUPT (AEOI) MODE
If AEOI = 1 in ICW4, then the 8259A will operate in AEOI
mode continuously until reprogrammed by ICW4. In this
mode the 8259A will automatically perform a nonspecific EOI operation at the trailing edge of the last
interrupt acknowledge pulse (third pulse in MeS-80/85,
second in iAPX 86). Note that from a system-standpoint,
this mode should be used only when a nested multilevel
intern,lpt structure'is not required within a single 8259A.
The AEOI mode can only be used in a master 8259A and
not a slave.

2-1qO

The Set Priority command is issued in OCW2 where:
R = 1, SL = 1; LO-L2 is the binary priority level code of the
bottom priority device.

INTERRUPT MASKS
Each Interrupt Request Input can be masked Individually by the Interrupt Mask Register (IMR) programmed
through OCW1. Each bit in the IMR masks one Interrupt
channel if It is set (1). Bit 0 masks IRO, Bit 1 masks IR1
and so. forth. Masking an IR channel does not affect the
other channels <>peration.
AFN·00221E

intJ

8259A18259A-218259A-8

SPECIAL MASK MODE

POLL COMMAND

Some applications may require an interrupt service
routine to dynamically alter the system priority struc·
ture during Its execution under software control. For
example. the routine may wish to Inhibit lower priority
requests for a portion of its execution but enable some
of them for another portion. .

In this mode the INT output i,s not used or the microprocessor internal Interrupt Enable fllp·flop Is reset. disabling
its interrupt input. Service to devices is achieved by
software using a Poll command.
The Poll command Is Issued by setting P = "1" In OCW3.
The 8259A treats -the next FItS pulse to th~ 8259A (i.e.,
I!m = 0, e§ = 0) as an Interrupt acknowledge, sets the
appropriate IS bit If there Is a request, and reads the
to 1m.
priority level. Interrupt Is frozen from

The difficulty here is that If an Interrupt Request is
acknowledged and an End of Interrupt command did not
reset its IS bit (i.e.• while executing a service routine).
the 8259A would have inhibited all lower priority
requests with no easy way for the routine to enablethem
That is where the Special Mask Mode comes In. In the
special Mask Mode. when a mask bit is setjn OCW1. it
Inhibits further Interrupts at that level and enables Inter·
rupts from all other levels 
2.0

TEST POINTS

0.8

0.45

<

20

0.8

=

=
= 100 pF
CCASC~DE = 100 pF

C'NT

A.C. TESTING LOAD CIRCUIT

x=

DEVICE

iJCL~100PF

UNDER
TEST

-=

A C TESTING INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC 1 ANO 0 45V FOR
A LOGIC 0 TIMING MEASUREMENTS ARE MADE AT 2 OV FOR A LOGIC 1
AND 0 8V FOR A LOGIC 0'

Cl =100pF
C l INCLUDES JIG CAPACITANCE

WAVEFORMS
WRITE

TWLWH

\
lUI

).

T"HWL

-

I

-

-

(
-TDYWH-

OAT" lUI

TWHAX

)

!--TWHDX

r-

AFN·OO221E

8259A1B259A-2/B259A-B .

WAVEFORMS (Continued)
READ/INTA
TIILIIH

j

\
~

AODRE.. lUI

At

\

>-- TIILEL

-

-

I--TAHIIL

}

-

{TIIHEH

_TRHAX

(

. , "'--------- -------~---------....r-----T"LOV

"---TAHOV

T"HOZ

~

OTHER TIMING
III!
IJiIfA

WR
III!
INTA
WI!

AD

WR

iIDl\

\

Jf=TRHRL=t

\

~TWHWL=1\

/
/

\

C-=1

/

2-136

AFN·00221E

inter

8259A/8259A-2/8259A-8 .

WAVEFORMS (Continued)
INTA SEQUENCE
IA

INT------J

~A--------_~

-- 0--

08 _ _ _ _ _ _ _ _ _ _ _ _ _

_TCVIAl

TCYOY
c02----------------r----~Lf------~---_L_L

___________

~_

-TlAlCV~

NOTES: Interrupt output must remai~ HIGH at least until leading edge of first INTA.
1. Cycle 1 in iAPX 86, iAPX SS systems, the Data Bus is not active.

2-137

AFN·OO221E

inter

.,,'

8355/8355~2

'i

16,384-8IT ROM WITH 1/0

• Each I/O Port Line Individually
Programmable as Input or Output

• 2048 Words )( 8 Bits
• Single + SV Power Supply

• Multiplexed Address and Data Bus

• Directly Compatible with 808SA
and IAPX 88 Microprocessors'

• Internal Address Latch

.2 General Purpose 8·Blt,1I0 Ports

• 40.Pln DIP

The Intele 8355 is a ROM and 1/0 chip to be used in the 8OS5A and iAPX 88 microprocessor systems. The ROM portion is
organized as 2048 words by 8 bits. It has a maximum access time of 450 ns to permit use with no wait states in the 8OS5A
CPU.
The I/O portion consists of 2 general purpose I/O ports. Each I/O port has 8 lines and each 1/0 port line is individually pro·
grammable as input or output. '
'
The 8355-2 has a 300 ns access time for compatibility with the 8085A-2 and 5 MHz iAPX 88 microprocessors.

Vee
PB,

eLK

PBs
RESET

READY

N C (NOT CONNECTED)'

ADO-7

~,o

CE,

CE1
101M
ALE

AD
iliW
RESET

PB.
PB,
PB.

G
ROM

PBs,

G
G

PB,

PAn-,
lOW

P"

ALE
PBO- 7

ADo

AD,
PA,

iliA

PAo
AD.
CO AD7

Vee (+5V)

A,o
A.

' - - - - V.. IOV)

-For 8755A compatibility, pl,n 5 should be directly tied to

Figure 1.' Block Diagram

Vee.

Figure 2•.Pln Configuration,

\ 2-138

AFN.()0234D -

inter

8355/8355-2

Table 1. Pin Description
Type

Name and Function

ALE

I

ADO-7

I

Addre.s latch Enable: When high, ADo_7, 101M, As-10, CE2, and CEl enter the address latches. The signals
'
(AD, 110M, As-10, CE2, CEll are latched in at the trailing edge of ALE.
Addre.S/Data Bu. (Bidirectional): The lower 8-bits of the ROM or I/O address are applied to the bus lines when
ALE is high. During an I/O cycle, Port A or B is selected based on the latched value of ADo. If RD or lOA is low when
the latched chip enables are active, the output buffers present data on the bus.

Symbol

I

As-l0
eel
CE2

I

Address Bus: High order bits of the ROM address. They do not affect 1/0 operations.
Chip Eneble Inputs: CEl Is active low and CE2 Is active high. The 8355 can be accessed only when BOTH Chip
Enables are active at the time the ALE signal latches them up. If either Chip Enable Input is not active, the
ADo-7 and READY outputs will be in a high imPl'dance state.

Ri5 is low, the output data comes from an I/O port. If it is low, the out-

101M

I

1/0 Memory: If the latched 101M is high when
put data comes from the ROM,

RD

I

Read: If the latched Chip Enables are active when RD goes low, the ADo-7 output buffers are enabled and output
either the selected ROM location or I/O port. When both RD and lOR are high, the ADO-7 output buffers are 3-stated.

lOW

I

1/0 Write: If the latched Chip Enables are active, a low on lOW causes the output port pointed to by the latched
value of ADo to be written with the data on ADo-7. The state of 101M is ignored.

ClK

I

Clock: Used to force the READY into its high impedance state after it has been forced low by eel low, CE2high
and ALE high.
'

READY

0

R'EADY: A 3-state output controlled by CEl, CE2, ALE and ClK. READY is forced low when the Chip Enables are
active during the time ALE is high, and remains low until the rising edge of the next ClK.

PAo-7

I/O

Port A: General purpose I/O pins. Their inputloutput direction is determined by the contents of Data Direction
Register (DDR). Port A is selected for write operations when the Chip Enables are active and lOW is low and a
was previously latched from ADo, AD 1.

o

Read operation Is selected by either lOR low and active Chip Enables and ADo and AD1 low, or 101M high, RD
fow, ,active chip enables, and ADo and AD 1" lOW.
Port B: This general purpose I/O port Is identical to Port A except that it is selected by a 1 latched from ADo
and a 0 from AD 1 .

PBO-7

I/O.

RESET

I

Reset: An Input high causes all pins in Port A and B to assume input mode. (Clear DER Register).

lOR

I

I/O Read: When the Chip Enables are active, a low on lOR will outpulthe selected I/O port onto the AD bus. lOR low
performs the same function as the combination 101M high and RD low. When lOR is not used in a system, lOR
should be tied to Vee ("1").
'

Vee

Voltage: +5 volt supply.

Vss

Ground: Ground Reference.

2-139

AFN.(}()234D

8355/8355-2
FUNCTIONAL DESCRIPTION

8355
ONE BIT OF PORT A AND DDR A

ROM Section
The 8355 contains an 8·bit address latch which allows it
to interface directly to MCS·48, MCS·85, and iAPX 88/10
Microcompyters without additional hardware.
The ROM section of the chip Is addressed by an ll-bit
addrel!s and the Chip Enables. The address and levels on
the c:hip Enable pins are latched into the address latches
on the falling edge of ALE. If the latched Chip Enables
are active and 10/M is low when RD goes low, the contents
of the ROM location addressed by the latched address
are put out through ADo-7 output buffers.
DO

1/0 Section
The I/O section of the chip is addressed by the latched
value of ADo-1. Two 8-bit Data Direction Registers (oDR,I
in 8355 determine the input/output status of each pin in
the corresponding ports. A "0" In a particular !lIt po~itlon
of a DDR signifies that the corresponding 110 port bit is
in the input mode. A "1" in a particular bit position signifies that the corresponding 110 port bit IS in the output
mode: In this manner the 1/0 ports of the 8355 are bit-bybit programmable as inputs or outputs. The table summarizes port and DDR designation. DDR's cannot be
read.

AD1

ADD

Selection

0
0
1

0
1
0
1

Port A
Port B
Port A Data Direction Register (DDR AI
Port B Data Direction Register (DDR BI

1

When 10VY goes low and the Chip Enables are active, the
data on the ADo-7 is written Into 1/0 port selected by the
latched value of ADo-1 DUring this operation all 1/0 bits
of the selected port are affected, regardless of their 1/0
mode and the state of 10iM The actual output level does
not change until lOW returns high (glitch free output I.

~

READ PA

WRITE PA = (iOW=OJ. (CHIP ENABLES ACTIVE) • (PORT A ADDRESS SELECTED)

WRITE DOR A " (iOW=OJ. (CHIP ENABLES ACTIVE). (DDR A ADDRESS SElECTED)
READ PA = {[(I0tM"'11. (RD=O)] + (iOR=o)} • (CHIP ENABLES ACTIVE). (PORT A ADDRESS SELECTED)

NOTE WRITE PA IS NOT QUALIFIED BY 101M

Figure 3. 8355 One Bit of Port A and DDR A

SYSTEM APPLICATIONS
System Interface with 8085A and iAPX 88
A system using the 8355 can use either one of the two
1/0 Interface techniques .
• Standard 1/0
• Memory Mapped 1/0
If a standard I/O technique is used, the system can use
the feature of both CE2 and CE1, By using a combination of unused address lines A 11 - 15 and the Chip
Enable inputs, the system can use up to 5 each 8355's
without requiring a CE decoder, See Figure 5a and 5b.

if a memory mapped I/O approach is used the 8355 will
be selected by the combination of both the Chip Enables and 10iM using ADs_ 15 address lines, See Figure

4.

A port can be read out when the latched Chip Enables are
active and either RD goes low with 10iM high, or lOR
goes low. Both input and output mode bits of a selected
port will appear on lines ADo-7.

"-

A8~15

To clarify the function of the 1/0 ports and Data Dlrecllon
Registers, the following diagram shows the conflgural'on
of one bit of PORT A and DDR A. The same logic applies
to PORT Band DDR B

~

"
8085

Note that hardware RESET or writing a zero to the DDR
latch will cause the output latch's' output buffer to be
disabled, preventing the data In the output latch from
being passed through to the pin. ThiS IS equivalent to
putting the port in the input mode. Note also that the data
can be written to the Output Latch even though the Output Buffer has been disabled. ThiS enables a port to be
initialized with a value prior to enabling the output.

,~

""LE
RD

-

-

i'iI1
elK (02)

READY
101M

Vee

t

~

I

f",
AO O_7

fiR

The diagram also shows that the contents of PORT A and
PORT B can be read even when the ports are configured
as outputs.

>f~

AI _10

RD eLK • 101M
ALE iOW READY C.

8355

Figure 4. 8355 in 8085A System
(Memory-Mapped I/O)

2-140

AFN-00234D

inter

8355/8355-2

iAPX 88 FIVE CHIP SYSTEM:
•
•
•
•
•

1.25 K Bytes RAM
2 K Bytes ROM
38 I/O Pins
1 Internal Timer
2 Interrupt Levels

,A

v,s

Vee

I I

~

H--

POR!¢!(>

~~_WR

POR~

AD

¢!(>
(8)

8155-2

"

PORT~
C
(6)

ALE
DATAl
ADDR

IN_
101M TIMER
OUT
RESET

I--

Aa-A19

,-

ADo-AD7

ClK

lOW

ADDA

~

ADDR/DATA
I

,X,

READY

RST@

AD

ViR

r--

READY

101M

RES

8284A

t--

r- r-rrr. - - r-

A

AS• 10

8355-2
ADDR

101M

I

~

DATAl
PORT

..--- RESET

t--

REseT

ROYl

"
V
"

t--

PORT

CE

f---Vcc

ALE

X,
ClK

ALE

~j2:::

t=

8088
MN/MX

[OJ

AD

8 ¢!(>

READY

Vee

iDA .....J

III

LROG
Vss Vee Voo

Vee
WR

....

AD

'CD

eEl 8185-2
ALE
I

~t-

i H-

I \-t--

cs,
CE,

Ae,Ag
AD O• 7

1 1

V5S

Vee

Figure Sa. iAPX 88 Five Chip System Configuration

2-141

AFN-00234D

l
A8-15

An

80<15A

~- ALE
AD
WR

-

eLK (l/12)

-

READY

t~

Au

101M

A15

A14

A"

-

-

r-

r-

-

-

tt-

-

-

ttt-

-

-

t--

-

t--

-

-

t-

-

-

Q)
(0)

g:

"

Q)
(0)

~

~

I\)

i\

1m
lOR

Aro,_,

vee
A~1O

T

10/\ 11_ Affl~,

RD eLK
ALE iOW READY

8355
(2K BYTES)

eEl

lOR

A~1O

7'II i\ "A~"

RD eLK
101M
A~DW READY eE2

(2K BYTES)

Al°g...1

fiR

t\ " 7'II 'A~"

ROiliWCtKREADY
101MCE2
~

iOR

Affle-,

(2K BYTES)

'II

RO eLK
101M
~Ow READ.Y eE2

Vr

7-~
AIDg...l

iOii

(2KBYTES)

NOTE: Use CEl for the first 8355 in the system, aDd CEz for the other 8355's, Permits up to 5-8355's in a system without CE decoder.

Figure 5b. 8355 in 8085A System (Standard I/O)

1;;
z

~o

7
Aa..l0

RD eLK
ALE

mw

8355
(2KBYTES)

101M

READY

CE

8355/8355-2
ABSOLUTE MAXIMUM RATINGS·

'NOTICE: Stresses above those listed under "Absolute
Maximvm Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in'the operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.

TemperatureUnderBias ................ 0°Cto+70°C
Storage Temperature .... . . . . . . . . . .. -65°C to +150°C
Voltage on Any Pin
With Respect to Ground ............... -0.5V to +7V
Power Dissipation .. . . . . . . . . . . . . . . . . . . . . . . . . . .. 1.5W

D.C. CHARACTERISTICS

(TA = o°c to 70°C; Vee = 5V ± 5%)
Min.

Max.

Unit

In put low Vo Itage

-0.5

0.8

V

VIH

Input High Voltage

2.0

Vee+O·5

V

Vee = 5.0V

VOL

Output low Voltage

0.45

V

IOL = 2mA

VOH

Output High Voltage

V

IoH = -400/lA

IlL

Input lea kage

ILO
Icc

Symbol
VIL

Parameter

2.4

Test Conditions
Vee = 5.0V

10

/lA

OV ,,; Y'N ,,; Vee

Output leakage Current

±10

JlA

0.45V ';;;VOUT .;;;vee

Vee Supply Current

180

mA

A.C. CHARACTERISTICS· (TA = o°c to 70°C; Vee = 5V ± 5%)
8355
Symbol

Parameter

Min.

8355-2
Max.

Min.

Max.

Units

tCYC

Clock Cycle Time

320

200

ns

T1

ClK Pulse Width

80

40

ns

T2

ClK Pulse Width

120

70

tf.t,

ClK Rise and Fall Time

tAL

Address to latch Set Up Time

50

30

ns

tLA

Address Hold Time after latch

80

45

ns

tLe

latch to READ/WRITE Control

100

40

tRO

Valid Data Out Delay from READ Control'

tAD

Address Stable to Data Out Valid"

tLL

latch Enable Width

tRoF

Data Bus Float after READ

30

170
450
100
0

100

0

READIWRITE Control to latch Enable

20

10

tee

READ/WRITE Control Width

250

200

tow

Data In to Write Set Up Time

150

150

30

two

Data In Hold Time After WRITE
WRITE to Port Output

tpR

Port Input Set Up Time

50

ns
ns

300

ns

85

ns

ns
ns
,

ns
ns

10
400

ns

140
70

teL

twp

ns
30

ns
300

50

ns
ns

tRP

Port Input Hold Time

50

tRYH

READY HOLD Time

0

tARY

ADDRESS (CE) to READY

tRY

Recovery Time Between Controls

300

200

ns

READ Control to Data Bus Enable

10

10

ns

tROE

50
160

0

160

ns
160

ns

160

ns

'Or TAo-('i'AL + TLc). whichever is greater.
"Defines ALE to Data out Valid in conjunction with TAL.

2-143

AFN-00234D

A.C. TESTING LOAD CIRCUIT

A.C. TESTING INPUT, OUTPUT WAVEFORM
INPUT/OUTPUT

"=-X >
2.0

0.8

045

<

2.0

TEST POINTS

0.8

x=

DEVICE
UNDER
TEST

lCL~'50PF
-=-

A C TESTING INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC '1" ANOO 45V FOR
A'LOGIC "0" TIMING MEASUREMENTS ARE MADE AT 2 OV FOR A LOGIC 1"
AND 0 BV FOR A LOGIC "0 "

CL =150pF
CL INCLUDES JIG CAPACITANCE

WAVEFORMS
ROM READ AND I/O READ AND WRITE

A S_10

101M

=>
=>

ADO_7

K

ADDRESS

,

tAD

)

ADDRESS

DATA

'CE 2 "'1)*

r!-

tLl

~ t--~

tLA

~

If

ALE
- tAL -

I- t RDF •

~tRDE~

l----tRD-~

1+----- t Le ~
~-

tDw

'I------i--

tRv

t WD _

I----tee

i.--tCL~

• Please note that for 8755A compatibility,

CE, should

remain low for the entire read cycle.

8355 CLOCK SPECIFICATIONS

2-144

AFN-00234D

intJ

8355/8355-2

WAVEFORMS (Continued)

INPUT MODE

d=~

ROOR
lOR

PORT:X
I,NPUT

DATA' BUS

-

-

-

-

-

-)<

-------

OUTPUT MODE

....._-------

_______1,

twp+- /

PORT

GLITCH FREE
OUTPUT

------------~

OUTPUT _ _ _ _ _ _ _ _ _ _ _ _

~

DATA'BUS
____ _

p..,.._____

.J'\______...JX"-___

'"

"DATA BUS TIMING IS SHOWN IN FIGURE 4.

WAIT STATE

•
NOTE: Ready

= O.

2-145

AFN.Q0234D

inter
8755A /8755A-2
16,384-8IT EPROM WITH I/O
• 2 General Purpose 8·Blt 110 Ports

• 2048 Words )( 8 Bits
• Single

• Each 110 Port Line Individually
. Programmable as Input or Output

+ 5V Power Supply (Vee)

• Directly Compatible with S08SA
and 8088 Microprocessors

iii Multiplexed Address and Data Bus
• 40·Pin DIP

• U.V. Erasable and. Electrically
Reprogrammable

• Available in EXPRESS
-. Standard Temperature Range
- Extended Temperature Range

• Internal Address Latch

The Intel@ 8755A is an erasable and electrically reprogrammable ROM (EPROM) and 1/0 chip to be used in the 8085A and
iAPX 88 microprocessor systems. The EPROM portion Is organized as 2048 words by 8 bits. It has a maximum access
time of 450 ns to permit l!se with ,no wait sta~es in an 8085A CPU.
The 1/0 portion consists of 2 general purpose 1/0 ports. Each 1/0 port has 8 port lines, and each 1/0 port line is individually
programmable as iriput or output.
The 8755A-2 is a high speed selected version of the 8755A compatible with the 5 MHz 8085A-2 and the 5 MHz iAPX 88
microprocessor.

PROG AND

ClK----..,

CE,

1

CE2

2

ClK
REAoV----!

A8-10~_o/
CE,---.j

IOiM---.J

2K x 8
EPROM

AlE---.j
fiij---.j
iOW---.j

G
G

PB,
PB.
lOW

ALE

P8o-,
,~-~/

PA,

RESET---,.J

AD3'

PA,

iOR----I

AD,

PA,
PA.

PAOG/CE,
VDD. - - - - '

A,.

Vee (+5V)

AD,

L---Vs~ IOVI

A,

Vss

Figure 2. Pin Configuration

Figure 1. Block Diagram

Intel Corporation Assumes No Responsibllty for the,U.8 of Any Circuitry Other Than Circuitry Embodied In an Intel Product No Other Circuit Patent Licenses afa Implied
© INTEL CORPORATION. 1980

2-146

inter

8755A18755A-2

Table 1. Pin Description
Type

Name and Function

ALE

I

Addre •• latch Enabla: When Addreee
latch Enable goes high, ADo-7, 101M,
As-l0, CE2; and CEl enier t~ addreee
latches. The signals (AD, lOlly! ADs-l0,
CE2, eel) are latched In at the trailing
,edge of ALE.

ADo-7

I

Bidirectional Addre ••/Data Bu.: The
lower 8-bits of the PROM or I/O address
are applied to the bus lines when ALE is
high.

Symbol

Symbol

~pa

READY

0

PAo-7

I/O

Port A: These are general purpose I/O
pins. Their input/output direction Is determined by the contents of Data Direction Register (DDR). Port A is selected for
write operations when the Chip Enables
are active and lOW is low and a 0 was
previously latched from ADo, AD1.

During an 1/0 cycle, Port A or B Is
selected based on the latched value of
ADo. IF RD or lOR is low when the latched
Chip Enables are active, the output buffers present data on the bus.
As-l0

I

Address Bus: These are the high order
bits of the PROM address. They do not
affect I/O operations.

PROG/CE,
CE2

I

Chip Enable Inputs: CEl is active low
and CE2 is actiVe high. The 8755A can be
accessed only when both Chip Enables
are active at the time the ALE signal
latches them up. If either Chip En!lble
input is not active, the ADo-7 and
READY outp!!.!!.will be in a high impedance state.CEl Is also used as a programming pin. (See section on
programming.)

101M

I

Read Operation is selected by either iOR
low and active C~ Enables and ADo
and AD11ow,or 101M high, RD low, active
Chip Enables, and ADo and ADl low.
PBO-7

I/O

Port B: This general purpose I/O port Is
identical to Port A except that it is
selected by a 1 latched from ADo and a 0
from AD 1,

RESET

I

Relet: In normal operation, an input
high on RESET causes all pins in Ports A
and B to assume input mode (clear DDR
register).

lOR

I

1/0 Read: When the Chip Enables are

active, a low on lOR will output the
selected I/O port onto the AD bus. R5A
low performs the same fUnction as the,
combination of 101M high and RD low,
When lOR is not used In a system, lOR
should be tied to Vee ("1").

1/0 Mamory: If the latched 101M is high

when RD is low, the output data comes
from an 1/0 port. If it Is low the output,
data comes from the PROM.
RD

lOW

I

I

Read: " the latched Chip Enables are
active when RD goes low, the ADO-7
output buffers are enabled and output
either the selected PROM location or I/O
port. When both RD and lOR are high,
the ADo-7, output buffers are a-stated.
1/0 Write: If the latched Chip Enables are

I

Vee'

Power: +5 volt supply.

Vss

Ground: Reference.

Voo

Power Supply: Voo is a programming
voltage, And mllit !2!! tillg m'tee '«hIl!l
the 8755A is being read.
For programming, a high voltage is
supplied with Voo = 25V, typical. (See
section on programming.)

active, a low on lOW ,causes the output
port pointed to by the latched value of
ADo to be writtell.wlth the data on ADo-7'
The state of 101M is ignored.
ClK

Name and Function
Ready Is a 3-state output controlled by
eel. CE2. ALE and ClK. READY Is forced low when the Chip Enables are active
during the time ALE Is high. and remains low until the riSing edge of the
next ClK. (See Figure 6c.)

Clock: The ClK Is used to force the
READY into its high impedan~ state
after it has been forced low by CEl low,
CE2 high, and ALE high.

2-147

AFN.()08430

'

87:55A18755,,-~

8755A
ONE BIT OF PORT A AND OOR A

FUNCTIONAL DESCRIPTION
PROM Section
The 8755A contains an 8-bit address latch which allows it
to interface directly to MCS-48, MCS-85 and iAPX 88(10
Microcomputers ~ithout additional hardware.
The PROM section of the chip is addressed by the 11·bit
address and the Chip Enables. The address, CE, and
CE2 are latohed into the address latches on the failing
ed~ of ALE. If the latched Chip Enables are active and
101M Is low when AD goes lOw, the cpntents of the
PROM .location addressed by the latched address are
put out on the ADO_71ines (provided that Voo is tied to
Vee·)

The I/O section of the chip is addressed by the latched
value of ADo-1. Two 8-bit Data Direction Registers (DDR)
in 8755A determine the input/outp!!t status of each pin
in the corresponding ports. A "0" in a particular bit position of a DbR signifies that the corresponding I/O port bit
is in the input mode. A "1" in a particular bit position signifies that the corresponding I/O port bit is in the output
mode. In this manner the I/O ports of the 8755A are bit-bYbit programmable as inputs or outputs. The table
summarizes port and DDR designation. DDR's cannot be
read.
Selection

ADo
0
1
0
1

CDR A

o.

---,

REAOPA

1/0 Section

AD1
0
0
1
1

WRIT~

Port
Port
Port
Port

A
B
A Data Direction Register (DDR A)
B Data Direction Register (DDR B)

When lOW goes low and the Chip Enables are active,
the data on the ADo_7 is written into I/O port selected
by the latched value o~ ADo_ 1. During this operation all
1/0 bits of the selected port are affected, regardless of
their I/O mode and the state of 101M. The actual output
level does not change until lOW returns high. (glitch free
output)
A port can be rea2.,2ut when the latch~ Chip Enables are
active and either RDgoes 10wwithJO/M high, or lOR goes
low. Both input and output mode bits of a selected port
will appear onlines ADo-?

WRITE PA" (row-O). (CHIP ENABLES ACTIVE). (PORT A ADDRESS SELECTED)
WRITE DDA A .. (jaW"Ole (CHIP ENAlLESACTN". ftlOA A ADDRESS SELECTED)
READ PA .. {[IIO.l). fKD ..OIl t (iOR.O)) • (CHIP (NAILES ACTIVE). (PORT A ADOIUSS SELECTEDI
NOTE: WRITE PA IS NOT QUALIFIED BY 101M.

. Note that hardware RESET or wrlti'ng a zero to the DDR
latGh will cause the output latch'S output. buffer to be
disabled, preventing the data in the Output Latch from
, being passed through to. the pin. This Is equivalent to
putting the port in the input mode. Note also that the data
can be written to the Output Latch even though the Output
Buffer has been disabled. This enables a port to be initialized with a' value prior to enabling the output.
The diagram also sl10ws that the contents of PORT A and
PORT B can be read eVlln when the ports are configured
as outputs.
TABLE 1. 8755A PROGRAMMING MODULE CROSS
REFERENCE
MODULE. NAME

USE WITH

UPP 955
UPP UP2(2)
PROMPT 975
PROMPT 475

UPP(4),
UPP 855
PROMPT 80/85(3)
PROMPT 48(1)

NOTES:
1. DeS9ribed on p. 13-34 of 1978 Data Catalog.
,2. Special adaptor socket.
3. Described on p. '13-39 of 1978 Data Catalog.
4. Described on p. 13-71 of 1978 Data Catalog.

To clarify the function of the I/O Ports and Data Direction
Registers, the following diagram shows the configuration'
of one bit of PORT A and OCR A. The same logiC applies
to PORT Band DDR B.

AFN'()0843D

inter

8755A18755A-2

ERASURE CHARACTERISTICS

SYSTEM APPLICATIONS

The erasure characteristics of the 8755A are such that
erasure begins to occur when exposed to light with
wavelengths shorter than approximately 4000 Angstroms
(A). It should be noted that sunlight and certain types of
fluorescent lamps have wavelengths in the 3000-4000A
range. Data show that constant exposure to room level
fluorescent lighting could erase the typical 875SA in
approximately 3 years while it would take approximately 1
week to cause erasure when exposed to direct sunlight.
If the 8755A is to be exposed to these types of lighting
conditions for extended periods of time, opaque labels
are available from Intel which should be placed over the
8755 window to prevent unintentional erasure.

System Interface with e085A and IAPX 88

The recommended erasure procedure for the 8755A is
exposure to shortwave ultraviolet light which has a wavelength of 2537 Angstroms (A). The integrated dose (i.e.,
UV intensity X exposure time), for erasure should be a
minimum of 15W-sec/cm2 . The erasure time with this
dosage is approximately 15 to 20 minutes using an ultraviolet lamp with a 12000/LW/cm 2 power rating. The
8755A should be placed within one inch from the lamp
tubes during erasure. Some tamps have a filter on their
tubes and this filter should be removed before erasure.

A system using the 8755A can use either one of the two I/O
Interface techniques:
• Standard I/O
• Memory Mapped I/O

If a standard I/O technique Is used, t~ a system can use
the feature of both CE2 and CE1 • By IIslng a combination of unused address lines A 11 - 15 and the Chip
Enable Inputs, the 808SA system can use up to 5 each
8755A's without requiring a CE decoder. See Figure 4a
anc! 4b.
If a memory ma~ped I/O approach is used the 8755A will
be selected by.,!he combination of both the Chip
Enables and 101M using AD8 - 15 address lines. See
Figure 3.

-

A

'~>

K;8-15

PROGRAMMING
Initially, and after each erasure, all bits of the EPROM
portions of the 8755A are in the "1" state. Information is
introduced by selectively programming "0" Into the
desired bit locations. A programmed "0" can only be
changed to a "1" by UV erasure.
The 8755A can be programmed on the Intel@ Universal
PROM Programmer (UPP). and the PROMPT'" 80/85 and
PROMPT-48'" design aids. The appropriate programming
modules and adapters for use in programming both
8755A's and 8755'5 are shown in Table 1.
The program mode itself consists of programming a
single address at a time, giving a single 50 msec pulse
for every address. Generally, it is desirable to have a
verify cycle after a program cycle for the same address
as shown in the attached timing diagram. In the verify
.cycle (i.e., normal memory read cycle) 'Voo' should
be at +5V.
.
Preliminary timing diagrams and parameter values pertaining to the 8755A programming operation are contained in Figure 7:.

2-149

A

B085A

;>

~ ADo.,
'oj

ALE

-

RD

-

WR
eLK 1,,2)
READY

101M

-

r",

V

-

AID ..,

iDR

f

'"

;.

AB_10

r

RD elK
101M
ALE iOi'I READY CE
B755A

Figure 3. 87SSA In 808SA System
(Memory-Mapped I/O)

AFN·008430

inter

8755A18755A..2

IAPX 88 FIVE. CHIP SYSTEM
Figure 4 shows a five chip system containing:
• 1.25K Bytes RAM
• 2K Bytes ROM
.381/0 Pins
• 1 Interval Timer
• 2 Interrupt Levels

/'

/'

Vss Vee

I I

I ~f-

-

~ I-

POR1~

CE

ViR

'PORT~

_
RD 8155-2

.

IO/ii

RESET

As-Au

r-

r-

ADo-AD7
ClK

®

ClK
READY

f-

r--

PORT
A

CE
.J\

it::

A S_ 10

-V

~

83111-21
175fA.2
DATAl
ADDR

t--Vcc

iili

r-- r-r-- r-- r-

VIR

r--

.---

8284

IN_
TIMER
OUT

ALE

~~

101M

RES

.

il5W
iili

P',

AODRIDATA

ALE
RST

x,

X,

..~

8088
READY
MNIMX

rD1

AD OR

B

PORT~
C
(6)

ALE
DATAl
ADDR

I--I---

r--

RESET

r

101M

r--

PORT

RESET

8

~
vee

READY

il5li

!!!

-l

LROG

Vss Vee Voo

"ee

RDY1

ViR
iili

....
(j)

eE,

.,811-2

ALE

\1-

.rr-

cs.
CE,

Ae. A,
ADO_l

JJ

,

Vs.

Vee

,

Figure 48. IAPX 88 Five Chip System Configuration

2-150

AFN-00843C

(
A

"TI

I

AIOf)-l

tT
.....

~

ALE

S·

~

~

ao8"

rr-

jffi

WR

CD

elK (1/)2)

CD
UI

READY

rrr-

0

~

~
(I>

-

r-

"

CD

101M

'-"

'"

A"

a;

UI
UI

:=0

.e

AI-1S

C
c

-'-

-

r-

'"

A"

r-

r-

r-

r-

r-

r-

rrrr-

rrr-

rrrr-

r-

r-

r-

r-

V

CD

~.

en

~
CD

.....

en
en
~

Cil"

3

~.

2!
'"a.
::J

'"a.

.9

vee

f'

;.~

A/D ...,

1m.

;.
AI-"

RD

ALE

eLK

iOW

8755A
(2K BYTES)

IDIlii,

READY

eEl

II

Vt'~
iiii

AID~,

,

7

AI-..

RD eLK
IDiM,
ALE IlIW READY eE 2

II t\

AID...,

iDA

~

AI-"

RD eLK
IDIlii ,
ALE iOW READY eE 2

8755A

8755A

12K BYTES)

12K BYTES)

II

t\ ;. ,
i
iiiR

AIDI-'

'1

AI-" ALERDi1iWeLKREADY
ID,tjeEl

y

8755A
12K BYlES)

Note:'U" CE1 fo, the fi,st 8755A in the system, and CE2 for the other 8755A's. Permit. up to 5-8755A'. in a system without CE decoder.

~

z

~o

7'

AID.. ,

iiiii

AI-"

J

RD elK
101M
ALE iliW READY eE 2

8755A
12K BYTES)

8755A18755A·2
ABSOLUTE MAXIMUM RATINGS·

·NOTlCE: Stresses above those listed under "Absolute
Maximum Ratings" may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at these or any other conditions above
those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum
rating conditions for extended periods may affect device
reliability.
.

Temperature Under !:lIas ................ 0°Cto+70°C
Storage Temperature .......... . . . .. -65'C to +150°<:;
Voltage on Any Pm
With Respect to Ground .............. , -0.5V to +7V
Power Dissipation ............................. 1.5W

D.C. CHARACTERISTICS

(TA = O°C to 70°, Vee = Voo = 5V ± 5%;
Vee = VOO = 5V ±10% for 8755A-2)
TEST CONDITIONS

SYMBOL

PARAMETER

MIN.

MAX.

UNITS

VIL

Input Low Voltage

-0.5

0.8

V

Vee = 5.0V

VIH

Input High Voltage

2.0

Vee+O· 5

V

Vee = 5.0V

VOL

Output Low Voltage

0.45

V

IOL = 2mA

VOH

Output High Voltage

V

IOH = -4001lA

IlL

Input Leakage

ILO

O~tPut

Icc
100

2.4
10

IlA

VSS .;; VIN .;; Vee

±10

IlA

0.45V .;; Your .;; Vee

Vee Supply Current

180

mA

Voo Supply Current

30

mA

Voo = Vee

10

pF

fe = 1p.Hz

15

pF

fe = 1p.Hz

Leakage Current

Capacitance of Input Buffer
Capacitance of I/O Buffer

CIN
CVO

D.C. CHARACTERISTICS-PROGRAMMING
Symbol

Parameter

Voo

Programming Voltage (during Write
to EPROM)

100

Prog Supply Current

2-152

(TA =0°Ct070°, Vee = 5V±50/0, vss = OV, Voo =25V±1V;
Vee = Voo = 5V ±100/0 for 8755A-2)

Min.

Typ.

24

25

26

V

15

30

mA

Max.

Unit

AFN·00843D

inter
A.C.

8755A18755A·2

C~ARACTERISTICS

(TA = O°C to 70°. Vee = 5V ± 5%;
Vee

= VOO, = 5V ±10% for 8755A-2)
8755A·2
(Preliminary)

8755A
Symbol

Min.

Parameter

Max.

Min.

Max.

Units

tCYC

Clock Cycle Time

320

200

ns

T1

ClK Pulse Width

80

40

ns

T2

ClK Pulse Width

120

70

tf. tr

ClK Rise and Fall Time

tAL

Address to latch Set Up Time

50

30

ns

tlA

Address Hold Time after latch

80

45

ns

tlC

latch to READ/WRITE Control

100

40

tRO

Valid Data Out Delay from READ Control·

170

140

ns

tAD

Address Stable to Data Out Valid··

450

300

ns

85

ns

30

ns
30

ns

ns,

70

100

ns

tll

latch Enable Width

tROF

Data Bus Float after READ

tCl

READ/WRITE Control to latch Enable

20

10

ns

tcc

READ/WRITE Control Width

250

200

ns

tow

Data In to Write Set Up Time

150

150

ns

two

Data In Hold Time After WRITE

:30

10

twp

WRITE to Port Output

tpR

Port I"'put Set Up Time

50

50

tRP

Port Input Hold Time to Control

50

50

tRYH

READY HOLD Time to Control

0

0

100

0

400

ns
ns

300

' 160

0

160

ns
ns
160

ns

tARY

ADDRESS rCEI to READY

tRV

Recovery Time Between Controls

300

200

ns

tROE

READ Control to Data Bus Enable

10

10

ns

160

ns

NOTE:

eLOAO = 150pF.
·Or TAD - (TAL + TLe!. whichever is greater.
"Defines ALE to Data Out Valid in conjunction with TAL'

A.C. CHARACTERISTICS- PROGRAMMING
Symbol

(TA = O°Cto 70°. Vee = 5V ± 5%. VSS = OV. VOO
Vee = Voo = 5V ±10% for 8755A-2)

Parameter

Min.

Typ.

Max.

= 25V ±lV;
Unit

tps

Data Setup Time

10

ns

tpo

Data Hold Time

0

ns

ts

Prog Pulse Setup Time

2

p.S

tH

Prog Pulse Hold Time

2

p's

tpR

Prog Pulse Rise Time

0.01

2

tpF

Prog Pulse Fall Time

0.01

2

P.s

tpRG

Prog Pulse Width

45

50

msec

2-153

p's

AFN.()0843D

inter

8755A18755A,·2
"

A.C. TESTING INPUT, OUTPUT WAVEFORM
INPUT/OUTPUT

u=x, >
2.0

0.8

0.45

<

2.0

TEST POINTS

0.8

A.C. TESTING LOAD CIRCUIT

x=

DeVICE
UND'ER

reST

!JCL. ,50 PF

A C TESTING INPUTS ARE DRIVEN AT 2 4V FOR A LOGIC 1 AND 0 45V FOR
A LOGIC 0 . TIMING MEASUREMENTS ARE MADE AT 2 OV FOR A LOGIC 1
AND 0 BV FOR A LOG.lC 0

CL ", 150pF
Cl INCLUDES JIG CAPACITANCE

WAVEFORMS
CLOCK SPECIFICATION FOR 8755A

PROM READ, 1/0 READ AND WRITE
AS10

--)j

ADDRESS

ADDRESS

IO/M'AD

AD07'

ADDRESS

)

-t

~---

> - - - - - - - P R O G R A M CYCLE - - - . . . , - - -......

~_

PROGRAM CYCLE

ALE

DATAlaSE

A/DO_?

PROGRAMMED

tpo

AB·l0

IpS

+25

--

Voo
+5----____________________-{

"-1-*VERIFY CYCLE IS A REGULAR MEMORY READ CYCLE (WITH VOO '" +5V FOR 8755A)

2-156

AFN-00843D

iAPX 86, 88, 186, 188
Microprocessors

Microprocessors
Section

3

",

i ,~. .!

t

'.",

'

'.,'"

"I",:

\

l'

'\

\.'

APPLICATION
NOTE

Ap·113

February 1981

AP·1~3

INTRODUCTION

i

One alternative uses a special hardware component, the
8087 numeric processor extension, while the other is
based on software, the 8087 emulator. Both component
and software emulator add the extra numerics data
types and operations to the 8086 or 8088.

This is an'application note on using numerics in Intel's
iAPX 86 or iAPX 88 microprocessor family. The numerics implemented in the family provide instruction
level support for high-precision integer and floating
point data types with arithmetic operations like add,
subtract, multiply, divide, square root, power, log and
trigonometrics. These features are provided by members
of the iAPX 86 or iAPX 88 family called numeric data
processors.

The component and its software emulator are completely compatible.
'

Nomenclature

Rather than concentrate on a narrow, specific application, the topics covered in this application note were
chosen for generality across many applications. The
goal is to provide sufficient background information so
that software and hardware engineers can quickly move
beyond needs specific to the numeric data processor and
concentrate on the special needs of their appliaation.
The material is structured to allow quick identification
of relevant material without reading all the material
leading up to that point. Everyone should read the introduction to establish terminology and a basic
background.

Table one shows several possible configurations
of the iAPX 86 and iAPX 88 microprocessor, family.
The choice of configuration will be decided by the
needs of the application for' cost and performance
in the areas of general data processing, numerics,
and 1/0 processing.' The combination of an 8086 or
8088 with an 8087 is called an iAPX 86/20 or 88/20
numeric data Processor. For applications requiring high 110 bandwidths and numeric performance, a combination of 8086, 8087 and 8089 is ali
iAPX 86/21 numerics and 110 data processor. The
same system with an 8088 CPU for smaller size
and lower cost, due to the smaller 8-bit wide
system data bus, is referred to as an iAPX 88/21.
Each 8089 in the system is designated in the units'
digit of the system designation. The term 86/2X or
88/2X refers to a numeric data processor with any
number of 8089s.

IAPX 86,88 BASE
The numeric data processor is based c;m an 8088 or 8086
microprocessor. The 8086 and 8088 are general.purpose
microprocessors, designed for general data processing
applications. General applications need fast, 'efficient
data movement and program control instructions. Actual arithmetic on data values is simple in general applications. The 8086 and 8088 fulfill these needs in a low
cost, effective manner.

Throughout this application note, I will use the
terms NDP, numeric data processor, 86/2X, and
88/2X synonymously. Numeric processor extension and NPX are also synonymous for the functions of either the 8087 component or 8087
emulator. The term numeric instruction or
numeric data type refers to an instruction or data
type made available by tile NPX. The term host will
refer to either the 8086 or 8088 microprocessor.

However, some applications. need more powerful arithmetic instructions and data types than a general purpose
data processor provides. The real world deals in fractional values and tequires arithmetic operations like
square root, sine, and logarithms. Integer data types
and their operations like add, subtract, multiply, and
divide may not meet the needs for accuracy, speed, and
ease of use.

Table,1. Components Used In IIAPX 88,88
Conflgural/ons

Such functions are not simple or inexpensive. The
general data processor does not provide these features
due to their cost to other less-complex applications that
do not need such features!. A special processor is required, one which is easy to use and has a high level of
support in hardware and software.
The numeric data processor provides these features. It"
supports the data types and operations needed and
allows use of all the current hardware and software support for the iAPX 86/10 and 88/10 microprocessors.

System Name

8088

iAPX 86/10
iAPX 86/11
iAPX 86/12
iAPX 86/20
iAPX 86/21
iAPX 86/22

1
1
1
1
1
1

iAPX 88/10
iAPX 88111
iAPX 88/12
iAPX 88/20
iAPX 88/21
iAPX 88/22

The iAPX 86 and iAPX 88 provide two imple-,
mentations of a numeric data processor. Each offers
different tradeoffs in performance, memory size, and
cost.
3-2

8087

8088

8089
1
2

1
1
1

1
1
1

I

2
1
1
1
1
1
1

1
2
1
2

Ap·113

NPX OVERVIEW
the 8087 is a coprocessor extension available to
iAPX 86/IX or iAPX 88/IX maximum mode
microprocessor systems. (See page 7). The 8087'
adds hardware support for floating point and extended precision integer data types, registers, and
instructions. Figure I shows the register set
available to the NDP. On the next page, the seven
data types available to numeric instructions are
listed (Fig 2). Each data type has a load and store
inStruction. Independent of whether an 8087 or its
emulator are used, the registers and data I types all
appear the same to the programmer.

64-bit long integers
IS-digit packed
decimal
32-bit short real

64-bit long t;eal
80-bit temporary
real

All the numeric instructions and data types of the NPX
are used by the programmer in the 'Same manner as the
general data types and instructions of the host.

Referencing memory data types in the NDP is not
restricted to load and store instructions: Some arithmetic operations can specify a memory operand in one
of four possible data types. The numeric instructions
compare, add, subtract, subtract reversed, multiply,
divide, and divide reversed can specify a memory
operand to be either a 16-bit integer, 32-bit integer,
32-bit Peal, or 64-bit real value. As with the load and
store operations, the arithmetic instruction specifies the
address and expected format of the memory operand.

The numeric data formats and arithmetic operations
provided by the 8087 conform to the proposed IEEE
Microprocessor Floating Point Standard. All the proposed IEEE floating point standard algorithms, exception detection, exception handling, infinity arithmetic
and rounding controls are implemented. 1
The numeric registers of the NPX are provided for fast,
easy reference to values needed in numeric calculations.
All numeric values kept in the NPX register file are held
in the 80-bit temporary real floating point format which
is the same as the 80-bit temporary real data type.

The remaining arithmetic operations: square root,
modulus, tangent, arctangent, logarithm, exponentiate,
scale power, and extract power use only register
operands.

All data types are converted to the SO-bit register file
format when used by the NPX. Load and store instructions automatically convert between the memory
operand data type and the register file format for all
numeric data types. The numeric load instruction
specifjes the format in which the memory operand is expected and which addressing mode to use.
All host base registers, index registers, segment
registers, and addressing modes are available for
locating numeric operands. In the same manner, the
store instruction also specifies which data type to use
and where the value is located when stored into
memory..

15

FILE

0

u~
BX

ex
ox
51
01
BP
SP

Selecting Numeric Data Types
As figure 2 shows, the numeric data types are of different lengths and domains (real or integer). Each
numeric data type is provided for a specific function,
they are:
16-bit word integers

-Large integer general
computation
-Extended range integer
computation
-Commercial and. decimal
conversion arithmetic
-Reduced range and
accuracy is traded for
reduced memory requirements
-Recommended floating
poi~t variable type
-Format for intermediate
or high precision calculations

32-bit short integers

NPX STACK
SIGNIFICANO

R6
R8

i~1

Implementation Guide to a Proposed Standard for Floating
Point" by Jerome Coonen in Computer, Jan. 1980 or the Oct. 1979
issue of ACM SIGNUM, for more information on the standard.

EXPONENT

R7

I

-Index values, loop counts,
and small program control
values

79
R1
R2
R3
R4
R5

IP
FLAGS

I

NPXSTATUS
NPXMOOE

I

t ..An

Figure 1. NDP Register Seftor IAPX 86/20,88120

3-3

0

AP~113

The register. set of the host and BQ87 are in separate
components. Direct transfer of values between the two
register sets in one instrUction is not possible. To transfer values between the host and numeric· register sets,
the value must first pass through memory. The memory
format of a 16-bit short integer used by the NPX is identical to that of the host, ensuring fast, easy transfers.

8087 EMULATOR OVERVfEW
The NDP has two basic implementations, an 8087 coinponent or with its software emulator (E8087);"Thedeci~
SiOli'tO use the emulator or component has no'effect on
programs at the source leveL At the source level, all instructions, data types, and features are used the same
,
way.

Since an 8086 or 8088 does not provide single instruction support for the remaining numeric data types, host
programs reading or writing these data types must conform to the bit and byte ordering established by the
NPX.

The emulator requires all nu,neric instruction opcodes
to be replaced with 'an fnterrupt instruction. This
replacement is performed by the LINK86 program.' Interrupt vectors in the host's interrupt vector table will
point to numeric instruction emulation routines in the
8087 software emulator.

Writing programs using numeric instructions is as simple as with the host's instructions. The numeric instructions are simply placed in line with the host's instructions. They are executed in the same order as they appear in the instruction stream. Numeric instructions
follow the same fbrm as the host instructions. Figure 2
shows the ASM 86/88 representations for different
numeric instructions and their similarity to host instructions.
VALUE
TABLE [8X]
ST,ST(1)

FILD
FIADD
FADD

DATA
~ORMATS

PRECISION
7

01 7

1Q4

16 BITS

I"

SHORT INTEGER

10'

32 BITS

131

1019

64 BITS

I"

PACKED BCD

1018

18 DIGITS

S

SHORT REAL

10:!:38

24 BITS

INTEGER

,

MOST SIGNIFICANT BYTE
RANGE

WORD INTEGER

~ONG

When using the 8087 emulator, the linker changes all the
2-byte wait-C1scape, nop-escape, wait-segment override,
or nop-segment override sequences generated by an
assembler or compiler for the 8087 component with a
2-byte interrupt instruction. Any remaining bytes of the
numeric instruction are left unchanged.

01 7

01 7

01 7 ,

01 7

01 7

01 7

01 7

TWO'S COMPLEMENT

101

loj

- 1 0 17

0161

10:!:308

53 BITS

S

11;10

TEMPORARY REAL

10:1:.4932

64 BITS

S

IE14

TWO'S
COMPLEMENT

1 0,

S IE7 EO) F,

LONG REAL

oj

TWO'S COMPLEMENT

101

I

01 7

F231

Eol f,

Fo ,MPLICIT

,

F52)

I

Eo Fo

001

Fo IMPLICIT

F..

INTEGER: 1
PACKED BCD: (-115(017." Dol
REAL: (-1IS(2E.•JAS)(Fo.F, ... )
BIAS = 127 FOR SHORT REAL
1023 FOR LONG REAL
16383 FOR TEMP REAL

Figure 2. NPX Data Types

3-4

I

Ap·113
When the host encounters numeric and emulated instruction, it will execute the software interrupt instruction formed by the linker. The interrupt vector table will
direct the host to the proper entry point in the 8087
emulator. Using the interrupt return address and CPU
register set, the host will decode any remaining part of
the numeric instruction, perform the indicated operation, then return to the next instruction following the
emulated numeric instruction.

SOS7 BASED LINK/LOCATE COMMANDS
LlNKS6 :F1:PROG.OBJ, IO.LlB, SOS7.LlB TO
:F1:PROG.LNK
LOC86 :F1:PROG.LNK TO :F1:PROG
SOFTWARE EMULATOR BASED
LINK/LOCATE COMMANDS

One copy of the 8087 emulator can be shared by all programs in the host.

LlNKS6 :F1 :PROG.OBJ, IO.LlB, ESOS7.LlB,
ESOS7 TO :F1:PROG.LNK
LOCS6 :F1:PROG.LNK TO :F1:PROG

The decision to use the 8087 or software emulator is
made at link time, when all software modules are·
brought together. Depending on whether an 8087 or its
software emulat'Or is used, a different group of library
modules are included for linking with the program.

Figure 3. Submit File Example

If the 8087 component is used, the libraries do not add
any code to the program, they just satisfy external references made by the assembler or compiler. Using the
emulator will not increase the size of individual modules; however, other modules requiring about 16K bytes
that implement the emulator will be automatically
added.,

Isec 337™ MULTIMODULETM BOARD

Selecting between the emulator or the 8087 can be very
easy. Different versions of submit files performing the
link operation can be used to specify the different set of
library modules needed. Figure 3 shows an example of
two, different submit files for the same program using
the NPX with an 8087 or the 8087 emulator.

/

iSBC 337™ MULTIMODULETM Overview

BOARD
(ISBC 86/12A'")

The benefits of the NPX are not limited to systems
which left board space for the 8087 component or memory space for its software emulatoE. Any maximum
mode iAPX 86/1X or iAPX 88/1X system can be upgraded to a numeric processor. The iSBC 337 MULTIMODULE is designed for just this function. The
iSBC 337 provides a socket for the host microprocessor
and an 8087. A 4O-pjn plug is provided on the underside
of the 337 to plug into the original host's socket, as
shown in Figure 4. Two other pins on the underside of
the MULTIMODULE allow easy connection to the
8087 INT and RQ/GTI pins.

OPTIONAL SOLDER
MOUNT

Figure 4. MULTIMODULETM Math Mounting Scheme

3-5

Ap·113

CONSTRUCTING AN iAPX 86/2X OR iAPX
8812X SYSTEM
This section will describe how to design a microprocessor system with the 8087 component. The discussion
will center around hardware issues. However, some of
the hardware decisions must be made based upon how
the software will use the NPX. To better understand
how the 8087 operates as a local bus master, we shall
cover how the coprocessor interface works later in this
section.

Wiring up the 8087
The 8087 can be designed into any 86/IX or 88/IX
system operating in maximum mode. Such a system
would be designated an 8612X or 88/2X. Figure 5 shows
the local bus interconnections for an iAPX 86/20 (or
iAPX 88/20) system. The 8087 shares the maximum
mode host's multiplexed address/data bus, status signals, queue status signals, ready status signal, clock and
reset signal. Two dedicated signals, BUSY and INT, inform the host of current 8087 status. The 10K pull-down
resistor on the BUSY signal ensures the host will always
see a "not busy" statu~ if an 8087 is not installed.
Adding the 8087 to your design has a minor effect on
hardware timing. The 8087 has the exact same timing
and equivalent DC and AC drive characteristics as a
host or lOP on the local bus. All the local bus logic,
such as clock, ready, and interface logic is shared.
The 8087 adds 15 pF to the total capacitive loading on
the shared address/data and status signals. Like the
8086 or 8088, the 8087 can drive a total of 100 pF
capacitive load above its own self load and sink 2.0 mA
DC current on these pins. This AC and DC drive is sufficient for an 86/21 system with two sets of data
transceivers, address latches, and bus controllers for
two separate busses, anon-board bus and an off-board
MULTIBUSTM using the 8289 bus arbiter.
Later in this section, what to do with the 8087 INT and
RQ/GT pins, is covered.
It is possible to leave a prewired 4O-pin socket on the

board for the 8087.. Adding the 8087 to such a system is
as easy as just plugging it in. If a program attempts to
execute any numeric instructions without the 8087 installed, they will be simply treated as NOP instructions
by the host. Software can test for the existence of the
8087 by initializing it and then storing the control word.
The program of Figure 6 illustrates this technique.

_N"" .. "'CO .....

8282

Figure 5. System Diagram

3-6

AU'

12 AD4
13 AD3

A;

~ 000
~ 001

II!

~

A.

A;

A:
A;
A

002
003
~ DO.

o

012

3

ST8

81

~ 82

1
2
3
•

i' 83

za>

~86

t

A67
A7 8
T

87
DE

91

"

..!,j

4191S6
36 A18155

(SSOl8HElS7

37 A171S4

READY 22

RESET 21
elK 19

6 AO'0(A10}

~I!
l-g

n-il

:!
"!-

:;3.

;S"

80

AOI
AI •
A2 3
A3 •
A. 5
A5 6
A6 7
A7 8

~:
~:

a>
N
a>
a>

I 86
! B7

DE

:::::

rocK

~29

-

_

~~

;:

-

NMI 17
INTR 18

NIII
IN",

J~'

•

12 AD4

•

6

eLK AEN

13 ADa"I'
AD.
15
ADI
16 ADO

52 28
51 2;"

18 52

SO

19

26

91 " L

4Ot,
+5V

.....

~

'~
-=-

10~ ~h
+SV

MCE

171

lOB GNO Vee CEN MeEl

iiDEN

a>
N
a>
a>

3 S.

SO

Vee GND GNOMNIfi

T

.:~

3

lID

RllICTO

9 AD7
10 ADS
11 ADS

~!!

~;1

~

liD 32
AQ/CfO 31

::~::~:

4
5 A011(A11)

I

'V

~
....

~

38 AI61S3
AO'5(AI5)"
3 AOI4(AI4}

~ 81

:J>

30
23
2.
25
OSI OSOiiOJGTlmT

~

a:

(.0)

zz
°li
If.

~

Ani
AO
AI
A2
A3

~B4;'~A45
~85~"'A56

Ol!.

BUSYSO

23

"

o

01

28

~'"

6

o
D_

:~
31

017 8

tBO
~

QSO

25

.2'

016 7

T
o

2

DIS

, 007
DE

o

1

011

52

S1 j1!. f.--

_

013 4
DI4 5

a>
N
a>
N

~::

010

~ AD2
~ AD1
~ AD~S1

I=}

~AtOWC ..!

ALE DTIR DEN MRDC MWTC ~ INTA

5

•

.6

-

9

7

II

~I

••

8

II

~I

~

iiiWc"

"ifc)wc

AP·113
Clition. The host's coprocessor interface can read a
value from memory, or identify a region of memory the
coprocessor should use while perf~rming its fun~on.
All the addressing modes of the host are available to
identify memory based operands to the coprocessor.

WHAT IS THE IAPX 86, 88

COPROCESSOR INTERFACE?
The idea of a coprocessor is based on the observation
that hardware specially desi$lled for a function is the
fastest, smallest, and cheapest implementation. But, it is
too expensive to incorporate all desired functions in
general purpose hardware. Few applica~ons could use
all the functions. To build fast, small, eConomical systems, we need some way to mix and match ¢omponents
supporting specialized functions.
'
'

Purpose of the Coprocessor Interface
The coprocessor interface of the general,Purpose 8086
or 8088 microprocessor provides a way to attach specialized hardware in a simple, elegant, and efficient manner. Because the coprocessor hardware is specialized, it
can perform its job much faster than any general purpose CPU of similar size and cost. The coprocessor
interface simply requlles connection to the host's local
address/data, status, clock, ready, reset, test and request/grant signals. Being attached to the host's local
bus gives the coprocessor access to all memory and I/O
resources availabl~ to the host. '

Concurrent Execution of Host and
Coprocessor
After the coprocessor has started its operation, the host
may continue on with the program, executing it in parallel while the coprocessor performs the function started
, earlier. The parallel operation of the coprocessor does
not normally affect that of the host, unless the coprocessor must reference memory or I/O-based operands.
, When the host releases the local bus to the coprocessor,
the host may continue to execute from its internal instruction queue. However, the host must stop when it
also needs the local bus currently in use by the coprocessor. Except for the stolen memory cycle, the operatio~ of the coprocessor is transparent to the host.
This parallel ,operation of host and coprocessor is called '
concurrent eXecution. Concurrent execution of instructions requires less total time then a strictly sequential
execution would. System performance will be higher
with concurrent execution of instructions between the
host and coprocessor.

The coprocessor is independent of system configuration. Using the local bus as the connection point to the
host isolates the coprocessor from the particular system
configuration, since the timing and function of local bus
'
signals are fixed.

SYNCHRONIZATION
In exchange for the higher system performance made
available by concurrent execution, programs must provide what is called synchropization between the host
and coprocessor. Synchronization is necessary whenever
the host and coprocessor must use information available
from the otJter. Synchronization inv!>lv~ either the host
or coprocessor waiting for the,other to finish an operation currently in progress. Since the host executes the
program, and has program control instructions like
jumps, it is given responsibility for synchronization. To
meet this need, a special host instruction exists to synchronize host operation with a coprocessor.

Software's View of the CoproCessor
T~e coprocessor interface allows specialized hardware .
to appear as an integral part of the host's architecture
controlled by the host with special instructions. When
the host encounters these special instructions, both the '
host and coprocessor recognize them and work together
to perform the desired function. No status polling loops
or command stuffmg sequences are required by software to operate the coprocessor.

More information is available to a coprocessor than
simply an instruction opcode and a signal to begin exe"

;
;
,;
;
;

Test for the existenqe of an 8087 in the system. This code will always recognize an 8087
independent of the TEST' pin ,lJsage on the host. No deadlock is poss'ible. USing the 8087
emulator will not change' tHe 'function of this code since: ESC instructions are used, The word
variable control is used for communlcatio'n between the 8087 and the tlost. Note: if an 8087 is
present, it will be initialized, Register ax is not transparent aCross this code.

"

,ESC
XOR
,MOV
ESC
OR
JZ

28,bx
ax,ax
control, ax
15, contr!,1
ax, control
no_8087

;
;
;
;
;
';

FNINITif ~7 is present, The contents of bx is irrelevant
These two instructions insert delay while the 8087 initializes itself
Clear Intial control wlord value
'
,FNSTCW if 8087 Is present
Control == 03ffh if 8087 present
Jump if no 8087 is present
FigureS. Test for EXistence' ofan 6087
3-8

AP·113
would be otherwise idle. The end benefit is faster. execution time of host instructions for a given memory bandwidth.

The host coprocessor synchronization instruction,
called "WAIT", uses the TEST pin of the host. The
coprocessor can signal that it is still busy to the host via
this pin. Whenever the host executes a wait instruction,
it will stop program execution while the TEST input is
active. When the TEST pin becomes inactive, the host
will resume program execution with the next instruction
following the WAIT. While waiting on the TEST pin,
the host can be interrupted at S clock intervals; however, after the TEST pin becomes inactive, the host will
immediately execute the next instruction, ignoring any
periding interrupts between the WAIT and f9llowing
instruction.

The host does not externally indicate which instruction
it is currently executing. Instead, the host indicates
when it fetches an instruction and when, some time
later, an opcode byte is decoded and executed. To id~­
tify the actual instruction the host fetched from Its
queue, the coprocessor must also maintain an instruction stream identical to the host's.
Instructions can be fetched in byte or word increments,
depending on the type of host and the destination address of jumP. instructions executed by the host. When
the host has filled its queue, it stops prefetching instructions. Instructions are removed from the queue a byte at
a time for decoding and execution. When a jump 0ccurs, the queue is emptied. The coprocessor follows
these actions in the host by monitoring the host's bus
status, q~eue status, and data bus signals. Figure 7
shows how the bus status signals and queue status
"
signals are encoded.

COPROCESSOR CONTROL
The h~st has the responsibility for overall pl,'Ogram cotttrol. Coprocessor operation is initiated by special instructions encountered by the host. These instructions
are called "ESCAPE" instructions. When the host ericounters
ESCAPE instruction, the coprocessor is
expected to perform the action indicated by the instruction. There are 576 different ESCAPE instructions,
allowing the coprocessor to perform many different
actions.

an

IGNORING UO PROCESSORS
The host is not the only local bus master capable of
fetching instructions. An Intel 8089 lOP can generate
instruction fetches on the local bus in the course of executing a chalmel program in system memory. In this
case, the status signals 82, SI, and SO generated by the
lOP are identical to those of the host. The coprocessor
must not interpret these instruction prefetches as going
to the host's instruction queue. This problem is solved
with a status signal called S6. The S6 signal identifies
when the local bus is being used by the host. When the
host is the local bus master, S6 =0 during T2 and T3 of
the memory cycle. 'All other bus masters must set S6 = 1
during T2 and T3 of their instruction prefetch cycles.
Any coprocessor must ignore activity on the local bus
when S6= 1.-·

The host's coprocessor interface requires the coprocessor to recogniie when the host has encountered an
ESCAPE instruction. Whenever the host begins executiRg a new instructiop., the coprocessor must look to see
if it is an ESCAPE instruction. Since only the host
fetches instructions and executes them, the coprocessor
must monitor the instructions being executed by the
host.

Host Queue Tracking
The host can fetch an instruction at a variable length
time before the host executes the instruction. This is a
characteristic of the instruction queue of an 8086 or
8088 microprocessor. An i1istruction queue allows prefetching instructions during times when the local bus

.

S2

S1

SO

Function

QS1

QSO

0

0

0

Interrupt Acknowledge

0

0

No Operation

0

0

1

Read I/O Port

0

1

First Byte

Decode Opcode Byte

0

1

0

Write I/O Port

1

0

Empty Queue

Empty Queue

0

1

~

Halt

1

1

SubsequeAt Byte

Flush Byte or if 2nd

1

0

0

Code Fetch

Byte of Escape

1

0

1

Read Data Memory

Decode it

1

1

0

Write Data Memory

1

1

1

Idle
Figure 7.

3-9

Host Function

Coprocessor Activity
No Queue Activity

Ap·113
They, together with the R/M field, bits 2 through 0,
determine the addressing mode and how many subsequent bytes remain in the instruction.

DECODING ESCAPE INSTRUCTIONS
To recognize ESCAPE in~truCtions, the coprocessor
must examine all instructions executed by the host.
When the host fetches an instruction byte from its internal ~ueue, the coprocessor must do likewise.

H08t'8 Re8ponse to an E8cape Instruction

The host performs one of two possible actions when
encountering an ESCAPE instruction: .do nothing or
calculate an effective address and read a word value
beginning at that address. The host ignores the value of
the word read. ESCAPE instructions change no registers in the host other than advancing IP. So, if there is
no coprocessor, or the coprocessor ignores the ESCAPE
instruction, the ESCAPE instruction is effectively a
NOP to the host. Other than calculating a memory address and reading a word of memory, the host makes no
other assumptions regarding coprocessor activity.

The queue status state, fetch opcode byte, identifies
when an opcode byte is ~ing examined by the host. At
the same time, the coprocessor will check if the byte fetched from its internal instruction queue is an ESCAPE
opcode. If the instruction is not an ESCAPE, the
coprocessor will ignore it. The queue status signals for
fetch subsequent byte and, flush queue let the
coprocessor track the host's queue without knowledge
of the length and function of host instructions and addressing modes.

The memory reference ESCAPE instructions have two
purposes: identify a memory operand and for certain instructions, transfer a word from memory to the
coprocessor.

Escape Instruction Encoding
All ESCAPE instructions start with the high-order
S-bits of the instruction being 11011. They have two
basic forms. The non~memory form, listed here, initiates some activity in the coprocessor using the nine
available bits of the ESCAPE instruction to indicate
which function to perform.

COPROCESSOR INTERFACE TO MEMORY
The design of a coprocessor is considerably simplified if
it only requires reading memory values of 16 bits or less.
The host can perform all the reads with the coprocessor
latching the value as it appears on the data bus at the
end of T3 during the memory read cycle. The coprocessor need never become a local bus master to read or
write additional information.

MOD

11111011,1,
1,5 1,4 113 1,2 I"

, I 11111
1,0

19

Is

17

IS

I I I , I 1
15

14

13

12

1,

10

Memory reference forms of the ESCAPE instruction,
shown in Figure 8, allow the host to point out a memory
operand to the coprocessor using any host memory addressing mode. Six bits are available in the memory
reference form to identify what to do with the memory
operand. Of course, the coprocessor may not recognize
all possible ESCAPE instructions, in which case it will
simply ignore them.

If the coprocessor must write information to memory,
or deal with data values longer than one word, then it
must save the memory address and be able to become a
local bus master. The read operation performed by the
host in the course of executing the ESCAPE instruction
places the 2O-bit physical address of the operand on the
address/data pins during T1 of the memory cycle. At
this time the coprocessor can latch the address. If the
coprocessor instruction also requires reading a value, it
will appear on the data bus during T3 of the memory
read. All other memory llytes are addressed relative to
this starting physical address.

Memory reference forms of ESCAPE instructions are
identified by bits 7 and 6 of the byte following the
ESCAPE opcode. These two bits are the MOD field of
the 8086 or 8088 effective address calculation byte.
MOD

11,1,0,1111
1, 5 1,4 1,3 1,2 I"

RIM

1,0

19

18

17

Is

15

14

13

12

MOD

11111011111
1,5 1,4 '13 1,2 I"

19

18

17

16

15

14

13

12

1,0

19

18

17

16

14

13

12

MOD
~ ~ ~

10

RIM
15

1,

10

RIM

111°1 0 , , I ' , ,
~

~

~

~

~

~

4

~

~

4

I I I I

~

Os

D7

08

I I I I

06

1I

, , ,
D8

a·blt displacement

II I I I' ,
D8

DS

D4

D3

02

D,

DO

I

Figure 8. Memory Reference Escape Instruction Forms

3-10

I I , I I I II

07

05

04

03

D2

D,

DO

1.·blt displacement

D,S D'4 D'3 D'2 D" D'0 D9

I

I

I I I

0,5 0 ,4 0,3 012 0" 0,0

I

I
1,

I 11°,1, I 1'1 I

11,1)01111,
~ ~

10

RIM

MOD

1111101111,
1,5 1,4 113 1,2 I"

1,

I 11110, I I I ,
1,0

II·blt direct displacement

1,1, 11 °1

, , 1°,01'

D7

I

I) I I I I
Ds

Ds

D4

D3

D2

D,

Do

I

Ap·113
The next section examines how the 8087, uses the
coprocessor interface of the 8086 or 8088.

Whether the coprocessor becomes a bus master or not,
if the coprocessor has memory reference instruction
forms, it must be able to identify the memory read performed by the host in the course of executing an
ESCAPE instruction.

8087 COPROCESSOR OPERATION
The 8086 or 8088 ESCAPE instructions provide 64
memory reference opcodes and 512 non-memory reference opcodes. The 8087 uses. 57 of the memory reference
forms and 406 of the non-memory reference forms. Figure 9 shows the ESCAPE instructions. not \lsed by the
8087.

Identifying the memory read is straightforward, requiring all the following conditions to be met:
1) A MOD value of 00,01, or 10 in the second byte
of the ESCAPE instruction executed by the host.
2) This is the frrst data read memory cycle performed
, by the host after it encountered the ESCAPE in- '
struction. In particular, the bus status signals
S2-SO will be 101 and S6 will be O.
The coprocessor must continue to track the instruction
queue of the host while it calculates the memory address
and reads the memory value. This is simply a matter of
following the fetch subsequent byte status commands
occurring on the queue status pins.

11 1 1 0 1 1 1 1 1
'15 '14 '13 '12 'II

110
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1

HOST PROCESSOR DIFFERENCES
A coprocessor must be aware of the bus c~aracteristics
of the host processor. This determines how the host will
read the word operand of a memory reference ESCAPE
instruction. If the host is an'8088, it will always perform
two byte reads at sequential addresses. But if the host is
an 8086, it can either' perform a single word read or two
byte reads to sequential addresses.
The 8086 places no restrictions on the alignment of
word operands in memory. It will automatically perform two byte operations for word operands starting at
an odd address. The two operations are necessary since
the two bytes of the operand exist in two different memory words. The coprocessor should be able to accept the
two possible methods of reading a word value on the
8086.
A coprocessor can determine whether the 8086 will perform one or two memory cycles as part of the current
ESCAPE instruction execution. The ADO pin during Tl
of the first memory read 15y the host tells if this is the
only read to be performed as part of the ESCAPE instruction. If this pin is a 1 during Tl of the memory
cycle, the 8086 will immediately follow this memory
read cycle with another one at the next byte- address.

19
0
0
0
0
0
0
0
0
0

18
1
1
1
1
1
1
1
1

15
0
0
0
1
1
1
1
1

1 1
1 1 1

1 1 1
1 1 1
1 1 1

0
1
1
1
1
1

1
1
1
1
1
1

1

11 1 1 I

1

'10

'9

'8

14
1
1
1
0
0
0
1
1

13
0
0
0
0
0
1
0
1

12
0
0
1
0
1
1
1
0

'7

1

11 10
0 1
1 -

1
'4

'5

'8

I
'I

'0

1
2

4
2
2

1
1
1

1
1
1

1

1

------

2
2

8
18

----0 0 0 1

1
1 0
1 0
1 0
1 0
1 1

'2

Available code.

---

1
1
1
0
1
1 1 1 1
0 0 1 0
0 0 1 1
0 1
1

I

1
'3

32

1
1
4
8
18

0 0 1 0
0 1-1':"--

----

---

105 total

Available Non.Memo,ry Reference Escape Instrucllons
MOD

11 1 1°1 1 1 1 1
'IS '14 '13, '12 'II

11019
0 0
0 1
0 1
0 1
1 0
1 0
1 1

Coprocessor Interface Summary
The host ESCAPE instructions, coprocessor interface,
and WAIT instruction allow easy extension of the host's
architecture with specialized processors. The 8087 is
such' a processor, extending the host's architecture as
seen by the programmer. The specialized hardware provided by the 8087 can greatly improve system performance economically in terms of both hardware and
software for numerics applications.

18
1
1
1
1
1
1
1

15
0
0
1
1
0
1
0

'10

II
'9

II
'8 "7

RIM

I

I

'6

'5

I
'4

I
'3

I

1
'2

'I

14 13
0 1
0 1
0 0
1 0
0 1
0 1
0 1

Available Mem,ory Reference Escape Instrucllons

Figure 9.

3-11

'0

Ap·113
Using the 8087 With Custom
Coprocessors
Custom coprocessors, a designer may care to develop,
should limit their use of ESCAPE instructions to those
not used by the 8087 to prevent ambiguity about
whemer anyone" ESCAPE instruction is intended for" a
i1umerics or other custom coprocessor. Using any
escape instruction for a custom coprocessor may conflict with opcodes chosen for future Intel coprocessors.
Operation of an 8087 together with other custom coprocessors is possible under the following con~traints:
1) All 8087 errors are masked. The 8087 will update its
opcode and instruction address registers for the unused opcodes. Unused memory reference instruc-"
tions will also update the operand address value.
Such changes in the 8087 make software-defined
error handling impossible.
2) If the coprocessors provide a aUSY signal, they must
be ORed together for connection to the host TEST
pin. When the host executes a WAIT instruction, it
does not know which coprocessor will be affected by
the following ESCAPE instruction. In" general, all
coprocessors must be idle before executing the
ESCAPE instruction.

Operand Addressing by the 8087
The 8087 has seven different memory operand formats.
Six of them are longer than one word. All are an even
number of bytes in length and are addressed by the host
at the lowest address word.
When the host executes a memory reference ESCAPE
instruction intended to cause a rea" operation by the
8087, the host always reads the low-order word of any
8087 memory operand. The 8087 will save the address
and data read. To read any subsequent wor"s of the
operand, the 8087 must become a local bus master.
When the 8087 has the local bus, it increments the 20-bit
physical address it saved to address the remaining words
of the operand.
When the ESCAPE instruction is intended to cause a
write operation by the 8087, the 8087 will save the address but ignore the data read. Eventu~ly, it will get
control of the local bus, then perform successive write,
increment address operations writing the entire data
value.

8087 OPERATION IN IAPX 88,88 SYSTEMS

The 8087 will work with either an 8086 or 8088 host.
The identity of the host determines the width of the
local bus path. The 8087 will identify the host and
adjust its use of the data bus accordingly; 8 bits for an
8088 or 16 bits for an 8086. No strapping options are
required by the 8087; host identification is automatic.
The 8087 identifies the host each time the host and 8087
are reset via the RESET pin. After the reset signal goes
inactive, the host will begin instruction execution at
memory address FFFFO I6 •
If the host is an 8086 it will perform a word read at that
address; an 8088 will perform a byte read.

The 8087 monitors pin 34 on the first memory cycle
af~er power up. If an 8086 host is used, pin 34 will be the
BHE signal, which will be low for that memory cye1e.
For an 8088 host, pin 34 will be the SSO signal, which
will be high during Tl of the first memory cycle. Based
on this signal, the 8087 will then configure its data bus
width to match that of the host local bus.
For 88/2X systems, pin 34 of the 8087 may be tied to
Vee if not connected to the 8088 SSO pin.
The width of the data bus and alignment of data operands has no effect, except for "execution time and number of memory cycles performed, on 8087 instructions.
A numeric program will always produce the same results
on an 8612X or 8812X with any operand alignment. All
numeric operands have the same relative byte orderings
independent of the host and starting address.
The byte alignment of memory operands can affect the
performance of programs executing on an 8612X. If a
word operand, or any numeric operand, starts on an
odd-byte address, more memory cycies are required to
acces~ the operand than if the operand started on an
even address. The extra memory cycles will lower system
performance.
The 8612X will attempt to minimize the number of extra
memory cycles required for odd-aligned operands. In
these cases, the 8087 will perform first a byte operation,
then a series of word operations, and finally a byte
operation.
88/2X instruction timings are independent of operand
alignment, since byte operations are always performed.
However, it is recommended to align numeric operands
on even boundaries for maximum performance i~ case
the program is transported to an 86/2X.

3-12

Ap·113

ClK

A

~

~

V

r--'"
11

8088

r--

--

RESET
~/Gf1 OS

'I'm

I
I
..... I

. ADDRESS
LATCHES

:--v

~
STATUS

,---y

STB

~7
m:\/aTi) OS

BUSY

rO~

AID

READY

(3)8282'

---1\

READY

..

~AO~:

AID

~

W\

N- Iv'

;L~
'l

V

DATA

11

8286
DATA
TRANSCEIVER

1\

;>;

'l

READY

8087

8284A

T

OE

elK

ClK
ClO<;K
GENERATOR
RESET

RESET

STATUS
RO/GT1

VU\

n

i

-

SYSTEM
READY

-

RO/GT
RESET

Al6

8089

vi- W\
~ IV
DT/R

L-.-;.. READY

elK

4-

~

STATUS

W\

III

-

8288

1\

STATUS

V

BUS
CONTROLLER
eLK

r

DEN

ALE

ICOMMANKSI

1
I

~:

I

ISYSTEMI
I BUS I
L. _ _ .J

Figure 10, iAPX 88/21

.3-13

AP·113
As Table 2 implies, three factors determine when the
host will release the local bus:

RQ/GT CONNECTION
.Two decisions must be made when connecting the 8087
to a system. The first is how to interconnect the RQ/GT
signals of all local bus masters. The RQ/GT decision affects the response time to service local bus requests from
other local bus masters, such as an 8089 lOP or other
coprocessor. The intertupt eonnection affects the
response time to service art interrupt request and how
user-interrupt handlers are written. The implications of
how these pins are connected concern both the hardware
designer and programmer and must be understood by
both.
The RQ/OT issue can be broken into three general ca:tegories, depending on system configuration: 86/20 or
88/20, 86/21 or 88121, and 86122 or 88/22. Remote
operation of an lOP is not effected by the 8087 RQ/OT
connection.

1) What type of host is there, an 8086 or 8088?
2) What is the current instruction being executed?
3),How is the lock prefix being used?
An 8086 host will not release the local bus between the
two consecutive byte operations performed for oddaligned word operands: The 8088, in contrast, will never
release the local bus between the two bytes of a word
transfer, independent of its byte alignment.
Host operations such as acknowledging an interrupt will
not release the local bus for several bus cycles.
Using a lock prefix in front of a host instruction
prevents the host from releasing the local bus during the
execution of thatinstruction.

8087 RQ/GT Function

iAPX 86/20, 88/20
For an 86/20 or 88120 just connect the RQ/GTO pin of
the 8087 to RQ/GTI of the host (see Figure 5), and skip
forward to the interrupt discussion on page 15.

iAPX 86/21, 88/21
For an 86/21 or 88121, connect RQ/GTO of the 8087 to
RQ/OTl of the host, connect RQ/GT of the 8089 to
RQ/OTl of the 8087 (see Figure 10, page 12), and skip
forward to the interrupt discussion on page 15.
The RQ/OTl pin of the 8087 exists to. provide one 1/0
processor with a low maximum wait time for the local
bus. The maximum wait times to gain control of the
local bus for a device attached to RQ/OTI of an 8087
for an 8086 or 8088 host are shown in Table 2. These
numbers are all dependent on when the host will release
the local bus to the 8087.

The presence of the 8087 in the RQ/OT path from the
lOP to the host has little effect on the maximum wait
time seen by the lOP when requesting the local bus. The
8087 adds two clocks of delay to the basic time required
by the host. This low delay is achieved due to a preemptive protocol implemented by the 8087 on RQ/OTl.
The 8087 always gives higher priority to a request for
the local bus from a device attached to its RQ/OTl pin
than to a request generated internally by the 8087. If the
8087 currently owns the local bus and a request is made
to its RQ/OTl pin, the 8087 will finish the current
memory cycle and release the local bus to the requestor.
If the request from the devices arrives when the 8087
does not own the local bus, then the 8087 will pass the
request on to the host via its RQ/OTO pin.

Table 2. Worst Case Local Bus Request Walt Times In

CIO~ks

System
Configuration

No Locked
Instructions

Only Locked
Exchange

iAPX86121
even aligned words

lSi

3S 1

max (lSI'

iAPX 86/21
odd aligned words

lSI

43 2

iAPX 88121

lSI

43 2

max (43 2• 0 )
max (43 2• 0 )

Notes: 1. Add two clocks for each wait state inserted per bus cycle
2. Add four clocks for each wait state inserted per bus cycle
• Execution time of longest locked instruction

Other Locked
Instructions
0)

AP·113

r--,'
I

A

READV

~

...r-

ClK

1\

~
I

ADDRESS
LATCHES

AID

r

V

I

(3)8282

I

8089

(IOPA)

RESET

Vvl
I
I
I

STB

---.J

STATUS

IV

RQIGT

I

I

\

SYSTEM
REr V

IA

RDIGTO
READV

READV

8284A

AID

J\ IA

Ir--lt

8086

ClK

CLOCK

IV

V

~

rv

STATUS

ClK

~

DATA
TRANSCEIVERS

(2)8286
T

OE

DTIIi

DEN

OS I - -

GENERATOR

RESET

RESET

YOrJ

OS

8087
l -I-

~

'ClK
AID

RESET

STATUS

JIlllan

~

lA-

~~
V

~

rv

'4

r-I

1m1(!T
READV

A
AID

1'4
~

1\

V"-

8089

I-

ClK,

4

RESET

ALE

8288
STATUS
BUS CONTROllER
ClK

ICOMMAN DS

I

I
I
r
I
I
ISYSTE MI
j.,

L !.U.! .J

r-

I~

I
I
Vi
I
I
I

JIlllanTES'! I-

READlOIGTO BUSV

~

(lOPS)
-~
STATUS

V

Figure 11. IAPX 86122 System

3-15

Ap·113

IAPX 86/22, 88/22

ditional clocks for an 8086 or 8088 respectively, for'the
equivalent save and restore operations. These operations appear in time-critical context-switching functions
of an operating system or interrupt hancller. This technique has no affect on the maximum wait time seen by
10PB or wait time seen by IOPA due to IOPB.

An 86/22 system offers two alternates regarding to

which lOP to connect an I/O device. Each lOP will offer a different maximum delay time to servide an I/O request. (See Fig. 11)
The second 8089 (IOPA) must use the RQ/GTO pin of
the host. With two lOPs the designer must decide which
lOP services which I/O devices, determined by the maximum wait time allowed between when an I/O device requests lOP service and the lOP can respond. The maximum service delay times of the two lOPs can be very
different. It makes little difference which of the two
host RQ/GT pins are used.

Which lOP to connect to which I/O device in an 86/22
or 88/22 system will depend on how quickly an I/O request by the device must be serviced by the lOP. This
maximum time must be greater than the sum of the
maximum delay of the lOP and the maximum wait time
to gain control of the local bus by the lOP.
If neither lOP offers a fast enough response time, consider remote operation of the lOP.

The different wait times are due to the non-preemptive
nature of bus grants between the two host RQ/GT pins.
No communication of a need to use the local bus is
possible between 10PA and the 8087/IOPB combination. Any request for the local bus by the 10PA must
wait in the worst case for the host, 8087, and 10PB to
finish their longest sequence of memory cycles. 10PB
must wait in the worst case for the host and 10PA to
finish their longest sequence of memory cycles. The
8087 has little effect on the maximum wait time of
IOPB.

8087 INT Connection
The next decision in adding the 8087 to an 8086 or 8088
system is where to attach the INT signal of the 8087.
The INT pin of the 8087 provides an external indication
of software-selected numeric errors. The numeric pro~
gram will stop until something is done about the error.
Deciding where to connect the INT signal can have important consequences on other interrupt handlers.

WHAT ARE NUMERIC ERRORS?

DELAY EFFECTS OF THE 8087

A numeric error occurs in the NPX whenever an operation is attempted with invalid operands or attempts to
produce a result which cannot be represented. If an incorrect or questionable operation is attempted bY,a program, ,the NPX will always indicate the event. Examples
of errors on the NPX are: I/O, square root of -I, and
reading from an empty register. For a detailed description of when the 8087 detects a numeric error, refer to
the Numerics Supplement. (See Lit. Ret).

The delay effects of the 8087 on 10PA can be significant. When executing special instructions (FSAVE,
FNSAVE, FRSTOR), the 8087 can perform SO or 96
consecutive memory cycles with an 8086 or 8088 host,
respectively. These instructions do not affect response
time to local bus requests seen by an IOPB.
If the 8087 is performing a series of memory cycles while
executing these instructions, and 10PB requests the
local bus, the 8087 will stop its current memory activity,
then release th~ local bus to IOPB.

WHAT TO DO ABOUT NUMERIC ERRORS
Two possible courses of action are possible when a
numeric error occurs. The, NPX can itself handle the
error, allowing numeric program execution to continue
undisturbed, or software in the host can handle the
error. To have the 8087 handle a numeric error, set its
associated mask bit in the NPX control word. Eacp
numeric error may be individually masked.

The 8087 cannot release the bus to 10PA since it cannot
know that IOPA wants to use the local bus, like it can
for IOPB.

REDUCING 8087 DELAY EFFECTS
For 86/22 or 88122 systems requiring lower maximum
wait times for IOPA, it is possible to reduce the worst
, case bus usage of the 8087. If three 8087 instructions are
never executed; namely FSA VE, FNSAVE, or
FRSTOR, the maximum number of consecutive memory cycles performed by the 8087 is 10 or 16 for an 8086
, or 8088 host respectively. The function of these instructions can be emulated with other 8087 instructions.

The NPX has a default fIXup action defined for all possible numeric errors when they are masked. The default
actions were carefully selected ,for their generality and
safety.
For example, the default fixup for the precision error is
to round the result using the rounding rules currently in
effect. If the invalid error is masked, the NPX will
generate a special value called indefinite as the result of
any invalid operation.

Appendix B shows an example of how these three instructions can be emulated. This improvment does have
a cost, in the increased execution time of 427 or 747 ad-

3-16

AP·113
NUMERIC ERRORS (CON'T)

The 8086 Family Numerics Supplement recommends
masking all errors except invalid. (See Lit. Ref.). In this
case the NPX will safely handle such errors as
underflow, overflow, or divide by zero. Only truly questionable operations will disturb the numerics program
execution.

Any arithmetic operation with an indefinite operand
will always generate an indefinite result. In this manner,
the' result of the original invalid operation will propagate throughout the program wherevC\" it is used.
When a questionable operation such as multiplying an
unnormal value by a normal value occurs, the NPX will
signal this occurrence by generating an unnormal result.

An example of how infinities and divide by zero can be
harmless occurs when calculating the parallel resistance
of several values with the standard formula (Figure 12).
If RI becomes zero, the circuit resistance becomes O.
With divide by zero and precision masked, the NPX will
produce the correct result.

The required response by host software to a numeric
error will depend on the application. The needs of each
application must be understood when deciding on how
to treat numeric errors. There are three attitudes
towards a numeric error:

NUMERIC EXCEPTION HANDLING
For some applications, a numeric error may not indicate
a severe problem. The numeric error can indicate that a
hardware resource has been exhausted, and the software
must provide more. These cases are called exceptions
since they do not normally arise.

1) No response required. Let the NPX perform the
default rump.
2) Stop everything, something terrible has happened!
3) Oh, not again! But don't disrupt doing something
more important.

Special host ·software will handle numeric error exceptions when they infrequently occur. In the~e cases,
numeric exceptions are expected to be recoverable
although not requiring immediate service by the host. In
effect, these exceptions extend'the functionality of the
NDP. Examples of extensions are: normalized only
arithmetic, extending the register stack to memory, or
tracing special data values.

SIMPLE ERROR HANDLING
Some very simple applications may mask all of the
numeric errors. In this simple case, the 8087 INT signal
may be left unconnected since the 8087 will never assert
this signal. If any numeric errors are detected during the
course of executing the program, the NPX will generate
a safe result. It is sufficient to test the final results of the
calculation to see if they are valid.
Special values like not-a-number (NAN), infinity, indefinite, denormals, and unnormals indicate the type
and severity of earlier invalid or questionable operations.

SEVERE ERROR HANDLING
For dedicated applications, programs should not generate or use any invalid operands. Furthermore, all numbers should be in range ..An operand or result outside
this range' indicates a severe fault in the system. This
situation may arise due to invalid input values, program
error, or hardware faults. The integrity of the program
and hardware is in question, and immediate action is required.
In this case, the INT signal can be used to interrupt the
program currently running. Such an interrupt would be
of high priority. The interrupt handler responsible for
numeric errors might perform system integrity tests and
then restart the system at a known,. safe state. The
handler would not normally return to the point of.error.
Unmasked numeric errors are very useful for testing
programs. Correct use of synchronization, (Page 21),
allows the programmer to find out' exactly what
operands, instruction, and memory values caused the
error. Once testing has finished, an error then becomes
much more serious.

Equivalent resistance =

Figure 12. Infinity Arithmetic Example

3-17

Ap·113
HOST INTERRUPT OVERVIEW
The host has only two possible interrupt inputs, a nonmaskable interrupt (NMI) and a maskable interrupt
.(INTR). Attaching the 8087 INT pin to the NMI input is
not recommended: The following problems arise: NMI
cannot be masked, it is usually reserved for more important functions like sanity timers or loss of power signal,
and Intel supplied software for the NDP will not support NMI interrupts. The INTR'input of the host allows
interrupt masking in the CPl], ·using an Intel 82S9A
Programmable Interrupt Controller (PIC) to resolve
multiple interrupts, and has Intel 'support.
'

NUMERIC INTERRUPT CHARACTERISTICS
Numeric error interrupts are different from regular instruction error interrupts like divide by zero. Numeric
interrupts from the 8087 can occur long after the
ESCAPE instruction that started the failing operation.
For example, after starting a numeric multiply operation, the host may respond to an external interrupt and
be in the process of servicing it when the 8087 detects an
overflow error. In this case the interrupt is a result of
some earlier, unrelated program.
From the point of view of the currently executing interrupt handler, numeric interrupts can cpme from only
two sources: the current hllndler or a lower priority program.

To explicitly disable numeric interrupts, it is recommended that numeric interrupts be disabled at the 8087.
The code example of Figure 13 shows how to disable
any pending numeric interrupts then reenable them at
the end of the handler.' This code example can be safely
placed in any routine which must prevent numeric interrupts from occurring. Note that the ESCAPE instructions act as NOPs if an 8087 is not. present in the system.
It is not recommended to use numeriy mnemonics sin<;e
they may be converted to emulator calls, which run
comparatively slow, if the 8087 emulator used.
Interrupt systems have specific functions like fast
response to external events or periodic execution of
system routines. Adding an 8087 interrupt should not
effect these functions. Desirable goals of any 8087 interrupt configuration are:
- Hide numeric interrupts from interrupt handlers that
don't use the 8087. Since they didn't cause the
numeric interrupt why should they be interrupttld?
- Avoid adding code to interrupt ,handlers that don't
use the 8087 to prevent interruption by the 8087.
- Allow other higher priority interrupts to be serviced
while executing a numeric exception handler.
- Provide numeric exception handling for interrupt
service routines which use the 8087.
- Avoid deadlock as described in a later section
(page 24)

Disable any possible numeric interrupt from the 8087. This code is safe to place in any
procedure. If an 8087 is not present, the ESCAPE instructions will act as nops. These
instructions are not affected by the TEST pin of the host. Using the 8087 emulator will not
convert these instructions into interrupts. A word variable, called control, is required to hold
the 8087 control word. Control must not be changed until it is reloaded into the 8087.
ESC

15, control

NOP
NOP

ESC 28,cx

; (FNSTCW) Save current 8087 control word
Delay while 8Q87 saves current control
register value
(FNDISI) Disable any 8087 interrupts
Set IEM bit In '8087 control register
The contents of cx Is Irrelevant
Interrupts can now be enabled
(Your Code Here)

Reenable any pending interrupts in the 8087. This instruction does not disturb any 8087 Instruction
'
currently in progress since all it does is change the \EM bit in the control registe~.
TEST control, 80H
JNZ $+4
ESC 28,ax

;. Lopk at .IE¥ bit
If IEM = 1 skip FNENI
(FNENI) reenable 8087 interrupts
Figure 13. Inhibit/Enable 8087 Interrupts

3-18

Ap·113

Recommended Interrupt Configurations

5. Case 4 holds except that interrupt handlers may
also generate numeric interrupts. Connect the 8087
INT signal to mUltiple interrupt inputs. One input
would still be the lowest priority input as in case 4.
Interrupt handlers that may generate a numeric interrupt will require another 8087 INT connection
to the next highest priority interrupt. Normally the
higher priority numeric interrupt inputs would be
masked and the low priority numeric interrupt
enabled. The higher priority interrupt input would
be unmasked only when servicing an interrupt
which requires 8087 exception handling.

Five categories cover most uses of the 8087 interrupt in
fixed priority interrupt systems. For each category, an
interrupt configuration is suggested based on the goals
mentioned above.
1. All errors on the 8087 are always masked.

Numeric interrupts are not possible. Leave the
8087 INT signal unconnected.
2. The 8087 is the only interrupt in the system. Connect the 8087 INT signal directly to the host's
INTR input. (See Figure 14 on page 19). A bus
driver supplies interrupt vector 1016 for compatibility with Intel supplied software.

All of these configurations hide the 8087 from all interrupt handlers which do not use the 8087. Only those interrupt handlers that use the 8087 are required to perform any special 8087 related interrupt control activities.

3. The 8087 interrupt is a stop everything event.
Choose a high priority interrupt input that will terminate all numerics related activity. This is a
special case since the interrupt handler may never
return to the point of interruption (i.e. reset the
system and restart rather than attempt to continue
operation) .

A conflict can arise between the desired PIC interrupt
input and the required interrupt vector of 1016 for compatibility with Intel software for numeric interrupts. A
simple solution is to use more than one interrupt vector
for numeric interrupts, all pointing at the same 8087 interrupt handler. 'Design the numeric interrupt handler
such that it need not know what the interrupt vector was
(i.e. don't use specific EOI commands).

4. Numeric exceptions or numeric programming errors are expected and all interrupt handlers either
don't use the 8087 or only use it with all errors
masked. Use the lowest priority interrupt input.
The 8087 interrupt handler should allow further
interrupts by higher priority events. The PIC's
priority system will automatically prevent the 8087
from disturbing other interrupts without adding
extra code to them.

If an interrupt system uses rotating interrupt priorities,
it will not matter which interrupt input is used.

3-19

AP·113

r--'
I
ADDRESS

rO_~
r---

READY

,----:.

RESET

CLOCK
GENERATOR

--

RESET

.-

elK

-- ..
....

STB

•

SYSTEM READY

1,1

AID

- -

l\f

t\

A

~

(218286

V

..,-;::lI

-V

DATA
TRANSCEIVERS
T

STATUS

8086

INTR

I--

fm

l-

RQfGT1

os

t

~~

RQ/GTO

=

T 8286
OE

I

Y

os

VECTOR

BUSY ' -

READY
INT
RESET

ALE

!---

~

1,1

8087

8288

~

elK

STATUS

H
,~

Dl/R

BUS

AID

CONTROLLER

V

INTA

~
STATUS

v

V

DEN

:r

elK

•

Figure 14. iAPX 86120 With Numerics Interrupt Only

•

ADDRESS
L.ATCHES

elK

READY

>--

~

-V

8284A

r-

(318282

3-20

OE

~i
i.-'I
I
I
I
I
,1 I DATA

~

~!
ISYSTEM

1

L!U~ .J

AP·113'
GETTING STARTED IN SOFTWARE

Concurrency Overview

Now we are ready to run numeric programs. Developing
numeric software will be a new experience to some programmers. This section of the application note is aimed
at describing the programming environment and providing programming guidelines for the NPX. The term
NPX is used to emphasize that no distinction is made
between the 8087 component or an emulated 8087.

With the NPX initialized, the next step in writing a
numeric program is learning about cOllcurrent execution
within the NDP.
Concurrency is a special feature of the 80S7, allowing it
and the host to simultaneously execute different instructions. The SOS7 emulator does not provide concurrency
since it is implemented by the host.

Two major areas of numeric software can be identified:
systems software and applications software. Products
such as iRMXTM 86 provide system software as an offthe-shelf product. Some applications use specially
developed systems software optimized to their needs.

The benefit of concurrency to an application is higher
performance. All Intel high'level languages automatically provide for and manage concurrency in the NDP.
However, in exchange for the added performance, the
assembly language programmer must understand and
manage some areas of concurrency. This section is for
the assembly language programmer or well-informed,
high level language programmer..

Whether the system software is specially tailored or
common, they share issues such as using concurrency,
maintaining synchronization between the host and 8087,
and establishing programming conventions. Applications software directly performs the functions of the
application. All applications will be concerned with initialization and general programming rules for ,the NPX.
Systems software will be more concerned with context
switching, use of the NPX by interrupt handlers, and
numeric exception handlers.

Whether the 80S7 emulator or component is used, care
should be taken by the assembly language programmer
to follow the rules described below regarding synchronization. Otherwise, the program may not function correctly with current or future alternatives for implementing the NDP.
Concurrency is possible in the NDP because both the
host and SOS7 have separate arithmetic and control
units. The host and' coprocessor automatically decide
who will perform any single instruction. The existence
of the SOS7 as a separate unit is not normally apparent.

How to Initialize the NPX
The first action required by the NPX is initialization.
This places the NPX in a known state, unaffected by
other activity performed earlier. This initialization is
similar to that caused by the RESET signal of the SOS7.
All the error masks are set, all registers are tagged
empty, the TOP field is set to 0, default rounding, precision, and infinity controls are set. The SOS7 emulator
requires more initialization than the component. Before
the emulator may be used, all its interrupt vectors must
be set to point to the correct entry points within the
emulator.

Numeric instructions, which will be executed by the
SOS7, are simply placed in line with the instructions for
the host. Numeric instructions are executed in the same
order as they are encountered by the host in .its instruction stream. Since operations performed by the SOS7
generally require more time than operations performed
by the host, the host can execute several of its instructions while the S087 performs one numeric operation.

To provide compatibility between the emulator and
component in this special case, a call to an external procedure should be used before the first numeric instruction. In ASMS6 the programmer must call the external
function INITS7. (Fig. 15). For PLMS6, the
programmer must call the built-in function
INIT$REAL$MATH$UNIT. PLMS6 will call INITS7
when executing the INIT$REAL$MATH$UNIT builtin function.
'

IN PLM86:
CALL INIT$REAL$MATH$UNIT;
IN ASM86:
EXTRN

•
•
•
•

The function supplied for INITS7 will be different,
depending on whether the emulator library, called
ES087.LIB, or component library, called SOS7.LIB,
were used at link time. INITS7 will execute either an
FNINIT instruction for the 8OS7 or initialize the SOS7
emulator interrupt vectors, as appropriate.

CALL

INIT87:FAR

INIT87

Figure 15. 8087 Initialization

3-21

AP·113
MANAGING CONCURRENCY

Instruction Synchronization

Concurrent execution of the host and 8087 is easy to
establish and maintain. The activities of numeric programs can be split into two major areas: program control and arithmetic. The program control part performs
activities like deciding what functions to perform, calculating addresses of numeric operands, and loop control.
The arithmetic part simply performs the adds, subtracts, multiplies, and other operations on the numeric
operands. The NPX and host are designed to handle
these two parts separately and efficiently.

Instruction synchronization is required because the 8087
can only perform one numeric operation at a time. Before any numeric operation is started, the 8087 must
have completed all activity from previous instructions.

Managing concurrency is necessary because the arithmetic and control areas must converge to a well-dermed
state when starting another numeric operation. A welldefined state means all previous arithmetic and control
operations are complete and valid.
Normally, the host waits for the 8087 to finish the current numeric operation before starting another. This
waiting is called syncb,ronization.
Managing concurrent execution of the 8087 involves
three types of synchronization: instruction, data, and
error. Instruction and error synchronization are
automatically provided by the compiler or assembler.
Data synchronization must be provided by the assembly
language progammer or compiler.

The WAIT instruction on the host lets it wait for the
8087 to finish all numeric activity before starting another numeric instruction. The assembler automatically
provides for instruction synchronization since aWAIT
instruction i~ part of most numeric instructions. A
WAIT instruction requires 1 byte code space and 2.5
clocks average execution time overhead.
Instruction synchronizati()n as provided by the assembler or a compiler allows concurrent operation in the .
NDP. An execution time comparison of NDP concurrency and non-concurrency is illustrated in Figure 16.
The non-concurrent program places aWAIT instruction
immediately after a multiply instruction ESCAPE instruction. The 8087 must complete the multiply operation before the host executes the MOV instruction on
statement 2. In contrast, the concurrent example allows
the host to calculate the effective address of the next
operand while the 8087 performs the multiply. The ex-·
ecution time of the concurrent technique is the longest
of the host's exec\1tion time from line 2 t05 and the execution time of the 8087 for a multiply instruction. The
execution time of the non-concurrent example is the
sum of the execution times of statements 1 to 5.

This code macro defines two instructions which do not allow any concurrency of execution with
; the host. A register version and memory version of the instruction is shown. It is assumed that the
; 8087 is always idle from the previous instruction. Allow space for emulator fixups.

,

R233 Record RF6:2, Mid3:3, RF7:3
CodeMacro NCMUL dst:T, src:F
RNfix OOOB
R233 (11 B, 001 B, src)
RWfix
EndM
CodeMacro NCMUL memop:Mq
RNfixM 100B, memop
ModRM 001 B, memop
RWfix
EndM
Statement
1

2
3
4
5

Concurrent
FMUL st(O), st(1)
MOV
ax, size A
index
MUL
MOV
bX,ax
FMUL A [bx]
Figure 16. Concurrent Versus Non·Concurrent Program

3-22

Non Concurrent
NCMUL st(O), st(1)
MOV
ax, size A
MUL
index
MOV
bx, ax
NCMULA [bx]

AP·113
Data Synchronization
Managing concurrency requires synchronizing data references by the host and 8087.
Figure 17 shows four possible cases of the host and 8087
sharing a memory value. The second two cases require
the FWAIT instruction shown for data synchronization.
In the first two cases, the host will finish with the
operand I before the 8087 can reference it. The
coprocessor interface guarantees this. In the second two
cases, the host must wait for the 8087 to finish with the
memory operand before proceeding to reuse it. The
FWAIT instruction in case 3 forces the host to wait for
the 8087 to read I before changing it. In case 4, the
FWAIT prevents the host from reading I before the
8087 sets its value.
'

The data synchronization purpose of any FWAIT or
. numeric instruction must be well documented. Otherwise, a change to the program at a later time may
remove the synchronizing numeric instruction, causing'
program failure, as:
FISTP
FMUL
MOV

AX,I

Case 1:

Obviously, the programmer must recognize any 'form of
the two cases shown above which require explicit data
synchronization. Data synchronization is not a concern
when the host and 8087 are using different memory
operands during the course of one numeric instruction.
Figure 16 shows such an example ofthe host performing
activity unrelated to the current numeric instruction
being executed by the 8087. Correct recognition of these
cases by the programmer is the price to be paid for providing concurrency at the assembly language level.

; I is safe to use

Case 3:

MOV
FILD

1,1
I

Case 2:

FILD
FWAIT
MOV

1,5

Case,4:

MOV A,X, I
FISTP I

FISTP
FWAIT
MOV

AX,I

Figure 17. Data Exchange Example

Automatic Data Synchronization
Two methods exist to avoid the need for manual recognition of when data synchronization is needed: use a
high level language which will automatically establish
concurrency and manage it, or sacrifice some performance for automatic data synchronization by the assembler.

This is a code macro to redefine the FIST
instruction to prevent any concurrency
whi·le the instruction runs. A wait
instruction is placed immediately after the
escape to ensure the store is done
before the program may continue. This
code macro will work with the 8087
emulator, automatically replacing the
wait escape with a nop.

When a high level language is not adequate, the
assembler can be changed to always place aWAIT instruction after the ESCAPE instruction. Figure 18
shows an example of how to change the ASM86 code
macro for the FIST instruction to automatically place
an FWAIT instruction after the ESCAPE instruction.
The lack of any possible concurrent execution between
the host and 8087 while the FIST instruction is executing
is the price paid for automatic data synchronization.

CodeMacro FIST memop: Mw
RfixM 111 B, me mop .
ModRM 010B, memop
RWfix
EndM

An explicit FWAIT instruction for data synchronization, can be eliminated by using a subsequent numeric
instruction. After this subsequent instruction has
started execution, all memory references in earlier
numeric instructions are complete. Reaching the next
host instruction after thesynchronizihg numeric instruction indicates previous numeric operands in memory are
availaole.
.

Figure 18. Non·Concurrent FIST Instruction
Code Macro

3-23

AP·113
DATA SYNCHRONIZATION RULES EXCEPTIONS

ERROR SYNCHRONIZATION FOR EXTENSIONS,

There are five exceptions to the above rules for data syn-'
. chroniiation. The 8087 automatically provides data synchronization for these cases. They are necessary to
avoid deadlock (described on page 24). The instructions
FSTSW IFNSTSW, FSTCW IFNSTCW, FLDCW,
FRSTOR, and FLDENV do not require any waiting by
the host before it may read or modify the referenced
memory location.

The NPX can provide a default flXUP for all numeric
errors. A program can mask each individual error type
to. indicate that the NPX should generate a safe, reasonable result. The default error flXUP activity is simply
treated as part of the instruction which caused the, error.
No external indication of the error will be given. A flag
in the numeric status register will be set to indicate that
an error was detected, but no information, regarding
where or when will be available.

The 8087 provides the data synchronization by prevent- .
ing the host from gaining control of the local bus while
these instructions execute. If the host cannot gain control of the local bus, it cannot change a value before the
8087 reads it, or read a value before the 8087 writes into
it.
The coprocessor interface guarantees that, when the
host executes one of these instructions, the 8087 will
immediately request the local bus from the host. This
request is timed such that, when the host finishes the
read operation identifying the memory operand, it will
always grant the local bus to the 8087 before the host
may use the local bus for a data reference while executing a subsequent instruction. The 8087 will not release
the local bus to the host until it has finished executing
the numeric instruction.

Error Synchronization
Numeric errors can occur on almost any numeric instruction at any time during its execution. Page 1S
describes how a numeric error may have many interpretations, depending on the application. Since the response to a numeric error will depend on the application, this section covers topics common to all uses of the
NPX. We will review why error synchronization is needed and how it is provided.
Concurrent execution of the host and 8087 requires synchronization for errors just like data references and
numeric instructions. In fact, the synchronization required for data and instructions automatically provides
error synchronization.
However, incorrect data or instruction synchronization
may not cause a problem until a numeric error occurs. A
further complication is that a programmer may not expect his numeric program to cause numeric errors, but
in some systems they may regularly happen. To better
understand these points, let's look at what can happen
when the NPX detects an error.

If the NPX performs its default action for all errors,
then error synchronization is never exercised. But this is
no reason to ignore error synchronization.

Another alternative exists to the NPX default fixup of
an error. If the default NPX response to numeric errors
is not desired, the host can implement any form of recovery desired for any numeric error detectable by the
NPX. When a numeric error is unmasked, and the error
occurs, the NPX will stop further execution of the
numeric instruction. The 8087 will signa). this event on
the INT pin, while the 8087 emulator will cause interrupt 1016 to occur. The 8087 INT signal is normally connected to the host's interrupt system. Refer fo page 18
for further discussion on wiring the 8087 INT pin.
Interrupting the host is a request from the NPX for
help. The fact that the error was unmasked indicates
that further numeric program execution under the arithmetic and programming rules of the NPX is unreasonable. Error synchronization serves to insure the NDP is
in a well defined state after an unmasked numeric error
occured. Without a well defined state, it is impossible to
figure out why the error occured.
Allowing a correct analysis of the error is the heart of
error synchronization.

NDP ERROR STATES
If concurrent execution is allowed, the state of the host
when it recognizes the interrupt is undefmed. The host
may have changed many of its internal registers and be
executing a totally different program by the time it is interrupted. To handle this situation, the NPX has special
registers updated at the start of each numeric instruction
to describe the state of the numeric proSram when the
failed instruction was attempted. (See Lit. Ref. p. iii)

Besides programmer comfort, a well-definedstate,is important for error recovery routines. They can change the
arithmetic and programming rules of the 8087. These
changes may redefine the default fixup from an error.
change the appearance of the NPX to the programmer,
or change how arithmetic is defined on the NPX ..

3-24

Ap·113
EXTENSION EXAMPLES

The BUSY signal will never go inactive during a numeric
instruction which asserts INT.

A change to an error response might be to automatically
normalize all denormals loaded from memory. A
change in appearance might be extending the register
stack to memory to provide an "infinite" number of
numeric registers. The arithmetic of the 8087 can be
changed to automatically extend the precision and range
of variables when exceeded. All these functions can be
implemented on the NPX via numeric errors and
associated recovery routines in a manner transparent to
the programmer.

The WAIT instructions supplied for instruction synchronization prevent the host from starting another
numeric instruction until the current error is serviced. In
a like manner, the WAIT instructions required for data
synchronization prevent the host from prematurely
reading a value not yet stored by the 801\7, or overwriting a value not yet read by the 8087.
The host has two responsibilities when handling
numeric errors. I.) It must not disturb the numeric context when an error is detected, and 2.) it must clear the
numeric error and attempt recovery from the error. The
recovery program invoked by the numeric error may
resume program execution after proper fixup, display
the state of the NDP for programmer action, or simply
abort the program. In any case, the host must do
something with the 8087. With the INT and BUSY
signals active, the 8087· cannot perform any useful
work. Special instructions exist for controlling the 8087
when in this state. Later, an example is given of how to
save the state of the NPX with an error pending. (See
page 29)

Without correct error synchronization, numeric
subroutines will not work correctly in the above situations.
Incorrect Error Synchronization
An example .of how some instructions written without

error synchronization will work initially, but fail when
moved into a new environment is:
FILD

INC

COUNT
COUNT

FSQRT

Three instructions are shown to load an integer, calculate its square root, then increment the integer. The
coprocessor interface of the 8087 and synchronous execution of the 8087 emulator will allow this program to
execute correctly when no errors occur on the FILD instruction.

Deadlock

But, this situation changes if the numeric register stack
is extended to memory on an 8087. To extend the NPX
stack to memory, the invalid error is unmasked. A push
to a full register or pop from an empty register will
cause an invalid error. The recovery routine for the error must recognize this situation, fixup the stack, then
perform the original operation.

The 8087 BUSY signal prevents the host from executing
further instructions (for instruction or data synchronization) while the 8087 waits for the host to service
the exception. The host is waiting for the 8087 to finish
the current numeric operation. Both the host and 8087
are waiting on each other. This situation is stable unless
the host is interrupted by some other event.

The recovery routine will not work correctly in the example. The problem is that there is no guarantee that
COUNT will not be incremented before the 8087 can interrupt the host. If COUNT is incremented before the
interrupt, the recovery routine will load a value of
COUNT one too large, probably causing the program to
fall. .

Deadlock has varying affects on the NDP's performance. If no other interrupts in the system are possible,
the NDP will wait forever. If other interrupts can arise,
then the NDP can perform other functions, but the affected numeric program will remain "frozen".

An \lndesirable situation may result if the host cannot
be interrupted by the 8087 when asserting INT. This situation, called deadlock, occurs if the interrupt path
from the 8087 to the host is broken.

SOLVING DEADLOCK
Finding the break in the interrupt path is simple. Look
for disabled interrupts in the following places: masked
interrupt enable in the host, explicitly masked interrupt
request in the interrupt controller. implicitly masked interrupt request in the interrupt controller due to a higher
priority interrupt in service, or other gate functions,
usually.in TTL, on the host interrupt signal.

Erro.r Synchronization and WAITs
Error synchronization relies on the WAIT instructions
required by instruction and data synchronization and
the INT and BUSY signals of the 8087. When an unmasked error occurs in the 8087, it asserts the BUSY
and INT signals. The INT signal is to interrupt the host,
while the BUSY signal prevents the host from destroying the current numeric context.

3-25

AP·113,
DEADLOCK AVOIDANCE
Application programmers should not be concerned with
deadlock. Normally" applications programs run with
unmasked numeric errors able to interrupt them. Deadlock is not possible in this case. Traditionally! Systems,
software or interrupt handlers may run with numeric interrupts disabled. Deadlock prevention lies in this do~ain. The golden rule to abide by is: "Never wait on the
8087 if an unmasked error is possible and the 8087 interrupt path may be broken."

Error Synchronization Summary
In summary, error synchronization involves protectill8
the state of the 8087 after an exception. Although not all
applications may initially require error synchronizatioll,
it is just good programming practice to follow the rules.
The advantage of being a "g~" numerics programmer is generality of your program so it can work in
other, more general environments.

Summary
Synchronization is the price for concurrency in the
NDP. Intel high level language compilers will automatically provide concurrency and manage it with synchronization. The assembly language programmer can
choose between using concurrency or not. Placing a
WAIT instruction immediately after any numeric instruction wiIJ prevent concurrency and avoid synchronization concerns.
The rules given above are complete and allow concurrency to be used to full advantage.

Synchronization and the Emulator
The above discussion on synchroniZation takes on
special meaning with the 8087 emulator. The 8087 emulator does not allow any concurrency. All numeric
operand memory references, error tests, and wait for
instruction completion occur within the emulator. As a
result, programs which do not provide proper instruction, data, or error synchronization may work with the
8087 emulator while failing on the component.
Correct programs for the 8087 work correctly on the
emulator.

Special Control Instructions of the NPX
The special control instructions of the NPX: FNINIT,
FNSAVE, FNSTENV, FRSTOR, FLDENV, FLDCW,
FNSTSW, FNSTCW, FNCLEX, FNENI, and FNDISI
remove sorne of the synchronization requirements mentioned earlier. They are discussed here since they represent exceptions to the rules mentioned on page 21.
The instructions FNINIT, FNSAVE, FNSTENV,
FNSTSW, FNCLEX, FNENI, and FNDISI do not wait

for the current numeric instruction to finish before theY
execute. Of these instructions, FNINIT,' FNSTSW,
FNCLEX, FNENI and FNDISI will produce different
results, depending on when they are executed relative to
the current numeric instruction.
For example, PNCLEX will cause a different status
value to result from a concurrent arithmetic operation,
depending on whether is is executed before or after the
error status bits are updated at the end of the arithmetic
. operation. The intended use of F:NCLEX is to clear a
known error status bit which has caused BUSY, to be
asserted, avoiding deadlock.
FNSTSW will safelY, without deadlock, repor:t the busy
and error status of the NPX independent of the NDP interrupt status.
FNINIT, FNENI, and FNDISI are used to place the
NPX into a known state independent of its current
state. FNDISI will prevent an unmasked error from
asserting BUSY without disturbing the current, error
status bits. Appendix A shows an example of using
FNDIS1.
The instructions FNSA VB and FNSTENV provide special functions. They allow saving the state of the NPX in
a single instruction when host interrupts are disabled.
Sev~ral host and numeric instructions are necessary to
save the NPX status if the interrupt status of the host is
unknown. Appendix A and B show examples of saving
the NPX state. As the Numerics Supplement explains,
host interrupts must always be disabled when executing
FNSAVE or FNSTENV.

The seven instructions FSTSWIFNSTSW, J

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2014:07:17 11:35:58-08:00
Modify Date                     : 2014:07:17 11:31:36-07:00
Metadata Date                   : 2014:07:17 11:31:36-07:00
Producer                        : Adobe Acrobat 9.55 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:09600077-2eca-bd4b-8b60-108ff9f6bcf4
Instance ID                     : uuid:e16a7908-2082-7c4d-804b-7d16c277f90d
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 1283
EXIF Metadata provided by EXIF.tools

Navigation menu