1992_National_IBM_Data_Communications_Handbook 1992 National IBM Data Communications Handbook

User Manual: 1992_National_IBM_Data_Communications_Handbook

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

Download1992_National_IBM_Data_Communications_Handbook 1992 National IBM Data Communications Handbook
Open PDF In BrowserView PDF
400029

~ N~tional

~ SemICOnductor

IBM DATA
COMMUNICATIONS
HANDBOOK
1992 Edition

IBM Data Communications
Application Notes
Physical Dimensions

..
•
III

TRADEMARKS
!

Following is the most current list of National Semiconductor Corporation's trademarks and registered trademarks;
ABiCTM
FACTTM
SCXTM
MICROWIRE/PLUSTM
MOLETM
Abuseable™
FACT Quiet Series™
SERIES/800Tt.1
AnadigTM
FAIRCADTM
MPATM
Series 900TM
ANS-R-TRANTM
MSTTM
FairtechTM
Series 3000TM
APPSTM
FAST®
Naked-8TM
Series 32000®
ASPECTTM
National®
Shelf,....ChekTM
FASTr™
Auto-Chem DeflasherTM
5-Star Service™
National Semiconductor®
Simple Switcher™
BCPTM
FlashTM
SofChekTM
National Semiconductor
BI-FETTM
GENIXTM
Corp.®
SONICTM
BI-FET IITM
GNXTM
NAX800TM
SPIRETM
BI-LiNETM
GTOTM
Staggered RefreshTM
Nitride PIUS™
BIPLANTM
HAMRTM
STARTM
Nitride Plus Oxide™
BLCTM
NMLTM
StarlinkTM
HandiScan™
BLXTM
HEX3000TM
NOBUSTM
STARPLEXTM
BMACTM
HPCTM
NSC800TM
ST-NICTM
13L®
NSCISETM
Brite-Lite™
SuperATTM
BSITM
ICMTM
NSX-16TM
Super-BlockTM
CDDTM
INFOCHEXTM
NS-XC-16TM
SuperChipTM
CheckTrackTM
IntegrallSETM
NTERCOMTM
SuperScript™
CIMTM
IntelisplayTM
NURAMTM
SYS32TM
ISETM
CIMBUSTM
OPALTM
TapePak®
CLASICTM
ISE/06TM
OXISSTM
TDSTM
p2CMOSTM
Cloc~ChekTM
ISE/08TM
TeleGate™
. PC MasterTM
COMBO®
ISE/16TM
The National Anthem®
COMBO ITM
ISE32TM
Perfect WatchTM
Time,....ChekTM
COMBO IITM
ISOPLANARTM
Pharm~ChekTM
TINATM
COPSTM microcontrollers
PLANTM
TLCTM
ISOPLANAR-ZTM
CRDTM
KeyScanTM
PLANARTM
Trapezoidal™
DA4TM
PLAYERTM
LERICTM
TRI-CODETM
Plus~2TM '
Datachecker®
LMCMOSTM
TRI-POLYTM
M2CMOSTM
DENSPAKTM
' Polycraft™
TRI-SAFETM
DIBTM
POSilinkTM
Macrobus™
TRI-STATE®
DISCERNTM
Macrocomponent™
TURBOTRANSCEIVERTM
POSitalker™
DISTILLTM
MAPLTM
VIPTM
Power + Control™
DNR®
MAXI-ROM®
POWERplanar™
VR32™
DPVMTM
Mea~ChekTM
WATCHDOGTM
QUAD3000™
E2CMOSTM
XMOSTM
QUIKLOOKTM
MenuMaster™
ELSTARTM
RATTM
XPUTM
Microbus™ data bus
RICTM
MICRO-DACTM
Embedded System
Z STARTM
RTX16TM
Processor™
883B/RETSTM
JLtalker™
EPTM
SABRTM
883S/RETSTM
Microtalker™
E-Z-LlNKTM
MICROWIRETM
Scrip~ChekTM
abel™ is a trademark of Data 1/0 Corporation.
BRIEFTM and UnderWare™ are trademarks of UnderWare, Inc.
Crosstalk® and DCA® are registered trademarks of Digital Communication Associates, Inc.
Hewlett PackardTM is a trademark of Hewlett Packard Company.
IBM®, MICROCHANNEL®, PC®, and PS/2® are registered trademarks of International Business Machines Corp.
IRMATM and SMART ALECTM are trademarks of Digital Communication Associates, Inc.
Microsoft® and MS-DOS® are registered trademarks of Microsoft Corporation.
PAL® is a registered trademark of and used under license from Advanced Micro Devices, Inc.
RELAY GoldTM is a trademark of RELAY Communications, Inc.
SimPC Master™ is a trademark of Simware Inc.
Xeus™ is a trademark of Fischer International Systems Corporation.

LIFE SUPPORT POLICY
NATIONAL'S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR
SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT OF NATIONAL SEMICONDUCTOR CORPORATION. As used herein:
1. Life support devices or systems are devices or systems
which, (a) are intended for surgical implant into the body,
or (b) support or sustain life, and whose failure to perform, when properly used in accordance with instructions
for use provided in the labeling, can be reasonably expected to result in a significant injury to the user~

2. A critical component is any component of a life support
device or system whose failure to perform can be reasonably 'expected to cause the failure of the life support device or system, or to affect its safety or effectiveness.

NationalSemlconductorCorporatlon 2900 Semiconductor Drive, P.O. Box 58090, Santa Clara, California 95052-80901-800-272-9959
TWX (910) 339-9240
National does not assume any responsibility for use of any circuitry described, no circuit patent licenses are implied, and National reserves the right, at any time
without notice, to change said circuitry or specifications.

S"
o
c.
c(')

~National

D

-...
-o·
-

Semiconductor

:::J

Introduction to IBM Data Communications

o

iii
3C

c

D)
D)

IBM 3270/3299 PROTOCOL

NATIONAL'S SOLUTION

The IBM 3270/3299 serial communications protocol was
developed by IBM for the cluster controller-peripheral link in
370 class mainframe systems. Fortune 1000 corporations
that use these systems have large scale networking needs
and often support thousands of terminals and printers. Although PC-based networks have increased in popularity,
shipments of IBM 3270 peripherals have remained steady
over the last few years due to the huge investments made in
both hardware and software application development.

With over a decade of shipments into the IBM 3270 connectivity market, National is the leading standard product semiconductor supplier. The first generation DP8340/41 protocol translation chips were used in DCA's industry standard
IRMA cards which were the first 3270 terminal emulation
products available for IBM PC's. Although the DP8340/41
pair solved many design issues regarding IBM 3270 protocol, bit slice microcontrollers were still required to meet
the fast response times specified by IBM. To address this
issue National introduced the DP8344 Biphase Communications Processor in 1987. This product features a
3270/3299/5250 transceiver tightly coupled to a high
speed RISC. CPU. The BCP was the first single hardware
platform capable of supporting the 3270, 3299 and 5250
datastreams. This new product was well received by corporations such as Memorex Telex, IBM, DEC, Harris Adacom,
Tandberg Data, liS, Apple Computer, and many others.

The 3299 protocol is a variation of the 3270 protocol in that
an 8·bit address byte is asserted between the starting sequence and the first word for each out board transmission
from the controller. This was done to allow up to eight 3270
peripherals to be multiplexed and connected to the controller via a single coax cable, thus reducing cabling costs. The
multiplexing and de-multiplexing is done with a 3299 terminal multiplexer.

With a combination of experience in IBM connectivity protocols, mixed signal design capabilities, extensive laboratory
resources, and knowledge of IBM peripherals (terminals,
printers, terminal emulation cards), National will continue to
develop products that meet the semiconductor needs of our
customers. By working in conjunction with third parties, National can offer the complete hardware and software solution to IBM Data Communications.

IBM 5250 PROTOCOL
The 5250 serial communications protocol was developed by
IBM originally for the mid-range System 3x line of computers. IBM has updated the System 3x series to the AS/400.
The AS/400 line can vary from small office environment
processors to more powerful processors with greatly enhanced networking facilities that rival the smaller 370 class
mainframes. They are typically used in hotels, bank branch
offices and hospitals for a variety of tasks.

iii

o
o
3
3
c

:::J
n·
o·
::s

D)

en

Table of Contents
Introduction ................................................................. .
Alphanumeric Index .......................................................... .

iii
v

Section 1 IBM Data Communications
DP8340 IBM 3270 Protocol Transmitter/Encoder .....' ..........•.....•............
DP8341 IBM 3270 Protocol Receiver/Decoder .................................. .
DP8342 High-Speed 8-Bit Serial Transmitter/Encoder ............................ .
DP8343 High-Speed 8-Bit Serial Receiver/pecoder .............................. .
DP8344B Biphase Communications ~rocessor-BCP ............................. .

1-3
1-12
1-23
1-33
1-44

Section 2 Application Notes,'
AN-641 MPA-II-A Multi-Protocol Terminal Emulation Adapter Using the DP8344 .....
AN-624 A Combined Coax~Twisted Pair 3270 Line Interface for the, DP8344 Biphase
Communications Processor ........ '......................................... .
AN-623 Interfacing Memory to the DP8344B ............................•........
AN-504 DP8344 BCP Stand-Alone Soft-Load System ............................. .
AN-499 "lnterrupts"~A Powerful Tool of the Biphase Communications Processor ... .
AN-625 JRMKSpeeds Command Decoding ........... '........ ; ..... ; .............
AN-627 DP8344 Remote processor Interfacing ...... '" ......... ~ ..... '.......... .
AN-626 DP8344 Timer Application ...................... " ... ~ ................. .
AN-516 Interfacing the DP8344 to Twinax ...................................... .
AN-688 The DP8344 BCP Inverse Assembler ............. ; ..................... .

Section 3

2-3
2':95
2-99
.2-101
2-112
2-117
2-121
2-135
2-152
2-172

Physical Dimensions

. Physical Dimensions ....................................................... ',' .
Bookshelf
Distributors'

iv

3-3

Alpha-Numeric Index
AN-499 "Interrupts"-A Powerful Tool of the Biphase Communications Processor ............... 2-112
AN-504 DP8344 BCP Stand-Alone Soft-Load System ........................................ 2-101
AN-516 Interfacing the DP8344 to Twinax .................................................. 2-152
AN-623 Interfacing Memory to the DP8344B ................................................. 2-99
AN-624 A Combined Coax-Twisted Pair 3270 Line Interface for the DP8344 Biphase Communications
Processor ............................................................................. 2-95
AN-625 JRMK Speeds Command Decoding ................................................ 2-117
AN-626 DP8344 Timer Application ......................................................... 2-135
AN-627 DP8344 Remote Processor Interfacing .............................................. 2-121
AN-641 MPA-II-A Multi-Protocol Terminal Emulation Adapter Using the DP8344 ................ ;.2-3
AN-688 The DP8344 BCP Inverse Assembler ............................................... 2-172
DP8340 IBM 3270 Protocol Transmitter/Encoder ..... ; ........................................ 1-3
DP8341 IBM 3270 Protocol Receiver/Decoder ............................................... 1-12
DP8342 High-Speed 8-Bit Serial Transmitter/Encoder ................ ; ........................ 1-23
DP8343 High-Speed 8-Bit Serial Receiver/Decoder ........................................... 1-33
DP8344B Biphase Communications Processor-BCP .......................................... 1-44

v

rn

c

~
~

c

~National

U

Semiconductor

rn

:::s

E

Product Status Definitions

-

(/)

u

:::s

"C

2

a..

Definition of Terms
This data sheet contains the design specifications for product
development. Specifications may change in any manner without notice.
This data sheet contains preliminary data, and supplementary data will
be published at a later date. National Semiconductor Corporation
reserves the right to make changes at any time without notice in order
to improve design and supply the best possible product.
This data sheet contains final specifications. National Semiconductor
Corporation reserves the right to make changes at any time without
notice in order to improve design and supply the best possible product.
National Semiconductor Corporation reserves the right to make changes without further notice to any products herein to
improve reliability, function or design. National does not assume any liability arising out of the application or use of any product
or circuit described herein; neither does it convey any license under its patent rights, nor the rights of others.

vi

Section 1
IBM Data
Communications

III

Section 1 Contents
DP8340 IBM 3270 Protocol Transmitter/Encoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DP8341 IBM 3270 Protocol Receiver/Decoder.........................................
DP8342 High-Speed 8-Bit Serial Transmitter/Encoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DP8343 High-Speed 8-Bit Serial Receiver/Decoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DP8344B Biphase Communications Processor-BCP ....................................

1-2

1-3
1-12
1-23
1-33
1-44

~National

U

Semiconductor

DP8340 IBM 3270 Protocol Transmitter/Encoder
General Description

Features

The DP8340 generates a complete encoding of parallel
data for high speed serial transmission which conforms to
the protocol as defined by the IBM 3270 information display
system standard. The DP8340 converts parallel input data
into a serial data stream. Although the IBM standard covers
biphase serial data transmission over a coax line, the
DP8340 also adapts to general high speed serial data transmission over other than coax lines, at frequencies either
higher or lower than the IBM standard.

•
•
•
•

Ten bits per data byte transmission
Single-byte or multi-byte transmission
Internal parity generation (even or odd)
Internal crystal controlled oscillator used for the generation of all required chip timing frequencies
• Clock output directly drives receiver (DP8341) clock input
• Input data holding register
• Automatic clear status response feature
• Line drivers at data outputs provide easy interface to
biphase coax line or general transmission lines
II < 2 ns driver output skew
• Bipolar technology provides TTL input/output compatibility
• Data outputs power up/down glitch free
II Internal power up clear and reset
• Single + 5V power supply

The DP8340 and its complementary chip, the DP8341 (receiver/decoder) have been designed to provide maximum
flexibility in system designs. The separation of the transmitter/receiver functions provides convenient addition of more
receivers at one end of a biphase line without the need of
unused transmitters. This is specifically advantageous in
control units where typical biphase data is multiplexed over
many biphase lines and the number of receivers generally
exceeds the number of transmitters.

Connection Diagram
Dual·ln·L1ne Package
01 11

Vee

01 10

REG LOAD

Dig

REG FULL

DiS

AUTO RESPONSE

Dl7

TRANSMITTER ACTIVE

016

PARITY CRT

01 5

EVEN/ODD

014

DATA OUT

013

DATA OUT

012

DATA DELAY

eLK OUT

X2

GNO

X1
TLlF/5251-1

Top View
FIGURE 1
Order Number DP8340N
See NS Package Number N24A

1·3

Block Diagram
C~~~I~LI

CLOCK
OUTPUT

RESET

TRANSMITTER
ACTIVE

EVEN/O~~
PARITY

.....'\N\I-II-t~ X2
EXTERNAL
CRYSTAL
18.867 MHz

c::::J

I
I

-C----I-I

CRYSTAL
OSCILLATOR
Xl

CONTROL LOGIC

&....------1

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

REGISTER
LOAD

AUTO·
RESPONSE

~
~A T A

UI\'I\

}

SERIAL
OUTPUTS

DATA
DELAY

REGISTERS
FULL
TLlF/5251-2

FIGURE 2. DP8340 Serial BI-Phase Transmitter/Encoder Block Diagram

Functional Description
while still maintaining even or odd parity in the bit 12 position. This is the format of data word bytes and other commands in the 3270 Standard. The Parity Control input is the
pin which controls when this operation is in effect.

Figure 2 is a block diagram of the DP8340 biphase Transmitter/Encoder. The transmitter/encoder contains a crsytal
oscillator whose input is a crystal with a frequency eight (8)
times the data rate. A Clock Output is provided to drive the
DP8341 receiver/decoder Clock Input and other system
components at the oscillator frequency. Additionally, the oscillator drives the control logic and output shift register/format logic blocks.

Another feature of the transmitter/encoder is the internal
TI / AR (Transmission Turnaround/Auto Response) capability. After each Write type message from the control unit in
the 3270 Standard, the receiving unit must respond with
clean status (bits 2 through 11). With the transmitter/encoder, this function is accomplished simply by forcing the AutoResponse input to the Logic "0" state.

Data is parallel loaded from the sytem data bus to the transmitter/encoder's input holding register. This data is in turn
loaded by the transmitter/encoder to its output shift register
if this register was empty at the time of the load. During this
load, message formatting and parity are generated. The formatted message is then shifted out at the bit rate frequency
to the TIL to biphase block which generates the proper
data bit formatting. The three data outputs, DATA, DATA,
and DATA DELAY provide for flexible interface to the coax
line with a minimum of external components.

Operation of the transmitter/encoder is automatic. After the
first data byte is loaded, the Transmitter Active output is set
and the transmitte.r/encoder immediately formats the input
data and serially shifts it out its data outputs. If the message
is a multi-byte message, the internal format logic will modify
the message data format for multi byte as long as the next
byte is loaded to the input holding register before the last
data bit of the previous data byte is transferred out of the
internal output shift register. After all data is shifted out of
the transmitter/encoder the Transmitter Active output will
return to the inactive state.

The Control Logic block interfaces to all blocks to insure
proper chip operation and sequencing. It controls the type
of parity generation through the Even/Odd Parity input. An
additional feature provided by the transmitter/encoder is
generation of odd parity and placement in bit 10 position

1-4

Detailed Pin/Functional Description
Crystal Inputs X 1 and X2

is edge sensitive, the data present during the logic "0" state
of this input is loaded, and the input data must be valid
before the logic "0" to logic "1" transition. It is after this
transition that the transmitter/encoder begins formatting of
data for serial transmission.

The oscillator is controlled by an external, parallel resonant
crystal connected between the X1 and X2 pins. Normally, a
fundamental mode crystal is used to determine the operating frequency of the osicllator; however, overtone mode
crystals may be used.

Auto Response (IT/ AR)

This input provides for automatic clear data transmission (all
bits in logic "0") without the need of loading all zero's.
When a logic "0" is forced on this inpiut the transmitter/encoder immediately responds with transmission of "clean
status". This function is necessary after the completion of
each write type command and in other functions in the 3270
specification. In the logic "1" state the transmitter/encoder
transmits data entered on the Data Inputs.

Crystal Specifications (Parallel Resonant)

Type

AT-cut crystal

Tolerance

0.005% at 25°C
0.01 % from O°C to + 70°C
Fundamental (Parallel)

Stability
Resonance
Maximum Series Resistance

Dependent on Frequency
(For 18.867 MHz, 50n)

Load Capacitance
R

15 pF
C

TO PIN X2 ~L- VCC

..L

PIN (14)

CJ

TO PIN Xl
PIN (13)

___T....
_
....

r-

CRYSTAL
SEE (FIG. 16)

FREQ

R

Even/Odd Parity

This input sets the internal logic of the DP8340 transmitter/
encoder to generate either even or odd parity for the data
byte in the bit 12 position. When this pin is in the logic "0"
state odd parity is generated. In the logic "1" state even
parity is generated. This feature is useful when the control
unit is performing a loop back check and at the same time
the controller wishes to verify proper data transmission with
its receiver/decoder.

C

10 MHzto 500n
30 pF
20 MHz ±10%
>20 MHz

120n
15 pF
±10%

TL/F/5251-3

Parity Control/Reset
Depending on the type of message transmitted, it is at times
necessary in the IBM 3270 specification to generate an additional parity bit in the bit 10 position. The bit generated is
odd parity on the previous eight (8) bits of data. When the
Parity Control input is in the logic "1" state the data entered
at the Data Bit 10 position is placed in the transmitted word.
With the Parity Control input in the logic "0" state the Data
Bit 10 input is ignored and odd parity on the previous data
bits is placed in the normal bit 10 position while overall word
parity (bit 12) is even or odd (controlled by Even/Odd Parity
input). This eliminates the need for external logic to generate the parity on the data bits.
Truth Table

FIGURE 3. Connection Diagram

If the DP8340 transmitter is clocked by a system (clock
crystal oscillator not used), pin 13 (X1 input) should be
clocked directly using a Schottky series (74S) circuit. Pin 14
(X2 input) may be left open. The clocking frequency must be
set at eight times the data bit rate. Maximum input frequency is 28 MHz. For the IBM 3270 Interface, this frequency is
18.867 MHz. At this frequency, the serial bit rate will be
2.358 Mbits/sec.
Clock Output

The Clock Output is a buffered output derived directly from
the crystal oscillator block and clocks at the oscillator frequency. It is designed to directly drvie the DP8341 receiver/
decoder Clock Input as well as other system components.
Registers Full

This output is used as a flag by the external operating system. A logic "1" (active state) on this output indicates that
both the internal output shift register and the input holding
register contain active data. No additional data should be
loaded until this output returns to the logic "0" state (inactive state).

Parity Control Input

Transmitted Data Bit 10

Logic "1"

Data entered on Data Input 10

Logic "0"

Odd Parity on 8-bit data byte

When this input is driven to a voltage that exceeds the power supply level (9V to 13V) the transmitter/ encoder is reset.
Serial Outputs-DATA, DATA, and DATA DELAY

These three output pins provide for convenient application
of data to the biphase Coax line (see Figure 15 for application). The Data outputs are a direct bit representation of the
biphase data while the DATA DELAY output provides the
necessary increment to clearly define the four (4) DC levels
of the pulse. The DATA and DATA outputs add flexibility to
the DP8340 transmitter/encoder for use in high speed differential line driving applications.

Transmitter Active

This output will be in the logic "1" state while the transmitter/encoder is about to transmit or in the process of transmitting data. Otherwise, it will assume the logic "0" state
indicating no data presently in either the input holding or
output shift registers.
Register Load

The Register Load input is used to load data from the Data
Inputs to the input holding register. The loading function

III
I

1-5

C)
~

~
D-

r---------------------------------------------------------------------------------------,
Functional Timing Waveforms-Message Format

C

Single Byte Transmission

t

t

TRANSMISSION
TERMINATION

TRANSMISSION
START

REG FULL

--I1____________

----(~,~

DATA _ _ _....

DATA

. DATA DELAY

111 11 11 1 1
\-STARTING

SEQUENCE-----~
TL/F/5251-4

FIGURE 4. Overall Timing Waveforms for Single Byte
Multi-Byte Transmission
SYNC BIT
BYTE 2

u

PARITY
BYTE X

((

TA-----1

~~

DATA _ _ _....

I I

I I

~~

DATA

L

1 11 11 1

j

r-IJ.D~

DATA DELAY

1 ICODEVIOLATION

SY~CI B~T(? B1T IsY1cIB~T
BIT

2

12

BIT

2

B1T
12

I

-si~8~~~E

STARTING SEQUENCE

TL/F/5251-5

FIGURE 5. Overall Timing Waveforms for Multi-Byte

1·6

Absolute Maximum Ratings

(Note 1)
Maximum Power Dissipation @25°C·
Dual-In-Line Package
'Derate dual·in·line package 20 mWI'C above 25"C.

If Military/Aerospace specified devices are required,
please contact the National Semiconductor Sales
Office/Distributors for availability and specifications.
Supply Voltage, Vee

7V

Input Voltage

Operating Conditions,

5.5V

Output Voltage

5.25V

Storage Temperature Range

Supply Voltage, (Vee)

- 65°C to + 150°C

lead Temperature (Soldering, 10 sec.)

2500mW

Min
4.75

Max
5.25

Units
V

a

+70

°C

Ambient Temperature, TA

300°C

Electrical Characteristics (Notes 2 and 3)
Symbol

Parameter

ConditIons

VIH

logic "1" Input Voltage
(All Inputs Except X1 and X2)

VIL

logic "a" Input Voltage
(All Inputs Except X1 and X2)

VeLAMP

Input Clamp Voltage
(All Inputs Except X1 and X2)

liN = -12 mA

IIH

logic "1" Input Current
Register load Input

Vee = 5.25V
VIN = 5.25V

IlL

logic "a" Input Current
Register load Input

VOH1

logic "1" All Outputs Except ClK OUT,
DATA, DATA, and DATA DELAY

Min

,Vee = 5.25V
VIN = 0.5V

All Inputs Except X1 and X2

VOH2
VOL1

logic "a" All Outputs Except ClK OUT,
DATA, OATA and DATA DELAY Outputs

Max

2.0

All Others Except X1 and X2

logic" 1" for CKl OUT, DATA,
OATA and DATA DELAY Outputs

Typ

V
0.8

V

-0.8

-1.2

V

0.3

120

,.,.A

0.1

40

,.,.A

-15

-300

,.,.A

-5

-100

,.,.A

3.2

3.9

V

10H = -1 mA

2.5

3.4

V

10H = -10 mA

2.6

3.0

V

'IOH = -100,.,.A

"

Units

.10L =

5 mA

0.35

0.5

V

0.4

0.6

V

logic "a" for ClK OUT, DATA,
DATA and DATA DELAY Outputs

IOL = 20 mA

Short Circuit Current for All Outputs
Except ClK OUT, DATA, DATA, and
DATA DELAY

VOUT = OV
(Note 4)

-10

-30

-100

mA

IOS2

Short Circuit Current for DATA,
DATA, and DATA DELAY Outputs

VOUT = OV
(Note 4)

-50

-140

-350

mA

IOS3

Short Circuit Current for ClK OUT

(Note 4)

-30

-90

-200

mA

lee

Power Supply Current

Vee = 5.25V

170

250

mA

VOL2
IOS1

Timing Characteristics Oscillator Frequency =

18.867 MHz (Notes 2 and 3)
Typ

Max

Units

tpd1

REG LOAD to Transmitter Active (TA)
Positive Edge

load Circuit 1
Figure 7

60

90

ns

tpd2

REG lOAD to REG Full; Positive Edge

Load Circuit 1
Figure 7

45

75

ns

tpd3

Register Full to TA; Negative Edge

load Circuit 1
Figure 7

40

70

ns

tpd4

Positive Edge of REG lOAD to
Positive Edge of DATA

load Circuits 1 & 2
Figure 9

50

80

ns

Symbol

Parameter

Conditions

1-7

Min

I

III

Timing Characteristics Oscillator Frequency =

18.867 MHz (Notes 2 and 3) (Continued)
Typ

Max

Units

tpd5

REG LOAD to DATA; Positive Edge

Load Circuits 1 & 2
Figure 9, (Note 6)

380

475

ns

tpd6

REG LOAD to DATA DELAY; Positive Edge

Load Circuits 1 & 2
Figure 9, (Note 6)

160

250

ns

tpd7

Positive Edge of DATA to Negative Edge
of DATA DELAY

Figure 9, (Note 6)

100

115

ns

Positive Edge of DATA DELAY to Negative
Edge of DATA

Figure 9, (Note 6)

110

125

ns

2

6

ns

70

110

ns

4 X T -50

ns

21

30

ns

23

33

ns

45

75

ns

50

80

ns

45

75

ns

Symbol

tpd8

Parameter

Conditions

Load Circuit 2
Load Circuit 2

t pd9,
tpd10

Skew between OATA and DATA

tpd11

Negative Edge of Auto Response to
Positive Edge of TA

Figure 10

Maximum Time Delay to Load Second Byte
after Positive Edge of REG FULL

Figure 8, (Note 6)

tpd12
tpd13

Min

Load Circuit 2
Figure 9

X1 to CLK OUT; Positive Edge

Load Circuit 1
Load Circuit 1
Load Circuit 2
Figure 13

tpd14

X1 to CLK OUT; Negative Edge

Load Circuit 2
Figure 13

tpd15
tpd16
tpd17

Negative Edge of AR to Positive
Edge of REG FULL

Figure 10

Load Circuit 1

Skew between TA and REG FULL during
Auto Response

Figure 10

REG LOAD to REG FULL; Positive Edge
for Second Byte

Figure 14

Load Circuit 1
Load Circuit 1

tpw1

REG LOAD Pulse Width

Figure 12

tpw2

First REG FULL Pulse Width (Note 5)

Load Circuit 1
Figure 7, (Note 6)

tpw3

REG FULL Pulse Width prior to Ending
Sequence (Note 5)

A'gure 7, (Note 6)

tpw4

Pulse Width for Auto Response

Figure 10

ts

Data Setup Time prior to REG LOAD
Positive Edge, Hold Time (tH) = 0 ns

Figure 12

tr1

Rise Time for DATA, OATA, and DATA
DELAY Output Waveform

Figure 11

Fall Time for DATA, DATA, and DATA
DELAY Output Waveform

Figure 11

tf1
tr2

Rise Time for TA and REG FULL

Load Circuit 2
Load Circuit 1
Figure 15

tf2

Fall Time for TA and REG FULL

8 x T

Load Circuit 1,

Load Circuit 2

Load Circuit 1
Figure 15

ns

40

+ 60

8x T

+ 100

5XB

ns
ns

40

ns
15

25

ns

7

13

ns

5

11

ns

20

30

ns

15

25

ns

(Note 7)
Data Rate Frequency
Mbits/s
DC
3.5
(Clock Input must be
this Frequency)
Note 1: "Absolute Maximum Ratings" are those values beyond which the safety of the device cannot be guaranteed. They are not meant to imply that the device
should be operated at these limits. The table of "Electrical Characteristics" provides conditions for actual device operation.
Note 2: Unless otherwise specified, min.lmax. limits apply across the O·C to + 70·C temperature range and the 4.7SV to S.2SV power supply range. All typical
values are for TA = 2S·C and Vee = S.OV.
Note 3: All currents into device pins are shown as positive; all currents out of device pins are shown as negative; all voltages are referenced to ground, unless
otherwise specified. All values shown as max. or min. are so classified on absolute basis.
Note 4: Only one output should be shorted at a time. Output should not be shorted for more than one second at a time.
Note 5: T = 1/(Oscillator Frequency), unit for T should be ns. 8 = 8T
Note 6: Oscillator Frequency Dependent.
Note 7: For the IBM 3270 Interface, the data rate frequency is 2.3S8 Mbits/s. 28 MHz clock frequency corresponds to 3.7S% jitter when referenced to Figure 10 of
DP8341 Datasheet.

fMAX

ax

1-8

C

."

Timing Characteristics (Continued)

co
w

Load Circuit 1

~

Load Circuit 2

o

Vee

vee

TL/F/5251-6

TLlF/5251-7

FIGURE 6. Test Load Circuits

Timing Waveforms
~--------~~------------------3V

50%

II~

,2

R~ru:: ------I------Jf.~ . r JVOH
50

%-VOL

-tPW2-! ~(--J !-tpw3TLlF/5251-B

FIGURE 7. Timing Waveforms for Single Byte Transfer

'It:

3V

~~r.:~

--=it__t~Pd12

REG FULL

VOH

~%

" .

VOL

_ _ _ _ _oJ.

WINDOW
TO LOAD MULTI-BYTE DATA 17'1zxB

.
TL/F/5251-9

FIGURE 8. Maximum Window to Load Multi-Byte Data

3V

tpd4
\

DATA

'----------'

VOL

•

VOH
DATA DELAY
TL/F/5251-10

FIGURE 9. Timing Waveforms for Three Serial Outputs
1-9

C) , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,
~
C")

co
a.
C

Timing Waveforms

(Continued)
~,

__------~~-----------------------3Y
50%

TA

REG FULL
TL/F/5251-11

FIGURE 10. Timing Waveforms for Auto-Response

10%
1'----YoL
TL/F/5251-12

FIGURE 11. Output Waveform for DATA, DATA, DATA DELAY (Load Circuit 2)

REG LOAO

--------,.ii

i llory----I-'s- 'V1-'H=on5 3Y
lPW1

50%

3Y

DATA OR PARITY -------~'V
CONTROL

11\...._______ OY

Ii\

TLlF/5251-13

FIGURE 12. Register Load Waveform Requirement

Xl

OV

eLK OUT

VOL
TL/F/5251-14

FIGURE 13. Timing Waveforms for Clock Pulse

REG LOAD

TO

y~"l
-I

,-----------------------------3Y
50%

OV
OH

~
50%

_lpd17

Ipd3

-lpd2

VOL

-

VoH

REG FULL

50%

VoL
TL/F/5251-15

FIGURE 14. Timing Waveforms for Two Byte Transfer

10%
1.....- - - - - - - VOL
TLlF/5251-16

FIGURE 15. Rise and Fall Time Measurement for TA and REG Full

1-10

Typical Applications
FIG.J

~VCC
'PARITY CONTROL

r--....&.;;;.;...---il..,,;..;;~.,

AUTO RESPONSE
DP8340
TRANSMITTERI
ENCODER
REG FULL

TRANSMITTER
ACTIVE

~I
~I

RECEIVER
DISABLE
DATA
AVAILABLE

~I+-----t

~ ...__
ER_R_O_R_-I

t;;
~

•

tiN

DP8341
RECEIVERI
DECODER

OUTPUT CONTROL
OUTPUT ENABLE

1:1:1 PULSE
TRANSFORMER
FIG. 17

BI·PHASE
INPUT
-IN

IRECEIVER ACTIVE
TL/F/5251-17

FIGURE 16. Typical Applications for IBM 3270 Interface

+5V

DATA
DELAY

1

I'

__ 1'!..._
A

OS3487

A

-,

Rl
150

a:

~
~

DATA

z
c

90Q COAX
(RG62A/U)

a:

....

...
e

~

~

R5
150

E

TRANSMITTER
ACTIVE

I2
I

5.

+IN]

CONNECT TO
OPB341
RECEIVER

L __ ,*,s_--1

&
R6
120

-IN
6

GND
TL/F/5251-18

Note 1: Resistance values are in

•

I

n, ± 5%, 114 W

Note 2: Tl is a 1:1:1 pulse transformer, LMIN = 500 ",H for 18 MHz system clock. Pulse Engineering Part No. 5762/Surface Mount, 5762M/PE·85762. Technitrol
Part No. 11 LHA, Valor Electronics Part No. CT1501 or equivalent transformers.
Note 3: Crystal manufacturer's Midland Ross Corp. NEL Unit Part No. NE·18A (C2560N)
@ 18.867 MHz.

@

18.867 MHz and the Viking Group of San Jose, CA Part No. VXB46NS

FIGURE 17. Translation Logic
1-11

I

.,..
"II:t
Cf)

co
a..

C

~National

U

Semiconductor

DP8341 IBM 3270 Protocol Receiver/Decoder
General Description

Features

The DP8341 provides complete decoding of data for· high
speed serial data communications. In specific, the DP8341
recognizes serial data that conforms to the IBM 3270 Information Display System Standard and converts it into ten
(10) bits of parallel data. Although this standard covers biphase serial data transmission over a coax line, this device
easily adapts to generalized high speed serial. data transmission on other than coax lines atfrequencles either higher or lower than the IBM 3270 standard.

_ DP8341 receivers ten (10) bit data bytes and conforms
to the IBM 3270 Interface Display System Standard
_ Separate receiver and transmitter provide maximum
system design flexibility
iii Even parity detection
_ High sensitivity input on receiver easily interfaces to
coax line
II Standard TTL data input on receiver provides generalized transmission line interface and also provides
hysteresis
• Data holding register
• Multi-byte or single byte transfers
_0 TRI-STATE receiver data outputs provide flexibility for
common or separated transmit/receive data bus
operation
.
_ Data transmission error detection or receiver provides
for both error detection and error type definition
_ Bi-polar technology provides TTL input/output compatibility with excellent drive characteristics
_ Single + 5V power supply operation

The DP8341 receiver and· its complementary chip, the
DP8340 transmitter, are designed to provide maximum flexibility in system designs. The separation of transmitter and
receiver functions allows addition of more receivers at one
end of the biphase line without the necessity of adding unused transmitters. This is advantageous specifically in control units where typically biphase data is multiplexed over
many biphase lines and the number of receivers generally
outnumber the number of transmitters. Tile separation of
transmitter and receiver function provides an additional advantage in flexibility of data bus. organization. The data bus
outputs of the receiver are TRI-STATE®, thus enabling the
bus configuration to be organized as either a common transmit/receive (bi-directional) bus or as separate transmit and
receive busses for higher speed.

o

Connection Diagram
Dual-ln-L1ne Package
RECEIVER DISABLE

VCC

+AMPlIFIER INPUT

0011

-AMPLIFIER INPUT

0010

DATA (TTL)

DOg

DATA CONTROL

D08

CLOCK

007

RECEIVER ACTIVE

006

ERROR

DOS

REGISTER IIEAII

D04

DATA AVAILABLE

003

OUTPUT CONTROL
GNO

002
12

13

OUTPUT ENABLE
TLlF/5238-2

Top View
Order Number DP8341N
See NS Package Number N24A
FIGURE 1

1-12

Block Diagram

1-------------. :mJ~EII

CLOCK - - - - - - - - - ,

CON~:J~ - - - - - - - ,

AMPLIFIER
(INPUT)
IIEOISTEII

mil

DATA
AVAILABLE

R~fll~t~ ------....--~I

OUTPUT
ENABLE

ERROR OUTPUT

PARALLEL OUTPUT DATA
TL/F/5238-3

FIGURE 2. DP8341 Serial BI-Phase Receiver/Decoder Block Diagram

Block Diagram Functional Description
Figure 2 is a block diagram of the DP8341. This chip is

register and the holding register are full a Data Overflow
Error will be detected, terminating the message. Data is
read from the holding register through the TRI-STATE Output Buffers. The Output Enable input is the TRI-STATE control for these outputs and the Register Read input signals
the receiver that the read has been completed.

essentially a serial in/parallel out shift register. However,
the serial input data must conform to a very specific format
(see Figures 3-5). The message will not be recognized unless the format of the starting sequence is. correct. Deviations from the format in the data, sync bit, parity or ending
sequence will cause an error to be detected, terminating the
message.
Data enters the receiver through the differential input amplifier or the TTL Data input. The differential amplifier is a high
sensitivity input which may be used by connecting it directly
to a transformer coupled coax line, or other transmission
medium. The TTL Data input provides 400 mV of hysteresis
and recognizes TTL logic levels. The data then enters the
demodulation block.

When the receiver detects an ending sequence the Receiver Active output will be reset to a logic "a" indicating the
message has been terminated. A message will also termi~
nate when an error is detected. The Receiver Active output
used in conjunction with the Error output allows quick response to the transmitting unit when an error free message
has been received.
The Error Detection and Identification block insures that valid data reaches the outputs of the receiver. Detection of an
error sets the Error output to a logic "1" and resets the
Receiver Active output to a logic "0" terminating the message. The error type may be read from the data bus outputs
by setting the Output Control input to logic "0" and enabling
the TRI-STATE outputs. The data bit outputs have assigned
error definitions (see error code definition table). The Error
output will return to a logic "a" when the next starting sequence is received, or when the error is read (Output Control to logiC "a" and a Register Read performed).

The data demodulation block samples the data at eight (8)
times the data rate and provides signals for detecting the
starting sequence, ending sequence, and errors. Detection
of the starting sequence sets the Receiver Active output
high and enables the input shift register.
As the ten bits of data are shifted into the shift register, the
receiver will verify that even parity is maintained on the data
bits and the sync bit. After one complete data byte is received, the contents of the input shift register is parallel
loaded to the holding register, assuming the holding register
is empty, and the Data Available output is set. If the holding
register is full, this load will be delayed until that register has
been read. If another data byte is received when the shift

The Receiver Disable input is used to disable both the amplifier and TTL Data receiver inputs. It will typically be connected directly to the Transmitter Active output of the
DP8340 transmitter circuit (see Figure 12).

I

II

I

1-13

Detailed Functional Pin Description
RECEIVER

DP8340 transmitter also operates at this frequency. The
Clock Output of the transmitter is designed to directly drive
the receiver's Clock Input. In addition, the receiver is designed to operate correctly to a data bit rate of 3.5 MHz.

~ISABlE

This input is used 'to disable the receiver's data inputs: The
Receiver Disable input will typically be connected to the
Transmitter Active output of the DP8340. However, at the
system controller it is necessary for both the transmitter and
receiver to be active at the same time in the loop-back
check condition. This variation· can be' accomplished with
the addition of minimal external ,logic.

,RECEIVER ACTIVE
l

Truth Table
Recelver'Disable

Logic

Data Inputs

~~O"

Active

Logic "1"

Disabled

The purpose of this output is to inform the external system
when the DP8341 is in the process of receiving a message.
This output will transition to a logic "1" state after the receipt of a valid starting sequence and transition to logic "0"
when a valid ending sequence is received or an error is
detected. This output combined with the Error output will
.info~m the operating system of the end of an error free data
transmission.
ERROR
The Error output transitions to a logic "1" when an error is
detected. Detection of an error causes the Receiver Active
and the Data Available outputs to transition to a logic "0".
The Error output returns to a logic "0" after the error register has been read or when the next starting sequence is
detected.

AMPLIFIER I~~UTS
The receiver i1asa differential input amplifier which may be
directly connected to the transformer coupled coax line. The
amplifier may also be connected, to, a differential type TTL
line. The ampUfier has 20 mV of hysteresis.

DATA INPUT'

REGISTER READ

This input can be used either as an alternate data input or
as a power-up check input. If the system designer prefers to
use his own amplifier, instead of the one provided on the'
receiver, then this TTL input may be used. Using this pin as
an alternate data input allows self-test of the peripheral system without disturbing the transmission line.

The Register Read input when driven to the logic "0" state
signals the receiver that data in the holding register is being
read by the external operating system. The data present in
the holding register will continue to remain valid until the
Register Read input returns to the logic "1" condition. At
this time, if an additional byte is present in the input shift
register it will be transferred to the holding register, otherwise the data will remain valid in the holding register. The
Data Available output will be in the logic "0" state for a
short interval while a new byte is transferred to the holding
register after a register read.
' ,

DATA CONTROL

This input is the control pin that selects which of 'the inputs
,are used f?r ,data: entry to th~ receiver.
'
, 'Truth Table
.

Data Control

.'

Logic'~O"

L09ic"1"

,

DATA AVAILABLE

Oats input To

This output indicates the existence of a data byte within the
output holding register; It niay also indicate the presence of
a data byte in both the holding register and the input shift
register. This output will transition to the logic "1" state as
soon as data is available and return to the logic "0" state
after each data byte has been read. However, even after the
last data byte has been read and the Data Available output
has assumed the logic "0" state, the last data byte read
from the holding register will remain until new data has been
received.

Data Input
Amplifier Inputs

Note:This input is also used for testing, When the input voltage is raised to
7.5V the chip resets.

CLOCK INPUT
The input is the internal clock of the receiver. It must be set
at eight(8) times the line data bit rate. For the IBM 3270
Standard. this frequency is 18.87 MHz or a data bit rate of
2.358 MHz; The crystal-controlled oscillator provided in the

1-14

Detailed Functional Pin Description

(Continued)
fined in the table below. The Output Control input is the
multiplexer control for the Data/Error bits.

OUTPUT CONTROL
The Output Control input determines the type of information
appearing at the data outputs. In the logic "1" state data will
appear, in the logic "0" state error codes are present.

Error Code Definition
Error Type

Data Bit

Truth Table

Data Overflow (Byte not
removed from holding register
when it and the input shift
register are both full and new
data is received)

002

Output Control

Data Outputs

Logic "0"

Error Codes

Logic "1"

Data

OUTPUT ENABLE
The Output Enable input controls the state of the
TRI·STATE Data outputs.

003

Parity Error (Odd parity detected)

004

Transmit Check conditions
(existence of errors on any or all
of the following data bits: 003,
005, and 006

005

An invalid ending sequence

006

Loss of mid·bit transition
detected at other than normal
ending sequence time

007

New starting sequence detected
before data byte in holding
register has been read

008

Receiver disabled during
receiver active mode

Truth Table
Output Enable

TRI-STATE
Data Outputs

Logic "0"

Disabled

Logic "1"

Active

DATA OUTPUTS
The DP8341 has a ten (10) bit TRI·STATE data bus. Seven
bits are multiplexed with error bits. The error bits are de·

Message Format
Single Byte Transmission

t

t

TRANSMISSION
START

TRANSMISSION
TERMINATION

Multi-Byte Transmission
SYNC BIT
BYTE 2

PARITY
BYTE X

TL/F/5238-4

FIGURE 3. IBM 3270 Message Format

I

III
I

1·15

?-

~

~

a..

r----------------------------------------------------------------------------------------------,
Message Format (Continued)

C

DATA

RECEIVER
ACTIVE _ _ _ _ _ _ _ _ _ _..1

DATA _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _--J
AVAILABLE

REGISTER - - - - - - - - - - - - - - - - - - - - - - - - - - - - -• . - - - READ
U
TLlF/5238-5

FIGURE 4a. Single Byte Message

DATA~~~~~
LINE QUIESCE

I

1

CODE
VIOLATION r - 1 S 1 BYTE

- I I- - 2nd BYTE -

I

•••

Ir---- LAST BYTE -

1

ENDING 1
SEQUENCE

RECEIVER
ACTIVE _ _ _ _ _ _ _ _ _--1

--InL.____. .r···
.

DATA _ _ _ _ _ _ _ _ _ _ _ _ _
AVAILABLE

REGISTER
READ

•

_

u

_

L

-------------------U
TLlF/5238-6

FIGURE 4b. Multi-Byte Message

DATA

LINE QUIESCE

1

VIOCL~~~ON I-

LERROR DETECTED
CORRECT DATA BYTE - - -..... 1

RECEIVER
ACTIVE _ _ _ _ _ _ _ _ _---'

DATA _____________________________...J
AVAILABLE

ERROR

--------------------------------_....

u

REGISTER
READ

OUTPUT
CONTROL
TLlF/5238-7

FIGURE 5. Message with Error

1-16

Absolute Maximum Ratings (Note 1)
If Military/Aerospace specified devices are required,
please contact the National Semiconductor Sales
Office/Distributors for availability and specifications.
Supply Voltage, Vee

Maximum Power Dissipation· at 25·C
Dual-In-Line Package

7V

Input Voltage

Operating Conditions

+5.5V

Output Voltage

5.25V

Storage Temperature Range

Electrical Characteristics
Symbol

Supply Voltage, (Vee>

- 65°C to + 150·C

Lead Temperature (Soldering, 10 seconds)

.2237mW

·Derate Dual·ln·Une package 17.9 mW/,C above 2SoC.

Min

Max

4.75

5.25

V

a

+70

·c

Ambient Temperature, (TA)

300·C
(Notes 2,3, and 5)

Parameter

Conditions

Typ

Min

VIH

Input High Level

VIL

Input Low Level

VIH-VIL

Data Input Hysteresis (TTL, Pin 4)

VeLAMP

Input Clamp Voltage

liN = -12 rnA

IIH

Logic "1" Input Current

Vee = 5.25V, VIN = 5.25V

IlL

Logic "0" Input Current

Vee = 5.25V, VIN = 0.5V

VOH

Logic "1" Output Voltage

10H = -100}-LA

3.2

3.9

10H = -1 rnA

2.5

3.2

Max

Units

0.8

V

V

2.0

"a" Output Voltage

2.0

VOL

Logic

los

Output Short Circuit Current

Vee = 5V, Your = OV
(Note 4)

loz

TRI-STATE Output Current

AHYS

Amplifier Input Hysteresis

Icc

Power Supply Current

Units

0.4

V

-0.8

-1.2

V

2

40

}-LA

-20

-250

}-LA
V
V

0.35

0.5

V

-10

...,;20

-100

rnA

Vee = 5.25V, Vo = 2.5V

-40

1

+40

}-LA

Vee = 5.25V, Vo = 0.5V

-40

-5

+40

}-LA

10L = 5mA

20

30

mV

160

250

rnA

5
Vee = 5.25V

Timing Characteristics (Notes 2,6,7, and 8)
Symbol

Parameter

Conditions

Min

Typ

Max

Units

T01

Output Data to Data Available
Positive Edge

5

20

40

ns

T02

Register Read Positive Edge to Data
Available Negative Edge

10

25

45

ns

T03

Error Positive Edge to Data Available
Negative Edge

10

30.

50

ns

T04

Error Positive Edge to Receiver Active
Negative Edge

5

20

40

ns

T05

Register Read Positive Edge to Error
Negative Edge

20

45

75

ns

T06

Delay from Output Control to Error Bits
from Data Bits

5

20

50

ns

T07

Delay from Output Control to Data Bits .
from Error Bits

5

20

50

ns

T08

First Sync Bit Positive Edge to Receiver
Active Positive Edge

3.5 x T
+70

1-17

ns

..

Timing Characteristics
Symbol
T09

(Notes

2,6,7, and 8) (Continued)
Conditions

Parameter

Min

Max

Typ

Receiver Active Positive Edge to First Data

Units

92 x T

ns

11.5 x T
+ 50

ns

40

30

ns

Register Read (Data) Pulse Width

40

30

ns

TpW2

Register Read (Error) Pulse Width

40

30

ns

TpW3

Data Available Logic

25

45

ns

0

-5

ns

0

-5

ns

Available Positive Edge
T010

Negative Edge of Ending Sequence to
Receiver Active Negative Edge

tOl1

Data Control Set-Up Multiplexer Time Prior
to Receiving Data through Selected Input

TpW1

"0" State between

Data Bytes
Ts

Output Control Set-Up Time Prior to
Register Read Negative Edge

TH

Output Control Hold Time After the
Register Read Positive Edge

TZE

"1" or
"0" from High Impedance State

Load Circuit

2

Delay from Output Enable to High Imped-

Load Circuit

2

Delay from Output Enable to Logic
Logic

Tez

ance State from Logic
FMAX

"1" or Logic "0"

Data Bit Frequency (Clock Input must be

(Note

9)

25

35

ns

25

35

ns

3.5

MBits/s

DC

8 x the Data Bit Frequency)

Note 1: "Absolute Maximum Ratings" are those values beyond which the safety of the device cannot be guaranteed. They are not meant to imply that the device
should be operated at these limits. The table of "Electrical Characteristics" provides conditions for actual device operation.
Note 2: Unless otherwise specified, min.lmax. limits apply across the O·C to +70·C temperature range and the 4.7SV to S.2SV power supply range. All typical
values are for TA = 2S·C and Vee = S.OV.
Note 3: All currents into device pins are shown as positive; all currents out of device pins are shown as negative; all voltages are referenced to ground, unless
otherwise specified. All values shown as max. or min. are so classified on absolute value basis.
Note 4: Only one output at a time should be shorted.
Note 5: Input characteristics do not apply to amplifier inputs (pins 2 and 3).
Note 6: Unless otherwise specified, all AC measurements are referenced to the 1.SV level of the input to the I.SV level of the output and load circuit 1 is used.
Note 7: AC tests are done with input pulses supplied by generators having the following characteristics:

ZOUT

=

son and Tr

~

S ns, Tf

~

S ns.

Note 8: T = I/(clock input frequency). units for "T" should be ns.
Note 9: 28 MHz clock frequency corresponds to 3.7S% iitter when referenced to Figure 10.

vee

Vee

:

-

.......

Rl=2k

'"

-

---I""
-::- ---=
l'~~'

1"., :

1"""'11

-::-

~,.

-F-

R2=2k ~,

I ·

~,
V

Load Circuit

........

..:~ R1=1k

~

-I-

~~
~

TLlF/523B-B

1

Load Circuit 2
FIGURE

6. Test Load Circuits

1-18

Timing Waveforms

~'.5V

OUTPUT - - " ' , 5V
ENABLE
~

~

Og3T~8~~ ------<

TEl

=

(OUTPUT CONTROL HI)

DATA _ _ _ _ _ _ _
AVAILABLE

REGISTER

I- TOI
..J)(llr------"""\~~
1\

-----------------

jlPw11V

T02
r --------------------

------------------------------""'\'X

~

READ

TL/F/5238-9

FIGURE 7. Data Sequence Timing

DATA
AVAILABLE

\

.

I-TD3~

~

RECEIVER
ACTIVE

-TD4-1

t

ERROR

REGISTER
READ
TS

--I

\

t1

-

;:

~Tpw2-l-lH-1

\

OUTPUT
CONTROL

r-

105

J

~TD6-1

'-TDT-I

X

DATA BITS

D02-DOS

X

ERROR BITS

DATA BITS
TL/F/5238-10

FIGURE 8. Error Sequence Timing

I I I I
1

1

1

VIJ&~~ON

I I
1

I I I I

DATA

0

MCV

MCV

~---r22~--J1J
-I

I-TDB

I-TD1D1

RECEIVER _ _ _ _ _ _ _ _ _ _ _ _ _....~~2--------.~_ _ __
ACTIVE
•
-

I-TD9--1
DATA
AVAILABLE

r-----------

----------------------------------i2~

TL/F/5238-11

FIGURE 9. Message Timing

1-19

II

.,..
~

~
D-

Timing Waveforms (Continued)

C

T.

4T±(T-25nl)-

CLOCK

INPU~ FREQUENCY

-------lo3:t:rN. VIN+

-----,I-----Il----I-----I~----,f--- VIN-

_ _ _ _ -40 mV MIN. VIN+

-1.3V MAX.

TLlF/5238-12

FIGURE 10. Data Waveform Constraints: Amplifier Inputs

T.

Note:

ITr - T,l :s:

CLOCK

INPU~ FREQUENCY

TLlF/5238-13

10 ns

. FIGURE 11. Data Waveform Constraints: Data Input (TTL)

1·20

Typical Applications

tARITY CONTROL

I
I
I

AUTO RESPONSE
OP834D
TRANSMITTER!
ENCOOER

REG LOAO

01

REG FULL

I
I
I

RECEIVER
DISABLE
DATA
AVAILABLE

~

ERROR

1:;

OUTPUT CONTROL

Ii;

G62AIU
COAX

1·

TRANSMITTER
ACTIVE

+IN
DP8341
RECEIVER!
DECODER

OUTPUT ENABLE

1:1:1 PULSE
TRANSFORMER
FIG.14

BI·PHASE
INPUT
-IN

REG READ

I

RECEIVER ACTIVE
TLlF/5238-14

Note 3: Crystal manufacturers: Midland Ross Corp.
NEl Unit Part No. NE18A (C2560N)

@

The Viking Group Part No. VXB-46NS

18.867 MHz
@

18,867 MHz. located in San Jose, CA.

FIGURE 12. Typical Application for IBM 3270 Interface
VCC-------o----~~----------o--

1k

VIN+

VIN-

---------01---.....J
TL/F/5238-15

FIGURE 13. Equivalent Circuit for DP8341 Input Amplifier

..
1-21

Typical Applications

(Continued)

R1

150
DATA
DELAY

3

TRANSMITIER
ACTIVE

L

2150 Cll":::J:·

I

- -

~ 8" - -1

~
R6
120

R5

I

90Q COAX
(RG62A/U)

DP8341

mam
-IN 6

GND
TL/F/5238-16
Note 1: Resistance values are in

n,

±5%,

Y.W

Note 2: T1 is a 1:1:1 pulse transformer, LMIN = 500 p.H for 16 MHz system clock
Pulse Engineering Part No. 5762/Surface Mount, 5762M/PE-65762
Valor Electronics Part No. CT1501
Technitrol Part No. 11 LHA or equivalent transformers

FIGURE 14. Translation Logic

IDEAL
WAVEFORM
AT TRANSMITTER
END OF CABLE

TL/F/5238-17
°To maintain loss at 95% of ideal signal, select transformer inductance
such that:
4MIN) = 10,000
fCLK

fCLK

=

Note 1: Less inductance will cause greater amplitude attenuation

System Clock
Frequency
(e.g., 16.67 MHz)

Note 2: Greater inductance may decrease signal
rise time slightly and increase ringing, but these
effects are generally negligible.

EXAMPLE:
L

= ~6
16.67 x 10

-+ L(MIN)

= 530p.H

FIGURE 15. Transformer Selection

1-22

~National

D

Semiconductor

DP8342 High-Speed 8-Bit Serial Transmitter/Encoder
General Description

Features

The DP8342 generates a complete encoding of parallel
data for high speed serial transmission. It generates a five
bit starting sequence, three bit code violation, followed by a
syn bit and eight bit per byte of data plus a parity bit. A
three-bit ending code signals the termination of the transmission. The DP8342 adapts to generalized high speed serial data transmission as well as the coax lines at a maximum
data rate of 3.5 MHz.

III Eight bits per data byte transmission

The DP8342 and its complementary chip, the DP8343 (receiver/decoder) have been designed to provide maximum
flexibility in system designs. The separation of the transmitter receiver functions provides convenient addition of more
receivers at one end of a biphase line without the need of
unused transmitters. This is specifically advantageous in
control units where typical biphase data is multiplexed over
many biphase lines and the number of receivers generally
exceeds the number of transmitters.

• Single-byte or multi-byte transmission
• Internal parity generation (even or odd)
• Internal crystal controlled oscillator used for the generation of all required chip timing frequencies
• Clock output directly drives receiver (DP8343) clock input
• Input data hold register
• Automatic clear status response feature
• Line drivers at data outputs provide easy interface to
bi-phase coax line or general transmission media

• <2 ns driver output skew
• Bipolar technology provides TTL input/output compatibility
• Data outputs power up/down glitch free
• Internal power up clear and reset
• Single + 5V power supply

Connection Diagram
Dual-In-Line Package
OUTPUT ENABLE

24

BYTE CLK

23

iiEiITiOOi

BIT 8

22

REG FULL

VCC

BIT7

21

AUTO RESPONSE

BITS

20

TRANSMITIER ACTIVE

BIT5

19

RESET

BIU

18

EVEN/ODD

BIT3

17

DATA OUT

BIT 2

16

DATA OUT

BIT 1

15

DATA DELAY

CLKOUT

14

X2

GND

13

Xl

.,'

.

',.:

"

I:,

,l

TL/F/5236-1

FIGURE 1
Order Number DP8342N
See NS Package Number N24A

•
1-23

I

Block Diagram
CLOCK
OUTPUT

TRANSMITIER
ACTIVE

CRYSTAL
OSCILLATOR

CONTROL LOGIC

EVEN/ImD
PARITY

...'\I\,..,.......... X2
EXTERNAL
CRYSTAL c::J

I

I

-C--4-X1
I

......-----'

BYTE CLOCK
DATA

DATA
DELAY

OUTPUT ENABLE

1)

BITS
BIT 1 TO BIT B
DATA INPUTS

REGISTERS
FULL

TL/F/5236-2

FIGURE 2

Functional Description
Figure 2 is a block diagram of the OP8342 Biphase Trans-

the Reset and Output-TRI-STATE® capability. Another feature of the OP8342 is the Byte Clock output which keeps
track of the number of bytes transferred.
The transmitter/encoder is also capable of internal TI / AR
(Transmission Turnaround/ Auto Response). When the
Auto-Response (AR) input is forced to the logic "0" state,
the transmitter/encoder responds with clean status (all zeros on data bits).
Operation of the transmitter/encoder is automatic. After the
first data byte is loaded, the Transmitter Active output is set
and the transmitter/encoder immediately formats the input
data and serially shifts it out its data outputs. If the message
is a mutli-byte message, the internal format logic will modify
the message data format for multibyte as long as the next
byte is loaded to the input holding format logic will modify
the message data format for multibyte as long as the next
byte is loaded to the input holding register before the last
data bit of the previous data byte is transferred out of the
internal output shift register. After all data is shifted out of
the transmitter/encoder the Transmitter Active output will
return to the inactive state.

mitter/Encoder. The transmitter/encoder contains a crystal
oscillator whose input is a crystal with a frequency eight (8)
times the data rate. A Clock Output is provided to drive the
DPB342 receiver/decoder Clock Input and other system
components at the oscillator frequency. Additionally, the oscillator drives the control logic and output shift register/
format logic blocks.
Data is parallel loaded from the system data bus to the
transmitter/encoder's input holding register. This data is in
tum loaded by the transmitter/encoder to its output shift
register if this register was empty at the time of the load.
During this load, message formatting and parity are generated. The formatted message is then shifted out at the bit rate
frequency to the TIL to Biphase block which generates the
proper data bit formatting. The data outputs, OATA, OATA,
and OATA OELAY provide for flexible interface to the transmission medium with little or no external components.
The control Logic block interfaces to all blocks to insure
proper chip operation and sequencing. It controls the type
of parity generation through the Even/Odd Parity input. An
additional feature provided by the transmitter/encoder is

1-24

Detailed Pin/Functional Description
CRYSTAL INPUTS Xl AND X2

TRANSMITTER ACTIVE

The oscillator is controlled by an external, parallel resonant
crystal connected between the Xl and X2 pins. Normally, a
fundamental mode crystal is used to determine the operating frequency of the oscillator; however, over-tone mode
crystals may be used.

This output will be in the logic "1" state while the transmitter/encoder is about to transmit or is in the process of transmitting data. Otherwise, it will assume the logic "0" state
indicating no data presently in ,either the input holding or
, output shift registers.
.

CRYSTAL SPECIFICATIONS (PARALLEL RESONANn

REGISTER LOAD

Type

The Register Load input is used to load data from the Data
Inputs to the input holding register. The loading function is
level sensitive, the data present during the logic "0" state of
this input is loaded, and the input data must be valid before
the logic "0" to logic "1" transition. It is after this transition
that the transmitter/encoder begins formatting of data for
serial transmission.

<20 MHz AT-cut
or> 20 MHz BT-cut

Tolerance

0.005% at 25°C

Stability

0.01 % from O°C to

Resonance

+ 70°C

Fundamental (Parallel)

Maximum Series Resistance

Dependent on Frequency
(For 20 MHz, 50n) ,

Load Capacitance

AUTO RESPONSE (TT/AR)

15 pF

This input provides for automatic clear data transmission (all
bits in logic "0") without the need of loading all zero's.
When a logic "0" is forced on this input the transmitter/encoder immediately responds with' transmission ., of" ~'clean
status". When this input is in the logic "1" state the transmitter/encoder transmits data entered on the Data Inputs.

Connection Diagram
R
TOPIN
PIN(14)
22 --'""''''
y'n

I'L-..
C

~

Vcc

c:::=J CRYSTAL

EVEN/ODD PARITY

___.T... (FIG. 18)
TO PIN Xl ...
_
PIN (13)

This input sets the internal logic of the DP8342 transmitter/
encoder to generate either even or odd parity for the data
byte in the bit 10 position. When this pin is in the logic "0"
state odd paritY is generated. In the logic "1" state even
parity is generated. This feature is useful when the control
unit is performing a loop back check and at the same time
the controller wishes to verify proper data transmission with
its receiver/decoder.

TL/F/5236-3

Freq

R

C

10 MHz-20 MHz 500n 30pF
>20 MHz

120n 15 pF

SERIAL OUTPUTS-DATA, DATA, AND DATA DELAY

If the DP8342 transmitter is clocked by a system clock
(crystal oscillator not used), pin 13 (Xl input) should be
clock directly using a Schottky series (74S) circuit. Pin 14
(X2 input) may be left open. The clocking frequency must be
set at eight times the data bit rate. Maximum input frequency is 28 MHz.

These three output pins provide for convenient application
of data to the Bi-Phase transmission line. The Data outputs
are a direct bit representation of the Biphase data while the
Data Delay output provides the necessary increment to
clearly define the four (4) DC levels of the pulse. The DATA
and DATA outputs add flexibility to the DP8342 transmitter/
encoder for use in high speed differential line driving applications. The typical DATA to DATA skew is 2 ns.

CLOCK OUTPUT
The Clock Output is a buffered output derived directly from
the crystal oscillator block and clocks at the oscillator frequency. It is designed to directly drive the DP8343 receiver/
decoder Clock Input as well as other system components.

RESET
When a logic "0" is forced on this input, all outputs except
Clock Output are latched low.

REGISTERS FULL

, OUTPUT ENABLE

This output is used as a flag by the external operating system. A logic "1" (active state) on this output indicates that
both the internal output shift register and the input holding
register contain active data. No additional data should be
loaded until this output returns to the logic "0" state (inac'
tive state).

When a logic "0" is forced on this input the three serial data
outputs are in the high impedence state.
BYTE CLOCK

a

This pin registers p~lse at the end of each byte transmission. The number of pulses registered corresponds to the
number of bytes transmitted.

•
1-25

~
~

~

a.
C

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

Message Format
Single Byte Transmission

t

t

TRANSMISSION
TERMINATION

TRANSMISSION
START

Multi-Byte Transmission
SYNC BIT

PARITY

BYTE 2

BYTE X

TL/F/5236-4

FIGURE 3

Functional Timing Waveforms
IIEU"t1mI

--u
L

REG FULL

--I1---------------r
-:-I____________-..?,

BYTECLOCK _ _

Dm_~1
DATA

II
I I

DATA DELAY

~
'

I' I' I' I' Ic..".LAn~icl·,

BIT

""---_._--"1-.

STARTING SEQUENCE

TL/F/5236-5

FIGURE 4. Overall Timing Waveforms for Single Byte

i2

L

~~
I I

I

DATA DELAY

1

~~

I' I' 11 11 I

~

I I

II~~

DATA

CODE VIOLATION

mci Of ,lsi~Ji

ilD I J

BIT2?PARITY BlmPARITY
ENDING
~ ~ SEQUENCE

STARTING SEQUENCE

8 BIT + PARITY 8 BIT + PARITY
TLlF/5236-6

FIGURE 5. Overall Timing Waveforms for Multi-Byte

1-26

Absolute Maximum Ratings (Note 1)
If Military/Aerospace specified devices are required,
please contact the National Semiconductor Sales
Office/Distributors for availability and specifications.

Maximum Power Dissipation· at 25·C
Cavity Package
Dual·ln-Line package

Supply Voltage, Vee

°Derate cavity package 14.9 mWrC above 2SoC; derate dual in line package 20 mW rc above 2SoC.

7V

Input Voltage

5.5V

Output Voltage

5.25V

Storage Temperature Range

Operating Conditions

- 65·C to + 150·C

lead Temperature (Soldering, 10 sec.)

2237mW
2500mW

300·C

Supply Voltage, (Vee>

Min
4.75

Max
5.25

0

+70

Ambient Temperature, T A

Units
V
·C

Electrical Characteristics (Notes 2 and 3)
Symbol

Parameter

Conditions

VIH

logic "1" Input Voltage (A" Inputs Except X1 and X2)

VIL

logic "0" Input Voltage (A" Inputs Except X1 and X2)

Vee

VeLAMP

Input Clamp Voltage (A" Inputs Except X1 and X2)

liN

IIH

logic "1"
Input Current

A" Others Except X1 and X2

logic "0"
Input Current

A" Inputs Except X1 and X2

IlL

Register load Input

Register load Input

=
=

Vee

Typ

Min

Max

Units

2.0

5V

V
0.8

V

-0.8

-1.2

V

Vee = 5.25V
VIN = 5.25V

0.3

120

p.A

0.1

40

p.A

Vee = 5.25V
VIN = 0.5V

-15

-300

p.A

-5

-100

p.A

=

5V

-12 rnA

VOH1

logic "1" A" Outputs Except ClK OUT,
DATA, DATA, and DATA DELAY

10H = -100 p.A
Vee = 4.75V

VOH2

logic "1" forClK OUT, DATA,
DATA, and DATA DELAY Outputs

VOL1

logic "0" A" Outputs Except ClK OUT,
DATA, DATA, and DATA DELAY

= -1 rnA
Vee = 4.75V
10H = -10 rnA
Vee = 4.75V
10H

3.2

3.9

V

2.5

3.4

V

2.6

3.0

V

0.35

0.5

V

0.4

0.6

V

-10

-30

-100

rnA

10L = 5 rnA

VOL2

logic "0" for ClK OUT, DATA
DATA, and DATA DELAY Outputs

Vee = 4.75V
10L = 20 rnA

1051

Output Short Circuit Current for A" Except
ClK OUT, DATA, DATA, and DATA
DELAY Outputs

(Note 5)
VOUT = OV

1052

Output Short Circuit Current DATA,
DATA, and DATA DELAY Outputs

(Note 5)
VOUT = OV

-50

-140

-350

rnA

1053

Output Short Circuit Current for ClK OUT

(Note 5)
VOUT = OV

-30

-90

-200

rnA

Icc

Power Supply Current

Vee

170

250

rnA

Timing Characteristics Vee =
Symbol

5V ± 5%, T A

=

=

5.25V

O·C to 70·C, Oscillator Frequency

=

28 MHz (Notes 2 and 3)

Parameter

Conditions

Typ

Max

Units

tpd1

REG lOAD to Transmitter Active (TA)
Positive Edge

load Circuit 1
Figure 6

60

90

ns

tpd2

REG lOAD to Register Fu";
Positive Edge

load Circuit 1
Figure 6

45

75

ns

tpd3

T A to Register Fu";
Negative Edge

load Circuit 1
Figure 6

40

70

ns

tpd4

Positive Edge of REG lOAD to
Positive Edge of DATA

load Circuit 2
Figure 9

50

80

ns

tpd5

REG lOAD to DATA;
Positive Edge

load Circuit 2
Figure 9

280

380

ns

tpd6

REG lOAD to DATA DELAY;
Positive Edge

load Circuit 2
Figure 9

150

240

ns

1-27

Min

•

I

Timing Characteristics (Continued)
Vee

=

5V ± 5%, TA

=

O·C to 70·C, Oscillator Frequency

=

28 MHz (Notes 2 and 3)
Typ

Max

Units

tpd7

Positive Edge of DATA to Negative Edge
of DATA DELAY

load Circuit 2
Figure 9

70

85

ns

tpd8

Positive Edge of DATA DELAY to Negative
Edge of DATA

load Circuit 2
Figure 9

80

95

ns

tpd9.
t pd10

Skew between DATA and DATA

load Circuit 2
Figure 9

2

6

ns

tpd11

Negative Edge of Auto Response (AR)
to Positive Edge of T A

load Circuit 1
Figure 10

70

100

ns

tpd12

Maximum Time Delay to load Second Byte
after Positive Edge of REG FUll

load Circuit 1
Figure 8, (Note 7)

4xT-50

ns

tpd13

X1 to ClK OUT; Positive Edge

load Circuit 2
Figure 11

21

30

ns

tpd14

X1 to ClK OUT; Negative Edge

load Circuit 2
Figure 11

23

33

ns

tpd15

Negative Edge of AR to Positive Edge of
REG FUll

load Circuit 1
Figure 10

45

75

ns

tpd16

Skew betWeen TA and REG FUll during
Auto Response

load Circuit 1
Figure 10

50

80

ns

tpd17

REG lOAD to REG FUll; P~sitive Edge
for Second Byte

load Circuit 1
Figure 7

45

75

ns

tpd18

REG FULL to BYTE ClK; Negative Edge

load Circuit 1
Figure 7

60

90

ns

t pd19 .

REG FUll to BYTE ClK; Positive Edge

load Circuit 1
Figure 7

145

180

ns

tZH

Output Enable to DATA, DATA, or DATA
DELAY outputs: HiZ to High

Cl = 50pF
Figures 16, 17

25

45

ns

tZL

Output Enable to DATA. DATA, or DATA
DELAY Outputs; HiZ to High

Cl = 50pF
Figures 16, 17

15

30

ns

tHZ

Output Enable to DATA, DATA, or DATA
DELAY Outputs; High to HiZ

Cl = 15 pF
Figures 16, 17

65

100

ns

tLZ

Output Enable to DATA. DATA, or DATA
DELAY Outputs; low to HiZ

Cl = 15 pF
Figures 16, 17

45

70

ns

tpw1

REG lOAD Pulse Width

Figure 12

tpW2

First REG FUll Pulse Width (Note 6)

load Circuit 1
Figure 7, (Note 7)

tpw3

REG FUll Pulse Width Prior to Ending
. Sequence (Note 6)

Symbol

tpw4
tpu5
ts

Parameter

' Pulse Width for Auto Response
Pulse Width for BYTE ClK
Data Setup Time prior to REG lOAD
. Positive Edge; Hold Time = 0 ns

Conditions

Min

40
8 x T

load Circuit 1
Figure 7
Figure 10
Load Circuit 1
Figure 7, (Note 7)
'Figure 12

ns

+ 60

8 x T

+ 100

5xB

ns
ns

40

ns
8 x T

+ 30

8 x T

+ 80

ns

15

23

ns

trl

Rise Time for DATA, DATA, and DATA
DELAY Output Waveform

Load Circuit 2
Figure 13

7

13

ns

ttl

Fall Time for DATA, DATA, and DATA
DELAY Output Waveform

Load Circuit 2
Figure 13

5

11

ns

tr2

Rise Time f6rTA and REG FUll

load Circuit 1
Figure 14

20

30

ns

tt2

Fall Time for TA and REG FUll

load Circuit 1
Figure 14

15

1-28

...

25

ns

c

"

Timing Characteristics (Continued)
Vee

CD

W

= 5V ± 5%, T A = O·C to 70·C, Oscillator Frequency = 28 MHz (Notes 2 and 3)

Symbol

Parameter

~

N

Min

Conditions

Data Rate Frequency
(Clock Input must be 8 x this Frequency)

Typ

DC

Input Capacitance-Any Input

5

(Note 4)

Max

Units

3.5

Mbits/s

15

pF

Note 1: "Absolute Maximum Ratings" are those values beyond which the safety of the device cannot be guaranteed. They are not meant to Imply that the device
should be operated at these limits. The table of "Electrical Characteristics" provides conditions for actual device operation.

+ 70'C temperature range

Note 2: Unless otherwise specified, minImax limits apply across the O'C to
values are for TA = 2S'C and Vee = S.OV.

and the 4.7SV to S.2SV power supply range. All typical

Note 3: All currents Into device pins are shown as positive; all currents out of device pins are shown as negative; all voltages are referenced to ground, unless
otherwise specified. All values shown as max or min are so classified on absolute basis.
Note 4: Input capacitance Is guaranteed by periodic testing. fTEST

=

10 kHz at 300 mV, TA

= 2S'C.

Note 5: Only one output should be shorted at a time.
Note 6: T = 1/(Oscillator Frequency). Unit for T should be in ns. B = ST.
Note 7: Oscillator Frequency Dependent.

Timing Waveforms

(Continued)

4 --------------~:):~--------~~~::

RmDlD\

f'~'

TA

-l
REG FULL

--50%

~
-~,
1l:$.= =~
tPd2

~tPd3~::
-

50%

VOL

tpw3

BYTE CLOCK

TL/F/5236-7

FIGURE 6. Single Byte Transfer

~~

}

-I
REO FULL

P
_d1_ _~- -_I;. . -(?-~2·~2~~~~~~~~~~~::::~~~~~~~~~~~~~-~~~50~%--~ :

_ _t

. ~tpd2

______,
-

1

VOL

tpd17

lr(~

tpd3-

J,f-

-tpw2

_
tpd18-

~'f\

BYTE ClK

-

50%

Ipw3

-==

VoH
VoL

JEIPd111

-------------~2~JI.1
-,

--

50%

VoH
VoL

,--lpwS
TL/F/5236-8

FIGURE 7. Two-Byte Transfer

~1
REG FULL

\.If~

3V
I

II

----/}.:~~ ::
-

I

WINDOW
TO LOAD MUIll·BYTE DATA 1SVrxa

TL/F/5236-9

FIGURE 8. Maximum Window to Load Multi-Byte Data

1·29

Functional Timing Waveforms

(Continued)

3V
1.5V
OV

\

DATA

VOH
' - - _ _ _..J

VOL

: - - - - l p d 5 - - - - .1 r - -.....

VOL
VOH
DATA DELAY

VOL
TL/F/5236-10

FIGURE 9. Three Serial Outputs

,-----------~~----------------------3V

AR

- - - - - - - - - - - - - - - - - 1.5Y

TA _ _

REG FULL

....;..--Jr'~"

__ l
__-1
...J

,.

-",d,,15

I~'
50%

Xl~-=~~5V

II

'

,

-

tt

';';=,,' ~I-=---:L~

YOH

-VOH
50%
VOL

elK O U T '
,

VOL

E-'Pd16 YoH

TLlF/5236-12

50%

FIGURE' 11. Clock Pulse

VOL
TL/F/5236-11

FIGURE 10. Auto-Response

10%

,
TL/F/5236-13

TL/F/5236-14

FIGURE 13. Output Waveform for DATA, DATA,
DATA DELAY (Load Circuit 2)

FIGURE 12. REG LOAD

Vee

Vee
RL=2k

RL=2k

10%

TLlF/5236-15

FIGURE 14. Rise and Fall Time Measurement
for TA and REG FULL

TL/F/5236-16

Load Circuit 1
Load Circuit 2
FIGURE 15. Test Load Circuits

1-30

Timing Waveforms (Continued)
VCC

4.7K

I

CL

-=- 2.7K
TL/F/5236-17

FIGURE 16. Load Circuit for Output TRI-STATE Test

}. . ._____. .l~5-0-%-----:::

OUTPUT ENABLE

-

VOH
DATA OUTPUTS

I-1HZ
:.. VOH-O.5V
J VOL +O.5V

VOL

-I

I-Ill

-·1

HIGH Z

-I

-IZl
f-VOH-O.5V
r-VOl+O.5V

VOH
VOL

-IZH
TLiF/5236-1B

FIGURE 17. TRI-STATE Test

Typical Applications

I
I
I
I

RESET

II AUTO RESPONS~•
REG LOAD
REG FULL

OPTIONAL
INTERFACE
lOGIC
FIG. 19

DP8342

TRANSMITTERI
ENCODER

COAX LINE (FIG. 19)
TWISTED PAIR LINES
FIBER·DPTIC
MAGNETIC
INFRARED
RF
ULTRASONIC
AUDIO
CURRENT CARRYING

BYTE CLOCK
en
=>

TRANSMITTER
ACTIVE

CD

....c..>

~

~

~

~

:::
~
~
~

RECEIVER
DISABLE

DATA
AVAILABLE
ERROR

I OUTPUT CONTROL
I OUTPUT ENABLE•
I

•
I REG READ
I
•
I RECEIVER ACTIVE

DP8343
RECEIVERI
DECODER

OPTIONAL
INTERFACE
LOGIC

I

DC TO 3.5MHz

I

I
I

I
TL/F/5236-19

FIGURE 18

1·31

Typical Applications

(Continued)

R1

150
DATA
DELAY

90Q COAX
(RG62A/U)
3

~
R6

120

R5

150

TRANSMITTER
ACTIVE

5

+IN

I2
I

J
•

CONNECT TO
OP8343
RECEIVER

L __ ,*S_.J

-IN

6

GNO
Note 1: Resistance values are In

n,

±5%,

TLlF/5236-20

y..W.

Note 2: T1 Is a 1:1:1 pulse transformer, L = 500,...H for 18 MHz to 28 MHz system clock. Pulse Engineering Part No. 5762; Technitrol Part No. 11LHA, Valor
Electronics Part No. CT1501, or equivalent transformer.
Note 3: Crystal manufacturer Midland Ross Corp. NEL Unit Part No. NE-18A at 28 MHz.

FIGURE 19. Interface Logic for a Coax Transmission Line

r----....... (NOTE)
OATA

1.

T1

90QCOAX

DP8342
TRANSMITTERI
ENCODER
TA
OE
+IN

5

•

J

~
u:J
4

CONNECT TO
0P8343
RECEIVER
-IN

6

TL/F/5236-21

Note: Data rates up to 3.5 Mbits/s at 5000' stili apply.

FIGURE 20. Direct Interface for a Coax Transmission Line (Non-IBM Voltage Levels)

1-32

~National

U

Semiconductor

DP8343 High-Speed 8-Bit Serial Receiver/Decoder
General Description

Features

The DP8343 provides complete decoding of data for high
speed serial data communications. In specific, the DP8343
receiver recognizes biphase serial data sent from its complementary chip, the DP8342 transmitter, and converts it
into 8 bits of parallel data. These devices are easily adapted
to generalized high speed serial data transmission systems
that operate at bit rates up to 3.5 MHz.

g'

The DP8343 receiver and the DP8342 transmitter are designed to provide maximum flexibility in system designs. The
separation of transmitter and receiver functions allows addition of more receivers at one end of the biphase line without
the necessity of adding unused transmitters. This is advantageous in control units where the data is typically multiplexed over many lines and the number of receivers generally exceeds the number of transmitters. The separation of
transmitter and receiver function provides an additional advantage in flexibility of data bus organization. The data bus
outputs of the receiver are TRI-STATE®, thus enabling the
bus configuration to be organized as either a common transmit/receive (bi-directional) bus or as separate transmit and
receive busses for higher speed.

III

•
•

a
II
III

..

II

•
II

DP8343 receives 8-bit data bytes
Separate receiver and transmitter provide maximum
system design flexibility
Even parity detection
High sensitivity input on receiver easily interfaces to
coax line
Standard TTL data input on receiver provides generalized transmission line interface and also provides
hysteresis
Data holding register
Multi-byte or single byte transfers
TRI-STATE receiver date outputs provide flexibility for
common or separated transmit/receive data bus
operation
Data transmission error detection on receiver provides
for both error detection and error type definition
Bipolar technology provides TTL input/output compatibility with excellent drive characteristics
Single + 5V power supply operation

Connection Diagram
Dual-In-Line Package
RECEIVER DISABLE

24

VCC

+AMPLIFIER INPUT

23

DATA CLOCK

-AMPLIFIER INPUT

22

SERIAL DATA

DATA (TTL)

21

BIT 8

DATA CONTROL

20

BIT7

CLOCK

19

BIT 6

RECEIVER ACTIVE

18

BIT5
BIT 4

ERROR

17

REGISTER READ

16

BIT 3

DATA AVAILABLE

15

BIT 2

14

BIT 1

13

OUTPUT ENABLE

OUTPUT CONTROL
GNO

12

TL/F/5237-1

FIGURE 1
Order Number DP8343N
See NS Package Number N24A

III
I

1-33

Block Diagram

1-------------- :mJ~ER

CLOCK - - - - - - - - - ,

CONf:~~ - - - - - -........
DATA (TTL)

SERIAL DATA

AMPLIFIER
INPUT

SERIAL DATA CLOCK

DATA
AVAILABLE

OUTPUT
CONTROL

ERROR OUTPUT

PARALLEL OUTPUT DATA
TLlF/5237-2

FIGURE 2. DP8343 Blphase Receiver

Functional Description
Figure 2 is a block diagram of the DP8343 receiver. This

been read or the start of another data byte is received, in
which case a Data Overflow Error will be detected, terminating the message. Data is read from the holding register
through the TRI-STATE Output Buffers. The Output Enable
input is the TRI-STATE control for these outputs and the
Register Read input signals the receiver that the read has
been completed.
When the receiver detects an ending sequence the Receiver Active output will be reset to a logic "0" indicating the
message has been terminated. A message will also terminate when an error is detected. The Receiver Active output
used in conjunction with the Error output allows quick response to the transmitting unit when an error free message
has been received.
The Error Detection and Identification block insures that valid data reaches the outputs of the receiver. Detection of an
error sets the Error output to a logic "1" and resets the
Receiver Active output to a logic "0" terminating the message. The error type may be read from the data bus outputs
by setting the Output Control input to logic "0" and enabling
the TRI-STATE outputs. The data bit outputs have assigned
error definitions (see error code definition table). The Error
output will return to a logic "0" when the next starting sequence is received, or when the error is read (Output Control to logic "0" and a Register Read performed).

chip is essentially a serial in/parallel out shift register. However, the serial input data must conform to a very specific
format (see Figures 3-6). The message will not be recognized unless the format of the starting sequence is correct.
Deviations from the format in the data, sync bit, parity or
ending sequence will cause an error to be detected, terminating the message.
Data enters the receiver through the differential input amplifier or the TTL Data input. The differential amplifier is a high
sensitivity input which may be used by connecting it directly
to a transformer coupled coax line, or other transmission
medium. The TTL Data input provides 400 mV of hysteresis
and recognizes TTL logic levels. The data then enters the
demodulation block.
The data demodulation block samples the data at eight (8)
times the data rate and provides signals for detecting the
starting sequence, ending sequence, and errors. Detection
of the starting sequence sets the Receiver Active output
high and enables the input shift register.
As the eight bits of data are shifted into the shift register, the
receiver will verify that even parity is maintained on the data
bits and the sync bit. Serial Data and Serial Data Clock, the
inputs to the shift register, are provided for use with external
error detecting schemes. After one complete data byte is
received, the contents of the input shift register is parallel
loaded to the holding register, assuming the holding register
is empty, and the Data Available output is set. If the holding
register is full, this load will be delayed until that register has

The Receiver Disable input is used to disable both the amplifier and TTL Data receiver inputs. It will typically be connected directly to the Transmitter Active output of the
DP8342 transmitter circuit.

1-34

Detailed Functional Pin Description
RECEIVER DISABLE

ERROR

This input is used to disable the receiver's data inputs. The
Receiver Disable input will typically be connected to the
Transmitter Active output of the DP8342. However, at the
system controller it may be necessary for both the transmitter and receiver to be active at the same time. This variation
can be accomplished with the addition of minimal external
logic.
Truth Table

The Error output transitions to a logic "1" when an error is
detected. Detection of an error causes the Receiver Active
and the Data Available outputs to transition to a logic "0".
The Error output returns to a logic "0" after the error register has been read or when the next starting sequence is
detected.

Receiver Disable

REGISTER READ
The Register Read input when driven to the logic "0" state
signals the receiver that data in the holding register is being
read by the external operating system. The data present in
the holding register will continue to remain valid until the
Register Read input returns to the logic "1" condition. At
this time, if an additional byte is present in the input shift
register it will be transferred to the holding register, otherwise the data will remain valid in the holding register. The
Data Available output will be in the logic "0" state for a
short interval while a new byte is transferred to the holding
register after a register read.

Data Inputs

Logic "0"

Active

Logic "1"

Disabled

AMPLIFIER INPUTS
The receiver has a differential input amplifier which may be
directly connected to the transformer coupled coax line. The
amplifier may also be connected to a differential type TTL
line. The amplifier has 20 mV of hysteresis.
DATA INPUT

DATA AVAILABLE

This input can be used either as an alternate data input or
as a power-up check input. If the system designer prefers to
use his own amplifier, instead of the one provided on the
receiver, then this TTL input may be used. Using this pin as
an alternate data input allows self-test of the peripheral system without disturbing the transmission line.

This output indicates the existence of a data byte within the
output holding register. It may also indicate the presence of
a data byte in both the holding register and the input shift
register. This output will transition to the logic "1" state as
soon as data is available and return to the logic "0" state
after each data byte has been read. However, even after the
last data byte has been read and the Data Available output
has assumed the logic "0" state, the last data byte read
from the holding register will remain until new data has been
received.

DATA CONTROL
This input is the control pin that selects which of the inputs
are used for data entry to the receiver.
Truth Table
Data Control

Data Input To

Logic "0"

Data Input

Logic "1"

Amplifier Inputs

OUTPUT CONTROL
The Output Control input determines the type of information
appearing at the data outputs. In the logic "1" state data will
appear, in the logic "0" state error codes are present.
Truth Table

Note: This input is also used for testing. When the input voltage is raised to
7.5V the chip resets.

CLOCK INPUT
This input is the internal clock of the receiver. It must be set
at eight (8) times the line data bit rate. The crystal-controlled
oscillator provided in the DP8342 transmitter also operates
at this frequency. The Clock Output of the transmitter is
designed to directly drive the receiver's Clock Input. In addition, the receiver is designed to operate correctly to a data
bit rate of 3.5 MHz.

Output Control

Data Outputs

Logic "0"

Error Codes

Logic "1"

Data

OUTPUT ENABLE
The Output Enable input controls the state of the
TRI-STATE Data outputs.
Truth Table

RECEIVER ACTIVE
The purpose of this output is to inform the external system
when the DP8343 is in the process of receiving a message.
This output will transition to a logic "1" state after a receipt
of a valid starting sequence and transition to logic "0" when
a valid ending sequence is received or an error is detected.
This output combined with the Error output will inform the
operating system of the end of an error free data transmission.

Output Enable

TRI-STATE
Data Outputs

Logic "Oil

Disabled

Logic "1"

Active

DATA OUTPUTS
The DP8343 has an 8-bit TRI-STATE data bus. Seven bits
are multiplexed with error bits. The error bits are defined in
the following table. The Output Control input is the multiplexer control for the Data/Error bits.

1-35

•

I

(f)
~

~

a.

Message Format

c

Si~gle

Byte Transmission
TRANSMISSION
START SEQUENCE

t

t

TRANSMISSION
TERMINATION

TRANSMISSION
START .'

Multi-Byte Transmission
SYNC BIT
BYTE 2

PARITY
BYTE X

TL/F/5237-3

FIGURE 3

DATA
LINE QUIESCE

I

II

BIT BIT BIT BIT BIT BIT BIT BIT
CODE
1 2 3 4 5 6 7
8
VIOLATION.
DATA
•

SYNC
RECEIVER
ACTIVE _ _ _ _ _ _ _ _ _ _..1

II

ENDING

I

SEQUENCE

PARITY

DMA _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _-"'1~IL._ _ __
AVAILABLE

u

REGISTER
READ

TL/F/5237-4

FIGURE 4a. Single Byte (8-Blt) Message

DATA~ U1.Jl.J1r rfl
LINE QUIESCE.

I

I

I

. I

~~

I

\

CODE
ENDING
VIOLATION j---11t BYTE-j-2nd BYTE- ••• I-LAST BYTE- SEQUENCE

I

RECEIVER·
ACTIVE _ _ _ _ _ _ _ _ _--'

---InL_______r ···

DATA _ _ _ _ _ _ _ _ _ _ _ _
AVAILABLE

REGISTER
READ

•

•

•

u

L

----------------U
TL/F/5237-5

FIGURE 4b. Multi-Byte Message

1-36

Message Format (Continued)
Error Code Definition
Data Bit
DP8343

Error Type
Data Overflow (Byte not removed from holding register when it and the input shift register are both full and new
data is received)

Bit 1
Bit2

Parity Error (Odd parity detected)

Bit3

Transmit Check conditions (existence of errors on any or all of the following data bits: Bit 2, Bit 4, and Bit 5)

Bit4

An invalid ending sequence

Bit5

Loss of mid-bit transition detected at other than normal ending sequence time

Bit6

New starting sequence detected before data byte in holding register has been read

Bit7

Receiver disabled during receiver active mode

SERIAL DATA

DATA CLOCK

The Serial Data output is the serial data coming into the
input shift register.

The Data Clock output is the clock to the input shift register.

DATA

LINE QUIESCE

ICODE~
VIOLATION

I

LERROR DETECTED

CORRECT DATA BYTE-

RECEIVER
ACTIVE

DATA
AVAILABLE

ERROR

U

REGISTER
READ

OUTPUT
CONTROL
TL/F/5237-6

FIGURE 5. Message with Error

DATA

SERIAL
DATA

DATA
CLOCK
TLlF/5237-7

FIGURE 6. Data Clock and Serial Data

I

III
I

1-37

Absolute Maximum Ratings

(Note 1)
Storage Temperature Range

If Military/Aerospace specified devices are required,
please contact the National Semiconductor Sales
Office/Distributors for availability and specifications.
7.0V
Supply Voltage, (VeC>

Supply Voltage, (VeC>
Ambient Temperature, T A

5.25V

Output Voltage

300°C

Operating Conditions

5.5V

Input Voltage

- 65°C to + 150°C

Lead Temperature (Soldering, 10 sec.)

Min
4.75
0

Max
5.25
+70

Unlt$
V
°C

Max

Units

0.8

V

-1.2

V

Electrical Characteristics (Notes 2, 3 and 5)
Symbol

Parameter

VIH

Input High Level

Vil

Input Low Level

Conditions

Min

Typ

2.0

VIH"Vll

Data Input Hysteresis (TTL, Pin 4)

VeLAMP

Input Clamp Voltage

0.2

V

0.4
-0.8

liN = -12 mA

V

IIH

Logic "1" Input Current

Vee = 5.25V, VIN = 5.25V

2

40

/LA

III

Logic "0" Input Current

Vee = 5.25V, VIN = 0.5V

-20'

-250

/LA

VOH

Logic "1" Output Voltage

IOH = -100/LA

3.2

3.9

V

IOH = -1 mA

2.5

3.2

V

VOL

. Logic "0" Output Voltage

0.35

0.5

V

-20

-100

mA

-40

1

+40

/LA

-40

-5

+40

/LA

5

20

30

mV

160

250

mA

IOl = 5 mA

los

Output Short Circuit Current

Vee = 5V, VOUT = OV
(Note 4)

-10

10Z

TRI-STATE Output Current

Vee = 5.25V, Vo = 2.5V
Vee = 5.25V, Vo = 0.5V

AHYS

Amplifier Input Hysteresis

Icc

Power Supply Current

Vee = 5.25V

Timing Characteristics (Notes 2,6,7, and 8)
Min

Typ

Max

Units

T01

Output Data to Data Available
Positive Edge

5

20

40

ns

T02

Register Read Positive Edge to
Data Available Negative Edge '

10

25

45

ns

T03

Error Positive Edge to
Data Available Negative Edge

10

30

50

ns

T04

Error Positive Edge to
Receiver Active Negative Edge

5

20

40

ns

T05

Register Read Positive Edge to
Error Negative Edge

20

45

75

ns

T06

Delay from Output Control to
Error Bits from Data Bits

5

20

50

ns

TO?

Delay from Output Control to
Data Bits from Error Bits

5

20

50

ns

T08

First Sync Bit Positive Edge to
Receiver Active Positive Edge

3.5 x T
+70

ns

TOg

Receiver Active Positive Edge to
First Data Available Positive Edge

76 x T

ns

T010

Negative Edge of Ending Sequence to
Receiver Active Negative Edge

11.5 x T
+50

ns

T011

Data Control Set-up Multiplexer Time Prior
to Receiving Data through Selected Input

30

ns

T012

Serial Data Set-Up Prior to
Data Clock Positive Edge

3xT

ns

Symbol

Parameter

Conditions

40

1-38

C
co

"0

Timing Characteristics (Notes 2,6, 7, and 8) (Continued)

W

~

Symbol

Parameter

Conditions

Typ

Min

Max

Units

TpW1

Register Read (Data) Pulse Width

30

40

ns

TpW2

Register Read (Error) Pulse Width

40

30

ns

TpW3

Data Available Logic
Data Bytes

25

45

ns

T5

Output Control Set-Up Time Prior to
Register Read Negative Edge

a

-5

ns

Output Control Hold Time after the
Register Read Positive Edge

a

-5

ns

TZE

"a" State between

Delay from Output Enable to Logic "1" or
Logic "a" from High Impedance State

Load Circuit 2

Delay from Output Enable to High Impedance State from Logic "1" or Logic "a"

Load Circuit 2

Data Bit Frequency (Clock Input must be

25

35

ns

25

35

ns

3.5

MBits/s

DC

8 x the Data Bit Frequency)

w

Note 1: "Absolute Maximum Ratings" are those values beyond which the safety of the device cannot be guaranteed. They are not meant to imply that the device
should be operated at these limits. The table of "Electrical Characteristics" provides conditions for actual device operation.
Note 2: Unless otherwise specified, min.lmax. limits apply across the O'C to -+- 70'C temperature range and the 4.75V to 5.25V power supply range. All typical
values are for TA = 25'C and Vec = 5.0V.
Note 3: All currents into device pins are shown as positive; all currents out of device pins are shown as negative; all voltages are referenced to ground, unless
otherwise specified. All values shown as max. or min. are so classified on absolute value basis.
Note 4: Only one output at a time should be shorted.
Note 5: Input characteristics do not apply to amplifier inputs (pins 2 & 3).
Note 6: Unless otherwise specified, all AC measurements are referenced to the 1.5V level of the input to the 1.5V level of the output and load circuit 1 is used.
Note 7: AC tests are done with input pulses supplied by generators having the following characteristics: ZOUT
Note 8: T

= 50, Tr

~

5 ns, and Tr ~ 5 ns.

= 1/(clock input frequency). units for "T' should be ns.

Test Load Circuits
Vee

Vee

-1 . . .
-1

- l'~~'-'I --~,
I~

~,

15PF

15PF.:

~

~

TlIF/5237-8

--

R2=2k~'

..

~~

-=-

I>

~~
~

TlIF/5237-9

Load Circuit 1

Load Circuit 2
FIGURE 7

II
1-39

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

~

a.

Timing Waveforms

c

t

OUTPUT J - 1 SV
ENABLE
~

1"--·- -

--I

TEl
(VOH-O.5IV

og3j~U -r-_~(Z~+"':'O.~SIVo:_:__<
(OUTPUT CONTROL

=Hil

(Z - O.SIV

I-

T
Ol

PW1
REGISTER ---------------"'"\~
,'
REAO

t1-'--T-0-2-------

1V,..------------

"-----..Ii

TL/F/5237-10

FIGURE 8. Data Sequence Timing

\

DATA
AVAILABLE

IRECEIVER
ACTIVE

T
03-\

~

-T04-1

t

ERROR

'\

r-lD5~

;:

\

REGISTER
REAO

I-,..,-I-'H-l

Ts-I

Lro'-I

X

DATA BITS

BIT1·BIT7

;(

\
~'''I

OUTPUT
CONTROL

X

ERROR BITS

DATA BITS
TL/F/5237-11

FIGURE 9. Error Sequence Timing

1 1 1 1 I 1 I

VIOC&~~ON

I 1 I

I 0

DATA

I MCV I MCV I

~---{2l~--JlJ

-I

I..

I-TD8

T011

RECEIVER _ _ _ _ _ _ _ _ _ _ _ _ _ _...I~(;O---------..._ _ _ __
ACTIVE
!
.

I-TD9-1
O~A

AVAILABLE

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

------------------f2~

TL/F/5237-12

FIGURE 10. Message Timing

1-40

Timing Waveforms

(Continued)

-'X'-_______-'X'-____

SERIAL DATA _ _ _ _

1-

T012-1

_ ____1
1

DATA CLOCK

.

, . . - - - - - \_' - - - - _
. TLlF/5237-13

FIGURE 11. Data Clock and Serial Data Timing

. - BT±(T -25nl)-

T.

CLOCK INPUT FREOUENCY

4T±(T-25ns)-

------~----~----~----~-----+------~N-

_ _ _ _ -40 mY MIN. VIN+
-1.3Y MAX.

TL/F/5237-14

FIGURE 12. Data Waveform Constraints: Amplifier Inputs

-BT±(T-25ns)T..

4T±(T-25ns)-

CLOCK

INPU~ FREOUENCY

1'--------

Note: ITr - T,I s: 10 ns
FIGURE 13. Data Waveform Constraints: Data Input (TTL)

TLlF/5237-15

VCC-----~----~----------~--

1k

VIN+

II

VIN- ---------f-----~

TL/F/5237-16

FIGURE 14. Equivalent Circuit for DP8343 Input Amplifier

1-41

(f)
~

(f)

co

a..

Typical Applications

c

r-o VCC
RESET
I AUTO RESPONSE
REG LOAD

.,

REG FULL

DPTIONAL
INTERFACE
LOGIC
(FIG. 16)

DPB342
TRANSMITTERI
ENCODER

COAX LINE (FIG. 16)

BYTE CLOCK

TWISTED PAIR LINES
FIBER·OPTIC

CI,I

::>

III

...w

...9
...

~
CI,I

>-

CI,I

MAGNETIC

:00:

~

!....

TRANSMITTER
ACTIVE

INFRARED
RF
RECEIVER
DISABLE

DATA
AVAILABLE

ULTRASONIC
AUDIO
CURRENT CARRYING

ERROR
I OUTPUT CONTROL
I OUTPUT ENABLE

OPTIONAL
INTERFACE
LOGIC

DP8343
RECEIVERI
DECODER

DC TO 3.5MHz

.,

I REG READ
I
I RECEIVER ACTIVE

TLlF/5237-17
Note 1: Crystal manufacturer Midland Ross Corp., NEL Unit Part No. NE·18A

@

28 MHz

FIGURE 15

1-42

Typical Applications

(Continued)

R1

150
DATA
DELAY

90Q CDAX
(RG62A/U)

3

I2
TRANSMITTER
ACTIVE

I

dJ
R6
120

R5
150

50
+IN

J

CDNNECT TD
DP8341

RECEIVER

L--*8-~

-IN

6

GND
TUF/5237-18
Note 1: Resistance values are in

n,

±5%,

V.w.

Note 2: T1 is a 1:1:1 pulse transformer, LMIN = 500 J.LH for 18 MHz system clock.
Pulse Engineering Part No. 5762,
Valor Electronics Part No. CT1501
Technitrol Part No. 11 LHA or equivalent transformers.

FIGURE lS.lnterface Logic for a Coax Transmission Line

IDEAL
WAVEFORM
AT TRANSMITIER
END OF CABLE

TUF/5237-19

TL/F/5237-20
Note 1: Less inductance will cause greater amplitude
attenuation.

°To maintain loss at 95% of ideal signal, select
transformer inductance such that:
10,000
L(MIN) =

fCLK

Note 2: Greater inductance may decrease signal rise
time slightly and Incease ringing, but these effects are
generally negligible.

fCLK = System Clock

Frequency
(e.g., 18.87 MHz)
Example:

L=~18.87 x 106

L(MIN) = 530 H
po

FIGURE 17. Transformer Selection

1·43

I

III

m
oqo

~ ~National
~

D

Semiconductor

DP8344B Biphase Commun\ications Processor-BCP®
General Description
The DP8344B BCP is a communications processor designed to efficiently process IBM® 3270, 3299 and 5250.
communications protocols. A general purpose 8-bit protocol
is also supported.
The BCP integrates a 20 MHZ 8-bit. Harvard architecture
RISC processor, and an intelligent, software-configurable
transceiver on the same low power microCMOS chip. The
transceiver is capable of operating without significant processor interaction, releasing processor power for other tasks.
Fast and flexible interrupt and subroutine' capabilities with
on-chip stacks make this power readily available.
The transceiver is mapped into the processor's register
space, communicating with the processor via,an asynchronous interface which enables both sections of the chip to
run from different clock sources. The transmitter and receiver run at the same basic clock frequency although the receiver extracts a clock from the incoming data stream to
ensure timing accuracy.
The BCP is designed to stand alone and is capable of implementing a complete communications interface, using .the
processor's spare power to control the complete system.
Alternatively, the BCP can be interfaced to another processor with an on-chip interface controller arbitrating access to
data memory. Access to program memory is also possible,
providing the ability to download BCP code.
A simple line intertace connects the Bep to the communications line. The receiver includes an on-chip analog comparator, suitable for use in a transformer-coupled environment,

although a TTL-level serial input is also provided for applications where an external comparator is preferred.
A typical system is shown below. Both coax and twinax line
interfaces are shown, as well as an example of the (optional) remote processor interface.

Features
Transceiver
• Software configurable for 3270, 3299, 5250 and general
8-bit protocols
II Fully registered status and control
• On-chip analog line receiver
Processor
• 20 MHz clock (50 ns T-states)
• Max. instruction cycle: 200 ns
• 33 instruction types (50 total opcodes)
• ALU and barrel shifter
• 64k x 8 data memory address range
• 64k x 16 program memory address range
(note: typical system requires <2k program memory)
• Programmable wait states
• Soft-Ioadable program memory
• Interrupt and subroutine capability
• Stand alone or host operation
• Flexible bus interface with on-chip arbitration logic
General
• Low power microCMOS; typo Icc = 25 rnA at 20 MHz
• 84-pin plastic leaded chip carrier (PLCC) package

Block Diagram
Typical BCP System
Program
.. emory

r,;:::::-;;;=-,c~~1ill:I

Coax
DP8344B

Line

Twin ..

----f..-:.It-+-...

Lint

FIGURE 1

1-44

TL/F/9336-S1

The DP8344B Is an enhanced version of the DP8344A, exhibiting Improved switching performance and additional
functionality. The device has been been characterized In a number of applications and found. to be. a compatible
replacement for the DP8344A. Differences between the DP8344A and DP8344B are noted by shading of the text on the
pages of this data sheel For more Information, refer to Section 6.6.
Note: In this document [XXX] denotes a control or status bit in a register, (YYyJ denotes a register.

Table of Contents
1.0 COMMUNICATIONS PROCESSOR OVERVIEW

3.0 TRANSCEIVER

1.1 Communications Protocols

3.1 Transceiver Architectural Description

1.2 Internal Architecture Overview

3.1.1 Protocols
3.1.1.1 IBM 3270
3.1.1.2 IBM 3299
3.1.1.3 IBM 5250
3.1.1.4 General Purpose 8-Bit

1.3 Timing Overview
1.4 Data Flow
1.5 Remote Interface Overview
2.0 CPU DESCRIPTION

3.2 Transceiver Functional Description

2.1 CPU Architectural Description

3.2.1
3.2.2
3.2.3
3.2.4
3.2.5

2.1.1 Register Set
2.1.1.1 Banked Registers
2.1.1.2 Timing Control Registers
2.1.1.3 Interrupt Control Registers
2.1.1.4 Timer Registers
2.1.1.5 Transceiver Registers
2.1.1.6 Condition Code/Remote Handshaking
Register
2.1.1.7 Index Registers
2.1.1.8 Stack Registers

Transmitter
Receiver
Transceiver Interrupts
Protocol Modes
Line Interface
3.2.5.1 3270 Line Interface
3.2.5.2 5250 Line Interface

4.0 REMOTE INTERFACE AND ARBITRATION SYSTEM
(RIAS)
4.1 RIAS Architectural Description
4.1.1
4.1.2
4.1.3
4.1.4

2.1.2 Timer
2.1.2.1 Timer Operation
2.1.3 Instruction Set
2.1.3.1 Harvard Architecture Implications
2.1.3.2 Addressing Modes
2.1.3.3 Instruction Set Overview

Remote Arbitration Phases
Access Types
Interface Modes
Execution Control

4.2 RIAS Functional Description
4.2.1 Buffered Read
·4.2.2 Latched Read

2.2 Functional Description
2.2.1 ALU
2.2.2 Timing
2.2.3 Interrupts

4.2.3 Slow Buffered Write
4.2.4 Fast Buffered Write
4.2.5 Latched Write

2.2.4 Oscillator

4.2.6 Remote Rest Time

•
1-45

I

,', Table of Contents (Continued)
5.0 DEVICE SPECIFICATIONS
5.1 Pin Description

6.3 Remote Interface Reference
6.4 Development Tools

5.1.1 Timing/Control Signals

6.4.1 Assembler System

5.1.2 Instruction Memory Interface
5.1.3 Data Memory Interface

6.4.2 Development Kit
6.4.3 Multi-Protocol Adapter Design/Evaluation Kit

5.1.4 Transceiver Interface
5.1.5 Remote Interface
5.1.6

Ext~rri~il~terru~ts

5.2 Absolute Maximum Ratings
5.3 Operating Conditions
5.4 Electrical Characteristics
5.5 Switching

Characte~istics,

6.4.4 Inverse Assembler
6.5 3rd Party Suppliers
6.5.1 Crystal
6.5.2 System Development Tools
6.6 DP8344A Compatibility Guide
6.6.1 CPU Timing Changes
6.6.2 Additional Functionality

5.5.1 Definitions,

6.6.2.1 4 T-state Read

5.5.2 Timing Tables and Figures

6.6.2.2 AI AD Reset State
6.6.2.3 RIC

6.0 REFERENCE SECTION
6.1 Instruction Set Reference
6.2 Register Set Reference
6.2.1 Bit Index
6.2.2 Register 'bespriPtion
6.2.3 Bit Definition Tables
,6.2:3~f Processor
6.2.3.2 Transceiver

6.6.2.4 Transceiver
6.7 Reported Bugs
6.7.1 History
6.7.2 LJMP, LCALL Address Decode
6.7.2.1 Suggested Work-around
6.8 Glossary
6.9 Physical Dimensions

List of Illustrations
Block Diagram of Typical BCP System .............................................................................. 1
Biphase Encoding ......................•....................................................•.•...............• 1-1
IBM 3270 Message Format ...................................................................................... 1-2
Simplified Block Diagram ...............................................•........................................ 1-3
Memory Configuration .......................................................................................... 1-4
Effect of Memory Wait States on Timing ......................•.................................................... 1-5
Register to Register Internal Data Flow ....................•...•....................................•............ 1-6a
Data Memory WRITE Data Flow ................................................................................ 1-6b
Data Memory READ Data Flow ..............................•................•................................. 1-6c
WRITE to Transmitter Data Flow ..........................................................•..................... 1-6d
READ from Receiver Data Flow ................................................................................. 1-6e
Load Immediate Data Data Flow ........................•...............................•.....•..•.....•......... 1-6f
Basic Remote Interface ......................................................................................... 1-7
Register Map ..................................................................................................2-1
Timer Block Diagram ..........................................................•...........................•....2-2
Timer Interrupt Diagram ..............................................................................•..........2-3
Index Register Map .........................•....................................•..............................2-4
Coding Examples of Equivalent Conditional Jump Instructions ....................................................... 2-5
JRMK Instruction Example ...............................•.......................•..............................2-6
Condition Code Register AlU Flags .............................•..........................•....•................ 2-7
Carry and Overflow Calculations •................................................................................ 2-8
Shifts' Effect on Carry .....................•.......................................•............•...............2-9
Rotates' Effect on Carry .......................................................................................2-1 0
Multi-Byte Arithmetic Instruction Sequences ......................................................................2-11
CPU-ClK Synchronization with X1 .............................................................•................2-12
Changing from OClK/2 to OClK ................................................................................ 2-13
Two T-state Instruction .........................................................................•..............2-14
Three T-state Instruction ........................................................................•.....•........2-15
Three T-state Data Memory Write Instruction ..................................................................... 2-16
Three T-state Data Memory Read Instruction ..........................•.......................................... 2-17
Four T-state Data Memory Read Instruction ...................................................................... 2-18
FourT-state Program Control Instruction ......................................................................... 2-19
Four T-state Two Word Instruction .............................................................................. 2-20
Data Memory Write with One Wait State ......................................................................... 2-21
Data Memory Read with One Wait State •............................•........................................... 2-22
Data Memory Read with Two Wait States .......................................•................................ 2-23
Two T-state Instruction with Two Wait States ..................................................................... 2-24
Four T-state Instruction with One Wait State ..................................•.......................•........... 2-25
Data Memory Access Wait Timing ............................................................................... 2-26
Two T-state Instruction WAIT Timing ................................................................•.........•. 2-27
Three T-state Program Control Instruction WAIT Timing ...............•............................................ 2-28
Four T-state Program Control Instruction WAIT Timing .......................................••.................... 2-29
lOCK Timing ....................•................................•...........................................2-30
lOCK Timing with One Wait State ..................................•......................•..................... 2-31
CPU Start-Up Timing ..........................................................................................2-32
Functional State Diagram of CPU Timing ..........................................................•.............. 2-33
Interrupt Timing ................•..............................................................................2-34
DP8344B Operation with Crystal .........................•......................................................2-35
DP8344B Operation with External Clock ........................................................•.•.............. 2-36

1-47

I

II

In

"'I:t'

:;

List of Illustrations (Continued)

~

System Block Diagram, Showing Details of Line Interface ........................................................... 3·1

C

Biphase Encoding ..............................................................................................3·2
3270/3299 Protocol Framing Format ............................................................................. 3·3
5250 Protocol Framing Format ...................................................................................3·4
General Purpose 8·Bit Protocol Framing Format .................................................................... 3·5
Block Diagram of Transceiver, Showing CPU Interface .............................................................. 3·6
Transmitter Output .............................................................................................3·7
Timing of Receiver Flags Relative to Incoming Data ................................................................ 3·8
3270, 3299 Frame Assembly/Disassembly Description .............................................................. 3·9
5250 Frame Assembly/Disassembly Description .................................................................. 3·10
General Purpose 8·Bit Frame Assembly/Disassembly Description ................................................... 3·11
BCP Receiver Design .......................................................................................... 3·12
BCP Driver Design ............................................................................................3·13
BCP Coax/Twisted Pair Front End ...................................................................•.......... 3·14
5250 Line Interface Schematic .................................................................................. 3·15
Remote Interface Processor ..................................................................................... 4·1
Remote Interface Control Register ............................................................................... 4·2
Generic Remote Access ........................................................................................ 4·3
Generic RIC Access .................................................................................... ; ....... 4·4
Memory Select Bits in (RIC I ..................................................................................... 4·5
Generic DMEM Access .........................................................................................4·6
Generic PC Access .............................................................................................4·7
Generic IMEM Access ........................................•.................................................4·8
Read from Remote Processor ................................................................................... 4·9
Buffered Write from Remote Processor ............................ " ........................................... .4·10
Latched Write from Remote Processor ..........................................................•............... .4·11
Minimum BCP/Remote Processor Interface ...................................................................... 4·12
Interface Mode Bits ...........................................................................................4·13
Flow Chart of Buffered Read Mode ..............................................................................4·14
Buffered Read of Data Memory by Remote Processor ............................................................ .4·15
Flow Chart of Latched Read Mode .............................................................................. 4·16
Latched Read of Data Memory by Remote Processor ............................................................. .4·17
Flow Chart of Slow Buffered Write Mode ......................................................................... 4·18
Slow Buffered Write to Data Memory by Remote Processor ...........................................•............. 4·19
Flow Chart of Fast Buffered Write Mode .......................................................................... 4·20
Fast Buffered Write to Data Memory by Remote Processor ......................................................... 4·21
Flow Chart of Latched Write Mode .............................................................................. 4·22
Latched Write to Data Memory by Remote Processor .............................................................. 4·23
Mistaking Two Remote Accesses as Only One .................................................................... 4·24
Remote Rest Time for All Modes Except Latched Write ............................................................ 4·25
Rest Time for Latched Write Mode ............................................................................. .4·26
DP8344B Top View .............................................................................................5·1
Switching Characteristic Measurement Waveforms ................................................................. 5·2
Data Memory Read Timing ...................................................................................... 5·3
Data Memory Write Timing ......................................................................................5·4
Instruction Memory Timing ......................................................................................5·5
Clock Timing .................................................................................................. 5·6

1·48

List of Illustrations (Continued)
Transceiver Timing .............................................................................' ......... '....... 5-7
Analog and DATA-IN Timing .....................................................................................5-8
Interrupt Timing ........................................................................................... ; ..... 5-9
Control Pin Timing .....................................................................'. '..... ; ................ 5-10
Buffered Read of PC, RIC .................................................... _.................................. 5-1.1
Buffered Read of DMEM ....................................................................................' ..... 5-12
Buffered Read of IMEM ........................................................................................5-13
Latched Read of PC, RiC .................................................................• ; ................... 5-14
Latched Read of DMEM ....................................................................................... 5-15
Latched Read of IMEM ........................................................................ ; .. '............. 5-16
Slow Buffered Write of PC, RIC ................................................................................. 5-17
Slow Buffered Write of DMEM ..................................................................................5-18
Slow Buffered Write of IMEM ..........................................................•....•...................5-19
Fast Buffered Write of PC, RIC .................................................................................. 5-20
Fast Buffered Write of DMEM ..................................................................... ;.: ........ ; ... 5-21
Fast Buffered Write of IMEM ...................................................................................5-22
Latched Write of PC, RiC .... '...............................................,.........•...... , .................... 5-23
Latched Write of DMEM .......................................................................................5-24
Latched Write of IMEM .............•......................................................... ;' ................ 5-25
Remote Rest Times ..........................................................................,.. _.............. 5-26
Remote Interface WAIT Timing .................................................................. ~ ........ ; .. '... 5-27
WAIT Timing after Remote Access ...............................................................•...... ',' ....... 5-28
Instruction Memory Bus Timing for 2 T-state Instructions .................................•.......................... 6-1
Instruction Memory Bus Timing for 3 T-state Instructions ............................................................ 6-2
Instruction Memory Bus Timing for (2+2) T-state Instructions ........................................................ 6-3
Instruction Memory Bus Timing for 4 T-state Instructions .......................................... : .............•... 6-4
Instruction/Data Memory Bus Timing for Data Memory Read [4TR] = 0 ................................. , .•........... 6-5
Instruction/Data Memory Bus Timing for Data Memory Read [4TR] = 1 ................................................ 6-6
Instruction/Data Memory Bus Timing for Data Memory Write ......................................................... 6-7

List of Tables
Register Addressing Mode Notations ., .........................................................'.... : ............. 2-1
Immediate Addressing Mode Notations .......................................................... , .............. : .2-2
Index Register Addressing Mode Notations ..................................................... :.: ................ 2-3
Relative Index Register Mode Notations ...........................................................................2-4
Data Movement Notations .......................................................................................2-5
Integer Arithmetic Instruction ............................................................. ',' .: ....•............ ',' .2-6
Logic Instructions ....................................................,....................... ,' ... ; ... , ........ , .2-?
Shift and Rotate Instructions ........................................................... ',' .......... , ....... " ... , .2-8
Comparison Instructions ................................................,' ...... ,' ................ ; .. " . !

••••••• " •. 2-9

Unconditional Jump Instructions ................................ ,' ........................•........... , ... ,....... 2-10
Conditional Relative Jump Instructions .............................................................. , ............ 2-11
"f" Flags ............................................................................•.. : .. : ........ ', ......... 2~12
"cc" Conditions Tested ........................................................................................2-13
Conditional Absolute Jump Instructions ............................................ : .............. : •........... : .2-14
JRMK Instruction .............................................................................................2-15
Unconditional CaUlnstructions ................................................................................. ,2-16
Conditional Call Instructions .............................................................................. '...... 2-17
Unconditional Return Instruction ................................................................................ 2-18
Conditional Return Instruction .................................................................................. 2-19
TRAP Instruction ..............................................................................................2-20
EXX Instruction ...............................................................................................2-21

1-49

..

m
~

~

List of Tables

(Continued)

~

Unsigned Comparison Results ................•..........•...................................................... 2-22

C

Signed Comparison Results .................................................................................... 2-23
Data Memory Wait States .•...•.........•................•..................................................... 2-24
Instruction Memory Wait States ......•................................................................•......... 2-25
BIRQ Control Summary .........................................................................................2-26
IICR I Interrupt Mask Bits and Interrupt Priority ...•................................................................ 2-27
Interrupt Vector Generation ..•....................•............................................................ 2-28
Recommended Crystal Parameters .•...........•................................................................ 2-29
Protocol Mode Definitions ....•......•..•..........••............................................................ 3-1
Transceiver Interrupts ..•......•........••........•.•.........•........•........................................ 3-2
Receiver Interrupts ......................•......................................................................3-3
Decode of 3270 Coax Commands ..•.........................•................................................... 3-4
RIAS Inputs and Outputs ........•...........•.....•...•..........•............................... ~ .............. 4-1

Note: To match Timing table number with appropriate Timing illustration, Tables 5-1 and 5-2 are purposely omitted.
Data Memory Read Timing ..........•.....•................................................................•.... 5-3
Data Memory Write Timing .....•...........•....................................................................5-4
Instruction Memory Timing .......•.............................................................................. 5-5
Clock Timing ......•......................••................................................................... 5-6
Transceiver Timing .•..........••............................................................................... 5-7
Analog and DATA-IN Timing ....•...........•................•...............•........................... '........ 5-8
Interrupt Timing .......•..................•.........•........................................................... 5-9
Control Pin Timing ............................................................................................5·1 0
Buffered Read of PC, RIC ...................•.................................................................. 5·11
Buffered Read of DMEM ................................ : ...................................................... 5-12
Buffered Read of IMEM ....................•.........•......................................................... 5·13
Latched Read of PC, RiC ......•....... '................•....................................................... 5-14
Latched Read of DMEM .......••............•.........•....................................................... 5-15
Latched Read of IMEM .......................•................................................................5·16
Slow Buffered Write of PC, RiC •...•.•.................................................•........................ 5·17
Slow Buffered Write of DMEM ..•...•........•..........•....................................................... 5-18
Slow Buffered Write of IMEM ...........•.....•.................................•..............................•5-19
Fast Buffered Write of PC, RIC ......•...... '..•.................................................................. 5-20
Fast Buffered Write of DMEM .................•.........•.....................................................•. 5-21
Fast Buffered Write of IMEM ...........•.........................................•........ ; .................... 5-22
Latched Write of PC, RiC ............' ....•.................•.................................................... 5-23
Latched Write of DMEM ........................................................................................ 5-24
Latched Write of IMEM .........................................................................................5-25
Remote Rest Times ...................•.......•........................•.........•....•............'........... 5-26
Remote Interface WAIT Timing ....•....•.....•................................................................. 5-27
WAIT Timing after Remote Access •............•.••............................................................. 5-28
Notational Conventions for Instruction Set ......... '...................... '.......................................... 6-1
Instructions vs T-states, Affected Flags and Bus Timing ......................................................•...... 6-2
Instruction Opcodes ........ " ....................................................•.............................6-3
DP8344B Application Notes ............... ~ .......................................................................6-4

1-50

1.0 Communications Processor Introduction
codes the data value, other transitions lie on bit boundaries.
Bit boundaries are not always indicated by transitions, so
techniques employing start sequences and sync bits are
used with bi-phase transmissions to ensure proper frame
alignment and synchronization.

The increased demand for computer connectivity has driven
National Semiconductor to develop the next generation of
special purpose microprocessors. The DP8344B is the first
example of a "Communications Processor" for the IBM environment. It integrates a very fast, full function microprocessor with highly specialized transceiver circuitry. The combination of speed, power, and features allows the designer
to easily implement a state-of-the-art communications interface. Typical applications for a communications processor
are terminal emulation boards for PCs, stand-alone terminals, printer interfaces, and cluster controllers.

The software specification covers the use of start sequences and sync bits, as well as defining the. message
format. Parity bits may be used to ensure data integrity. The
message format is the "language" that is used to exchange
information across the connecting medium. It defines command and control words, response times, and expected responses.

The transceiver is designed to simplify the handling of specific communication protocols. This feature makes it possible to quickly develop interfaces and software with little concern for the "housekeeping" details of the protocol being
used.

The DP8344B Bi-phase Communications Processor supports both the IBM 3270 and 5250 communication protocols, as well as IBM 3299 and a general purpose 8-bit protocol. The specialized transceiver is combined with a microprocessor whose instruction set is optimized for use in a
communications environment. This makes the DP8344 a
powerful single-chip solution to a wide range of communication applications.

1.1 COMMUNICATIONS PROTOCOLS

A communication protocol is a set of rules which defines the
physical, electrical, and software specifications required to
successfully transfer data between two systems.

An example of an IBM 3270 message is shown in Figure
1-2. The transmission begins with a very specific start sequence and sync pulse for synchronization. This is followed
by the data, command, and parity bits. Finally, the end sequence defines the end of the transmission.

.The physical specification includes the network architecture, as well as the type of connecting medium, the connectors used, and the maximum distance between connections.
Networks may be configured in "loops," "stars," or "daisy
chains," and they often use standard coaxial or twisted-pair
cable.

The IBM 3270 and 5250 are two widely used protocols. The
3270 protocol was developed for the 370 class mainframe,
and it employs coaxial cable in a "star" configuration. The
5250 protocol was developed for the System/3x machines,
and it uses a "daisy-chain" of twin-ax cable. A good overview of both of these environments may be found in the
"Multi-Protocol Adapter System User Guide" from National
Semiconductor, and in the Transceiver section of this document.

The electrical specification includes the polarity and amplitude of the signal, the frequency (bit rate), and encoding
technique. One common method of encoding is called "biphase" or "Manchester II." This technique combines the
clock and data information into one transmission by encoding data as a "mid-bit" transition. Figure 1-1 shows how the
data transition is related to the bit boundary in a typical
transmission. The polarity of the "mid-bit" transition en-

BIT BOUNDARY
ENCODED
SIGNAL
DATA
VALUE

"0"

"0"

"1"

"1"

"0"
TlIF /9336- 87

FIGURE 1-1. Biphase Encoding
START
SEQUENCE

SYNC

COt.Ct.CAND
&

DATA

END
SEQUENCE

~PARITY-+1

1

1

1

1

1-]

1
,..------TlIF/9336-8B

FIGURE 1-2. IBM 3270 Message Format

II
1-51

m r-------------------------------------------------------------------~
~
1.0 Communications Processor Introduction (Continued)

"'I:t'

~
C

1.2 INTERNAL ARCHITECTURE INTRODUCTION'
The DP8344B Biphase Communications Processor (BCP) is
divided into three major functional blocks: the Transceiver,
the Central Processing Unit (CPU), and the Remote Interface and Arbitration System, RIAS. Figure 1-3 shows how
these blocks are related to each other and to other system
components.
The transceiver consists of an asynchronous transmitter
and re'ceiver which can communicate across' a serial data
path. The transmitter takes parallel data frornthe CPU and
appends to it the appropriate framing information. The resuiting message is shifted out and is available as a serial
data stream on two output ,pins. The receiver shifts in serial
messagesi'strips off the framing information, and makes the
data available in parallel form to the CPU. The framing infor~
mation supplied by'the BCP provides the proper message
format for several popular communication protocols. These
include IBM 3270,' 3299, and 5250, as well as a general
purpose 8-bit mode. .'
The transceiver clock may be derived from the' internal oscillator, either directly or through internal divide-down circuitry. There is also an' input for an external transceiverciock,
thus allowing complete flexibility in the choice of data rates.
The receiver input can come from three possible sources.
There is a built-in differential amplifier which is suitable for
most line interfaces; a single-ended digital input for use with
an external comparator, and an internal loopbackpath for
self testing. Refer to the Transceiver section for a detailed
description of all transmitter and receiver functions, and to
the application note on coax interfaces for the proper use of
the differential amplifier.
, CP U',Is a general purpose,
' ,a-bit
' microprocessor capaThe

(ALU) which performs addition, subtraction, Boolean operations, rotations and shifts. Separate instruction and data
memory systems are supported, each with 16-bit address
buses, for a total of 64k address space in each.
There are 44 internal registers accessible to the CPU.
These include special configuration and control registers for
the transceiver and processor, four 16-bit indices to data
memory,and 20 8-bit general purpose registers. There is
also a 16-bit timer and a 16-byte deep LIFO data stack
which are accessible in the' register address space. For
more detailed information, see the specific sections on the
Register set, the Timer, and the ALU.
The BCP can operate independently or with another processor as the host system. If such a system is required, communication with the BCP is possible by sharing data memory. The Remote Interface controls bus arbitration and access to data memory, as well as program up-loading and
execution. For example, it is possible for a host system to
load the BCP's instruction memory and begin program execution, then pass data back and forth through data memory
accesses. The section on the Remote Interface and Arbitration System provides all of the necessary timing and control
information to implement an interface between a BCP and a
remote system.
As shown in Figure 1-4, the BCP uses two entirely separate
memory systems, one for program storage and the other for
data storage. This type of memory arrangement is referred
to as Harvard architecture. Each system has 16 address
lines, for a maximum of 64k words in each, and its own set
of data lines. The instruction (program) memory is two bytes
(16 bits) wide, and the data memory' is one byte (8 bits)
wide.

ble of 20 MHz operation. It has a reduced instruction set
which is optimized for transceiver and data handling performance. It also has a full function arithmetic/logic unit

In order to reduce the number of pins required for these
Signals, the address and data lines for data memory are
multiplexed together. This requires an external latch and the
Address Latch Enable signal (ALE) for de-multiplexing.

\

CENTRAL PROCESSING
UNIT

.A

v

1
~

~I ~
TRANSMISSION
INTERFACE'

~

7

.,

..-

~

17

REMOTE
INTERFACE

TRANSCEIVER
I--

RAM/ROM
MEMORY

II

")

HOST COMPUTER
(OPTIONAL)

--y
.A

I
~

TL/F/9336-B9

FIGURE 1-3. Simplified Block Diagram

1-52

1.0 Communications Processor Introduction
Simultaneous access to both data and program memory,
and instruction pipelining greatly enhance the speed performance of the BCP, making it well suited for real-time processing. The pipeline allows the next instruction to be retrieved from program memory while the current instruction is
being executed.

(Continued)

rotates, and register moves, require only two T-states.
Branching instructions and data memory accesses require
three to four T-states.
Each memory system has a separate, programmable number of wait states to allow the use of slower memory devices. Instruction memory wait states are inserted into all instructions, as shown in Figure 1-5, thus they affect the
overall speed of program execution. Instruction memory
wait states can also apply when the Remote Interface is
loading a program into instruction memory. Data memory
wait states are only inserted into data memory access instructions, hence there is less degradation in overall program execution. Refer to the Timing section for detailed examples of all BCP instruction and data memory timing.

1.3 TIMING INTRODUCTION

The timing of all CPU operations, instruction execution and
memory access is related to the CPU clock. This clock is
usually generated by a crystal and the internal oscillator,
with optional divide by two circuitry. The period of the resulting CPU clock is referred to as a T-state; for example, a
20 MHz CPU clock yields a 50 ns T-state. Most CPU functions, such as arithmetic and logical operations, shifts and

ADDRESS

I\.
I'

DATA

A
~

R7W

J\

v

INSTRUCTION
MEMORY
64k x 16

BCP
READ
WRITE
ADDRESS

roNmOl~

I\.
I'

DATA
MEMORY
64k x 8

LATCH

A
~

ADDRESS/DATA

"

v

TL/F/9336-C1

FIGURE 1-4. Memory Configuration

INSTRUCTION
BOUNDARY
CPU CLOCK
T-STATE
TWO T-STATE
INSTRUCTION
WITH NO WAIT STATES

..

INSTRUCTION
BOUNDARY
CPU CLOCK
T-STATE
TWO T-STATE
INSTRUCTION
WITH TWO WAIT STATES

FIGURE 1-5. Effect of Memory Wait States on Timing

1-53

I

TLlF/9336-C2

1.0 Communications Processor Introduction

(Continued)

The other key element in the data path is the ALU. This unit
does all of the arithmetic and data manipulation operations,
but it also has bus multiplexing capabilities. Both the Data
Memory bus and a portion of the Instruction Memory bus
are routed to this unit and serve as alternative sources of
data. Since the data flow is always through this unit, most
data moves may include arithmetic manipulations with no
penalty in execution time.

1.4 DATA FLOW

The CPU registers are all dual port, that is, they have separate input and output paths. This arrangement allows a single register to function as both a source and a destination
within the same instruction.
Figures 1-6a through 1-6f show the internal data flow path
for the BCP. The CPU registers are a central element to this
path. When a register functions as an output, its contents
are placed on the Source bus. When a register is an input,
data from the Destination bus is written into that register.

Figure 1-6a shows the data path for all arithmetic instructions and register to register moves. The source register
contents are placed on the Source bus, routed through the

FROM DATA
MEMORY

DATA
MEMORY
ADDRESS

DATA

I-....~~ MEMORY

ADDRESS

TLIF/9336-C5
TL/F/9336-C3

FIGURE 1·6a. Register to Register

TL/F/9336-C4

FIGURE 1·6b. Data Memory WRITE

FIGURE 1·6c. Data Memory READ

IMMEDIATE DATA
FROM
INSTRUCTION BUS

~. . ._ _ ~~~EIVER

TRANSMITTER
nFO

TLIF/9336-C6

FIGURE 1·6d. WRITE to Transmitter

TL/F/9336-C7

FIGURE 1·6e. READ from Receiver

1-54

TL/F /9336-C8

FIGURE 1·61. Load Immediate Data

1.0 Communications Processor Introduction

i

(Continued)

"

ALU/MUX, and then placed on the destination bus. This
data is then stored into the appropriate destination register.

1.5 REMOTE INTERFACE AND ARBITRATION SYSTEM
INTRODUCTION

Figures 1-6b and 1-6c show the data path for data memory
accesses. For a WRITE operation, the source register contents follow the same path through the ALU/MUX, but the
Destination bus is routed to output pins and on to data
memory. For ,a READ operation, incoming data is routed
onto the Destination bus by the ALU/MUX, and then stored
in a register. The address for all data memory accesses is
provided by one of four 16-bit index registers which can
operate in a variety of automatic increment and decrement
modes.

The BCP is designed to serve as a complete, standalone
communications interface. Alternately;ihari be interfaced
with another processor by means of 'the Remdtelnterface
and Arbitration System. Communication' between the BCP
and the remote processor is possible by,sharing data memory. Harvard architecture allows the remote system' to access any BCP data memory location while the BCP' contin~
ues to fetch and execute instructions, thereby' minimizing
performance'degradation.
Figure 1-7 shows a simplified remote processor interface.
This includes tri-state buffers on the address'and data buses of the BCP's Data MemorY, and all of the-control and
handshaking signals required tocomrilunicate' between the
BCP and the host system:

Transfer of the data byte between the CPU and the Transceiver is accomplished through a register location. This register, ! RTR J, appears as a normal CPU register, but writing
to it automatically transfers data' to the transmitter FIFO,
and reading from it retrieves data from the receiver FIFO.
These paths are illustrated in Figures 1-6d and 1-6e.

There is an 8-bit control register~ Rem'ote Interf~c'e Control
! RIC J, accessible only to the remote system, which is used
to control a variety of features, including the types'of memory accesses, interface speeds, single step program execu-'
tion, CPU start/stop, instruction memdry loads, and
forth.
Detailed information on all interface options is provided in
the section on Remote Interface' and,ArbitratiOn' System,
and in the related Reference section:

It is also possible to load immediate data into a CPU register. This data is supplied by the program and is usually a
constant such as a pointer or character. As shown in Figure
1-6f, a portion of the Instruction bus is routed through the
ALUlMUX for this purpose.

so

I:',

ADDRESS

"y

DATA

"

INSTRUCTION
MEMORY

y

R1ii

64k x 16

BCP
READ
WRITE

."

ADDRESS

~
LATCH

~

"

'

64k x 8

A DATA
~

DATA
MEMORY

"

;:..

LCL

r--0

~

;I ·Il. I!

/j
~

.. 7-

$

BUS CONTROL

~

~l

;:..

A

REMOTE
PROCESSOR

~

DATA

~

ADDRESS

TLIF/9336-C9

FIGURE 1-7. Basic Remote Interface

1-55

m

3
C")

co

a..
Q

2.0 CPU Description
The CPU Is a general purpose, 8-bit microprocessor capable of 20 MHz operation. It contains a large register set for
standard CPU operations and control of the transceiver.
The reduced InstructlQn set is optimized for the communications environment. The following sections are an architectural and functional description of the DP8344B CPU.

Alternate

A:

-

IBR

-"ATR

-

rBR

2.1 CPU ARCHITECTURAL DESCRIPTION
2.1.1 Register Set
This section describes the BCP's internal CPU registers. It is
a general overview of the register structure and the functions mapped Into the CPU register space. It is not a detailed or exhaustive description of every bit. For such a description, please refer to Section 6.2, Register Set Reference. Also, the Remote Interface Configuration register,
(RIC), Is not accessible to the BCP (being accessible only
by the remote system) and is described in Section 6.3, Remote Interface Reference.
The register set of the BCP provides for a compliment of
both special function and general purpose registers. The
special function registers provide access to on-chip peripherals (transceiver, timer, Interrupt control, etc.) while the
general purpose registers maximize CPU throughput by minImlzlng accesses to external data memory. The CPU can
address a total of 44 8·bit registers, providing access to:

-TcR"
Tt.lR

-GP4'
GPS'
-GP6'

~

---GP7'

• 20 general purpose registers
• 8 configuration and control registers

Index Registers
(pointers)

• 4 transceiver access registers

CCR

RO

Ncr

Rl

ICR

R2

ACR

R3
I

-RTR
TSR
B:

t.laln
I

OCR

GPO

R4

GPI

R5

GP2

R6

GP3

R7

GP4 (accumulator)

RB

GPS

R9

GP6

RIO

GP7

Rll

W (low byte)

R12

W (high byte)

R13

x (low

R14

byte)

X (high byte)

R1S

Y (low byte)

R16

Y (high byte)

R17

• 2 8-bit accumulators
• 4 16-bit pointers
• 16·blt timer
• 16 byte data stack
• address and data stack pointers
The CPU addresses internal registers with a 5-bit field, addressing 32 locations generically named RO through R31.
The first twelve locations (RO-R11) are further organized by
function as two groups of banked registers (A and B) as
shown In Figure 2-1. Each group contains both a main and
an alternate bank. Only one bank is active for group A and
one for bank B and thus accessible during program execution. Switching between the banks is performed by the exchange Instruction EXX which selects whether Main A or
Alternate A occupies RO-R3 and whether Main B or Alternate B occupies R4-R11.

TIm"

Z (low byte)

RIB

Z (high byte)

RI9

GPB

R20

GP9

R21

GP10

R22

GPII

R23

GP12

R24

GP13

R2S

GP14

R26

GP1S

R27

I:~

I

sp
st"k. DS

r

R28
R29

1'30
R31

TL/F /9336-32

FIGURE 2·1. Register Map

1-56

2.0 CPU Description

(Continued)
not have to be switched in to poll the transceiver. Timer and
BIRQ tasks may also be run using polling techniques to
Main A bank.
In general, the registers have been f3,rranged within the
banks so as to minimize the need to switch banks. The power-up state is Alternate bank A, Alternate bank B' allowing
access to configuration registers. Again, the banks switch
by using theEXX instruction which explicitly specifies which
bank is active (Main or Alternate) for each register group (A
and B). The EXX instruction allows selecting any of four
possible bank settings with a single two T-state instruction.
This instruction also has the option of enabling or disabling
the maskable interrupts.
'

Registers in the RO-R11 address space are allocated in a
manner that minimizes the need to switch banks:
Main A:

CPU control and transceiver status

Alternate A:

CPU and transceiver configuration

Main B:
Alternate B:

8 general purpose
4 transceiver access, 4 general purpose

Most of the BCP's instructions with register operand(s) can
access all 32 register locations. Only instructions with an
immediate operand are limited to the first sixteen register
locations (RO-R15). These instructions, however, still have
access to all registers required for transceiver operation,
CPU status and control registers, 12 general purpose registers, and two of the index registers.

The cO!1tents of the special function registers can be divided into several groups for general discl1ssion-timing/control, interrupt control, the try
Note: & = logical AND

I

z

R7,A
R5,R7
R6,A
R4,R6

= one's complement

Signed Comparison Results
Comparison: x - y
xy

Boolean Condition

(N&V) I (N&V)

z I (N&V) I (N&V)
z

(N&V) I (N&Y)
(N&V&l) I (N&V&l)

Note: & = logical AND

z

= logical OR
= one's complement

2.2.2 Timing
Timing on the BCP is controlled by an internal oscillator and
circuitry that generates the internal timing signals. This circuitry in the CPU is referred to as Timing Control. The internal timing of the CPU is synchronized to an internal clock
called the CPU clock, CPU-ClK. A period of CPU-ClK is
referred to as a T-state. The clock for the BCP is provided
by a crystal connected between X1 and X2 or from a clock
source connected to X1. This clock will be referred to as the
oscillator clock, OClK. The frequency of OClK is divided in
half when the CPU clock select bit, [CCS] , in the Device
Control Register, (DCR I, is set to a one. Either OClK or
OClK/2 is used by Timing Control to generate CPU-ClK
and other synchronous signals used to control the CPU timing.
After the BCP is reset, [CCS] is high and CPU-ClK is generated from OClK/2. Since the output of the divider that creates OClK/2 can be high or low after reset, CPU-ClK can
also be in a high or low state. Therefore, the exact number
of clock cycles to the start of the first instruction cannot be
determined. Automatic test equipment can synchronize to
the BCP by asserting RESET as shown in Figure 2-12. The
falling edge of RESET generates a clear signal which causes CPU-ClK to fall. The next rising edge of X1 removes the
clear signal from CPU-ClK. The second rising edge of X1
will cause CPU-ClK to rise and the relationship between X1
and CPU-ClK can be determined from this point.
Writing a zero to [CCS] causes CPU-ClK to switch from
OClK/2 to OClK. The transition from OClK to OClK/2
occurs following the end of the instruction that writes to

;GET LSB OF Y
;Y(LSB)=X(LSB)+Y(LSB)
;GET MSB OF Y
;Y(MSB)=X(MSB)+Y(MSB)
+CARRY

To perform the assignment Y = X - Y:

MOVE
SUBA
MOVE
SBCA

= logical OR

TABLE 2-23

I

R7,A
R5,R7
R6,A
R4,R6

C

clz
z
C
C&l

x~y

Assume the 16-bit variable X is represented by the register pair R4(MSB), R5(lSB), and that the 16-bit variable
Y is represented by the register pair R6(MSB), R7(lSB).
To perform the assignment Y = X + Y:

MOVE
ADDA
MOVE
ADCA

Boolean Condition

x PHASE-9
SHIELD GND
DPDT
PHASE-A

PASS THRU

-----'

~,

~---f---I

TERMINATE

5UD.
1%

54.9D.
1%

10k

10k

10k

820k

4.7k
11

33pF'

4.7k

D-.....-

....=> DATA-IN

75112
11

VeelA

lY
lZ

MINUS-12
820k

19
lC
D

27mA

2A
74ALS810
DATA-DLY O----~"

29
2C

2Y
2Z
TL/F/9336-G4

FIGURE 3·15. 5250 Line Interface Schematic

1-104

4.0 Remote Interface and Arbitration System (RIAS)
INTRODUCTION

bus control circuitry. The RP's address lines decode a chip
select for the BCP called Remote Access Enable (RAE).
Basically, the BCP's Data Memory has been memory
mapped into the RP's memory. A Remote Access of the
BCP occurs when REM-RD or REM-WR, along with RAE is
asserted low. REM-RD and REM-WR can be directly connected to the Remote Processor's read and write lines, or
for more complicated systems the REM-AD and REM-WR
signals may be controlled by a combination of address decode and the RP's read and write signals. To the RP, an
access of the BCP will appear as any other memory system
access. This configuration allows the RP to read and write
. Data Memory, read and write the BCP's Program Counter,
and read and write BCP Instruction Memory. These functions are selected by control bits in the Remote Interface
Configuration register! RIC I. This register can be accessed
only by the RP and not by the BCP CPU. If the Remote
Processor executes a remote access with the Command
input (CMD) high, !RICI is accessed ,through the BCp's AD
bus.

Communication with the BCP is based on the BCP's ability
to share its data memory. A microprocessor (or any intelligent device) can read and write to any BCP data location
while the BCP CPU is executing instructions. This capability
is part of the BCP's Remote Interface and Arbitration System (RIAS). Sharing data memory is possible because
RIAS's arbitration logic allocates use of the BCP's data and
address buses. RIAS has been designed so that accesses
of BCP data memory by another device minimally impact its
performance as well as the BCP's. In addition to data memory accesses, RIAS allows another device to control how
BCP programs are loaded, started and debugged.
4.1 RIAS ARCHITECTURAL DESCRIPTION
Interfacing to the BCP is accomplished with the control signals listed in Table 4-1. Figure 4-1 shows the BCP interfaced to Instruction Memory, Data Memory, and an intelligent device, termed the Remote Processor (RP). Instruction
and Data are separate memory systems with separate address buses and data paths. This arrangement allows continuous instruction fetches without interleaved data accesses. Instruction Memory (IMEM) is interfaced to the BCP
through the Instruction (I) and Instruction Address (IA) buses. IMEM is 16 bits wide and can address up to 64k memory. Data Memory (DMEM) is eight bits wide and can also
address up to 64k memory. The DMEM address is formed
by the 8-bit upper byte (A bus) and the a-bit lower byte (AD
bus). The AD bus must be externally latched because it also
serves as the path for data between the BCP and DMEM.
For further information on how AD bus is used, refer to Section 2.2.2 CPU Timing.

In Figure 4-1, the Remote Processor's address lines are
decoded to form the CMD input. When a remote access
takes place with CMD low, the memory system designated
in !RICI is accessed. Figure 4-2 shows the contents of
!RICI. The two least significant bits are the Memory Select
bits [MS1-0] which designate the type of reinote access: to
Data Memory, the Program Counter, or Instruction Memory.
This register also contains the BCP start bit [STRT], three
interface select bits [FBW, LR, LW], the Single-Step bit
[SS], and the Bi-directional Interrupt Status bit [BIS]. Refer
to the RIAS Reference Section for a more detailed description of the contents of this register and the function of each
bit.

The Remote Processor's address and data buses are connected to the BCP's address and data buses through the

--I

IAl========~~AD;D;R

INSTR
tc===============~DATA RAM
ViR

DE

1--------.-,~IViR

J=======:::;;==:::;;::::~ADDR DATA
RAM

REMOTE
PROCESSOR

DATA t:;::::======:::J
ADDRI=======~
TLIF/9336-19

FIGURE 4·1. BCP/Remote Processor Interface
1-105

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)

TABLE 4-1. RIAS Inputs and Outputs
In/Out

Pin

Reset
State

In

45

X

CoMmanD input. When high, remote accesses are directed to the
Remote Interface Configuration register, (RICI. When low, remote
accesses are directed to Data Memory, Instruction Memory or the
Program Counter as determined by (RIC [1,0] I.

Out

31

0

loCal. Normally low, goes high when the BCP relinquishes the data
and address bus to service a remote access.

'['(5CK

In

44

X

Asserting this input Low will lOCK out local (BCP) accesses to Data
Memory. Once the remote processor has been granted the bus,
lOCK gives it sole access to the bus and BCP accesses are
"waited".

'RAE

In

46

X

Remote Access Enable. Setting this input low allows host access of
BCP functions and memory.

REM-RD

In

47

X

REMote ReaD. When low along with RAE, a remote read cycle is
requested; serviced by the BCP when the data bus becomes
available.

REM-WR

In

48

X

REMote WRite. When low along with RAE, a remote write cycle is
requested; serviced by the BCP when the data bus becomes
available.

WR·PEND

Out

49

1

WRite PENDing. In a system configuration where remote write
cycles are latched, WR·PEND will go low, indicating that the latches
contain valid data which have yet to be serviced by the BCP.

XACK

Out

50

1

Transfer ACKnowledge. Normally high, goes low on REM-RD or
REM-WR going low (if RAE low) returning high when the transfer is
complete. Normally used as a "wait" signal to a remote processor.
(In the latched Write mode, XACK will only transition if a second
remote access begins before the first one completes.)

WAIT

In

54

X

Asserting this input low will add wait states to both remote accesses
and to the BCP instruction cycle. WAIT will extend a remote access
until it is set high.

Signal
CMD

m

7

6

5

4

3

2

1

Function

The two key handshake signals involved in the BCP/RP
interface are Transfer Acknowledge (XACK) and Local
(LCL). Internally, two more signals control the access tim·
ing: INT·READ and INT-WRITE. The timing for a generic
Remote Access is shown in Figure 4-3. A remote access is

0

IBIS ISS IFBW ILR ILW ISTRT IMS1 IMSO IRIC
BIS

-Bidirectional Interrupt Status

SS

-Single-Step

FBW

-Fast Buffered Write mode

lR

-Latched Read mode

LW

-Latched Write mode

REHDM~

REt.I-WR

:

>

j

XACK

,
!,

,

STRT -BCP CPU start/ stop

I:

[C[

MS1-0 -Memory Selection
FIGURE 4-2. Remote Interface Control Register

,

INT- READ or
INT-WRITE
Arbitration

The BCP CPU and RIAS share the internal CPU-ClK. This
clock is derived from the X1 crystal input. It can be divided
by two by setting [CCS] = 1 in (OCR I or run undivided by
setting [CCS] = O. The frequency at which the Remote
Processor is run need not bear any relationship to the CPUClK. A remote access is treated as an asynchronous event
and data is handshaked between the Remote Processor
and the SCPo

,,

\

,
,

1

4.1.1 Remote Arbitration Phases

r-

:

;

\

'/
I

Access

__ J

,

I

Termination

TLIF/9336-20

FIGURE 4-3. Generic Remote Access (RAE

= 0)

initiated by the RP asserting REM-RD or REM-WR with RAE
low. There is no set-up/hold time relationship between RAE
and REM-RD or REM-WR. These signals are internally gated together such that if RAE (REM-RD + REM-WR) is true,
a remote access will begin. A short delay later, XACK will
fall. This signal can be fed back to the RP's wait line to
extend its read or write cycle, if necessary. When the BCP's

1·106

4.0 Remote Interface and Arbitration System (RIAS)
arbitration logic determines that the BCP is not using data
memory, lCl rises, relinquishing control of the address and
data buses to the RP. The remote access can be delayed at
most one BCP instruction (providing [lOR] is not set high).
If the CPU is executing a string of data memory accesses,
RIAS has an opportunity to break in at the completion of
every instruction. The time period between REM-RD or
REM-WR being asserted (with RAE low) and [C[ rising is
called the Arbitration Phase. It is a minimum of one T-state,
but can be increased if the BCP CPU is accessing Data
Memory (local access) or if the BCP has set the lock Out
Remote bit [lOR].
The CMD pin is internally latched on the first falling edge of
the CPU-ClK after a remote access has been initiated by
asserting RAE low along with asserting REM-RD or
REM-WR low. If the remote interface is asynchronous, the
CMD signal must be valid simultaneously or before RAE is
asserted low along with REM-RD or REM-WR being asserted low. The value of CMD is only sampled once during each
remote access and will remain in effect for the duration of
the remote access.
After the Arbitration Phase has ended, the Access Phase
begins. Either Data Memory, Instruction Memory, the Program Counter, or (RIC! is read or written in this phase.
Either INT-READ or INT-WRITE will fall one T-state after
[C[ rises. These two signals provide the timing for the different types of accesses. INT-READ times the transitions on
the AD bus for Remote Reads and forms the external READ
line. INT-WRITE clocks data into the PC and (RIC! and
forms the IWR and WRITE lines. INT-READ and INT-WRITE
rise with XACK, or shortly after.
The duration of the Access Phase depends on the type of
memory being accessed. Data Memory and Instruction
Memory accesses are subject to any programmed wait
states and all remote accesses are waited by asserting
WAIT low. The minimum time in the Access Phase is 2
T-states.
The rising edge of XACK indicates the Access Phase has
ended and the Termination Phase has begun. If the RP was
doing a read operation, this edge indicates that valid data is
available to the RP. During the Termination Phase the BCP
is regaining control of the buses. [C[ falls one T-state after
XACK and since the RP is no longer being waited, it can
deassert REM-RD or REM-WR. The duration of this phase
is a minimum of one T-state, but can be extended depending on the interface mode chosen in (RIC!.

(Continued)

TRI-STATE during a Remote Write Figure 4-4(b) while [C[
is high. The byte being written to (RIC! is latched on the
rising edge of XACK and can be seen on AD after [C[ falls.
The Access Phase, in this case, is always two T-states (unless WAIT is low) because (RIC! is not subject to any programmed wait states.

Arbitration
REt.I-RD

Access

Termination

~'--_...I._ _ _ _.....a.._ _-J~

WllZ
,'---'----......,/

XACK

''---

..I/

LCL _ _ _ _
AD

RIC

TLIF/9336-BO

(a) Remote Read Timing (RAE = 0)
Arbitration

Acc.ss

Termination

R[t.I-WR~~_ _+-_______~____...I~
Ct.l D

7lZllI

XACK

AD

,'--+-----~/
I

LCL
RIC

WllZ

)

''--(

New RIC

TLIF/9336-B1

(b) Remote Write Timing (RAE = 0)

4.1.2 Access Types
There are four types of accesses an RP can make of the
BCP:
-Remote Interface Control Register (RIC!
-Data Memory (DMEM)
-Program Counter (PC)
-Instruction Memory (IMEM)
An access of (RIC! is accomplished by asserting RAE and
REM-RD or REM-WR with the CMD pin asserted high. The
Remote Interface Configuration register is accessed
through the AD bus as shown in Figure 4-4(c). A read or
write of (RIC! can take place while the BCP CPU is executing instructions. Timing for this access is shown in Figures
4-4(a) and (b). Note that in the Remote Read Figure 4-4(a),
AD does not transition. This is because the contents of
( RIC! are active on the bus by default. The AD bus is in

I

TL/F/9336-B2

(c) RIC to AD Connectivity
FIGURE 4-4. Generic RIC Access

1-107

II

,~'r---------------------------------------------------------------------------~
~

('t)

co

D..

c'

4.0 Remote Interface and

Arbitration System (RIAS).(Continued)

Remote Accesses other than ,to {RIC I are. accomplished
with the CMD pin low in conjunction with asserting RAE low
along with REM-WR or REM-RD being taken low. The type
of access performed is defin~d by the Memory Select bits in
{RICl, as shown in Figure 4-5.

Arbitration

RllZZ

~""'--......i-_~_ _.l..-_ _

:.CMD

76543210
I BIS

I,~s

I FBW I LRILW 1ST

l

Tennlnlltlon

Access

REM~RD~~__~__________~__~~

1

,:

XACK

MS1! MSOJ

I

'"",,--

1

",

.LcL

. Memory Select Bits
00 - Data Memory
01 - Instru'ction M~mory
10 - PC low byte
11 - PC high byte'

'1

READ

1
1

AD

RIC

(

).

FIGURE 4~5:Merriory' Select Bits in {RIC I

RIC

TL/F/9336-63

(a) Remote Read Timing (RAE = 0)

Re~ds or ~rites of Data Memory (DMEM) are preceded by
setting the Memory Select bits in {RICI for a DMEM access: [MS1,O] = OO."After that, the· RP simply reads or
writes to BCP Data Memory as many times as it needs to. A
DMEM access, as well as a (RICI access, can be made
while the BCP CPLJ: i.s executing instructions. All other accesses must be executed with' the BCP CPU stopped.

Arbitration
REM-WR

, CMD

The timing for a Data Memory read and write are shown in
Figure 4-6. The access is initiated by asserting RAE and
REM-RD or REM-WR while CMD is low. The BCP responds
by bringing its address and data lines into TRI-STATE and
allowing the RP to control DMEM. READ is asserted in the
Acces~ Phase of a Remote Read Figure 4-6(a).lt will stay
low.for a minimum of one T-state, but can be extended by
adding programmable data waif states or by taking WAIT
low. WRITE is asserted in the Access Phase with a remote
write. It too is a minimum of one T-state and can be increased by adding programmable wait states or by taking
WAIT I.ow. \. .
" ,

Tennlnlltlon

Access

~,-'__~__________...;-__~r-,

lllllZ

~""'--......i---:""---';'_ _- I -_ _

,:

XACK

:t

"'.i-.------~i
1

LcL ________J~r--~---~~\~___
WRITE

AD·

i
1
1

RiC

'---~1

)

RIC

TL/F /9336-64

(b) Remote Write Timing (RAE = 0)

Figure 4-7(c) shows the data path from the Progra~ Counter to the AD bus. Both high and. low PC bytes can be written or read through AD. The RP has independent control of
the high. and low bytes' of the Program Counter....:the· byte
being ac~~ssed is specified in the Memory Select bits. The
high byte, of the. PC is accessed by setting [MS1-0] = 11.
Setting [MS1-0] = 10 allolNs access to the low byte of the
PC"After the Memory Select bits are set by a Remote Write
to {RIC I; the byte selected can be read or written by the RP
by executing a Remote Access with CMD low. Remote accesses t~ both the high and low bytes of the PC;as well as
the instruction memory access must be executed with the
BCP CPU· idle.' Four accesses by the RP are ,necessary to
read or write both the high and low bytes of the PC. Timing
for a PC access is shown in Figure 4-7(a) and (b). The PC
becomes valid on a Remote Read (a) one T-state after [C[
rises and one T-state befOre XACK rises. AD is in TRISTATE whil.e. LC?L ishigh for a Remote Write (b)., Time in the
Access Phase is two T-states if WAIT is not asserted.

FIGURE 4·6. Generic DMEM Access
Timing for an IMEM access is shown in Figure 4-8(a) and
(b). As before, the Memory Select bits are first set to instruction memory:. [MS1-0] = 01. It is only necessary to set
[MS1-0] once for repeated IMEM accesses. (Instruction
Memory is the powf,3r-up Memory Selection state.) A simple
state machine keeps track of which instruction byte is expected next-low or high byte.' The state machine powers
up looking for the low instruction byte and every IMEM access causes this state ,machine to switch to the alternate
byte. Accesses other than to IMEM will not cause the state
machine to switch to the alternate byte, but writing 01 to the
.Memory ?electbits in (,RIOUi.e. [MS1-0]'"", 01,pointingto
IMEM) Will always force the state machine tothe"low,byte
state". This way the Instruction word boundary can be resElt
without resetting the 80~; When the BOP is reset the state
machine will also be forced to the~'low bYte state:"
Figure 4-8(a) shows a Remote Read of Instruction memory.
Both the low byte, then the high byte can be seen on back
to back remote reads: An instruction byte becomes active
on the AD bus one T-state after [C[ rises and is valid when
XACK rises. This time period will be a minimum of one
T-state, but can be extended up to three more T-states by
instruction wait states.
'.

Instruction memory (IMEM) is accessed through another internal path: from .AD to the I bus, shown in Figure 4-8(c).
The memory is accessed first low byte, then high byte. Low
and high bytes of the 16-bit I bus are alternately accessed
for Remote Reads. An 8-bit holding register, ILAT, retains
the low byte until the high byte is written by the Remote
Processor for the, write to IMEM. The. BCPincrements the
PC after the high byte has been accessed.

1-108

4.0 Remote Interface and Arbitration System (RIAS) (Continued)
Arbitration

ACCI.,

REM-RD~~__~____________~_____

CMDD.,~_.:..-_ _ _ _....:.._ _

\1

XACK

ffi _ _ _ _....J~
AD ___R_IC________-JX~

________

(a) Remote Read Timing (RAE = 0)
Arbitration

T.rmlnatlon

Acc"s

r-

REM-WR~

IlllE

CMDD.,
1

\

XACK

ffi

(I
1

\

"
1

AD

RIC

(

>:

RIC
TLlF/9336-66

(b) Remote Write Timing (RAE = 0)

1-,..-..

~tlIA15- 8

.........-tl..... 1A7-0

TL/F/9336-67

(c) IA to AD Connectivity
FIGURE 4-7. Generic PC Access

1·109

•

m
"'11:1'

:>

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)

CO

a..

c

Arbitration

Access

Termination

REIA-RD~

'i:,>-

Arbitration

I
. I

\
!(IiiJ}71iJA

/.

I •.

t.,

CIAO"

Access

Termination

r-

..

IlllE

,I

I

:/

XACK~

\

I:

ill
IA

PC

AD

RIC

V

I

I

I

);

\

\

X

PC+1

X

X'

It.tEIA 10

X

RIC

It.tEIA hi

I

X
TL/F19336-88

(a) Remote Read Timing (RAE ~ 0)
Arbitration

Termination

Access

REIA-WR~

I
I
. I

CIAO"

Arbitration

.\.

1

.1

'{@J.i.ii~

Access

I

IA

I

r-

'.y,

IlllE
I

V

I

I

\

'/

ill

\:

(

\

XACK

Termination

I
I
I ..

\

XEl

I;,

PC

I
I

iWR
AD

-'-I
I
I

RIC

~

(

RIC

I

'-'-----1

~

(

RIC

I

TL/F/9336-89

(b) Remote Wr~te Ti l1l lng (RAE = 0)

TL/F/9336-90

(c) I to AD Connectivity
FIGURE 4-8. Generic IMEM Access
1-110

4.0 Remote Interface and Arbitration System (RIAS) (Continued)
In addition, WAIT can delay the rising edge of XACK indefinitely. One T-state after XACK rises, I RIC I will once again
be active on AD. Timing is similar for a Remote Write. AD is
in TRI-STATE while LCL is high. LCL is asserted for a minimum of three T-states, but can be extended by instruction
wait states and the WAIT pin. IWR clocks the instruction
into memory during the write of the high byte. The Instruction Address (PC) is incremented about one T -state after
LCL falls on a high byte access for both Remote Reads and
Writes.

es and one half T-state later LCL falls. The BCP can use the
buses one T-state after LCL falls. The minimum time (no
wait states, no arbitration delay) the BCP CPU could be prevented from using the bus is four T-states in the Latched
Read Mode.
A Buffered Read prevents the BCP CPU from using the bus
during the time RP is allocated the buses. This time period
begins when LCL rises and ends when REM-RD is removed. If the REM-RD is asserted longer than the minimum
Buffered Read execution time (four T-states), then the BCP
may be unnecessarily prevented from using the buses.
Therefore, if there are no overriding reasons to use the Buffered Read Mode, the Latched Read Mode is preferable.

Soft-loading Instruction Memory is accomplished by first
setting the BCP Program Counter to the starting address of
the program to be loaded. The Memory Select bits are then
set to IMEM. BCP instructions can then be moved from the
Remote Processor to the BCP-Iow byte, high byte-until
the entire program is loaded.

There are three Remote Write Modes-two require buffers
and one requires latches. The timing for the writes utilizing
buffers is shown in Figure 4-10. The Slow Buffered Write (a)
is handshaked in· the same manner as the Buffered Read
and thus has the same timing. The Fast Buffered Write has
similar timing to the Latched Read. This timing similarity exists because the BCP terminates the remote access without
waiting for the RP to deassert REM-WR.

4.1.3 Interface Modes
The Remote Interface and Arbitration System will support
TRI-STATE buffers or latches between the Remote Processor and the BCP. The choice between buffers and latches
depends on the type of system that is being interfaced to.
Latches will help prevent the faster system from slowing to
the speed of the slower system. Buffers can be used if the
Remote Processor (RP) requires that data be handshaked
between the systems.

In both cases, XACK falls a short delay after REM-WR falls
and LCL rises when the RP is given the buses. One T-state
after LCL rises, INT-WRITE falls. The termination in the
Slow Buffered Write mode keys off REM-WR rising, as
shown in Figure 4-10(a). INT-WRITE rises a prop-delay later
and LCL falls one T-state later. The Fast Buffered Write,
shown in Figure 4-10(b), begins the Termination Phase with
the rising edge of XACK. INT-WRITE rises at the same time
as XACK, and LCL falls one T-state later. The BCP can
begin a local access one T-state after LCL transitions.

Figure 4-9 shows the timing of Remote Reads via a buffer
(a) and a latch (b) (called a Buffered Read and Latched
Read). The main difference in these modes is in the Termination Phase. The Buffered Read handshakes the data
back to the RP. When the BCP deasserts XACK, data is
valid and the RP can deassert REM-RD. Only after REM-RD
goes high is LCL removed. In the Latched Read Figure
4-9(b) XACK rises at the same time, but the Termination
Phase completes without waiting. for the rising edge of
REM-RD. One half T-state after XACK rises, INT-READ ris-

A Fast Buffered Write is preferable to the Slow Buffered
Write if RP's write cycles are slow compared to the minimum Fast Buffered Write execution time. The Fast Buffered
Write assumes, though, that data is available to the BCP by
the time INT-WRITE rises.

~
XACK

ill

~------/-----

/
~'--l--

-----'

,'-----

'-------'
Arbitration

Access

I

Termination

Arbitration

TL/F/9336-91

''-__
--1
TermInation
Access
TL/F/9336-92

(a) Buffered Read

(b) Latched Read
FIGURE 4-9. Read from Remote Processor

III
1-111

4.0 Remote Interface and Arbitration System (RIAS) (Continued)

XACK

LCL

---Arbitration

Access

Termination

TL/F/9336-93

(a) Slow Buffered Write
REM - WR

XACK

~

I
I
I

LCL

\

I

\

INT- WRITE
Arbitration

Access

Termination

TL/F/9336-94

(b) Fast Buffered Write
FIGURE 4-10. Buffered Write from Remote Processor
in both Buffered Write Modes, XACK is asserted to wait the
RP. The Latched Write Mode makes it possible for the RP to
write to the BCP without getting waited. The timing for the
Latched Write Mode is shown in Figure 4-11. When the Remote Processor writes to the BCP, its address and data
buses are externally latched on the rising edge of REM-WR.
Even though REM-WR has been asserted XACK does not

switch. The BCP only begins remote access execution after
the trailing edge of REM-WR. Since the RP is not requesting
data back from the BCP, it can continue execution without
waiting for the BCP to complete the remote access. After
REM-WR is deasserted, WR-PEND is taken low to prevent
overwrite of the latches. A minimum of two T-states later
LCL switches and AD, A, and the external address latch go
into TRI-STATE, allowing the latches which contain the remote address and data to become active. If the RP attempts
to initiate another access before the current write is complete, XACK is taken low to wait the RP and the address
and the data are safe because WR-PEND prevents the
latches from opening. The Access Phase ends when
INT-WRITE rises and the data is written. One T-state later,
[C[ falls and one T-state after that WR-PEND rises. If another access is pending, it can begin in the next T-state.
This is indicated by XACK rising when WR-PEND rises.

XACK

ill

----1----.1

A minimum BCP/RP interface utilizes four TRI-STATE buffers or latches. A block diagram of this interface is shown in
Figure 4-12. The blocks A, B, C, and D indicate the location
of buffers or latches. Blocks A and B isolate 16 bits of the
RP's address bus from the BCP's Data Address bus. Two
more blocks, C and D, bidirectionally isolate 8 bits of the
RP's data bus from the BCP AD bus.

'----1,---I

Arbitration

Access Phase

: Termination
TL/F/9336-95

FIGURE 4-11. Latched Write from Remote Processor

1-112

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)

~~----------------------------~I

Bep

It.4Et.4

At-r_~r--'"":>C""'""-----..,j
Dt.4Et.4
AD

ADDR ~______________- - I

REt.40TE
PROCESSOR

DATA I'\r-------."----------------J
TL/F/9336-96

FIGURE 4-12. Minimum BCP/Remote Processor Interface
The BCP Remote Arbitrator State Machine (RASM) must
know what hardware interfaces to the RP in order to time
the remote accesses correctly. To accomplish this, three
Interface Mode bits in (RIC} are used to define the hardware interface. These bits are the Latched Write bit [LWl,
the Latched Read bit [LR] and the Fast Buffered Write bit
[FBW]. See Figure 4-13.
765432

1 BIS 1SS I, FBW 1 LR 1 LW

J

ST

and [FBW] = 1. designates a Fast Buffered Write. A
Latched Write is accomplished by using latches for blocks
A, B, and C and setting [LW] = 1.
4.1.4 Execution Control
The BCP can be started and stopped in two ways. If the
BCP is not interfaced to another processor, ilcan be started
by pulsing RESET low while both REM-RD and AEM-WA
are low. Execution then begins at location zero. If there is a
Aemote Processor interfaced to the BCP, a write to (AIC}
which sets the start bit [STAT] high will begin execution at
the current PC location. Writing a zero to [STAT] stops execution after the current instruction is completed. A SingleStep is accomplished by writing a one to the Single-Step bit
[SS] in (RIC}. This will execute the instruction at the current
PC, increment the PC, and then return to idle. [SS] returns
low after the single-stepped instruction has completed. [SS]
is a write only bit and will always appear low when (AIC} is
read.
Two pins (WAIT and IT5Ci<), and one register bit, [LOR],
can also affect the BCP CPU or RIASexecution. The WAIT
pin can be used to add wait states to a remote access.
When WAIT must be asserted low to add wait states is dependent on which remote access mode is being used. The
information needed to calculate when WAIT must be asserted to add wait states, is contained within the individual descriptions of the modes in the next section (4.2 RIAS Functional Description).

0

1 MS1 1 MSO I

T

Interface Mode Bits
- 0 - - Buffered Read
- 1 - - Latched Read
o - 0 - Slow Buffered Write
1 - 0 - Fast Buffered Write
X - 1 - Latched Write
FIGURE 4-13. Interface Mode Bits
All combinations of Remote Reads or Writes with buffers or
latches can be configured via the Interface Mode bits. A
Buffered Read is accomplished by using a buffer for block D
and setting [LR] ;; o. Conversely, using a latch for block D
and setting [LR] = 1 configures the RASM for Latched
Reads. Using buffers for blocks A, B, and C and setting
[LW] = 0 allows either a Slow or Fast Buffered Write. Setting [FBW] = 0 configures RASM for a Slow Buffered Write

1-113

4.0 Remote Interface and Arbitration System (RIAS)
Programmed wait states delay when WAIT must be asserted since programmed wait states are inserted before WAIT
is tested to see if any more wait states should be added.
LOCK prevents local accesses of Data Memory. If LOCK is
asserted a half T-state before T1 of a BCP instruction cycle,
further local accesses will be prevented by waiting the Timing Control Unit. The Timing Control Unit (TCU) is the BCP
CPU sub system responsible for timing each instruction. For
a more detailed description of the operation of LOCK, refer
to the CPU Timing section. [LOR] allows the BCP to prevent
remote accesses. Once [LOR], located in {ACR I, is set
high, further remote accesses are waited by XACK remaining low.

(Continued)

Also provided is a memory arbitration example in the form of
a timing diagram for each of the five modes. These examples show back to back local accesses punctuated by a
remote access. Both the state of RASM and the Timing
Control Unit are listed for every clock at the top of each
timing diagram. The RASM states listed correspond to the
flow charts. The Timing Control Unit states are described in
Section 2.2.2, Timing portion of the data sheet.
4.2.1 Buffered Read
The unique feature of this mode is the extension of the read
until REM-RD is deasserted high. The complete flow chart
for the Buffered Read mode is shown in Figure 4-14. Until a
Remote Read is initiated (RAE·REM-RD true), the state machine (RASM) loops in state RSA1. If a Remote Read is
initiated and [LOR] is set high, RASM will move to state
RSA2. Likewise, if a Remote Read is initiated while the buses have been granted locally (Le., Local Bus Request = 1),
RASM will move to state RSA2. The state machine will loop
in state RSA2 as long as [LOR] is set high or the buses are
granted locally. If the BCP CPU needs to access Data Memory while in either RSA state (and LOCK is high), it can still
do so. A local access is requested by the Timing Control
Unit asserting the Local Bus Request (lCl-BREQ) signal. A
local bus grant will be given by RASM if the buses are not
being used (as is the case in the RSA states).

Though the BCP CPU runs independently of RIAS there is
some interaction between the two systems. [LOR] is one
such interaction. In addition, two bits allow the BCP CPU to
keep track of remote accesses. These bits are the Remote
Write bit [RW] and the Remote Read bit [RR], and are located in {CCR[6-5]}. Each bit goes high when its respective remote access to DMEM reaches its Termination
Phase. Once one of these bits has been set, it will remain
high until a "1" is written to that bit to reset it low.
4.2 RIAS FUNCTIONAL DESCRIPTION
In this section, the operation of the Remote Arbitration State
Machine (RASM), is described in detail. Discussed, among
other things, are the sequence of events in a remote access, arbitration of the data buses, timing of external signals, when inputs are sampled, and when wait states are
added. Each of the five Interface Modes is described in
functional state machine form. Although each interface
mode is broken out in a separate flow chart, they are all part
of a single state machine (RASM). Thus the first state in
each flow chart is actually the same state.

XACK is taken low as soon as RAPREM-RD is true, regardless of an ongoing local access. If [lOR] is low, RASM
will move, into RSs on the next clock after RAE·REM-RD is
true and there is no local bus request. No further local bus
requests will be granted until the remote access is complete
and RASM returns to RSA. Half a T·stateafter entering RSs
the A· bus (and AD bus if the. access is to Data Memory)
goes into TRI-STATE.

The functional state machine form is similar to a flow chart,
except that transitions to a new state (states are denoted as
rectangular boxes) can only occur on the rising edge of the
internal CPU clock (CPU-CLK). CPU-CLK is high during the
first half of its cycle. A state box can specify several actions,
and each action is separated by a horizontal line. A signal
name listed in a state box indicates that that pin will be
asserted high when RASM has entered that state. Signals
not listed are assumed low.

On the next CPU-ClK, RASM enters RSc and LCL is taken
high while XACK remains low. The wait state counters, ilW
and lOW, are loaded in this state from {IW1-0] and [DW2~
01; respectively, in {DCRl-The Abus (and AD jf the access
Is to Data Memory) remains in TRI-STATE and the Access
Phase begins.
The state machine can move into one of several states,
depending on the state of CMD and [MS1-0], on the next
clock. XACK remains low and LCl remains high in all the
possible next states. If CMD is high, the access is to {RICI
and the next state will be RSD1. Since the default state of
AD is {RIC I, it will not transition in this state.

Note: This sometimes necessitates using the inversion of the external pin
name.

This same rule applies to the A and AD buses. By default,
these buses are active. The A bus will have the upper byte
of the last used data address. The AD bus will display
{RIC I. When one of these buses appears in a state box, the
condition specified will be in effect only during that state.
Decision blocks are shown as diamonds and their meaning
is the same as in a flow chart. The hexagon box is used to
denote a conditional state-not synchronous with the clock.
When the path following a decision block encounters a conditional state, the action specified inside the hexagon box is
executed immediately.

The five other next states all have CMD low and depend on
the Memory Select bits. If [MS1-0] is 10 or 11 the state
machine will enter either RS02 or RS03 and the low or high
bytes of the Program Counter, respectively, will be read.
[MS1-0] = 00 designates a Data Memory access and
moves RASM into RS04. READ will be asserted in this state
and A and AD continue to be in TRI-STATE. This allows the
Remote Processor to drive the Data Memory address for
the read. Since DMEM is subject to wait states, RS04 is
looped upon until all the wait states have been inserted.

1-114

4.0 Remote Interface and Arbitration System (RIAS)
~

1-115

(Continued)

DP8344B
RAS~

state

TCU state

RSA

RSA

Tl

Tx

RS A

RSA

RS 8

TWd

T2

Tl

RS C

TWr

RS D

RS D

RS E

TWr

_ TWr .

TWr

RS E

TWr

RS E

RSE

I

_ TWr

TWr

RSr

TWr

RS A

RSA

TWr

Tx

RSA

RSA

RS A

TWd

T2

Tl

~

(:)
~
(I)

CLK-OUT

3
o

...
...
...
(I)

REiHffi

::J

(I)

....
S»

LCL

n

(I)

S»
::J

XACK

Q.

...l>
::;
...S»

READ

C"

...

ALE

o·::J

BCP BUS

........en

ADDR/DATA

(0-7)

IIIIIIXLOCALADDRX

en

...

'<

RWOTE DATA

LOCAL DATA

o

(I)

ADDRESS

(0-15)

11111 IX

RE~OTE

LOCAL ADDRESS

-»
3

ADDRESS

~

-en

REt.lOTE BUS
RE~OTE

ADDRESS

ADDRESS

oo
~

RE~OTE

DATA

s·

DATA

c:

m

oS

L - LOCAL ~E~ORY READ ~

L..-_ _ _ _ _ _ _ _ _ _

RE~OTE

READ _ _ _ _ _ _ _ _ _ _- - - l

L

LOCAL

~E~ORY READ ~
TUF/9336-27

Register Configuration:
-One Wait-State Programmed for Data-Memory
-Zero Wait-States Programmed for Instruction-Memory
-{RIC} Contents: XXXOX100
-[LOR] = 0

Other BCP Control Signals:
RAE
=0
CMD
=0
REM-WR =1
LOCK
=1

FIGURE 4-15. Buffered Read of Data Memory by Remote Processor

4.0 Remote Interface and Arbitration System (RIAS)
The last possible Memory Selection is Instruction Memory,
[MS1-0] = 01. The two possible next states for an IMEM
access depend on if RASM is expecting the low byte or high
byte. Instruction words are accessed low byte then high
byte and RASM powers up expecting the low Instruction
byte. The internal flag that keeps track of the next expected
Instruction byte is called the High Instruction Byte flag (HI B).
If HIB is low, the next state is RS05 and the low instruction
byte is MUXed to the AD bus. If HIB is high, the high instruction byte is MUXed to AD and RS06 is entered. An IMEM
access, like a OM EM access, is subject to wait states and
these states will be looped on until all programmed instruction memory wait states have been inserted.

(Continued)

From RSE4, RASM enters RSF2 on the CPU-ClK after
RAE*REM-RD is deasserted. In RSF2, [C[ remains high
while both A and AD remain in TRI-STATE.
From RSF1, the next clock will return the state machine
back to state RSA1 where it will loop until another Remote
Access is initiated. If the access was to IMEM, then the last
action of the remote access before returning to RSA is to
switch HIB and increment the PC if the high byte was read.
From RSF2, the next CPU-ClK returns to state RSA3 where
low, but A and AD remain TRI-STATE for the
first half T-state of RSA3. If no Remote Access is initiated
the next state will be RSA 1 where it will loop until another
Remote Access is initiated.
The example in Figure 4-15 shows the BCP executing the
first of two consecutive Data Memory reads when REM-RD
goes low. In response, XACK goes low waiting the remote
processor. At the end of the first instruction, although the
BCP begins its second read by taking ALE high, the RASM
now takes control of the bus and takes lCl high at the end
of T1. A one T-state delay is built into this transfer to ensure
that READ has been deasserted before the data bus is
switched. The Timing Control Unit is now waited, inserting
remote access wait states, TWr, as RASM takes over.

ICC returns

Note: Resetting the SCP will reset HIS (i.e., HIS = 0). Writing 01 to the
Memory Select bits in IRICI (i.e., [MS1-0] = 01, pointing to IMEM)
will also force HIB to zero. This way the instruction word boundary
can be reset without resetting the SCPo

After all of the programmed wait states are inserted in the
RSo states, more wait states may be added by asserting
WAIT Iowa half T-state before the end of the last programmed wait state. If there are no programmed wait
states, WAIT must be asserted Iowa half T-state before the
end of RSo to add wait states. If WAIT remains low, the
remote access is extended indefinitely. All the RSo states
move to their corresponding RSE states on the CPU-ClK
after the programmed wait state conditions are met and
WAIT is high. The RSE states are looped upon until RAE*
REM-RD is deasserted. lCl remains high in all RSE states
and A remains in TRI-STATE. AD will also stay in TRISTATE if the access was to DMEM. XACK is taken back
high to indicate that data is now valid on the read. If XACK is
connected to a Remote Processor wait pin, it is no longer
waited and can now terminate its read cycle. This state begins the Termination Phase. The action specified in the conditional box is only executed while RAE*REM-RD is asserted-a clock edge is not necessary. In all RSE states except
RSE4 (OM EM) lCl will fall a propagation delay after
RAE*REM-RD is deasserted. In RSE4, lCl remains high
through the whole state.
On the CPU-ClK after RAE*REM-RD is deasserted. RASM,
enters RSF1 from every RSE state except RSE4 (OM EM). In
RSF1. ICC remains low and A remains in TRI-STATE while
CPU-ClK is high (Le., for the first half T-state of RSF1).

The remote address is permitted one T-state to settle on the
BCP address bus before READ goes low, XACK then returns high one T-state plus the programmed Data Memory
wait state, TWd later, having satisfied the memory access
time. The Remote Processor will respond by deasserting
REM-RD high to which the BCP in turn responds by deasserting READ high. Following READ being deasserted high,
the BCP waits till the end of the next T-state before taking
lCl low, again ensuring that the read cycle has concluded
before the· bus is switched. Control is then returned to the
Timing Control Unit and the local memory read continues.

4.2.2 Latched Read
This mode differs from the Buffered Read mode in the way
the access is terminated. A latched Read cycle ends after
the data being read is valid and the termination doesn't wait
for the trailing edge of REM-RD. Therefore the Arbitration
and Access Phases of the latched Read mode are the
same as for the Buffered Read mode. The complete flow
chart for the latched Read mode is shown in Figure 4-16.

1-117

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)

[MS1-0] = 00 designates a Data Memory access and
moves RASM into RS04. READ will be asserted low in this
state and A and AD continue to be tri-stated. This allows the
Remote Processor to drive the Data Memory address for
the read. Since OM EM is subject to wait states, RS04 is
looped upon until all the wait states have been inserted.

Until a Remote Read is initiated (RAE*REM-RD true), the
state machine (RASM) loops in state RSA1. If a Remote
Read is initiated and [LOR] is set high, RASM will move to
state RSA2. Likewise, if a Remote Read is initiated while the
buses have been granted locally (Le., Local Bus Grant = 1),
RASM will move to state RSA2. The state machine will loop
in state RSA2, as long as [LOR] is set high or the buses are
granted locally. If the BCP CPU needs to access Data Memory while in either RSA state (and LOCK is high), it can still
do so. A local access is requested by the Timing Control
Unit asserting the Local Bus Request (LCL-BREQ) signal. A
local bus grant will be given by RASM if the buses are not
being used (as is the case in RSA).

The last possible Memory Selection is Instruction Memory,
[MS1-0] = 01. The two possible next states for the IMEM
access depend on if RASM is expecting the low byte or high
byte. Instruction words are accessed low byte then high
byte and RASM powers up expecting the low Instruction
byte. The internal flag that keeps track of the next expected
Instruction byte is called the High Instruction Byte flag (HIB).
If HIB is low, the next state is RS05 and the low instruction
byte is MUXed to the AD bus. If HIB is high, the high instruction byte is MUXed to AD and RS06 is entered. An IMEM
access, like a DMEM access, is subject to wait states and
these states will be looped on until all programmed instruction memory wait states have been inserted.

XACK is taken low as soon as RAE*REM-RD is true, regardless of an ongoing local access. If [LOR] is low, RASM
will move into RSs on the next clock after RAE*REM-RD is
asserted and there is no local bus request. No further local
bus requests will be granted until RASM enters the Termination Phase. If the BCP CPU initiates a Data Memory access
after RSA, the Timing Control Unit will be waited and the
BCP CPU will remain in state T Wr until the remote access
reaches the Termination Phase. Haifa T-state after entering
RSs the A bus (and AD bus if the access is to Data Memory)
goes intoTRI-STATE.

Note: Resetting the ecp will reset HIS (i.e., HIS' "" 0). Writing 01 to the
Memory Select bits in (RICI [I,e" [MS1-0] "" 01, pointing to IMEM)
will also force HIS to zero. This way the instruction word boundary
can be reset without resetting the BCP.

After all of the programmed wait states are inserted in the
RSo states, more wait states may be added by asserting
WAIT low a half T -state before the end of the last programmed wait state. If there are no programmed wait states
WAIT must be asserted Iowa half T-state before the end of
RSo to add wait states. If WAIT remains low, the remote
access is extended indefinitely. All the RSo states move to
their corresponding RSE states on the CPU-CLK after the
programmed wait state conditions are met and WAIT is
high. LCL remains high in all RSE states and A remains in
TRI-STATE (and AD if the access is to Data Memory).
XACK returns high in this state, indicating that data is valid
so that it can be externally latched. The action specific to
each RSo state remains in effect during the first half of the
RSE cycle (Le. READ is asserted in the first half of RSE4).
This half T -state of hold time is provided to guarantee data
is latched when XACK goes high. This state begins the Termination Phase.

On the next clock, RASM enters RSc and LCL is taken high
while XACK remains low. The wait state counters, ilW and
iow, are loaded in this state from [lW1-0] and [DW2-0],
respectively, in {DCRl. The Abus (and AD if the access is
to Data Memory) now remains TRI-STATE and the Access
. .
Phase begins. .
The state machine can move into one of several states,
depending on the state of CMD and [MS1-01. on the next
clock. XACK remains low and i l l remains high in all the
possible next states. If CMD is high, the access is to (RIC}
and the next state will be RS01. Since the default state of
AD is (RIC l. it will not transition in this state. The five other
next states all have CMD low and depend on the Memory
Select bits. If [MS1-0] is 10 or 11 the state machine will
enter either RS02 or RS03 and the low or high bytes of the
Program Counter, respectively, will be read.

1-118

~

b

lJ

(1)

...3
...

o

(1)

::::s

(1)
'""I

-to

D)

n

(1)

D)

::::s

a.
l>
'""I
C"

::;:

...
o·
'""I

D)

::::s

en
'<
en

...

co

(1)

3
'ij

l>
en

'o0
~

:i"

c::



.9:

t.-:....

FIGURE 4-.16. Flow Chart of ~tched Read Mode

TUF/9336-98

8tt&SdO

DP83448
HAS.. stat.
TCU stat.
ClK-ouT

I

RSA
Tl

-.

RSA

RSA

RSB

RSA

RSc

RSD

RSo

RSE

RSr

RSo

RSo

RSA

RSA

RSA

T_

T_

TWr

TWr

TX

TWd

T2

Tl

T2

I-. I-. I-. I-. I-. I-. I-. I-. I-. I-. I-. I-. I-.
TX

T2

TWd

Tl

TWr

~

(:)

:II
CD

3

...

o

CD

....

REhl-RD

:i

LCl

....CD
D)

n

CD

D)

XACK

:::s

.
....

Q.

~
tr

READ

::;

D)

ALE

.

......
......
I\J
0

o
:::s
en

ADDR/DATA

...

'<

(0-7)

tn

A(~~) 141UIIX

_ru
OATA

*

LOCAL ADDRESS

IXIIIIIX

CD

3

REMOTE ADDRESS

rRafOTE BUS

~

R~ott ~

~zzzzzzzzzzzzz>zzzzzzzzzzzzzzzzzzzx
LOCAL MEMORY READ

II

REMOTE READ

::D

.

i>
en

-

~+
II

'o0

a

:r
c:
CD

.s
BCP INT. OP.
TVF/9336-30

Register Configuration:
-One Wait-State Programmed for Data-Memory
-Zero Wait-States Programmed for Instruction-Memory
-(RIC) Contents: XXX1X100
-[LOR] = 0

Other BCP Control Signals:
=0
RAE
CMD
=0
REM-WR =1
=1
LOCK

FIGURE 4-17. Latched Read of Data Memory by Remote Processor

4.0 Remote Interface and Arbitration System (RIAS) ,(Cortinued).
On the next clock the state machine will enter RSF and LCL
will return low. The A bus (and AD bus if the access is to
data memory) remains in TRI-STATE for the first half
T-state of RSF. After the first half of RSF, the Remote Processor is no longer using the buses and the BCP
CPU will be granted the buses if LCL-BREQ is asserted. If a
local bus request is made, a local bus grant will be given to
the Timing Control Unit. If the preceding access was a read
of IMEM, then HIB is switched and if the access was to the
high byte of IMEM then the PC is incremented. If RAE*
REM-RD is deasserted at this point, the next clock will bring
RASM back to RSA where it will loop until another Remote
Access is initiated. RSG is entered if RAE*REM-RD is still
true. RASM will loop in RSG until RAE*REM-RD is no longer
active at which time the state machine will return to RSA·
In Figure 4-17, the BCP is executing the first of two Data
Memory reads when REM-RD goes low. In response, XACK
goes low, waiting the Remote Processor. At the end of the
first instruction, although the BCP begins its second write by
taking ALE high, the RASM now takes control of the bus
and deasserts [C[ high at the end of T1· A one T-state
delay is built into this transfer to ensure that READ has been
deasserted high before the data bus is switched. The Timing
Control Unit is now waited, inserting' remote access wait
states, TWr, as RASM takes over.
The remote address is permitted one T-state to settle on the
BCP address bus before READ goes low, XACK then returns high one T-state plus the programmed Data Memory
wait state, T Wd later, having satisfied the memory access
time. READ returns high a half T-state later, ensuring sufficient hold time, followed by LCL being reasserted low after
an additional half T-state, transferring bus control back to
the BCP. The Remote Processor responds to XACK returning high by deasserting REM-RD high, although by this time
the BCP is well into its own memory read.

:,

"

"

,:

and iow, are loaded in this state from [IW1-0] and [DW20], respectively, in IOCR I. The A and AD buses now remain
in TRI-STATE and the Access Phase begins. If the Remote
Access is to IMEM and the high instru9tion byte flag is set
(Le., HIB = 1), then IWR is asserted low in RSc. The state
machine can move into one of several states, depending on
the state of CMDand [MS1-01. on the next clock. XACK
remains low and, LCL remains high in' all the possible next
states. If CMD is high, the access is to IRICI and the next
state will be RS01' The path from AD to IRICI opens in this
state. Any remote access mode changes made by this write
will not take effect until one T-state after the completion of
the present write.
The five other next states all have CMD low and depend on
the Memory Select bits. If [MS1-0] is 10 or 11, the state
machine will enter either RS02 or RS03 and the,low or high
bytes of the Program Counter, respectively. will be written.
[MS1-0] equal to 00 designates a Data~ Memo~ access
and moves RASM into RS04. WRITE will be asserted in this
state and A and AD continue to be tri-stated. This allows the
Remote Processor to drive the Data Memory address and
data buses for the write. Since DMEM is subject to wait
states, RS04 is looped upon until all the programmed data
memory wait states have been inserted.

4.2.3 Slow Buffered Write
The timing for this mode ,is the same as the Buffered Read
mode. The complete flow chart for the Slow Buffered Write
mode is shown in Figure 4-18. Until a Remote Write is initiated (RAE*REM-WR true), the state machine (RASM) loops
in state RSA1. If a Remote Write is initiated and [LOR] is set
high, RASM will move to state RSA2. Likewise, if a Remote
Write is initiated while the buses have been granted locally
(Le., Local Bus Grant = 1), RASM will move to state RSA2.
The state machine will loop in state RSA2 as long as [LOR]
is set high or the buses are granted locally. If the BCP CPU
needs to access Data Memory while in either RSA state
(and LOCK is high), it can still do so. A local access is requested by the Timing Control Unit asserting the Local Bus
Request (LCL-BREQ) signal. A local bus grant will be given
by RASM if the buses are not being used (as is the case in
the RSA state).
XACK is taken low as soon as RAE*REM-WR is true, regardless of an ongoing local access. RASM will move into
RSs on the next clock after RAE*REM-WR is asserted and
there is no local" bus request and [LOR] = O. No further
local bus requests will be granted until the remote access is
complete and RASM returns to RSA' If the BCP CPU initiates a Data Memory access after RSA, the Timing Control
Unit will be waited and the BCP CPU will remain in state T Wr
until completion of the remote access. Haifa T-state after
entering RSs the A and AD buses go into TRI-STATE.
'

The last possible Memory Selection is Instruction Memory,
[MS1-0] = 01. The two possible next states for IMEM depend on whether RASM is expecting the low byte or high
byte. Instruction words, are accessed low byte, then high
byte and RASM powers up expecting the low Instruction
byte. The internal flag that keeps track of the next expected
Instruction byte is called the High Instruction Byte flag (HIB).
IfHIB.is low, the next state is RS05 and the low instruction
byte is written into the holding register, ILAT. If HIB is high,
the high instruction byte is moved to 115-8 and the value in
ILAT is moved to 17-0. At the same time, IWR is asserted
" low, beginning the write to instruction memory. An IMEM
access, like a OM EM access, is' subject to wait states and
these states will be looped on until all programmed Instruction Memory wait states have been inserted.
Note: Resetting the SCP will reset HIS (i.e .• HIS = 0). Writing 01 to.the

On the next CPU-CLK, RASM enters RSc and LCL is taken
high while XACK remains low. The wait state counters, ilW

1-121

Memory Select bits in (RIC) v.e.; [MS1-0] = 01. pointing to IMEM)
will also, force HIS to zero; This way the instruction word boundary
can be reset with~ui resetting the SCPo

After all of the programmed wait states are inserted in the
RSo states, more wait states may be added by asserting
WAIT Iowa half T-state before the end of the last programmed wait state. If there are no programmed wait
states, WAIT must be asserted Iowa half T-state before the
end of RSo to add wait states. If WAIT remains low, the
remote access is extended indefinitely. All the RSo states
move to their corresponding RSE states on the CPU-ClK
after the programmed wait state conditions are met and
WAIT is high. The RSE states are looped upon until RAE*
REM-WR is deasserted. LCL remains high in all RSE states,
but XACK is taken back high to indicate that the remote
access can be terminated. If XACK 'is connected to a Remote Processor wait pin, it can now terminate its write cycle.
This state begins the Termination Phase. The action specified in the conditional box is only executed while RAE*REMWR is asserted-a clock edge is not necessary.
On the CPU-CLK afte~ RAE*REM-WR i$ deasserted, RASM
enters RSF. where LCL remains high and the BCP A and AD
buses are still in TRI-STATE. The next CPU-CLK causes
RASM to move to RSA3' If the access was to 1M EM, then

DP8344B
~

b
:rJ

'RS,u

CD

3

...o
...

iCl

CD

TRI-STAfE AtAD'RSot

TRt-STAJE At AD I

::J

RSo2

CD

::::.

m

()

CD

m
::J
c.

»
...
C'"

...m

:;:;

...

o·
::J

-"

en

I\)
I\)

...

'<
tn

CD

3

:rJ

l>
en

()
o

"'U-~I.I'I.'L

~

.I'I.,.I'I.U'R%1

:;c:
CD

.s

TL/F /9336-99

fIGUFtE'ft~~· FJ§W··~taiil't§f.~IC)W.~~ff~fed Wr!te'Mode

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)

is set high, RASM will move to state RSA2. Likewise, if a
Remote Write is initiated while the buses have been granted
locally (I.e., local Bus Grant = 1), RASM will move to state
RSA2. The state machine will loop in state RSA2 as long as
[lOR] is set high or the buses are granted locally. If the
BCP CPU needs to access Data Memory while in either RSA
state (and LOCK is high), it can still do so. A local access is
requested by the Timing Control Unit asserting the Local
Bus Request (lCl-BREQ) signal. A local bus grant will be
given by RASM if the buses are not being used (as is the
case in the RSA states).
XACK is taken low as soon as RAE*REM-WR is true, regardless of an ongoing local access. If [lOR] is low, RASM
will move into RSs on the next clock after RAE*REM-WR is
asserted and there is no local bus request. No further local
bus requests will be granted until the BCP enters the Termination Phase. If the BCP CPU initiates a Data Memory access after RSA, the Timing Control Unit will be waited and
the BCP CPU will remain in state TWr until the remote access reaches the Termination Phase. Half a T-state after.
entering RSs the A and AD buses go into TRI-STATE.

the last action of the remote access before moving to RSA3
is to switch HIB and increment the PC if the high byte was
written. In RSA3, LCL goes low while A and AD remain in
TRI-STATE for the first half of RSA3. If no new Remote
access is initiated the next clock brings the state machine
back to RSA1 where it will loop until a Remote Access is
initiated.
In Figure 4-19, the BCP is executing the first of two consecutive Slow Buffered Writes to Data Memory when REM-WR
goes low. In response, XACK goes low, waiting the Remote
Processor. At the end of the first instruction, although the
BCP begins its second write by taking ALE high, RASM now
Takes control of the bus and deasserts LCL high at the end
of T 1. A one T-state delay is built into this transfer to ensure
that WRITE has been deasserted high before the data bus
is switched. The Timing Control Unit is now waited, inserting
remote access wait states, TWr, as RASM takes over.
The remote address is permitted one T-state to settle on the
BCP address bus before WRITE goes low, XACK then returns high one T-state plus the programmed Data Memory
wait state, TWd later, having satisfied the memory access
time. The Remote Processor will respond by deasserting
REM-WR high to which the BCP in turn responds by deasserting WRITE high. Following WRITE being deasserted
high, the BCP waits till the end of the next T-state before
asserting LCL low, again ensuring that the write cycle has
concluded before the bus is switched. Control is then returned to the Timing Control Unit and the local memory write
continues.

On the next CPU-ClK, RASM enters RSc and ill is taken
high while XACK remains low. The wait state counters, ilW
and iow, are loaded in this state from IIW1-0] and [DW2~<
0], respectively, in !DCRL The A and AD buses remain in
TRI-STATE and the Access Phase begins. If the Remote
Access is to IMEM and the high instruction byte flag is set
(I.e., HIB =. 1), then IWR is asserted low in RSc.
The state machine can move into one of several states depending on the state of CMD and [MS1-0] on the next
clock. XACK and lCL in all the possible next states. If CMD
is high, the access is to {RIC J and the next state will be
RS01. The path from AD to {RIC J opens in this state. Any
remote access mode changes made by this write will not
take effect until one T-state after the completion of the present write.
The five other next states all have CMD low and depend on
the Memory Select bits. If [MS1-0] is 10 or 11 the state
machine will enter either RS02 or RS03 and the low or high
bytes of the Program Counter, respectively, will be written.

4.2.4 Fast Buffered Write
The timing for the Fast Buffered Write mode is very similar
to the timing of the Latched Read. The major difference is
the additional half clock that AD is active in the Latched
Read mode that is not present in the Fast Buffered Write
mode. The Fast Buffered Write cycle ends after the data is
written and the termination doesn't wait for the trailing edge
of REM-WR. Therefore the Arbitration and Access Phases
of the Fast Buffered Write mode are the same as for the
Latched Read mode.
The complete flow chart for the Fast Buffered Write mode is
shown in Figure 4-20. Until a Remote Write is initiated
(RAE*REM-WR true), the state machine (RASM) loops in
state RSA1' If a Remote Write is initiated and [lOR]

[MS1-0] = 00 designates a Data Memory access and
moves RASM into RS04. WRITE will be asserted in this

1-123

DP83448
~

RASM state
TCU state

RS A

RSA

RS A

RS A

Tl

TX

TWd

T2

B

I

TWr

IRSO
TWr

RS O

RS[

TWr

TWr

I

I

I

I

I

I

RS[

RS[
. TWr

- - - - - - - - - -

I
CLK-OUT

RS
Tl

RS c

I

TWr
I

RS[

RS r

RS A

RSA

RSA

RS A

RS A

TWr

TWr

TWr

TX

TWd

T2

Tl

-

I

b

:IJ
(I)

3

...
......

0

(I)

REM-WR

::::J

(I)

....

LCL

Q)
(')

(I)
Q)

XACK

::::J
Co

...l>tT

WRITE

...o·...

::;:

ALE

Q)

AD DR/DATA I A I I I I XLOCAL ADDRX
(O-7)

~I

'~~~

(fllX

LOCAL DATA I

X I I I I I I I I I I I I I I I I I I I I I I I I I I X

REMOTE DATA

::::J

en

...

'<
LOCAL ADDRESS

I~

t t

'OOR~ ~

til

REMOTE ADDRESS

(I)

3

REMOTE BUS

:IJ

R~OITADM~S

OATA;JJ/JJ/JJ/JJJJ/=/JJ>/JJJJJJJJJJJJJJJJ/JJ/~",TE

l>

en

OAlA

'00
~

:i"

c

LOCAL MEMORY WRITE

L......_ _ _ _ _ _ _ _ _ _

(l)

REMOTE WRITE _ _ _ _ _ _ _ _ _ _--l

.e,
TLlF/9336-28

Register Configuration:
-One Wait-State Programmed for Data-Memory
-Zero Wait-States Programmed for Instruction-Memory
-(RIC} Contents: XXOX0100
-[LOR] = 0

Other BCP Control Signals:
RAE
=0
CMD
=0
REM-RD =1
LOCK
=1

FIGURE 4·19. Slow Buffered Write to Data Memory by Remote Processor

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)
On the next clock the state machine will enter RSF and
will return low. The A and AD buses remain in TRI-STATE
for the first half T-state of RSF' After the first half of RSF,
the Remote Processor is no longer using the buses and the
SCP CPU can make an access to Data Memory by asserting
lCl-SREQ. If a local bus request is made, a local bus grant
will be given to the Timing Control Unit. If the preceding
access was a write of IMEM, then HIS is switched and if the
access was to the high byte of IMEM then the PC is incremented. If RAEoREM-WR is deasserted at this point, the
next clock will bring RASM back to RSA where it will loop
until another remote access is initiated. RSG is entered if
RAE"REM-WR is still true. RASM will loop in RSG until
RAE*REM-WR is no longer active at which time the state
machine will return to RSA·
In Figure 4-21, the SCP is executing the first of two Data
Memory writes when REM-WR goes low. In response,
XACK goes low, waiting the Remote Processor. At the end
of the first instruction, although the SCP begins its second
write by taking ALE high, RASM now takes control of the
bus and de asserts lCl high at the end of T1. A one T-state
delay is built into this transfer to ensure that WRITE has
been deasserted high before the data bus is switched. The
Timing Control Unit is now waited, inserting remote access
wait states, TWr, as RASM takes over.
The remote access is permitted one T-state to settle on the
SCP address bus before WRITE goes low, XACK then returns high one T-state plus the programmed Data Memory
wait state, TWd later, having satisfied the memory access
time. WRITE returns high at the same time, and one T-state
later LCl returns low, transferring bus control back to the
SCPo The remote processor responds to XACK returning
high by deasserting REM-WR high, although by this time the
SCP is well into its own memory write.

state and A and AD continue to be tri-stated. This allows the
Remote Processor to drive the Data Memory address and
data buses for the write. Since OM EM is subject to wait
states, RS04 is looped upon until all the programmed Data
Memory wait states have been inserted.
The last possible Memory Selection is Instruction Memory,
[MS1-0] = 01. The two possible next states for IMEM depend on whether RASM is expecting the low byte or high
byte. Instruction words are accessed low byte then high
byte and RASM powers up expecting the low Instruction
byte. The internal flag that keeps track of the next expected
Instruction byte is called the High Instruction Syte flag (HIS).
If HIS is low, the next state is RS05 and the low instruction
byte is written into the holding register, ILAT. If HIS is high,
the high instruction byte is moved to 115-8 and ILAT is
moved to 17-0. At the same time IWR is asserted low, beginning the write to instruction memory. An IMEM access,
like a OM EM access, is subject to wait states and these
states will be looped on until all programmed instruction
memory wait states have been inserted.
Note: Resetting tM SC? will reset HIS (I.e., HIS" 0). Writing 01 to the
Memory Select bits in (RICI O.e.• [MS1-0] .. 01. pointing to IMEM)
wUl also force HIS to zero. This way the instruction word boundary
can be reset without resetting the SCPo
After all of the programmed wait states are inserted into
RSo states, more wait states may be added by asserting
WAIT Iowa half T-state before the end of the last programmed wait state. If there are no programmed wait states
WAIT must be asserted Iowa half T-state before the end of
RSo to add wait states. If WAIT remains low, the remote
access is extended indefinitely. All the RSo states converge
to state RSE on the next CPU-ClK after the programmed
wait state conditions are met and WAIT is high. i l l remains
high in all RSE states and A and AD remain in TRI-STATE
as well. XACK returns high in this state, indicating that the
data is written and the cycle can be terminated by the RP.
This state begins the Termination Phase.

m

II
1-125

DP8344B
~

(:)
lJ
CD

3
o

~

CD

::s

~

.......
CD

D)

n

-CD
D)

::s

Co

»
...tT
::;
...
o·
::s

lOW-I-low

TRI-ST\TE A,ADI RSo.

D)

~

o·

en
en

I\)

'<

C»

~

CD

-»
3

lJ

en

no
3-

:]"
c

CD

.e,

TUF/9336-AO

FtG9RE.f2Q~ •.~oW.·.~~art ott=ast . f)Uff~red:Wrlt~.·Mode

RASt.l state
TCU state

RSA

RSA

RSA

RSA

RS e

RS C

RS O

RS O

RS E

RS r

RS G

RS H

RSA

RSA

RSA

Tl

Tx

TWd

T2

Tl

TWr

TWr

TWr

TWr

TWr

TWx

TWd

T2

Tl

T2

~

(:)
lJ
(I)

CLK-OUT

3

...
.......

o

(I)
REt.l-WR

:J

(I)

....

LCL

D)

n

(I)

D)

XACK

:J

Co

:t>
....

WRITE

C"

;::;:

...O·....
D)

ALE

:J

en

......
I\)

"'-I

ADDR/DATA

...en

'<

LOCAL DATA

(0-7)

(I)

3

ADDRESS

(0-15)

~
:t>

REMOTE BUS
ADDRESS

-en

REt.lOTE ADDRESS

()

DATA

o
35·

REt.lOTE DATA

c

CD

S
L..-_ _ _

LOCAL t.l[t.lORY WRITE - - - - '

L..-_ _ _ _

REt.lOTE WRITE

L - LOCAL IAEt.lORY WRITE ~ L

BCP INT. OP.

--1
TUF/9336-29

Register Configuration:
-One Wait-State Programmed for Data-Memory
-Zero Wait-States Programmed for Instruction-Memory
-{RIC} Contents: XX1X0100
-[LOR] = 0

Other BCP Control Signals:
RAE
=0
CMD
=0
REM-RD =1
LOCK
=1

FIGURE 4-21. Fast Buffered Write to Data Memory by Remote Processor

8l7l7eSdC

11

4.0 Remote Interface and Arbitration System (RIAS)
4.2.5 Latched Write

(Continued)

The last possible Memory Selection is Instruction Memory,
[MS1-0] = 01. The two possible next states for IMEM depend on if RASM is expecting the low byte or high byte.
Instruction words are accessed low byte then high byte and
RASM powers up expecting the low Instruction byte. The
internal flag that keeps track of the next expected Instruction byte is called the High Instruction Byte flag (HI B). If HIB
is low, the next state is RSF5 and the low instruction byte is
written into the holding register, ILAT. If HIB is high, the high
instruction byte is moved to 115-8 and the value in ILAT is
moved to 17-0. At the same time, IWR is asserted low and
the write to Instruction Memory is begun. An IMEM access,
like a OM EM access, is subject to wait states and these
states will be looped on until all programmed instruction
memory wait states have been inserted.

This mode executes a write without waiting the Remote
Processor-XACK isn't normally taken low. The complete
flow chart for the Latched Write mode is shown in Figure
4-22. Until a Remote Write is initiated (RAE*REM-WR true),
the state machine (RASM) loops in state RSA. If the BCP
CPU needs to access Data Memory at this time (and LOCK
is high), it can still do so. A local access is requested by the
Timing Control Unit asserting the Local Bus Request
(LCL-BREQ) signal. A local bus grant will be given by RASM
if the buses are not being used (as is the case in RSA).
RASM will move into RSs on the next clock after
RAE*REM-WR is asserted. XACK is not taken low
and therefore the RP is not waited. The state machine will
loop in RSs until the RP terminates its write cycle-until
RAE*REM-WR is no longer true. The external address and
data latches are typically latched on the trailing edge of
REM-WR. A local bus request will still be serviced in this
state.

Note: Resetting the SCP will reset HIS (I.e.• HIS .;. 0). Writing 01 to the
Memory Select bits In (RIC) O.e., [MS1-01 "" 01. pointing to IMEM)
will also force HIS to zero. This way the instruction word boundary
can be reset without resetting the BCP.

All the RSF states converge to a single decision box that
tests WAIT. If WAIT is low then the state machine loops
back to RSF, otherwise RASM will move on to RSG. i l l
remains high and WR-PEND remains low in this state but
the actions specific to the RSF states have ended (I.e.
WRITE will no longer be asserted low).

Next, RASM enters RSc and WR-PEND is asserted to prevent overwrite of the external latches. Since the RP has
completed its write cycle, another write or read can happen
at any time. Any Remote Read cycle (RAE*REM-RD) or
Remote Write cycle (RAE*REM-WR) occurring after the
state machine enters RSc will take XACK low. A local access initiated before or during this state must be completed
before RASM can move to RSo. Once RSo is entered,
though, no further local bus requests will be granted until
RASM enters the Termination Phase. If the BCP CPU initiates a Data Memory access after RSc, the Timing Control
~ni~ will be waited and the BCP CPU will remain in state T Wr
until the RASM.· enters RSH. Half aT-state after entering
RSelhe A and AD buses gointo.TRI-STATE.

The next CPU-ClK moves RASM into RSH, the last state in
the state. machine. i l l returns .Iow .butWR-PEND is still
low. The A and AD buses remain in TRI-STATE for the first
be. taken low if a Remote Access
half of RSH' XACK
is initiated. If the just completed access was to IMEM, HIB
will be switched. Also, the PC will be incremented if the high
byte was written. A local access will be granted if LCLBREQ is asserted in this state.

will

If another Remote Write is pending, the state machine takes
the path to RSs where that write will be processed. A pending Remote Read will return to the RSA in either the Buffered or Latched Read sections (not shown in Figure 4-22)
of the state machine. And if no Remote Access is pending,
the machine will loop in RSA until the next access is initiated.

On the next clock, the state machine enters RSE and ill is
taken high. WR-PEND continues to be asserted low in this
stat~ and the data and instruction wait state counters, iow
andllW. are loaded from [DW27'O] and [lW1-0]. respective~
ly,inlDCRI. The A and AD buses remain in TRI·STATE
and the Access Phase begins. Any remote accesses now
occurring will take XACK low and wait the Remote Processor. If the Remote Access is to IMEM and the high instruc~
tion byteflag is set (i.e:, HI8 =1), then TWR is asserted loW
in RSE.

In Figure 4-23, the BCP is executing the first of two Data
Memory writes when REM-WR goes low. The BCP takes no
action until REM-WR goes back high, latching the data and
making a remote access request. The SCP responds to this
by taking WR-PEND low. At the end of the first instruction
although the BCP begins its second write by taking ALE
high, RASM now takes control of the bus and deasserts
LCL high at the end of T 1. A one T -state delay is built into
this transfer to ensure that WRITE has been deasserted
high before the data bus is switched. Timing Control Unit is
now waited, inserting remote access wait states, T Wr, as
RASM takes over.

The state machine will move into one of several states on
the next clock, depending on the state of CMD and
[MS1-0]. WR-PEND remains low and LCL remains high in
all the possible next states. If CMD is high, the access is to
(RIC} and the next state will be RSF1. The path from AD to
(RIC} opens in this state. Any remote access mode changes made by this write will not take effect until one T-state
after the completion of the present write.
The five other next states all have CMD low and depend on
the Memory Select bits. If [MS1-0] is 10 or 11 the state
machine will enter either RSF2 or RSF3 and the low or high
bytes of the Program Counter, respectively, will be loaded.

The remote address is permitted one T -state to settle on the
BCP address bus before WRITE goes low. WRITE then returns high one T-state plus the programmed Data Memory
wait state, T Wd later, having satisfied the memory access
time, and one T-state later LCL is reasserted low, transferring bus control back to the SCPo

[MS1-0] = 00 designates a Data Memory access and
moves RASM into RSF4. WRITE will be aStlerted low in this
state and A and AD continue to be tri-stated. This allows the
Remote Processor to drive the Data Memory address and
data for the write. Since OM EM is subject to wait states
RSF4 is looped upon until all the programmed Data Memo~
wait states have been inserted.

In this example, REM-WR goes low again during the remote
write cycle which, since WR-PEND is still low, causes XACK
to go low to wait the Remote Processor. Then LCL goes
low, allowing the second data byte to be latched on the next
trailing edge of REM-WR. One T-state later. XACK and
WR-PEND go back high at the same time.
1-128

~

b

Jl
(D

3

...
.....,
0

(D

::::J

(D

....

D)
(")
(D
D)

::::J

Co

..,l>
C"
::+
..,
D)

...ci"
::::J

~I

~~t)'--1

.ft~

.ft~y

~

:=r-

en

...en

'<

(D

3

Jl

l>

en

00

;:?

:r
c:
CD

B

TUF/9336-Al

FIGURE 4-22. Flow Chart of Latched Write Mode

8~~&8da

II

DP8344B
~

(:)

RASII state
TCU state

RSA

RS B

RS B

RS C

RS O

RS E

RS r

RS r

T1

TX

TWd

T2

T1

TWr

TWr

TWr

~I~I~I~I
~
~
~
~

RS C

RS D

RSE

RSE

RS G

RS H

RSA

T2

T1

T2

T1

T2

T1

T2

ClK-OUT

:D
(I)

..
.....
3
o
(I)

ROI-WR

:::l

(I)

......
n

WR-PEND

D)

m -+__________________-+____J

(I)

D)

:::l
XACK

C.

WRITE

...l>C"
D)

ALE

.....
(.oJ

a

S·

BCP BUS

ADDR~~~~~ /~

XZllX

LOCAL DATA

REIIOTE DATA

X

LOCAL ADDRESS X

LOCAL DATA

I

A(~~~~) m///X~---L-OC-AL-A-DD-RE-S-S--.....;.,.X

:::l

XlllX

REMOTE ADDRESS

X

LOCAL ADDRESS

I
X

REMOTE ADDRESS

I

I

I

I

I

X///////a

( REMOTE DATA)

(

'<
t/)

(I)

3

:D

Xr-----R-EM-OTE-A-D-DR-ES-S------------~X7///////////////0///0//0/

REMOTE ADDRESS

I
DATA

X/OVZWl

REMOTE DATA

I
REMOTE BUS

ADDRESS

.....
en
..
;:;

l>

en

oo

REMOTE DATA)

::!.

5·

c:

L - - LOCAL MEMORY WRITE ~ I

REMOTE WRITE HOST

I

L - - LOCAL MEMORY WRITE ~ L

CD

BCP INT. OP.--'

L

S:

BCP INT. OP.-.-...J
TL/F/9336-31

Register Configuration:
-One Wait-State Programmed for Data-Memory
-Zero Wait-States Programmed for Instruction-Memory
-(RIC} Contents: XXXX1100
-[LOR] = 0

Other BCP Control Signals:
RAE
=0
CMD
=0
REM-RD =1
LOCK
=1

FIGURE 4-23. Latched Write to Data Memory by Remote Processor

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)

(Reference Figure 4-24 for the timing diagrams which demonstrate how two remote accesses can be mistaken as
one.)

The BCP is now shown executing a local memory write, with
remote data still pending in the latch. At the end of this
instruction, the BCP begins executing a series of internal
operations which do not require the bus. RASM therefore
takes over and, without waiting the Timing Control Unit, executes the Remote Write.

The second source of remote rest time is due to the manner
in which the BCP samples the CMD signal. CMD is sampled
once at the beginning of each remote access. Due to the
manner in which CMD is sampled, CMD will not be sampled
again if a second remote access begins within 1.5 T-states
plus a hold time, after the BCP recognizes the end of the
first remote access. If this happens, the BCP will use the
value of CMD from the previous remote access during the
second remote access. If the value of CMD is the same for
both accesses, the second access will proceed as intended.
However, if the value of CMD is different for the two remote
accesses, the second remote access will read/write the
wrong location.

4.2.6 Remote Rest Time
For the BCP to operate properly, remote accesses to the
BCP must be separated by a minimal amount of time. This
minimal amount of time has been termed "rest time".
There are two causes for remote rest time. The first cause is
implied in the functional state machine forms for remote accesses and can be explained as follows: At the beginning of
every T-state the validity of a remote access is sampled for
that T-state. To guarantee that the BCP recognizes the end
of a remote cycle, the time between remote accesses must
be a minimum of one T-state plus set up and hold times.

The reader should note that the timing of the second source
of rest time begins at the same time that the BCP first samples the end of the previous remote access. Thus when the
first source of rest time ends, the second source of rest time
begins. (Reference Figure 4-25 for timing diagrams for rest
time in all modes except Latched Write mode).

In the case of Latched Read and Fast Buffered Write, the
validity of a remote access is not sampled on the first rising
edge of the CPU-CLK following XACK rising. However, on
all subsequent rising edges of the CPU-CLK the validity of
the remote access is sampled. As a result, if the remote
processor can terminate its remote access quickly after
XACK rises (within a T-state), up to a T-state may be added
to the above equation for Latched Read and Fast Buffered
Write modes (Le., a second remote access should not begin
for two T-states plus set up and hold times after XACK rises
in Latched Read and Fast Buffered Write modes). On the
other hand, if the remote processor does not terminate its
remote access within a T-state of XACK rising, the above
equation (one T-state plus set up and hold times between
remote accesses) remains valid for Latched Read and Fast
Buffered Write modes.

Latched Write Mode
Latched Write mode is a special case of rest time and
needs to be discussed separately from the other modes.
The first cause of rest time affects every mode including
Latched Write. In regards to the second source of rest time,
Latched Write mode was designed to allow a second remote access to start while a write is still pending (Le.,
WR-PEND = 0). Thus, when WR-PEND rises (signaling the
end of the previous write) the value of CMD is sampled for
the second remote access. This allows Latched Write to
avoid the second cause of rest time discussed above.

If these specifications are not adhered to, the BCP may
sample the very end of one valid remote access and one
T-state later sample the very beginning of a second remote
access. Thus, the BCP will treat the second access as a
continuation of the first remote access and will not perform
the second read/write. The second access will be ignored.

However, if a remote access begins within one half a
T-state after WR-PEND rises, CMD will not be sampled
again. For this case, if the value of CMD changes just after
WR-PEND rose and at the same time the remote access
begins, the BCP will read/write the wrong location. (Reference Figure 4-26 for timing diagrams of rest time for latched
write mode.)

I

II
I

1-131

4.0 Remote Interface and Arbitration System (RIAS)
I'

1 T-state

(Continued)

,I

c:::: _---,_._---+~-.....)_:_~:'+-~""'--~-.
______
TL/F/9336-G5

(a) This timing diagram shows two remote accesses within one T-state. The first set of arrows
. shows the BCP s'ampllng a valid remote read. The next time the BCP samples the validity of the
remote access Is shown by the second set of arrows (1 T-state later). In this case, It will sample
the second remote access and mistake It as a continuation of the first remote access.

TLIF/9336-G6

(b) This timing diagram shows the timing necessary for the BCP to recognize both accesses as
separate accesses. The first set of arrows shows the BCP sampling a valid remote read. One T-state
later at the second set of arrows the BCP will sample the end of the first remote access. Another T-state
later at the third set of arrows the BCP will sample the beginning of the second remote access.
FIGURE 4·24. Mistaking Two Remote Accesses as Only One

1-132

4.0 Remote Interface and Arbitration System (RIAS)

(Continued)

CPU-ClK

CMD

1st Remote Access's
CMD Value

fWA0Wff?>uCi< low till no more local accesses is (MAX(now. nlw-1)+3)T.
Note 4: The formula(s) apply to a 2. T·state instruction. For a 3 T-state Instruction. add one T.state; for a 4 T·state Instruction. add two T·states.

1-149

In
~

C')

5.0 Device Specifications (Continued)

CO

D.

C

leLK

TL/F19336-62

(a) Reset Timing

WAIT

ALE
READ

or

WRITE

------.1
---"'I
--------TLlF/9336-63

lelK

--------'1

ALE _ _ _ _ _ _ _ _ _ _ _ _J

Aw;1llfflffpijllh7Plffffhr)X____________
Tl/F/9336-64

(C) LOCK Timing

I

n

I

__

rn

n

I

n

I

~:~ =,---~~~ ~_I_ _'--~@d

TLlF/9336-AB

(d) Instruction WAIT Timing
FIGUFl~s-:10.CoritrotPlriTlrillrig'

1-150

5.0 Device Specifications (Continued)
TABLE 5-11. Buffered Read of PC, RIC (Note 1)

10#

Symbol

Parameter

tSU-RRR-CO

RAE, REM-RD Falling before CLK-OUT Rising

tH-RRR-X

2

RAE, REM-RD Rising after XACK Rising (Note 2)

,Max'

Min

Formula

1

0

ns
-34

2T+
tSU-CMD-RRR

3

CMD Valid before RAE, REM-RD Falling

tH-CMD-RRR

4

CMD Invalid after RAE, REM-RD Falling

ns

26

T+

5

RAE, REM-RD Falling to XACK Falling

tpD-X-LCL

6

XACK Falling to ill Rising

(nLw+1)T+

-5

tPD-LCL-X

7

LCL Rising to XACK Rising

2T+

-10

tPD-RRR-LCL

8

RAE, REM-RD Rising to LCL Falling

tAZ-A-LCL

9

A Disabled before LCL Rising

h+

-18,

tZA-LCL-A

10

A Enabled after LCL Falling

TH+

15'

tpD-LCL-PC

11

LCL Rising to AD (PC) Valid

T+ .

tpD_PC-X

12

AD (PC, RIC) Valid before XACK Rising

T+

tpD-PC-RRR

13

' RAE, REM-RD Rising to AD (PC) Invalid'

14

ns

0

tpD-RRR-X

tw-PC

Units

22

ns
26

' : ns'

8

ns

ns

3

AD (PC, RIC) Valid Time

,.

' ns
ns

22
-24

T+'

ns

",

: ns
ns'

.. -

6

ns

-2

' 'ns'

All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to' create' a new timing
specification may lead to invalid results.
Note 2: The maximum value for this parameter is the latest RAE', REM-RD can be removed without adding a T-state to the remote access.
Note 1:

ClK-OUT - - - I

RAE

G2:1

CMD~

REM-RD

- CD

- kD

--,~

.
e

lJ~

~

LCl
READ
A

)V//// / // / // ///// // ///// ////////////////////~

~l-

'.

I'-

.'

3,.-

f-

-0

- 01-

..:0

['"

"}

-=-10

--®---1

I-

1\"

JI

®-

~
AD

:

~

~
XACK

!

RIC

J(

RIC, PC

~
J

RIC

i

'1?

III

TlIF/9336-65
I

FIGURE 5-11. Buffered Read of PC, RIC

1-151

m
~
~

Cf)

CO

a.

Q

5.0 Device Specifications (Continued)
TABLES';12; Buffered Read of DMEM(Nofe 1)'
Symbol

10#

Parameter

tSU-RRR-CO

1

tH-RRR-X

2

R'Al:, REM-RD Falling before ClK-OUT Rising
R'Al:, REM-RD Rising after XACK RiSing (Note 2)

Formula

Min

Max

Units

22

ns

0

ns
-32

T+

ns

tSU-CMO-RRR

3

CMD Valid before RAE, REM-RD Falling

tH-CMO-RRR

4

CMD Invalid after RAE, REM-RD Falling

ns

tpO-RRR-X

5

'RAE, REM-RD Falling to XACK Falling

tpO-X-LCL

6

XACK Falling to [C[ Rising

(nLW+1)T+

-5

tpO-LCL-X

7

[C'[ Rising to XACK Rising

(nOW+2)T+

-10

tpO-RRR-LCL

8

RAE, REM-RD Rising to ill Falling

T+

3

tPO-LCL-RO

9

[C[ Rising to READ Falling

T+

-5

tpO-RO-X

10

READ Falling to XACK Rising

(now+1)T+

-15

tpO-RRR-RO

11

tAZ-AAO-LCL

12

'RAE, REM-RD Rising to READ Rising
A, AD Disabled before ill Rising

TL+

-20

ns

tZA-LCL-AAO

13

A, AD Enabled after [C[ Falling

TH+

-10

ns

tW-RO

14

Read low

(nOW+1)T+

-4

ns

0
26

T+

ns
26

1

ns
ns

8

ns

16

ns

ns

ns
ns

28

Note 1: All parameters are Individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to Invalid results.
Note 2: The maximum value for this parameter is the latest tiAE:. ~ can be removed without adding a T-state to the remote access.

ClK-OUT --.-:;

, - k0

RAE

- CD ,l-,._ _ _ _ _ _ _ _ __

~~

jf"

~~I~~~~~~~

CNO

~?j

H/I//////////////1///////////////////////1/////////////////////////I//.
f"

-0XACK

~If.

l ...

HV

lCl ________________

A,AO

_ _ _ _ _01

0

,8./

~,

j

r---cv

-@-)~

~
j

@

r-®-

II1

TL/F/9336-66

1-152

5.0 Device Specifications (Continued)
TABLE 5-13. Buffered Read of IMEM (Note 1)

10#

Symbol

Parameter

Min

Formula

Max

Units

tSU-RRR-CO

1

RAE, REM-RD Falling before ClK-OUT Rising

22

ns

tH-RRR-X

2

RAE, REM-RD Rising after XACK Rising (Note 2)

0

ns

tSU-CMD-RRR

3

CMD Valid before RAE, REM-RD Falling

tH-CMD-RRR

4

CMD Invalid after RAE, REM-RD Falling

tpD-RRR-X

5

RAE, REM-RD Falling to XACK Falling

tPD-X-LCL

6

XACK Falling to [C[ Rising

tpD-LCL-X

7

lCl Rising to XACK Rising

tpD-RRR-LCL

8

RAE, REM-RD Rising to [C[ Falling

tAZ-LCL-A

9

A Disabled after [C[ Rising

tZA-A-LCL

10

A Enabled before [C[ Falling

tpD-IMEM-X

11

AD (IMEM) Valid before XACK Rising

tpD-RRR-IMEM

12

AD (IMEM) Invalid after RAE, REM-RD Rising

tPD-LCL-IMEM

13

[C[ Rising to AD (IMEM) Valid

tW-IMEM

14

(IMEM) Valid

tPD-LCL-IA

15

[C[ Falling to Next IA Valid (Note 3)

-32

T+
0

ns

26

T+

ns

ns
26

ns

8

ns

T+

-5

(nIW+2)T+

-10
3

ns

h+

-18

ns

ns

TH+

15

ns

(nlw+1)T+

-25

ns

10

ns
22

T+
(nlw+1)T+

0

TH+

8

ns
ns
ns

44

T+TH+

ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing

specification may lead to invalid results.
Note 2: The maximum value for this parameter is the latest RM:, ~ can be removed without adding a T-state to the remote access.
Note 3: Two remote reads from instruction memory are necessary to read a 16-bit instruction word from IMEM-Iow byte followed by high byte. The timing for the
two reads are the same except that IA is incremented after the high instruction memory byte is read.

CLK-OUT

-

-.,
RAE

- 0-

1

~
cw~
-

k'/////////////////////////////////////////////////~

REt.f-RD~
XACK

r-

~

\:

1-0

- r-0

CD

(-

LCL
READ

j-0A

JI

·~~I

I

If

III

Il

--@

I

AD

r---®--14

It.fEt.f

RIC

RIC

I

~
X

IA

TlIF/9336-67

FIGURE 5~13; Buffered Read of IMEM
1-153

5.0 Device Specifications (Continued)
TABL.E S':;14;L.atcheC:f Reacfof PC, RIC (Note 1)
Formula

Min

Max

Units

10#

Parameter

tSU-RRR-CO

1

RAE, REM-RD Falling before CLK-OUT Rising

22

ns

tH-RRR-X

2

RAE, REM-RD Rising after XACK Rising

0

ns

tSU-CMD-RRR

3

CMD Valid before RAE, REM-RD Falling

0

ns

tH-CMD-RRR

4

CMD Invalid after RAE, REM-RD Falling

T+

26

ns

Symbol

26

ns

tpD-RRR-X

5

RAE, REM-RD Falling to XACK Falling

tPD-Xf-LCLr

6

XACK Falling to LCL Rising

(nLW+1)T+

-5

tPD-LCL-X

7

LCL Rising to XACK Rising

2T+

-10

8

ns

tPD-Xr-LCLf

8

XACK Rising to LCL Falling

T+

-11

11

ns

tAZ-A-LCL

9

A Disabled before LCL Rising

TL+

-18

tZA-LCL-A

10

A Enabled after LCL Falling

TH+

-12

tpC-LCL-PC

11

LCL Rising to AD (PC) Valid

T+

tpD-PC-X

12

AD (PC) Valid before XACK Rising

T+

-22

ns

tpD-X-PC

13

XACK Rising to AD (PC) Invalid

TH+

0

ns

tw-PC

14

AD (PC, RIC) Valid

T+TH+

-12

ns

ns

ns
ns
20

ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.

ClK-OUT

---l

- kD

-CD*-

RAE - - \

j

0.:j ~

~///////////////////////J7'/7/777///////////~

Ct.lD~

REt.I-RD

~

-l-

~
XACK

'3k-

~

HV

-

lCl

READ
A

-0--

0

~~

~

-=10

- @r:

f-

"

\I'

II

1\

0j,
AD

RIC

~"

-@- @fRIC, PC
'(

RIC

'14'
TL/F/9336-68

FIGURE 5-14. Latched Read of PC, RIC

1-154

5.0 Device Specifications (Continued)
TABLE 5·15. Latched Read of OMEM (Note 1)

t

Min

Max

Units

10#

Parameter

tSU-RRR-CO

1

22

tH-RRR-X

2

RAE. REM-RD Falling before ClK-OUT Rising
RAE. REM·RD Rising after XACK Rising

0

ns

tSU-CMD-RRR

3

CMD Valid before RAE. REM·RD Falling

0

ns

Symbol

Formula

ns

ns

26

tH-CMD-RRR

4

CMD Invalid after RAE. REM·RD Falling

tpD-RRR-X

5

RAE:. REM·RD Falling to XACK Falling

tPD-Xf-LCLr

6

XACK Falling to [C[ Rising

(nLW+1)T+

-5

tpD-LCL-X

7

(nDW+2)T+

-10

8

ns

T+

-11

11

ns

T+

-5

16

ns

(nDW+1)T+

-15
12

ns

T+

26

ns
ns

tPD-Xr-LCLf

8

tpC-LCL-RD

9

ill Rising to XACK Rising
XACK Rising to i l l Falling
ill Rising to READ Falling

tpD-RD-X

10

READ Falling before XACK Rising

tpD-X-RD

11

XACK Rising to READ Rising

TH+

-7

tAZ-AAO-LCL

12

A. AD Disabled before [C[ Rising

h+

-20

ns

tZA-LCL-AAD

13

A. AD Enabled after [C[ Falling

TH+

-10

ns

tW-RD

14

READ low

(now+1)T+TH+

-12

ns

ns

All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 1:

CLK-OUT

-

--,

-

RAE
3

Ct.lD

-~

REJ.t-RD

- 0f-

1
~

j

~///////////////////////////////////////////~~

r

kDXACK

LCL

r-

Il-

HV

0-

0

~t\

~

-®-

~
-

READ

~~

1\
~

-j@1A. AD

@f-

II

~
1\

TLIF/9336-69

FIGURE 5-15. Latched Read of OMEM

..
I

1-155

5.0 Device Specifications (Continued)
TABLE 5";1S.LatcheClReaCl of IMEM'(Nole1}'
10#

Symbol

Parameter

Formula

Min

Max

. Units

tSU-RRR-CO

1'

tH-RRR-X

2

RAE, REM-RD Rising after XACK Rising

0

tSU-CMD-RRR

3

CMD Valid before RAE, REM-RD Falling

0

ns

tH-CMD-RRR

4

CMD Invalid after RAE, REM-RD Falling

T+

26

ns

tpD-RRR-X

5

RAE, REM-RD Falling to XACK Falling

tpD-Xf-LCLr

6

XACK Falling to LCL RiSing

T+

-5

tpD-LCL-X

7

LCL Rising to XACK Rising

(nIW+2)T+

-10

8

-11

11

RAE, REM-RD Falling before CLK-OUT Rising

22

ns
ns

, 26

tPD-Xr-LCLf

8

XACK Rising to LCL Falling

T+

tAZ-A-LCL

9

A Disabled before LCL Rising

h+

tZA-LCL-A

10

A Enabled after LCL Falling

TH+

tPD-LCL-IMEM:

11

LCL Rising to AD (IMEM) Valid

tpD-IMEM-X

12

AD (IMEM) Valid to XACK Rising

tpD-X-IMEM

13

XACK Rising to AD (IMEM) Invalid

tpD~LCL-IA

14

LCL Falling to Next IA Valid (Note 2)

tW-IMEM

15

IMEMValid

,

ns,
ns
ns
ns

-18

ns

-12

ns
22

T+
(nlw+1)T+

-23

TH+

1

T+TH+

-19

(nlW + 1)T + T H+

-9

ns
ns
ns

5

ns
ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 2: Two remote reads from instruction memory are necessary to ~ead a 16-bit instruction word from IMEM-low byte followed by high byte. The timing for the
two reads are the same except that IA is incremented after the high instruction memory byte is read.

..

ClK-OUT

'-

-0f-

I

' -l-

RAE - - - ' \

;"~
-~

REt.4-RD

-0--1

.

1I11111111111111111111111111111i ,/llllllllllllllllllllllllllllllt
f

1\
~'

XACK

3

J~

t7'
\.:.J

-0

-

lCL

0-

}
,

READ
A

AD

r-&I

r&

11

I.

f--®

e- @)

RIC

It.4Et.4

"*-

~
RIC

J.;'\

~~

IA
TL/F /9336-70

FIGURE 5-16. Latched Read of IMEM

1-156

5.0 Device Specifications

(Continued)

TABLE 5·17. Slow Buffered Write of PC, RIC (Note 1)

10#

Symbol

Parameter

Min

Formula

1

RAE, REM-WR Falling before ClK-OUT Rising

tH-RRW-X

2

RAE, REM-WR Rising after XACK Rising (Note 2)

3

CMD Valid before RAE, REM-WR Falling

tH-CMD-RRW

4

CMD Invalid after RAE, REM-WR Falling

tpD-RRW-X

5

RAE, REM-WR Falling to XACK Falling

ns

-37
0

ns
ns

26

T+

Units
ns

0
T+

tSU-CMD-RRW

Max

24

tSU-RRW-CO

ns
26

ns

tpD-X-LCL

6

XACK Falling to [C[ Rising

(nLW+1)T+

-5

tpD-LCL-X

7

[C[ Rising to XACK Rising

2T+

-10

tPD-RRW-LCL

8

RAE, REM-WR Rising to [C[ Falling

T+

5

ns

tAZ-MD-LCL

9

A, AD Disabled before lCl Rising

h+

-20

ns

tZA-LCL-MD

10

A, AD Enabled after lCl Falling

TH+

-10

ns

tSU-RDAT-RRW

11

AD (Data) Valid before RAE, REM-WR Rising

12

ns

tH-RDAT-RRW

12

AD (Data) Invalid after RAE, REM-WR Rising

10

ns

ns

8

ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 2: The maximum value for this parameter is the latest RAE:, ~ can be removed without adding a T-state to the remote access.

CLK-OUT
RAE

-

----,

- CD -

1

.,

1\

0.,j ~
'fl)(

XlIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII/- ifill/- IfIIIIIIIIIIIIII11//IIIIIIIIIII

CUD

REU-WR

~t"

It-

-0XACK

1<-

J

~

-0
\:../

~

LCL
-WRITE

lit
--

r-0A,AD

\I'

II

-

-@

H9-tTL/F/9336-71

FIGURE 5-17. Slow Buffered Write of PC, RIC

I

II
I

I

1-157

5.0 Device Specifications (Continued)

r ABLE 5·18. Slow Buffered Write of OMEM (Note 1)
Min

Max

Units

Symbol

10#

tSU-RRW-CO

1

RAE, REM-WR Falling before CLK-OUT Rising

24

ns

tH-RRW-X

2

RAE, REM-WR Rising after XACK Rising (Note 2)

0

ns

Parameter

Formula

-34

T+
tSU-CMO-RRW

3

CMD Valid before RAE, REM-WR Falling

tH-CMO-RRW

4

CMD Invalid after RAE, REM-WR Falling

tpO-RRW-X

5

RAE, REM-WR Falling to XACK Falling

tpO-X-LCL

6

XACK Falling to LCL Rising

tpO-LCL-X

7

LCL Rising to XACK Rising

tpO-RRW-LCL

8

RAE, REM-WR to LCL Falling

ns

0

ns

26

T+

ns

26

ns

(nLW+1)T+

-5

(now+2)T+

-10

T+

5

ns

T+

-5

ns

(now+1)T+

-17

ns
8

ns

tpO-LCL-WR

9

LCL Rising to WRITE Falling

tpO-WR-X

10

WRITE Falling to XACK Rising

tpO-RRW-WR

11

RAE, REM-WR Rising to WRITE Rising

tAZ-AAO-LCL

12

A, AD Disabled before LCL Rising

TL+

-20

ns

tAZ-LCL-AAO

13

A, AD Enabled after LCL Falling

TH+

-10

ns

tW-WR

14

WRITE Low

(now+1)T+

-3

ns

ns
28

2

ns

All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 2: The maximum value for this parameter is the latest RAE:. RE'fiif-WR can be removed without adding a T-state to the remot~ access.

Note 1:

ClK-OUT

-----l

- r-G

-0 .,

RAE~~
3

~

HIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII!J7J77l7llllllll111//////if/f////L

CMD

REM-WR

~

~

Hi>XACK

lCl

r-

HV

0

-

\.8.1
~r

-@--

~
-WRITE

HiD-

-~

~r

14'

r@+
A,AD

-

II

~
TL/F/9336-72

FIGURE 5·18. Slow Buffered Write of DMEM

1-.158

5.0 Device Specifications

(Continued)

TABLE 5-19. Slow Buffered Write of IMEM (Notes 1,2)
Symbol

Parameter

10#

Formula

Min

Max

Units

tSU-RRW-CO

1

RAE, REM-WR Falling before ClK-OUT Rising

24

ns

tH-RRW-X

2

RAE, REM-WR Rising after XACK Rising (Note 3)

0

ns
-34

T+
0

ns

tSU-CMD-RRW

3

CMD Valid before RAE, REM-WR Falling

tH-CMD-RRW

4

CMD Invalid after RAE, REM-WR Falling

tpD-RRW-X

5

RAE, REM-WR Falling to XACK Falling

tPD-X-LCL

6

XACK Falling to lCL Rising

T+

-5

tpD-LCL-X

7

lCL Rising to XACK Rising

(nlw+2)T+

-10

tPD-RRW-LCL

8

RAE, REM-WR to LCL Falling

T+

5

ns

tAZ-AAD-LCL

9

A, AD Disabled before LCL Rising

h+

-20

ns

tZA-LCL-AAD

10

A, AD Enabled after LCL Falling

TH+

-10

tpD-RDAT-1

11

AD (Data) Valid to I Valid

tH-RDAT-RRW

12

AD (Data) Invalid after RAE, REM-WR Rising

tpD-LCL-IA

13

LCL Falling to next IA Valid

tPD-LCL-IWR

14

LCL Rising to IWR Falling

tpD-IWR-X

15

IWR Falling before XACK Rising

tpD-RRW-IWR

16

RAE, REM-WR Rising to IWR Rising

tZA-IWR-1

17

IWR Falling to I Enabled

tAZ-IWR-1

18

IWR Rising to I Disabled

tpD-I-IWR

19

I Valid before IWR Rising

(nIW+ 1)T+

-10

ns

tW-IWR

20

IWR Low

(nIW+2)T+

-2

ns

tPD-I-IA

21

I Disabled to IA Invalid

2T+TH+

-64

ns

T+

ns

26

ns
26

ns
ns

8

ns

ns
30

ns

3

ns

14

ns

T+TH+

-20
-3

ns

(nlw+2)T+

-19

ns

5

ns

T+

-2
22

ns
52

ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 2: Two remote writes to instruction memory are necessary to store a 16-bit instruction word to IMEM-Iow by1e followed by high by1e. The timing for the 2nd
write is shown in the following diagram. The timing of the first write is the same as a write of the PC or RIC.
Note 3: The maximum value for this parameter is the latest RAl:, REM-WR can be removed without adding a T-state to the remote access.

I

II
I

1-159

DP8344B
U1

C

c

CD

<

a"
CD
en

"a
CD

n
:::;;

a"
Q)

0"
::J
en

ao
a.

:r
c:
CD

.s
....
en

o

I.

(20)

01
TUF/9336-73

FIGURE 5~19.SJow Buffered WriteofiMEM

5.0 Device Specifications (Continued)
TABLE 5-20. Fast Buffered Write of RIC, PC (Note 1)

10#

Parameter

tSU-RRW-CO

1

RAE, REM-WR Falling before ClK-OUT Rising

tH-RRW-X

2

RAE, REM-WR Rising after XACK Rising

tSU-CMD-RRW

3

CMD Valid before RAE, REM-WR Falling

tH-CMD-RRW

4

CMD Invalid after RAE, REM-WR Falling

tpD-RRW-X

5

RAE, REM-WR Falling to XACK Falling

tPD-X-LCL

6

XACK Falling to lCL Rising

(nLW+1)T+

-5

tpD-lCl-X

7

[C[ Rising to XACK Rising

2T+

-10

8

,ns

tPD-Xr-lCLf

8

XACK Rising to lCl Falling

T+

-11

11

ns

tAZ-AAD-LCL

9

A, AD Disabled before lCl Rising

h+

-20

ns

tZA-LCl-AAD

10

A, AD Enabled after lCl Falling

TH+

-10

ns

tSU-RDAT-X

11

AD (Data) Valid before XACK Rising

Symbol

12

tH-RDAT-X

Formula

Min

Max

' Units

24

ns

0

ns

0

ns

26

T+

ns
26

AD (Data) Invalid after XACK Rising

ns
ns

26

ns

3

,ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.

"

ClK-OUT

-

RAE

Ct.lD

-REt.4-WR

-

~

j

--=10 ~

1f!lX

'¥I//////////////////////////////////////////////////////h

...

~
XACK

- 0-

1

f
.-

r-

17'.
\:J

-0
LCl

.-

"

-WRITE

A,AD

-0-~@~
11
"'"

r-0-

'Ill.

"

~
TlIF/9336-74

FIGURE 5-20. Fast Buffered Write of RIC, PC

I

II
I

1-161

5.0 Device Specifications (Continued)
TABLE 5';21: Fast Buffered Write of OMEM (Note 1)
Symbol

10#

Parameter

tSU-RRW-CO

1

RAE, REM-WR Falling before ClK-OUT Rising

24

ns

tH-RRW-X

2

RAE, REM-WR Rising after XACK Rising

0

ns

tSU-CMD-RRW

3

CMD Valid before RAE, REM-WR Falling

tH-CMD-RRW

4

CMD Invalid after RAE, REM-WR Falling

tpD-RRW-X

5

RAE, REM-WR Falling to XACK Falling

tPD-Xf-LCLr

6

XACK Falling to [C[ Rising

tpD-LCL-X
tPD-Xr-LCLf

Formula

Min

Max

Units

0

ns

T+

26

ns

(nLw+1)T+

-5

7

[C[ Rising to XACK Rising

(nDW+2)T+

-10

8

ns

8

XACK Rising to [C[ Falling

T+

-11

11

ns

tpD-LCL-WR

9

lCl Rising to WRITE Falling

T+

-5

tpD-WR-X

10

WRITE Falling to XACK Rising

(nDW+1)T+

-16

tpD-X-WR

11

XACK Rising to WRITE Rising

26

ns
ns

ns
ns

-4

13

ns

tAZ-AAD-LCL

12

A, AD Disabled before lCl Rising

TL+

-20

ns

tZA-LCL-AAD

13

A, AD Enabled after lCl Falling

TH+

-10

ns

tW-WR

14

WRITE low

(nDW+1)T+

-10

ns

All parameters are Individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 1:

eLK-OUT

-

-

RAE

3
CMD

-REM-WR

- G)f-

1

..,~

rt

~

HIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII '/1111'IIIIIIIIIIII/IIIII!J

r-

~

8D-XACK

l..-

J'f..

-0
-

t.:j'\

l(

-@--

--0

--

l~

WRITE

~

t-@A,AD

0--

\:..J

~

LCL

JI

r-®

~
TL/F/9336-75

FIGURE 5-21. Fast Buffered Write of OM EM

1-162

5.0 Device Specifications (Continued)
TABLE 5-22. Fast Buffered Write of IMEM (Notes 1, 2)
Formula

10#

Parameter

tSU-RRW-CO

1

RAE, REM-WR Falling before ClK-OUT Rising

tH-RRW-X

2

RAE, REM-WR Rising after XACK Rising

tSU-CMD-RRW

3

CMD Valid before RAE, REM-WR Falling

tH-CMD-RRW

4

CMD Invalid after RAE, REM-WR Falling

tpD-RRW-X

5

RAE, REM-WR Falling to XACK Falling

tPD-Xf-LCLr

6

XACK Falling to i l l Rising

Symbol

Min

Max

Units

24

ns

0

ns

0

ns

T+

26

ns

T+

-5
8

ns

11

ns

26

ns
ns

tpD-LCL-X

7

lCl Rising to XACK Rising

(nlw+2)T+

-10

tPD-Xr-LCLf

8

XACK Rising to [C[ Falling

T+

-11

tAZ-AAD-LCL

9

A, AD Disabled before [C[ Rising

h+

-20

ns

tZA-LCL-AAD

10

A, AD Enabled after lCl Falling

TH+

-10

ns

tPD-RDAT-1

11

AD (Data) Valid to I Valid

tH-RDAT-X

12

AD (Data) Invalid after XACK Rising

tpD-IWR-X

13

IWR Falling before XACK Rising

tpD-LCL-IA

14

lCl Falling to next IA Valid

tpD-LCL-IWR

15

lCl Rising to IWR Falling

-3

ns

XACK Rising to IWR Rising

-2

ns

tpD-X-IWR

16

30
3
(nlw+2)T+

-19

T+TH+

-19

ns
ns
ns

5

-2

ns

ns

tZA-IWR-1

17

IWR Falling to I Enabled

tAZ-IWR-1

18

IWR Rising to I Disabled

tPD-I-IWR

19

I Valid before IWR Rising

(nlw+1)T+

-18

ns

tW-IWR

20

IWR low Time

(nlw+2)T+

-10

ns

2T+TH+

-70

ns

tpD-I-IA

21

T+

22

I Disabled to IA Invalid

52

ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 2: Two remote writes to instruction memory are necessary to store a 16-bit instruction word to IMEM-Iow byte followed by high byte. The timing of the 2nd
write is shown in the following diagram. The timing of the first write is the same as a write of the PC or RIC as shown in Figure 5-20.

..
I

1-163

m
"'11:1'

:;

5.0 Device Specifications (Continued)

CO

Q.

C
ClK-OUT

RAE

CMD

XACK

lCl

A,AD

----------"1

......------'1

IA _ _ _ _ _ _ _ _ _ _~----~~----~-------------'I~

TL/F 19336-76

FIGURE 5-22. Fast Buffered Write of IMEM

1-164

5.0 Device Specifications (Continued)
TABLE 5·23. Latched Write of PC, RIC (Note 1)

10#

Symbol

Parameter

Formula

tSU-RRW-CO

1

RAE, REM-WR Falling before ClK-OUT Rising

tH-RRW-CO

2

RAE, REM-WR Rising after ClK-OUT Rising (Note 2)

Min

TH+

Max

Units

24

ns

6

ns
-20

T+

ns

tH-RRW-X

3

RAE, REM-WR Rising after XACK Rising

0

ns

tSU-CMD-RRW

4

CMD Valid before RAE, REM-WR Falling

0

ns

tH-CMD-RRW

5

CMD Invalid after RAE, REM-WR Falling

tpD-RRW-X

6

RAE, REM-WR Falling to XACK Falling

tSU-RDAT-LCL

7

AD (Data) Valid after lCl Rising

2T+

tH-RDAT-LCL

8

AD (Data) Invalid after ICC Rising

2T+

2

tAZ-AAD-LCL

9

A, AD Disabled before lCl Rising

h+

-20

ns

tZA-LCL-AAD

10

A, AD Enabled after [C[ Falling

TH+

-10

ns

tpD-RRW-WPND

11

RAE, REM-WR Rising to WR-PEND Falling

5

ns

tSU-CMD-WPND

12

CMD Valid before WR-PEND Rising

16

tH-CMD-WPND

13

CMD Invalid after WR-PEND Rising

4

ns

tSU-RRWr-CO

14

RAE, REM-WR Rising before ClK-OUT Rising

20

ns

tpD-X-WPND

15

XACK Rising to WR-PEND Rising

26

T+

ns
26

ns

-30

ns
ns

34

T+

ns
ns

13

ns

Note 1: All parameters are individually tested and guaranteed. Interpreting this data by numerically adding two or more parameters to create a new timing
specification may lead to invalid results.
Note 2: The maximum value for this parameter is the latest~, ~ can be removed without delaying the remote access by one T-state.

RAE

~~
"'
1l'""""""'\

CMD

///~

CLK-OUT
-

~

--

REM-WR

-®----1
V/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / .
~

:+0 f+-

-0
~

XACK

~

,.

LCL
-WRITE

-jeD
A. AD

--WR-PEND

V/~

®

:--.
AD

A
TL/F/9336-IO

f I 9UR i; 5.2~.V'laltTIn1JIl9AfterRer1'l~~eAc:cess:

•
1-173

I

I

6.0 Reference Section
6.1 INSTRUCTION SET REFERENCE

Instruction Format

The Instruction Set Reference section contains detailed information on the syntax and operation of each BCP instruction. The instructions are arranged in alphabetical order by
mnemonic for easy access. Although this section is primarily
intended as a reference for the assembly language programmer, previous assembly language experience is not a
prerequisite. The intent of this instruction set reference is to
include all1he pertinent information regarding each instruction on the page(s) describing that instruction. The only exceptions to this rule concern the instruction. addressing ,
modes and the bus timing diagrams. The discussion of the
instruction addressing modes occurs at the beginning of the
BCP Instruction Set Overview section and, therefore, will
not be repeated here. The figures for the' bus timing diagrams are located at the end of this introduction rather than
constantly repeating them under each instruction. The information that is contained under each instruction is divided
into eight categories titled: Syntax, Affected Flags, Description, Exampie, Instruction Format, T-states, Bus timing, and
Operation. The following paragraphs explain what information each category' conveys and any special nomenclature
that a category may use.,

This category illustrates the formation of an instruction's
machine code for each operand variation. Assembly or disassembly of any instruction can be accomplished using
thes~ figures.
T-states
The T-state category lists the number of CPU clock cycles
required for 'each' instruction, including operand variations
and conditional considerations. Using this information, actual execution times may be calculated. For example, if the
conditional relative jump instruction's condition is not met,
the CPU's clock cycle is 18.867 MHz aCCS] = 0), and no
instruction wait states are requested ([IW1 - 0] = 00), then
Jcc's execution time is calculated as shown below:
texecution

= 1/(CPU clock frequency)

x T-states

= 1/(18.867 X 106 Hz) X 2
=

(53 X 10- 9s) x 2

= 106 ns
See the section BCP Timing for more information on calculating instruction execution times.
Bus Timing
This category refers the user to the Bus Timing Figures 6-1
to 6-6 on the following pages. These figures illustrate the
relationship between software instruction execution and
some of the BCP's hardware signals.

Syntax
This category illustrates the assembler syntax for each instruction. Multiple lines are used when a given instruction
supports more than one type of addressing mode, or if it has
an optional mnemonic. All capital letters, commas (,), math
are entered into the assymbols (+, -), and brackets
sembler exactly as shown. Braces (I I) surround an instruction's optional operands and their associated, syntax. The
text between the braces may either be entered in with or
omitted from the instruction. The braces themselves should
not be entered into the assembler because they are not part
of the assembler syntax. Lower c'ase characters and operands that begin with the capital R represent symbols. These
must be replaced with actual register names, numbers, or
equated registers and numbers. Table 6-1 lists all the symbols and their associated meanings.

Operation

a))

The operation category illustrates each instruction's operation in a symbolic coding format. Most of the operand
names used in this format come directly from each instruction's syntax. The exceptions to this rule deal with implied
operands. Instructions that imply the use of the accumulator$ use the name "accumulator" as an operand. Instructions that manipulate the Program Counter use the symbol
"PC". Instructions that "push" onto or "pop" off of the internal Address Stack specify "Address Stack" as an operand.
Instructions that save or restore the ALU flags and the register bank selections use those terms as operands. Two
specialized operator symbols are used in the symbolic coding format, the arrow " ~ " and the concatenation operator
"&". The arrow indicates the movement of data from one
operand to another. For instance, after the operation
"Rs ~ Rd" is performed the content of Rd has been replaced with the content of Rs. The concatenation operator
"&" simply indicates that the operands surrounding an "&"
are attached together forming one new operand. For example, "PC & [GIE] & ALU flags & register bank
selections ~ Address Stack" means that the Program
Counter, the Global Interrupt Enable bit, the ALU flags and
the register bank selections are combined into one operand
and pushed onto the internal Address Stack. Three conditional structures are utilized in the symbolic coding format:
the "Two Line If" structure, the "Blocked If" structure, and
the "Blocked Case" structure. In the "Two Line If" structure, if the condition is met then the operation is performed,
otherwise the operation is not performed.

Affected Flags
If an instruction sets or clears any of the ALU flags, (Le.,
Negative [N], Zero [Z], Carry [C], and/or Overflow [V)),
then those flags affected are listed under this category.
Description
The Description category contains a verbal discussion
about the operation of an instruction, the operands it allows,
and any notes highlighting special considerations the prorammer should keep in mind when using the instruction.
Example
Each instruction has one or more coding examples designed to show its typical usage(s). For clarity, register
name abbreviations are often used instead of the register
numbers, (Le., RTR is used in place of R4). Each example
assumes that the" .EQU" assembler directive has been previously executed to establish these relationships. Information relating register abbreviations to register names, numbers, and purpose is located in the CPU Registers section.

"Two Line If" structure:
If condition
then operation

1-174

6.0 Reference Section

(Continued)

In the "Blocked If" structure, if the condition is met then all
the operations between the "If" statement and the "End if"
statement are performed.

"Blocked Case" structure:
Case operand of
0: operation
1: operation
2: etc ...

"Blocked If" structure:
If condition then
operation
operation
etc ...

End case
Two reference tables have been added to the back of the
Instruction Set Reference section. The first table, Table 6-2,
lists all the instructions with their associated T-states, Affected Flags, and Bus Timing figure numbers in a compact
format. The second table, Table 6-3, lists all the instructions
in opcode order to facilitate disassembly.

End if
In the "Blocked Case" structure, the operation preceded by
the equivalent numeric value of the operand is executed.
For example, if the operand's value is equal to "1" then the
operation preceded by "1:" is executed.

TABLE 6-1. Notational Conventions for Instruction Set
Symbol
n

Meaning

Represents

o to 255
+ 127 to -128

8 Bits
16 Bits

nn

o to 65535

Unsigned Number

Rs

RO-R31

Source Register

Rd

RO-R31

Destination Register

Rsd

RO-R31

Combination Source/Destination Register

rs

RO-R15

Limited Source Register

rd

RO-R15

Limited Destination Register

rsd

RO-R15

Limited Combination Source/Destination Register

Ir

IW,IX,IY,IZ

Index Register

IrIr
Ir+
+Ir

Index Register in One of the Following Address Modes:
Post Decrement
No Change
Post Increment
Pre-Increment

mlr

Length

Unsigned Number
Signed Number

b

0-7

Shift Field

3 Bits

m

0-7

Mask Field

3 Bits

p

0-7

Position Field

3 Bits

s

0-1

State Field

1 Bit

f

0-7

Flag Reference Field

3 Bits

Condition Code Instruction Extensions

cc
v

0-63

Vector Field

6 Bits

g

0-3

Global Interrupt Enable Flag [GIE] Status Control

2 Bits

g'

0-1

Global Interrupt Enable Flag [GIE] Limited Status Control

1 Bit

rf

0-1

Register Bank and ALU Flag Status Control

1 Bit

ba

0-1

Register Bank A Select

1 Bit

bb

0-1

Register Bank B Select

1 Bit

1-175

6.0 Reference Section

(Continued)

CPU-ClK

IClK

IA

PC+1

PC

TLIF/9336-21

FIGURE 6-1. Instruction-Memory Bus Timing for 2 T-state Instructions
(No Instruction Walt States [lW1-0] = 00, CPU Running at Full Speed [CCS]

=

0)

CPU-ClK

IClK

IA
TL/F/9336-22

FIGURE 6-2. Instruction-Memory Bus Timing for 3 T-state Instructions
(No Instruction Walt States [lW1-0] = 00, CPU Running at Full Speed [CCS]

1-176

=

0)

6.0 Reference Section

(Continued)

I-Tl

'I'

T2

'I'

Tl

'I'

T2--j

CPU-ClK

IClK

IA

PC

PC +1

nn
TL/F/9336-23

FIGURE 6-3. Instruction-Memory Bus Timing for (2 + 2) T-state Instructions
(No Instruction Walt States [lW1-0] = 00, CPU Running at Full Speed [CCS] = 0)

I -T1---*I'"-- Tx--'*I'"-- Tx--·-tl·'-- T2--j
CPU-ClK

IClK

IA
TL/F/9336-24

FIGURE 6-4. Instruction-Memory Bus Timing for 4 T -state Instructions
(No Instruction Walt States [lW1-0] = 00, CPU Running at Full Speed [CCS] = 0)

1·177

6.0 Reference Section (Continued)

I-Tl
CPU-ClK

IClK

IA

----+-'

ALE

AD

READ
TLlF/9336-25

F.lG(JRlni~S;lristructtori/OataMeirioryBusTlmirigfor Data Memory Read

(~§J!'1~t~~c::!Ic)~c)II)Cl!Cl ...enlOI)' VIIalt.~tClt~s, 9PUFlu~n(ngat. Fu USpeed

[9CS).= . 0, [4TFll··';' .•. 0)

CPU-ClK

IClK

IA

ALE

AD

----+-...
~~--~~.'-------------~

READ
TL/F/9336-ll

fFIGOR~~+6:tristructtorl!OataMetnory Bus Tlrillrig for Data Memory Reaa

[(~~]~!~~!I§~C)!J:)Cl~M~tn~ry·Vlltllt~~tetJ;.9P~Runrilrlgatfull.~pe~d.[99~1 . .·"",. ··9),J4""R)""'I~)

1-178

6.0 Reference Section

(Continued)

I - T1-

t.-I·- TX--'·It-·-T2----j

...
•

CPU-ClK

IClK

IA

ALE

---...........

WRITE
TLIF/9336-26

FIGURE 6-7.lnstruction/Data Memory Bus Timing for Data Memory Write
(No Instruction or Data Memory Walt States, CPU Running at Full Speed [CCS] = 0)

ADCA

Add with Carry and Accumulator

Instruction Format
ADCA Rs, Rd

Syntax
ADCA
ADCA

Rs, Rd
Rs, [mlr]

-register, register
-register, indexed

15

Affected Flags
N,Z,C,V

1
.

1

Rs

I0 I

o

4

Rs, [mlr]
1

I

I0 0
Opcode

I0 I

~

00
01
10
11

1

I
. m
8

15

Example

1

Rd

9

ADCA

Description
Adds the source register Rs, the active accumulator, and
the carry flag together, placing the result into the destination
specified. The destination may be either a register, Rd, or
data memory via an index register mode, [mlr]. Note that
register bank selection determines which accumulator is active.
Add the constant 109
bits wide).
SUBA A, A
ADD
109, R12
ADCA R13, R13

111111010111
Opcode
.

.1

-

Ir

Rs

o

6

post-decrement
no change
post Increment
pre-Increment

~

00 -IW
01 - IX
10 - IY
11 - IZ

to the index register IW, (which is 16

TL/F/9336-5

;Clear the accumulator
;Add 109 to low byte of IW
;Add carry to high byte of IW

1-179

T-states
ADCA Rs, Rd
ADCA Rs, [mlr]

-3

Bus Timing
ADCA Rs, Rd
ADCA Rs, [mlr]

-Figure 6-1
-Figure 6-6

-2

Operation
ADCA Rs, Rd
Rs + accumulator

+ carry bit - . Rd

ADCA Rs, [mlr]
Rs + accumulator

+ carry bit - . data memory

6.0 Reference Section
ADD

(Continued)
Instruction Format
ADDA Rs, Rd

Add Immediate

Syntax
ADD n, rsd
-immediate, limited register
Affected Flags
N,Z,C,V
Description
Adds the immediate value n to the register rsd and places
the result back into the register rsd. Note that only the active registers RO-R15 may be specified for rsd. The value of
n is limited to 8 bits; (unsigned range: 0 to 255, signed
range: + 127 to -128).
Example
Add the constant -3 to register 10.
ADD
-3, R10
;R10 + (-3) -+ R10
Instruction Format
0 10 10 10 I
Opcode .
15
11
T-States
2
Bus Timing
Figure 6-1
Operation
rsd + n -+ rsd

1.

ADDA

n

I
Rd
15
ADDA

Rs, [mlr]

,

00
01
10
11

-

m

Ir

post-decrement
no change
post Increment
pre-Increment

,

Rs

4

8

o

OO-IW
01 - IX
10 - IY
11 - IZ
TL/F/9336-6

T-states
ADDA Rs, Rd
-2
ADDA Rs, [mlr]
-3
Bus Timing
ADDA Rs, Rd
-Figure 6-1
ADDA Rs, [mlr]
-Figure 6-6
Operation
ADDA Rs, Rd
Rs + accumulator -+: Rd
ADDA Rs, [mlr]
Rs + accumulator -+ data memory

rsd

3

o

4

110111010101°1
.
Opcode
.
1
IS

Rs

9

0

Add with Accumulator

AND

Syntax
ADDA Rs, Rd
-register, register
ADDA Rs, [mlr]
-register, indexed
Affected Flags
N,Z,C,V
Description
Adds the source register Rs to the active accumulator and
places the result into the destination specified. The de~tina­
tion may be either a register, Rd, or data. memory via an
index register mode, [mlr]. Note that register bank selection
determines which accumulator is active.
Example
In the first example, the value 4 is placed into the currently
active accumulator, that accumulator is added to the contents of register 20, and then the result is placed into register 21.
MOVE 4, A
;Place constant into accum
;R20 -+ accum -+ R21
ADDA R20, R21
In the second example, the alternate accumulator of register bank B is selected and then added to register 20. The
result is placed into the data memory pointed to by the index
register IZ and then the value of IZ is incremented by one.
EXX
0, 1
;Select alt accumulator
ADDA R20, [IZ +] ;R20 + accum -+ datamem
;and increment data pointer

And Immediate

Syntax
AND n, rsd
-immediate, limited register
Affected Flags
N,Z
Description
Logically ANDs the immediate value n to the register rsd
and places the result back into the register rsd. Note that
only the active registers RO-R15 may be specified for rsd.
The value of n is 8 bits wide.
Example
Unmask both the Transmitter and Receiver interrupts via
the Interrupt Control Register (ICR}, R2. Leave the other
interrupts unaffected.
EXX 0,0
;select main register banks
AND 11111100B,R2 ;unmask transmitter and
; receiver interrupts
Instruction Format

I
n
15

11

T-states

2
Bus Timing
Figure 6-1
Operation
rsd AND n -+ rsd

1-180

rsd
3

0

6.0 Reference Section
ANDA

(Continued)

And with Accumulator

BIT

Syntax
ANDA As, Ad
-register, register
ANDA As, [mlr]
-register, indexed
Affected Flags
N,Z
Description
Logically ANDs the source register As to the active accumu·
lator and places the result into the destination specified.
The destination may be either a register, Ad, or data memo·
ry via an index register mode, [mlr]. Note that register bank
selection determines which accumulator is active.
Example
This example demonstrates a way to quickly unload all 11
bits of the three words in the Aeceiver FIFO when the FIFO
is full. The example assumes that the index register IZ
points to the location in data memory where the information
should be stored.
EXX
1,1
;select alternate banks
MOVE 00000111 B, A ;place the ITSA} mask
; into the accumulator
Pop the first word from the receiver FIFO
ANDA TSA, [IZ+]
;read bits 8,9, & 10
MOVE ATA, [IZ + ]
;pop bits 0-7
Pop the second word from the receiver FIFO
ANDA TSA, [IZ + ]
MOVE ATA, [IZ + ]
Pop the third word from the receiver FIFO
ANDA TSA, [IZ + ]
MOVE ATA, [IZ+]
Instruction Format
ANDA As, Ad

15
ANDA
1
/.
15

As

9

I0 I

o

4

AS,[mlr]
1

I 0 11
Opcode
~

00
01
10
11

I0 I0

I
. m
8

-

Rs

Ir

post-decrement
no change
post Increment
pre-Increment

o

4

t
00 - IW

01 - IX
10 - IY
11 - IZ

TLIF/9336-7

T-states
ANDA As, Ad
ANDA As, [mlr]

rs

n
15
T-states
2
Bus Timing
Figure 6·1
Operation
rs AND n

I
Ad

Bit Test

Syntax
BIT rs, n
-limited register, immediate
Affected Flags
N,Z
Description
Performs a bit level test by logically ANDing the source reg·
ister rs to the immediate value n. The affected flags are
updated, but the result is not saved. Note that only the ac·
tive registers AO-A15 may be specified for rs. The value n
is 8 bits wide.
Example
Poll the Transmitter FIFO Empty flag [TFE] in the Network
Command Flag register I NCF}, A1, waiting for the Trans·
mitter to send the current FIFO data.
EXX 0,1
;select main A, alt B
Poll:
BIT NCF,1 OOOOOOOB ;AII data sent yet?
JZ
Poll
; No, poll TFE
; Yes, send next byte(s)
Instruction Format

-2
-3

Bus Timing
-Figure 6·1
ANDA As, Ad
ANDA As, [mlr]
-Figure 6·1
Operation
ANDA As, Ad
As AND accumulator - . Ad
ANDA As, [mlr]
As AND accumulator - . data memory

1·181

11

3

o

6.0 Reference Section
CALL

(Continued)

CMP

Unconditional Relative Call

Syntax

CALL

Compare

Syntax

n

-immediate

CMP

-limited register, immediate

rs, n

Affected Flags

Affected Flags

None

N,Z,C,V

Description

Description
Compares the immediate value n with the source register rs
by subtracting n from rs. The affected flags are updated, but
the result is not saved. Note that only the active registers
RO-R15 may be specified for rs. The value of n is limited to
8 bits; (unsigned range: 0 to 255, signed range: + 127 to
-128).

Pushes the Program Counter, the ALU flags, the Global Interrupt Enable bit [GIE], and the current register bank selections onto the internal Address Stack; then unconditionally
transfers control to the instruction at the memory address
calculated by adding the contents of the Program Counter
to the immediate value n, (sign extended to 16 bits). Since
the immediate value n is an 8-bit two's complement displacement, the unconditional relative caWs range is from
+ 127 to -128 relative to the Program Counter. Note that
the Program Counter initially contains the memory address
of the next instruction following tha call.

Example
Compare the data byte in register 11 to the ASCII character

"A".
CMP

JC
JEO

Example

Transfer control to the subroutine "Send.it". Note that
"Send. it" must be within + 127/ -128 words relative to the
PC.
CALL

R11,"A"
Less_thanJ
Equal_toJ

;If:
data<"A"
data="A"
;else data> "A"

Compare the contents of register 8 to the value 25.
CMP
BIT
JZ

Send.it

Instruction Format

R8,25
CCR,00000011 B
Greater_than

;if:
data> 25
Goto Greater_than

n
15
T-states
3
Bus Timing

7

Comparing of Unsigned Values

o

Flag{s) to Test

Comparison

«)
LT
LEO «=)
(=)
EO
GEO (>=)
(»
GT

Figure 6-2
Operation

PC & [GIE] & ALU flags & register bank selections
~ Address Stack
PC + n(sign extended) ~ PC

C

clz
Z
C
C&Z

Note: & = logical AND
= logical OR

I

Instruction Format

0
1.

I 0 I 1 11

Opcode
15

T-states
2
Bus Timing

Figure 6-1
Operation

rs - n

1-182

I
_

n
11

rs

3

0

6.0 Reference Section
CPL

(Continued)

Complement

EXX

Syntax
CPL Rsd
-register
Affected Flags
N,Z
Description
Logically complements the contents of the register Rsd,
placing the result back into that register.
Example
Load the fiJI-bit count passed from the host into the Transmitter's Fill-Bit Register (FBR I, R3, and then perform the
required one's complement of the fill-bit count. In this example, register 20 contains the fill-bit count.
EXX
1,1
;select alternate banks
MOVE
R20, FBR ;Ioad (FBR 1
CPL
FBR
;complement fill-bit count
Instruction Format
110111011111110101010\
Opcode
.
15
4
T-states
2
Bus Timing
Figure 6-1
Operation

1.

Exchange Register Banks

Syntax
EXX ba, bb (,gl
Affected Flags
None
Description
Selects which CPU register banks are active by exchanging
between the main and alternate register sets for each bank.
Bank A controls RO-R3 and Bank B controls R4~R11. The
table below shows the four possible register bank configurations. Note that deactivated registers retain their curren~ vClI~
ues. The Global interrupt Enable bit [GIE] can be set or
.
cleared, if desired.
Register Bank Configurations

I I
Rsd

o

ba

bb

Active Register Banks.

0
0
1
1

0
1
0
1

Main AMain B
Main A, Alternate: B
Alternate A, Main B
Alternate A, AlternateB .

Example
Activate the main register set of Bank A, the alternate register set of Bank B, and leave the Global interrupt Enable bit
[GIE] unchanged.
EXX
0,1
;select main A, alt B reg banks
Instruction Format

Rsd~Rsd

11 1 0 1 1 1
15

, ., ,

~~~o~~ 1 1 1 0 11 I ~

ba 1 bb

I

0 10 10 1

6!4
3.2
0
OO-'-GIE not affected
01-reserved
10-SetGIE
11-Clear GIE

T-states
2
Bus Timing
Figure 6-1
Operation
Case ba of
0: activate main Bank A
1: activate alternate Bank A
End case
Case bb of
0: activate main Bank B
1: activate alternate Bank B
End case
Case g of
0: leave [GIE] unaffected, (default)
1: (reserved)
2: set [GIE]
3: clear [GIE]
End case

1-183

I

6.0 Reference Section (Continued)
JMP Conditional Relative Jump

Instruction Format

Jcc
Syntax
JMP f, s, n
Jcc n

n

15

-immediate
-immediate (optional syntax)

11

10

T-states
2 if condition is not met
3 if condition is met

Affected Flags
None
Description

Bus Timing

Conditionally transfers control to the instruction at the memory address calculated by adding the contents of the Program Counter to the immediate value n, (sign extended to
16 bits), if the state of the flag referenced by f is equal to the
state of the bit s; or, optionally, if the condition cc is met.
See the tables below for the flags that f can reference and
the conditions that cc may specify. Since the immediate value n is an 8-bit two's complement displacement, the conditional relative jump's range is from + 127 to -128 relative
to the Program Counter. Note that the Program Counter initia"y contains the memory address of the next instruction
following the jump.

Figure 6-1 if condition is not met
Figure 6-2 if condition is met

Operation
JMP f, s, n
If flag f is in state s
then PC + n(sign extended) -+ PC
Jcc n
If cc condition is true
then PC + n(sign extended) -+ PC
Flag Reference Table for "f"

Example
This example demonstrates both syntaxes of the conditional relative jump instruction testing for a non-zero result from
a previous instruction; (Le., [Z] = 0). If the condition is
met then control transfers to the instruction labeled
"LOop. back"; else the next instruction following the jump is
executed.
JMP
JNZ

o

7

OOOB,O,Loop.back

;jump on not zero

Loop.back

;jump on not zero

cc

Meaning
Zero
Not Zero
Equal
Not Equal
Carry
No Carry
Overflow
No Overflow
Negative
Positive
Receiver Active
Not Receiver Active
Receiver Error
No Receiver Error
Data Available
No Data Available
Transmitter FIFO Fu"
Transmitter FIFO Not Fu"

(000)
(001)
(010)
(011)
(100)
(101)
(110)
(111)

4
5
6*
7

Flag Reference
[Z]
[C]
[V]
[N]
[RA]
[RE]
[DAV]
[TFF]

in {CCRI
in {CCRI
in {CCRI
in {CCRI
in {TSRI
in {TSRI
in {TSRI
in {TSRI

°Note: The value of f for [DAV] differs from the numeric
value for the position of [DAV] in {TSRI.

Condition Tested for
[Z]
[Z]
[Z]
[Z]
[C]
[C]
[V]
[V]
[N]
[N]
[RA]
[RA]
[RE]
[RE]
[DAV]
[DAV]
[TFF]
[TFF]

(binary)

3

Condition SpeCification Table for "cc"

Z
NZ
EO
NEO
C
NC
V
NV
N
P
RA
NRA
RE
NRE
DA
NDA
TFF
NTFF

f

0
1
2

= 1
=0
= 1
=0
= 1
=0
= 1
=0
= 1
=0
= 1
=0
= 1
=0
= 1
=0
= 1
=0

1-184

6.0 Reference Section
JMP

(Continued)

Unconditional Relative Jump

Syntax
JMP n
-immediate
JMP Rs
-register
Affected Flags
None
Description
Unconditionally transfers control to the instruction at the
memory address calculated by adding the contents of the
Program Counter to either the immediate value n or the con·
tents of the source register Rs, (both sign extended to 16
bits). Since the immediate value n and the contents of Rs
are 8·bit two's complement displacements, the uncondition·
al relative jump's range is from + 127 to -128 relative to
the Program Counter. Note that the Program Counter initial·
Iy contains the memory address of the next instruction fol·
lowing the jump.
Example
Transfer control to the instruction labeled "I niLXmit",
which is within + 127/ -128 words relative to the PC.
JMP IniLXmit
;go initialize Transmitter
Instruction Format
JMP n

n
JMP

o

7

15
Rs

11111010111110111110101
Opcode
15

1

Rs
4

o

T-states

JMP n
-3
-4
JMP Rs
Bus Timing
-Figure 6-2
JMP n
JMP Rs
-Figure 6-4
Operation
JMP n
PC + n(sign extended) ----+ PC
JMP Rs
PC + Rs(sign extended) ----+ PC

I

III
1-185

6.0 Reference Section (Continued)
JRMK Relative Jump with Rotate and
Mask on Register
Syntax
JRMK Rs, b, m

-register
Affected Flags
None
Description
Transfers control to the instruction at the memory address
calculated by adding the contents of the Program Counter
to a specially formed displacement. The displacement is
formed by rotating a copy of the source register Rs the value of b bits to the right, masking (setting to zero) the most
significant m bits, masking the least significant bit, and then
sign extending the result to 16 bits. Typically, the JRMK
instruction transfers control into a jump table. The LSB of
the displacement is always set to zero so that the jump table
may contain two word instructions, (e.g., LJMP). The range
of JRMK is from + 126 to -128 relative to the Program
Counter. Note that the Program Counter initially contains
the memory address of the next instruction following JRMK.
The source register Rs may specify any active CPU register.
The rotate value b may be from 0 to 7, where 0 causes no
bit rotation to occur. The mask value m may be from 0 to 7;
where m = 0 causes only the LSB of the displacement to be
masked, m = 1 causes the MSB and the LSB to be masked,
m = 2 causes bits 7-6 and the LSB to be masked, etc ...
Example
This example demonstrates the decoding of the address
frame of the 3299 Terminal Multiplexer protocol. In the address frame, only the bits 4-2 contain the address of the
Logical Unit.
EXX
0,1
;select main A, alt B
;decode device address
JRMK
RTR,1,4
;jump to device handler #0
LJMP
AD OR.O
ADDR.1
;jump to device handler # 1
LJMP
LJMP
ADDR.2
;jump to device handler # 2
LJMP
ADDR.7
Instruction Format

;jump to device handler #7

I I
b

15
T-states
4
Bus Timing

Rs

7

10

4

o

Figure 6-4

Operation
Copy Rs to a temporary register:
Rs ~ register
Rotate the register b bits to the right:

4

I

I

I

I

I~

I

I

W

reglstor

TL/F/9336-8

Mask the most significant m bits and the LSB:

A
register AND 0 ... 0 1 ... 1 0 ~ register
Modify the Program Counter:
PC + register(sign extended)

~

PC
1-186

~----------------------------------------------------------------~c

6.0 Reference Section

"'C
Q)

(Continued)

W

LCALL Conditional Long Call

LCALL

Syntax

Syntax

LCALL

Rs, p, s, nn

-register, absolute

LCALL

Affected Flags

~
~

Unconditional Long Call

nn

m

-absolute

Affected Flags

None

None

Description

Description

If the bit in position p of register Rs is equal to the bit s, then
push the Program Counter, the ALU flags, the Global Interrupt Enable bit [GIE], and the current register bank selections onto the internal Address Stack. Following the push,
transfer control to the instruction at the absolute memory
address nn. The operand Rs may specify any active CPU
register. The value of p may be from 0 to 7, where 0 corresponds to the LSB of Rs and 7 corresponds to the MSB of
Rs. The absolute value nn is 16 bits long, (range: 0 to 64k),
therefore, all of instruction memory can be addressed.

Pushes the Program Counter, the ALU flags, the Global Interrupt Enable bit [GIE], and the current register bank selections onto the internal Address Stack; then unconditionally
transfers control to the instruction at the absolute memory
address nn. The value of nn is 16 bits long, (range: a to
64k), therefore, all of instruction memory can be addressed.

Example
Transfer control to the subroutine "Send.it.all", which could
be located anywhere in instruction memory.
LCALL

Example
Call the "Load.Xmit" subroutine when the Transmitter FIFO
Empty flag, [TFE], of the Network Command Flag register
(NCF} is "1".
EXX
0,0
LCALL NCF,7,1, Load.Xmit

111110101111111011101010101010101
Opcode

;select main A, alt B
;If [TFE] = 1 call

a

15

Instruction Format

nn
1

p
15

8

1

15
T-states
(2

+

Send.it.all

Instruction Format

~n

7

15
T-states

Rs

o

4

(2

+

a

2)

Bus Timing

1

Figure 6-3

o

Operation
PC & [GIE] & ALU flags & register bank selections
~ Address Stack

2)

nn~PC

Bus Timing
Figure 6-3

Operation
If Rs[p] = s then
PC & [GIE] & ALU flags & register bank selections
~ Address Stack
nn~PC

End if

•
1-187

6.0 Reference Section (Continued)
LJMP

Conditional Long Jump

LJMP

Syntax
LJMP Rs, p, s, nn
-register, absolute
Affected Flags
None
Description
Conditionally transfers control to the instruction at the absolute memory address nn if the bit in position p of register Rs
is equal to the state of the bit s. The operand Rs may specify any active CPU register. The value of p may be from 0 to
7, where o corresponds to the LSB of Rs and 7 corresponds
to the MSB of Rs. The absolute value nn is 16 bits long,
(range: 0 to 64k), therefore, all of instruction memory can be
addressed.
Example
Long Jump to one of the receiver error ,handling routines
based on the contents of the Error Code Register {ECR I.
EXX
0,1,3
;select main A, alt B
; and clear [GIE]
;set [SEC] in {TSR}
. DR
01000000B,TSR
MOVE ECR, R11
;read {ECRI
,; Determine error condition
, LJMP R11, 0, 1, Software_error
LJMP R11, 1, 1, Loss_of_Midbit
LJMP R11, 2,1, Invalid_Ending_Seq
LJMP R11, 3,1, Parity_error
LJMP R11, 4,1, Software_error
Instruction Format
1

p

15

8

1

15
T-states
(2

+

~n

7

.
1

1 1 1 101011 1 1 1 1 1010101,010101010101
Opcode
.
15
0

1

o

1

nn

o

15
LJMP

1

Rs
4

Unconditional Long Jump

Syntax
LJMP nn
-absolute
LJMP [lr]
-indexed
Affected Flags
None
Description
Unconditionally transfers control to the instruction at the
memory address specified by the operand. The operand
may either specify an absolute instruction address nn, (16
bits long), or an index register Ir, which contains an instruction address. Long Jump's addressing range is from 0 to
64k; (Le., all of instruction memory can be addressed).
Example
Transfer control to the instruction labeled "Reset.System",
which may be located anywhere in instruction memory.
LJMP
Reset.System
;go reset the system
Instruction Format
LJMP nn

11

1

[lr]

I 1 I 0 I ~~~o~~ I 0 I 1 1 0

I ir I

0 10 10

6 J..

15

4

OO-IW
01-IX
10-IY
11-12

1

o
T-states
LJMP nn
LJMP [lr]
Bus Timing
LJMP nn
LJMP [lr]
Operation
LJMP nn

2)

Bus Timing
Figure 6-3
Operation
If Rs[p] = s
then nn~ PC

nn~PC

LJMP

[lr]

Ir~PC

1-188

-(2+ 2)

-2
-Figure 6-3
-Figure 6-1

I0 I0 1
0

6.0 Reference Section
MOVE

(Continued)
Instruction Format
MOVE [mid, Rd

Move Data Memory

Syntax
MOVE [mlr], Rd
-indexed, register
MOVE [lr+ AJ. Rd -register-relative, register
MOVE [lZ + n], rd -immediate-relative, limited register
Affected Flags
None
DescrIptIon
Moves a data memory byte into the destination register
specified. The data memory source operand may specify
anyone of the index register modes; [mlr], [lr+A], [lZ+n].
The index register-relative mode, [lr+ A], forms its data
memory address by adding the contents of the index register Ir to the unsigned 8-bit value contained in the currently
active accumulator. The immediate-relative mode, [lZ+n],
forms its data memory address by adding the contents of
the index register IZ to the unsigned 8-bit immediate value
n. The destination register operand Rd may specify any active CPU register; where as, the destination register operand
rd is limited to the active registers RO-R15.
Example
The first example loads the current accumulator by "popping" an external data stack, which is pointed to by the
index register IX.
MOVE
[ + IX], A
;pop accum from ext. stack
The second example demonstrates the random access of a
data byte within a logical record contained in memory. The
index register IY contains the base address of the logical
record.
R9, A
;calculate offset into record
ADDA
[lY + A], R20 ;get data byte from record
MOVE
In the final example, the 4th element of an Error Count table
is transmitted to a host. The index register IZ points to the
1st entry of the table.
EXX
0,1
;select main A. alt B
MOVE
[lZ + 3], RTR ;transmit 4th element

Rd
15

8

6

o

4

l

+

00 - post-decrement
01 - no change
10 - post Increment
11 - pre-Increment

00
01
10
11

-

IW

IX
IY

IZ

TL/F/9336-9

MOVE
11

[lr+A], Rd

I 1 I 0 I ~~~o~~ I 0 I 0 I 0 I

15

MOVE

1
.1

Ilr

I I
Rd

o

644
OO-IW
01-IX
10-IY
11-IZ
[lZ+n], rd

I 0 I 0 11

1

Opcode .
15
11
T·states
3 [4TR] = 0
4 [4TR] 1
Bus TIming

I

n

rd

=

Figure 6-5 (4TRJ = 0
Figure. 6·6 {4TRJ ...==1
OperatIon
MOVE [mid, Rd
data memory ..... Rd
MOVE [lr+A], Rd
data memory ..... Rd
MOVE [IZ + n], rd
data memory ..... rd

III
I

1-189

In
~

::;
~
c

6.0 Reference Section
MOVE

(Continued)

Move Immediate

Syntax
MOVE

n, rd

-immediate, limited register

MOVE

n, [lr]

-immediate, indexed

Affected Flags
None

Description
Moves the immediate value n into the destination specified.
The destination may be either a register, rd, (limited to the
active registers RO-R15), or data memory via an index register, Ir. The value n is 8 bits wide.

Example
Load the current accumulator with the value of 4.
MOVE

;Load accumulator

4, A

Instruction Format

n, rd

MOVE

I

1I 0 I 1 I 1 1
.
1

Opcode

15

.

rd

n

11

MOVE

o

3

n, [lr]

I I

Ir
15

9

6 J-

n[4-0]

4

o

OO-IW
01-IX
10-IY
11-IZ

T-states
MOVE
MOVE

n, rd
n, [lr]

-2
-3

Bus Timing
MOVE
MOVE

n, rd
n, [lr]

-Figure 6-1
-Figure 6-7

Operation
MOVE

n, rd

n-+ rd
MOVE n, [lr]
n -+ data memory

1-190

6.0 Reference Section
MOVE

C
"tJ
co

(Continued)

W

MOVE

Syntax
MOVE

Rs, Rd

-register, register

MOVE
MOVE

Rs, [mlrJ
Rs, [Ir+ AJ

-register, indexed
-register, register-relative

MOVE

rs, [lZ + nJ

-limited register, immediate-relative

Rs
15
MOVE
1 11

I0I0

I0 I 0 I

0

I

Opcode

m

~

00
01
10
11

-

Rs

Ir

4

8

15

0

~

post-decrement
no change
post Increment
pre-Increment

00
01
10
11

-

IW
IX
IY
IZ

TlIF/9336-10

MOVE
.1

Rs, [Jr+AJ

111101010111010111
Opcode
.

1 1
Rs

Ir

6 J,

15

o

4

OO-IW
01-IX
10-IY
11-IZ
MOVE

rs, [Z + nJ

0 1 0 1 0 11 1
1
.1 Opcode .
11
15
T-states
MOVE Rs, Rd
MOVE Rs, [mlrJ
MOVE Rs, [Jr+ AJ
MOVE rs, [JZ + nJ

;select main A, alt B
;Load the Transmitter FIFO

The second example "pushes" the current accumulator's
contents onto an external data stack, which is pointed to by
the index register IX.
A, [IX -J

4

Rs, [mlrl

.

Example
The first example loads the Transmitter FIFO with a data
byte in register 20.

MOVE

9

1

Description
Moves the contents of the source register into the destination specified. The source register operand Rs may specify
any active CPU register; where as the source register operand rs is limited to the active registers RO-R15. The destination operand may specify either any active CPU register,
Rd, or data memory via one of the index register modes;
[mlrl, [lr+AJ, [IZ+n]. The index register-relative mode,
[lr+ Al. forms its data memory address by adding the contents of the index register Ir to the unsigned 8-bit value contained in the currently active accumulator. The. immediaterelative mode, [lZ + nJ, forms its data memory address by
adding the contents of the index register IZ to the unsigned
8-bit immediate value n.

0,1
R20, RTR

tD

Rs, Rd
1

Affected Flags
None

EXX
MOVE

0l:Io
0l:Io

Instruction Format

Move Register

;push accum to ext. stack

The third example demonstrates the random access of a
data byte within a logical record contained in memory. The
index register IY contains the base address of the logical
record.
ADDA R9, A
;calculate offset into record
MOVE R20, [lY + AJ
;update data byte in record

rs

n
3

o

-2
-3
-3
-3

Bus Timing
MOVE Rs, Rd
MOVE Rs, [mlrJ
MOVE Rs, [Jr+AJ
MOVE rs, [JZ + nJ

In the final example, the 4th element of an Error Count table
is updated with a new value contained in the current accumulator. The index register IZ points to the 1st entry of the
table.
MOVE A, [IZ + 3J
;update 4th element of table

-Figure 6-1
-Figure 6-6
-Figure 6-6
-Figure 6-6

Operation
MOVE Rs, Rd
MOVE Rs, [mlrJ
MOVE Rs, [Jr+AJ
MOVE rs, [JZ + nJ

-Rs-+ Rd
-Rs -+ data memory
-Rs -+ data memory
-rs -+ data memory

II
I

1-191

6.0 Reference Section
OR

(Continued)

ORA

OR Immediate

OR with Accumulator

Syntax

Syntax
-imm~diate,

Affected Flags

ORA
ORA

N,Z

Affected Flags

Description

N,Z

Logically ORs the immediate value n to the register rsd and
places the result back into the register rsd. Note that only
the active registers RO-R15 may be specified for rsd. The
value of n is 8 bits wide.

Description

OR

n, rsd

limited register

-register, register
-register, indexed

Rs, Rd
Rs, [mlr)

Logically ORs the source register Rs to the active accumulator and places the result into the destination specified.
The destination may be either a register, Rd, or data memory via an index register mode, [mlr). Note that register bank
selection determines which accumulator is active.

Example
Mask both the Transmitter and Receiver interrupts via the
Interrupt Control Register (lCR}, R2. Leave the other interrupts unaffected.
EXX 0,0
;select main reg banks
OR 000000118, ICR ;mask transmitter and
; receiver interrupts

Example
Write an 11-bit word to the Transmitter's FIFO. This example assumes that the index register IZ points to the location
of the data in memory.
TCR.settings: .EQU 001010008

Instruction Format

0
.1

11 10 11

Opcode
15

I

n

.
11

EXX
1,1
MOVE TCR.settings,A
MOVE [lZ+],R20
ORA
R20,TCR
MOVE [lZ+),RTR
Instruction Format
ORA Rs, Rd

rsd
3

o

T-states
2
Bus Timing
Figure 6-1
Operation
rsd

OR

;select main A, alt 8
;Ioad accumulator w/mask
;Ioad bits 8, 9, & 10
;write bits 8,9, 10 to {TCR}
;push 11-bit word to FIFO

1 1
Rs

1

Rd

n ~ rsd

15
ORA

o

4

9
Rs, [mlr)

11 I 0 I 1 I 0 11 I 0 I
Opcode

Rs

Ir

4

15

~

00
01
10
11

-

post-decrement
no change
post Increment
pre-Increment

t

00 - IW
01 - IX
10 - IY

11 - IZ

TL/F/9336-11

T-states
ORA
ORA

Rs, Rd
Rs, [mlr)

-2
-3

Bus Timing
ORA
ORA

Rs, Rd
Rs, [mlr)

-Figure 6-1
-Figure 6-7

Operation
ORA Rs, Rd
Rs OR accumulator ~ Rd
ORA Rs, [mlr)
Rs OR accumulator ~ data memory

1-192

6.0 Reference Section
RETF

Condition Specification Table for "CC"

(Continued)

Conditional Return

Rcc
Syntax
RETF f, s(,(g} (,rf})
Rcc (g(,rf})
-(optional syntax)
Affected Flags
If rf = 1 then N, Z, C, and V
Description
Conditionally returns control to the last instruction address
pushed onto the internal Address Stack by popping that address into the Program Counter, if the state of the flag referenced by f is equal to the state of the bit s; or, optionally, if
the condition cc is met. See the tables on the following page
for the flags that f can reference and the conditions that cc
may specify. The conditional return instruction also has two
optional operands, g and rf. The value of g determines if the
Global Interrupt Enable bit [GIE] is left unchanged (g=O),
restored from the Address Stack (g = 1), set (g = 2), or
cleared (g = 3). If the g operand is omitted then g = 0 is assumed. The second optional operand, rf, determines if the
ALU flags and register bank selections are left unchanged
(rf = 0), or restored from the Address Stack (rf = 1). If the rf
operand is omitted then rf=O is assumed.

001 B, 1

Meaning
Zero
Not Zero
Equal
Not Equal
Carry
No Carry
Overflow
No Overflow
Negative
Positive
Receiver Active
Not Receiver Active
Receiver Error
No Receiver Error
Data Available
No Data Available
Transmitter FIFO Full
Transmitter FIFO Not Full

f

(binary)

0
1

(000)
(001)
(010)
(011)
(100)
(101)
(110)
(111 )

2
3
4

; If [C] = 1 then return

5

; If [C] = 1 then return

7

6*
RC

[Z]
[Z]
[Z]
[Z]
[C]
[C]
[V]
[V]
[N]
[N]
[RA]
[RA] .
[RE]
[RE]
[DAV]
[DAV]
[TFF]
[TFF]

= 1
=0
= 1
=0
= 1
=0
= 1
=0
= 1
=0
.= 1
=0
= l'
=0
=1
=0
= 1
=0

Flag Referenced
[Z]
[C]
[V]
[N]
[RA]
[RE]
[DAV]
[TFF]

in (CCR)
in (CCA)
in (CCA)
in (CCA)
in (TSA)
in (TSA)
in (TSA)
in (TSA)

"Note: The value of f for [DAV) differs from the numeric
value for the position of [DAV) in I TSR l.

Instruction Format

15

Condition Tested for

Flag Reference Table for lit"

Example
This example demonstrates both syntaxes of the conditional return instruction testing for a carry result from a previous
instruction; (Le., [C] = 1). If the condition is met then the
return occurs, else the next instruction following the return
is executed. The current environment is left unchanged.
RETF

cc
Z
NZ
EO
NEO
C
NC
V
NV
N
P
RA
NRA
RE
NRE
DA
NDA
TFF
NTFF

6 J,

4

3

2

0

OO-GIE not affected
01-Restore GIE
10-SetGIE
11-Clear GIE
T-states

2 if condition is not met
3 if condition is met
Bus Timing
Figure 6-1 if condition is not met
Figure 6-2 if condition is met
Operation

I

If flag f is in state s then
Case g of
0: leave [GIE] unaffected, (default)
1: restore [GIE] from Address Stack
2: set [GIE]
3: clear [GIE]
End case
If rf= 1 then
restore ALU flags from Address Stack
restore register bank selection from Address Stack
End if
Address Stack - . PC
End if

I

II
I

I

1-193

m

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

~
~
Cf)

6.0 Reference Section

Q.

RET Unconditional Return

ROT

Syntax

Syntax

co
C

RET

(Continued)

ROT

Ig I,rfll

Rotate
Rsd, b

-register

Affected Flags
N,Z,C

Affected Flags
If rf= 1 then N, Z, C, and V
Description

Description

Unconditionally returns control to the last instruction address pushed onto the internal Address Stack by popping
that address into the Program Counter. The unconditional
return instruction also has two optional operands, g and rf.
The value of g determines if the Global Interrupt Enable bit
[GIE] is left unchanged (g = 0), restored from the Address
Stack (g = 1), set (g = 2), or cleared (g = 3). If the g operand
is omitted then g = 0 is assumed. The second optional operand, rf, determines if the ALU flags and register bank selections are left unchanged (rf = 0), or restored from the Address Stack (rf = 1). If the rf operand is omitted then rf = 0 is
assumed.

Rotates the contents of the register Rsd b bits to the right
and places the result back into that register. The bits that
are shifted out of the LSB are shifted back into the MSB,
(and copied into the Carry flag). The value b may specify
from 0 to 7 bit rotates.
Example
Add 3 to the Address Stack Pointer contained in the Internal
Stack Pointer register liSP}, R30.
MOVE
ROT

ADD
ROT
MOVE

Example
Return from an interrupt.
RET

1,1

ISP, RB
RB, 4
3, RB
RB, 4
RB,ISP

;get IISPI
;shift [ASP] to low order nibble
;add 3 to [ASP]
;shift [ASP] to high order nibble
;store new liSP}

Instruction Format

;Restore environment & return

I I

Instruction Format

Rsd

15

7

4

o

T-states

15

6!

4

3

2

0

Bus Timing
Figure 6-1

OO-GIE not affected
01-Restore GIE
10-SetGIE
11-ClearGIE

Operation

T-states
2
Bus Timing

Rsd

Figure 6-1

TLlF9336-12

Operation
Case g of
0: leave [GIE] unaffected, (default)
1: restore [GIE] from Address Stack
2: set [GIE]
3: clear [GIE]
End case
If rf= 1 then
restore ALU flags from Address Stack
restore register bank selection from Address Stack
End if
Address Stack ----+ PC

1-194

6.0 Reference Section
SBCA

(Continued)

Subtract with Carry and
Accumulator

SHL

Syntax
SBCA Rs, Rd
-register, register
SBCA Rs, [mlr]
-register, indexed
Affected Flags
N,Z,C,V
Description
Subtracts the active accumulator and the carry flag from the
source register Rs, placing the result into the destination
specified. The destination may be either a register, Rd, or
data memory via an index register mode, [mlr]. Negative
results are represented using the two's complement format.
Note that register bank selection determines which accumulator is active.
Example
Subtract the constant 109 from the index register IW, (which
is 16 bits wide).
SUBA A, A
;Clear the accumulator
SUB
109, R12
;Iow byte of IW-109
SBCA R13, R13
;high byte of IW-borrow
Instruction Format
SBCA Rs, Rd

I
15

Rsd

I

Rd

15
T-states
2
Bus Timing
Figure 6-1
Operation

Rs

o

4

9

SBCA Rs, [mlr]
1

.

1

I0 I

1

I0

I0 I 1 I 1 I

Opcode

15

.

m

8

t
00 -

post-decrement
01 - no change
10 - post Increment
11 - pre-increment

Rs

Ir

7

o

4

~~_ _ _ _ _ _ _ _~~O

o

4

Shift Left

Syntax
SHL Rsd, b
-register
Affected Flags
N,Z,C
Description
Shifts the contents of the register Rsd b bits to the left and
places the result back into that register. Zeros are shifted in
from the right, (Le., from the LSB). The value b may specify
from 0 to 7 bit shifts. The Carry flag contains the last bit
shifted out.
Example
Place a new internal Address Stack Pointer into the Internal
Stack Pointer register (ISP}, R30. Assume that the new
[ASP] is located in register 20.
MOVE ISP,RB
;read liSP} for [DSP]
AND
00001111 B,RB ;save [DSP] only
SHL
R20,4
;Ieft justify [ASP]
ORA
R20,ISP
;combine [ASP] + [DSP],
; then place into liSP}
Instruction Format

l
00 -IW

Rsd
TL/F19336-14

01 - IX
10 - IY
11 - IZ
TL/F9336-13

T-states
SBCA Rs, Rd
-2
SBCA Rs, [mlr]
-3
Bus Timing
SBCA Rs, Rd
-Figure 6-1
SBCA Rs, [mlr]
-Figure 6-7
Operation
SBCA Rs, Rd
Rs - accumulator - carry bit ~ Rd
SBCA Rs, [mlr]
Rs - accumulator - carry bit ~ data memory

1-195

6.0 Reference Section
SHR

(Continued)

Shift Right

SUB

Syntax

SHR

Rsd, b

Subtract Immediate

Syntax

SUB n, rsd

-register

-immediate, limited register

Affected Flags

Affected Flags

N,Z,C,V

N,Z,C

Description

Description

Subtracts the immediate value n from the register rsd and
places the result back into the register rsd. Note that only
the active registers RO-R15 may be specified for rsd. The
value of n is limited to 8 bits; (signed range: + 127 to
-128). Negative numbers are represented using the two's
complement format.

Shifts the contents of the register Rsd b bits to the right and
places the result back into that register. Zeros are shifted.in
from the left, (Le., from the MSB). The value b may specify
from 0 t07 bit shifts. The Carry .flag contains the last bit
shifted out.
Example

Example

Right justify the Address .Stack Pointer from the Internal
Stack Pointer register {ISP}, R30.
MOVE ISP, R20
;Load [ASP] from liSP}
SHR
R20,4
;right justify [ASP]

Subtract the constant 3 from register 10.
SUB 3, R10
; R10 - 3 --+ R10
Instruction Format

Instruction Format

11 11 10 ~~101~ 01 0 10 1
15

7

1

1

.1

1

b

Rsd

Opcode
15

2

T-states

Bus Timing
Figure 6-1

2
Bus Timing
Figure 6-1

Operation

rsd - n --+ rsd

Operation

o~~________~ __~
Rsd
TLlF/9336-15

1-196

1

n

.

T-states

o

4

0 10 11 10 I

11

rsd

3

0

6.0 Reference Section
SUBA

(Continued)

TRAP

Subtract with Accumulator

Syntax
SUBA
AS,Ad
As, [mlr]
SUBA
Affected Flags
N,Z,C,V

-register, register
-register, indexed

Affected Flags
None
Description
Pushes the Program Counter, the Global Interrupt Enable bit
[GIE), the ALU flags, and the current register bank selections onto the internal Address Stack; then unconditionally
transfers control to the instruction at the memory address
created by concatenating the contents of the Interrupt Base
Aegister IIBA} to the value of v extended with zeros to 8
bits. If the value of g' is equal to "1" then the Global Interrupt Enable bit [GIE) will be cleared. If the g' operand is
omitted, then g' = 0 is assumed. The vector number v
points to one of 64 Interrupt Table entries; (range: 0 to 63).
Since some of the Interrupt Table entries are used by the
hardware interrupts, the TAAP instruction can simulate
hardware interrupts. The following table lists the hardware
interrupts and their associated vector numbers:

Description
Subtracts the active accumulator from the source register
As and places the result into the destination specified. The
destination may be either a register, Ad, or data memory via
an index register mode, [mlr]. Negative numbers are represented using the two's complement format. Note that register bank selection determines which accumulator is active.
Example
In the first example, the value 4 is placed into the currently
active accumulator, that accumulator is subtracted from the
contents of register 20, and then the result is placed into
register 21.
MOVE
SUBA

4, A
;Place constant into accum
A20, A21
;A20 - accum ~ A21
In the second example, the alternate accumulator of register bank B is selected and then subtracted from register 20.
The result is placed into the data memory pointed to by the
index register IZ and then the value of IZ is incremented by
one.
EXX
0, 1
;Select alt accumulator
SUBA A20, liZ +) ;A20 - accum ~ data mem
;and increment data pointer
Instruction Format
SUBA As, Ad

Hardware Interrupt Vector Table

As

TAAP

o

4

9

I I0I I I0

v

(Binary)

28
4
8
12
16
20

(011100)
(000100)
(001000)
(001100)
(010000)
(010100)

8, 1

;TFE interrupt simulation

Instruction Format

SUBA As, [mlr]

I.

Interrupt
NMI
AFF/OAlAA
TFE
LTA
BIAQ
TO

Example
Simulate the Transmitter FIFO Empty interrupt.

I
Ad

15

Software Interrupt

Syntax
TAAP v I,g'}

I0 I
+

00 - post-decrement
01 - no change
10 - post Increment
II - pre-Increment

o
15
6 5
T-states
2
Bus Timing
Figure 6-1
Operation
PC & [GIE) & ALU flags & register bank selections
~ Address Stack
if g' = 1
then clear [GIE)
Create PC address by concatonating the IIBA} register to
the vector number v as shown below:

o

4

15

v

Rs

Ir

Opcode

t
00 - IW
01 - IX

10 - IY

II - IZ

TlIF/9336-16

T-states
SUBA As, Ad
SUBA As, [mlr)

-2
-3

Bus Timing
SUBA As, Ad
SUBA As, [mlr)

-Figure 6-1
-Figure 6-7

Operation
SUBA Rs, Ad
As - accumulator ~ Ad

I I I
{IBR}

I0 I 0 I

!Lpc

LI-5------~~------~7--~~5----------~0

SUBA As, [mlr]
As - accumulator ~ data memory

TL/F/9336-17

1-197

6.0 Reference Section
XOR

(Continued)

Exclusive OR Immediate

XORA

Syntax
XOA n, rsd

-immediate, limited register

XOAA
XOAA

Affected Flags
N,Z
Description

Encode/decode a data byte in register 15.
XOA code_pattern, A15
;encode/decode

Example
Decode the data byte just received and place it into data
memory. This example assumes that the accumulator contains the "key" and that the index register IY points to the
location where the information should be stored.
EXX
1,1
;select alternate banks
XOAA .. ATA, [lY + ] ;decode received byte and
; save it

Instruction Format
Opcode

15
T-states

n

.

11

3

-register, register
-register, indexed

Logically exclusive OAs the source register As to the active
accumulator and places the result into the destination specified. The destination may be either a register, Ad, or data
memory via an index register mode, [mlr]. Note that register
bank selection determines which accumulator is active.

Example

0 11 1 1 1 0 I

As, Ad
As, [mlr]

Affected Flags
N,Z
Description

Logically exclusive OAs the immediate value n to the register rsd and places the result back into the register rsd. Note
that only the active registers AO-A15 may be specified for
rsd. The value of n is 8 bits wide.

1.

Exclusive OR with Accumulator

Syntax

0

2

Instruction Format

Bus Timing
Figure 6-1
Operation
rsd XOA n -+ rsd

XOAA As, Ad
1

Ad

15

Rs

9

o

4

XORA Rs, [mlr]

1

I0I

.

1

1

I 0 11
Opcode

I

1

I0

I
.

15

m

~

00
01
10
11

-

Rs

Ir

8

post-decrement
no change
post Increment
pre-increment

o

4

.l

00 - IW .
01 - IX
10 - IY
11 - IZ
TL/F 19336-1 B

T-states
XORA Rs, Rd
XORA Rs, [mlr]

-2
-3

Bus Timing
XORA Rs, Rd
XORA Rs, [mlr]

-Figure 6-1
-Figure 6-7 .

Operation
XORA Rs, Rd
Rs XOR accumulator -+ Rd
XORA Rs, [mlr]
Rs XOR accumulator -+ data memory

1-198

6.0 Reference Section

(Continued)

TABLE 6-2. Instructions Versus T-states, Affected Flags, and Bus Timing

Instruction

T-states

Affected
Flags

Timing
Figure

Instruction

T-states

Affected
Flags

Timing
Figure

ADCA

Rs, Rd

2

N,Z,C,V

6·1

MOVE

Rs, [mlr]

3

6-7

ADCA

Rs, [mlr]

3

N,Z,C,V

6-7

MOVE

Rs, [lr + A]

3

6-7

ADD

n, rsd

2

N,Z,C,V

6-1

MOVE

rs, [lZ + n]

3

6-7

MOVE

[mlr],Rd

3 [4TR] = 0
4 [4TR] =' 1

6-5
6-6

MOVE

[lr + A], Rd

3 [4TR] - 0
4 [4TR] = 1

6-5
6-6

MOVE

[lZ+ n], rd

3 [4TR] = 0
4 [4TR]='1

6-5
6-6

ADDA

Rs, Rd

2

N,Z,C,V

6-1

ADDA

Rs, [mlr]

3

N,Z,C,V

6-7

AND

n, rsd

2

N,Z

6-1

ANDA

Rs, Rd

2

N,Z

6-1

ANDA

Rs, [mlr]

3

N,Z

6-7

BIT

rs, n

2

CALL

n

3

CMP

rs, n

2

CPL

Rsd

2

EXX

ba, bb (,g)

2

6-1

Jee

n

2 false
3 true

6-1
6-2

N,Z

-=

6-1

OR

n, rsd

6-2

ORA

Rs, Rd

N;Z,C,V

6-1

ORA

Rs, [mlr]

N,Z

6-1

Ree

(g (,rf))

--"-

2

N,Z

6-1

2

N,Z

6-7

3

N,Z

6-7

2 false
3 true

N,Z,C,V·

6-1
6-2

RET

(g(,rf))

2

N,Z,C,V*.

6-1

RETF

f, s (,(g) (,rf))

2 false
3 true

N,Z,C,V*

6-1
6-2

2

N,Z,C

6-1

JMP

f, s, n

2 false
3 true

6-1
6-2

ROT

Rsd,b

JMP

n

3

6-2

SBCA

RS,Rd

2

N,Z,C,V

6-1

JMP

Rs

4

6-4

SBCA

Rs, [mlr]

3

N,Z,C,V

6-7

JRMK

RS,b,m

4

6-4

SHL

Rsd,b

2

N,Z,C

6-1

LCALL

nn

(2+2)

6-3

SHR

Rsd,b

2

N,Z,C

6-1

LCALL

Rs, p, s, nn

(2+2)

6-3

SUB

n, rsd

2

N,Z,C,V

6-1

LJMP

nn

(2+2)

6-3

SUBA

Rs, Rd

2

N,Z,C,V

6-1

LJMP

[lr]

2

6-1

SUBA

Rs, [mlr]

3

N,Z,C,V

6-7

LJMP

Rs,p,s,nn

(2+2)

6-3

TRAP

v (,g')

2

MOVE

n, rd

2

6-1

XOR

n, rsd

2

N,Z

6-1

MOVE

n, [lr]

3

6-7

XORA

Rs, Rd

2

N,Z

6-1

MOVE

Rs, Rd

2

6-1

XORA

Rs, [mlr]

3

N,Z

6-7

6-1

·Note: If rf = 1 then N. Z. C. and V are affected,

I

III

I

1-199

m
~

~

6.0 Reference Section

CO
Q.

C

(Continued)

TABLE 6-3. Instruction Opcodes

OOOO-OFFF

101010101
Opcode

1 0 1 0 10 11
Opcode

1 0 1 0 11 10
Opcode

1

1

1

1

1

1

1

1

I3

n

I

15

2000-2FFF

1

11

15

1000-1 FFF

1

1

1

1

1

I3

n
11

I

1

1

1

1

1

1

1

I3

n
11

15

KEY

Instruction

Opcode

Hex

1

1 1
rsd

1

1
rs

1

1

1 1
rsd

I
0

ADD

n, rsd

I
0

MOVE

rs, [lZ + n]

I
0

SUB

n, rsd

rnlr
IrIr
Ir+
+Ir

00
01
10
11
Ir
00
01
10
11

IW
IX
IY
IZ

9
3000-3FFF

10

IOpcode
0 11 I 1 I

1

1 0 11 I 0 11
Opcode

1 0 11 11 I 0
Opcode

I

BOOO-B7FF

I I I

I

I I I

I I I

I3

1
n

I I I

1
n

1

I3

1

1

I3

1
n

I I I

I3

11
1
rn

11101010101
Opcode
15

I I I

11

I0 IOpcode
1I1I1I
15

1
n

I3

11

15

7000-7FFF

I I I

11

15

6000-6FFF

I I I

011
10101
Opcode
15

5000-5FFF

1
n

11

15

4000-4FFF

I I I

10

I

I7

1

1
b

I4

1

I I I
rs

I I

1

rsd

I I I
rsd

1

1 1
rsd

I I I
rs

1 1
Rs

1-200

I

I
0

CMP

rs, n

I
0

AND

n, rsd

I
0

OR

n, rsd

I
0

XOR

n, rsd

I
0

BIT

rs, n

I
0

JRMK

RS,b,rn

NCHG
RI
EI
01

00
01
10
11

9'
0
1
1

NCHG
01
ba/bb

000
001
010
011
100
101
110
111

[Z]
[C]
[V]
[N]
[RA]
[RE]
[OAV]
[TFF]

I

C

6.0 Reference Section

.."

co

(Continued)

w

~
~

TABLE 6-3. Instruction Opcodes (Continued)

BBOO-BBFF

11 1010101 1 10
Opcode
15

1

1
n[7-5] .

15

I I I

B
1

Ir

I I I

n[4-0]

1

p

I I I

1

Rs

1

7

4

I I I

MOVE

n, [lr]

LJMP

Rs, p, s, nn

1
0

4

I I

1
nn

I

I I I

1

6

9

BCOO-BOFF .1110101011111011
s
Opcode

OOOO-FFFF

I

I

I

KEY

Instruction

Opcode

Hex

I
0

mlr
IrIr
Ir+
+Ir

00
01
10
11
Ir
00
01
10
11

I I I

1

I

OJ

IW
IX
IY
IZ

0

15

9
BEOO-BFFF

111010101111111
.
Opcode
s
B

15
OOOO-FFFF

I I I

I Ip I

1

I I I

7

1
nn

I

I I I

1

Rs

1
4

I I I

11

AOOO-A1FF

I I I

1
m

I

Rs

I

1

Rs

I
6

I

I I I

4

Ir

1

MOVE

[lZ+n1. rd

AOOA

Rs, [mlr]

0

1

6
1
m

I I I

4

Ir

1

B

B

1

I

AOCA

Rs, [mlr]

0
1

01

ba/bb

0

1

6
1
m

111011101011101
Opcode

Ir

1

8

111011101010111
Opcode

15

~
1

I I I II I I
rd
I
3

111011101010101
Opcode

15

A400-A5FF

9'

I

11

15

A200-A3FF

1
n

NCHG
RI
EI
01

I I I

1

0

IOpcode
0 I0 I1 I

15

LCALL Rs, p, s, nn

0

15

9000-9FFF

I

00
01
10
11

I I I
Rs

1
4

I

SUBA

Rs, [mlr]

000
001
010
011
100
101
110
111

[Z]
[C]
[V]

[t-:J]
[RA]
[RE]
[OAV]
[TFF]

0

III
I

1-201

m
~

~

6.0 Reference Section

(Continued)

CO

D..
C

TABLE 6-3. Instruction Opcodes (Continued)

Hex

Opcode

ASOO-A7FF

1 1 1 1
1
111011101011111 1
Opcode
Rs
m 1 Ir 1
1
15
B
S
4
0

SBCA Rs, [mlr]

ABOO-A9FF

111011101110101
Opeode

1
1
1 1 1 1
m 1 Ir 1
Rs
1
B
S
4
0

ANOA Rs, [mlr]

1
1
1 1 1 1
m 1 Ir 1
Rs
1
B
S
4
0

ORA

15

AAOO-ABFF

111011101110111
Opeode
15

KEY

Instruction

Rs, [mlr]

mlr
IrIr
Ir+
+Ir

00
01
10
11
Ir
00
01
10
11

IW
IX
IY
IZ

9
ACOO-AOFF

1
1 1 1 1
111011101111101 1
Opeode
m 1 Ir 1
Rs
1
15
B
S
4
0

XORA Rs, [mlr]

AEOO-AE1F

11101110111111101010101 1 1 1 1
Opeode
Rs
1
15
4
0

CPL

1
9 1 ba 1 bb 1 0 1 0 1 0 1
S
4
3
2
0

EXX

ba, bb I.g1

1
1 1
f
9 1 rl 1 s 1
1
4 3 2
S
0

RETF
Ree

f,sl.lgll,rlll
Igl,rlll

1 IrllOIOIOlol
9
6
4 3
0

RET

AEBO-AEFB

1110111011111110111
Opeode
15

AFOO-AF7F

1110111011111111101
Opeode
15

AFBO-AFFO

1110111011111111111
Opeode
15

BOOO-BFFF

11 1 0 1 1 1 1 1 1 1 1 1 1
Opeode
n
15
11

1

1

1
1
3

1-202

1 1
rd
0

NCHG
RI
EI
01
g'

Rsd
0
1
1

Igl.rlll

MOVE n, rd
1

00
01
10
11

NCHG 1
01
ba/bb

000
001
010
011
100
101
110
111

[Z]
[C)
[V]
[N]
[RA]
[RE]
[OAV]
[TFF]

C

6.0 Reference Section

"tJ

Q)

(Continued)

W

~
~

TABLE 6-3. Instruction Opcodes (Continued)

OJ

Opcode

COOO-C1FF

1 1 1 1
1
111110101010101 1
Rd
Opcode
m 1 Ir 1
1
15
6
4
a
0

MOVE

[mlr], Rd

C200-C3FF

1
1 1 1 1
111110101010111 1
Rs
m 1 Ir 1
Opcode
1
15
a
6
4
0

MOVE

Rs, [mlr]

C400-C47F

1
Ir 1

1111101010111010101
Opcode
15

KEY

Instruction

Hex

1 1 1 1
Rd
4

6

MOVE

[lr+A1. Rd

1

mlr
IrIr
Ir+
+Ir

00
01
10
11
Ir
00
01
10
11

IW
IX
IY
IZ

0

9
C4aO-C4FF

15

caOO-CaFF

CAOO-CAFF

15

SHL

Rsd,b

ROT

Rsd,b

1
0

1 1 1 1 1
n

1

JMP

n

CALL

n

1
0

7
1

11111010111110101
Opcode

g'
0
1
1

NCHG 1

01

ba/bb

0

4
1

01

1

1 1 1 1
Rsd

1 1
b
1

NCHG
RI
EI

Rsd,b

0

4

7

SHR
1

1 1 1 1
Rsd

1 1
(a-b) 1

Rs, [lr+A]

0

4

7

MOVE
1

1 1 1 1
Rsd

1

7

11111010111011111
Opcode
15

CCOO-CCFF

b

11111010111011101
Opcode
15

CBOO-CBFF

1 1

11111010111010111
Opcode
15

1 1 1 1
Rs
4

6

11111010111010101
Opcode
15

C900-C9FF

1
Ir 1

1111101010111010111
Opcode

00
01
10
11

1 1 1 1 1

1

n
7

000
001
010
011
100
101
110
111

[Z]
[C)
[V]
[N]
[RA]
[RE]
[OAV]
[TFF]

1
0

I

III
1-203

m
~

~

co

6.0 Reference Section

DC

(Continued)

TABLE 6-3. Instruction Opcodes (Continued)

COOO-C060

KEY

Opcode

Hex
11

Instruction

I 11 0 I 0 11 I 1 10 I 1 I 01 I
Opcode

10101010101

Ir

15

[lr]

0

4

6

LJMP

mlr
IrIr
Ir+
+Ir

00
01
10
11
Ir

C080-C09F

15

CEOO
OOOO~FFFF

I

11111010111110111110101
Opcode

I I I
Rs

I

4

JMP

Rs

LJMP

nn

00
01
10
11

0

I

11 11 10 10 11 11 11 10 0 10 10 10 10 10 10 10
.
Opcode
15

I

9
00
01
10
11

0

II I I

I

I I I

I

I I I

nn

I

I I I

g'

0
1

CE80
OOOO-FFFF

11 11

I 0 10 11

11 11 10 11"10 10 10 10 10
Opcode

I 0 10 I

15

I
I

.1

I

I

I I I

I

I I I

nn

I

11111010111111111111
Opcode
g'

11

IOpcode
1 I 0 I 1-1

15

nn

I

NCHG
01
ba/bb

I I I
I
0

15

OOOO-OFFF

LCALL

0
1

0

15

CF80-CFFF

NCHG
RI
EI
01

I

_ 15

IW
IX
IY
IZ

6

S

11

I
10

I I
f

I

I

I I I
v

I I I

I

TRAP

v{,g'}

JMP
Jcc

f, S, n
n

0

5

I

I I I

n

7

I
0

1-204

000
001
010
011
100
101
110
111

[Z]
[C)
[V]
[N]
[RA]
[RE]
[DAV]
[TFF]

I

C

6.0 Reference Section

""C
co

(Continued)

W
0I:loo
0I:loo

TABLE 6-3. Instruction Opcodes (Continued)
Opcode

Hex
EOOO-E3FF

E400-E7FF

EBOO-EBFF

1111111010101
Opcode
15
9

1 1 1 1
Rd

15

1 1 1 1
Rs

1

1 1 1
Rd
1

0
1 1 1 1
Rs

4

1 1 1 1
Rd

1111111011101
Opcode

Instruction

4

1111111010111 1
Opcode
15
9

KEY

Rs, Rd

AOCA

RS,Rd

0

4

9

AOOA

mlr

SUBA

Rs, Rd

1

IrIr
Ir+
+Ir

00
01
10
11
Ir

1

1 1 1 1
Rs

1

I

OJ

00
01
10
11

IW
IX
IY
IZ

0

9
ECOO-EFFF

1 1 1 1
1111111011111 1 1 1 1
Opcode
Rd
Rs
1
1
15
9
0
4

FOOO-F3FF

1111111110101
Opcode
15

F400-F7FF

FCOO-FFFF

1 1 1 1
Rs

1 1 1
Rd
1

1 1 1 1
Rd

4

9

15

9

g'

[]EJ
ORA

RS,Rd

XORA

Rs, Rd

01

ba/bb

1
0

1 1 1 1
Rs

1 1 1 1
Rd
1

Rs, Rd

NCHG
RI
EI
01

1

1 1 1 1
1111111111101 1 1 1 1
Opcode
Rd
Rs
1
1
15
9
0
4
1111111111111
Opcode

ANOA
1

1 1 1 1
Rs

1

Rs, Rd

0

4

9

1111111110111
Opcode
15

FBOO-FBFF

1

SBCA

00
01
10
11

4

MOVE
1
0

Rs, Rd

000
001
010
011
100
101
110
111

[Z]
[C)
[V]
[N]
[RA]
[RE]
[OAV]
[TFF]

•
1-205

I

I

6.0 Reference Section

(Continued)

6.2 REGISTER SET REFERENCE
The register set reference contains detailed information on the bit definitions of all special function registers that are addressable in the CPU. This reference section presents the information in three forms: a bit index, a register description and bit
definition tables. The bit index is an alphabetical listing of all status/control bits in the CPU-addressable function registers, with a
brief summary of the function. The register description is a list of all CPU-addressable special function registers in alphabetical
order.' The 'bit definition tables describe the location and function of all control and status bits in the various CPU-addressable
special function registers. These tables are arranged by function.
6.2.1 Bit Index
An alphabetical listing of all status/control bits in the CPU-addressable special function registers, with a brief summary of
function. Detailed definitions are provided in Section 6.2.3, Bit Definition Tables.
Location

Bit

Name

i}.4IB.·· •. ·•. ·•.:·.·.• . . • ·.

FourT.Stat~ Bead •..•
poll/ ACKnowledge
Address Stack Pointer
Auxilliary Transceiver control
Advance Transmitter Active
Bi-directionallnterrupt Control
Bi-directionallnterrupt ReQuest
Carry
CPU Clock Select
Clock Out Disable
Data AVailable
Data Error or Message End
Data Stack
Data Stack Pointer
Data memory Wait-state select
Fill Bits
Global Interrupt Enable
Invalid Ending Sequence
Interrupt Mask select
Interrupt Vector
Instruction memory Wait-state select
Line Active
Loss of Mid Bit Transition
Lock Out Remote
internal LOOP-back
Line Turn Around
Negative
receiver OVerFlow
Odd Word Parity
PARity error
POLL
Protocol Select
Receiver Active
Received Auto-Response
Receiver DISabled while active
Receiver Error
Receive FIFO
Receive FIFO Full
Receiver INvert
Receiver Interrupt Select
Receive Line Quiesce
RePeat ENable
Remote Read
Receive/Transmit FIFO
Remote Write
Select Error Codes
Select Line Receiver
Transmitter Active
Transceiver Clock Select
Transmit FIFO

ASP3-0
AT7-0
ATA
BIC
BIRO
C
CCS
COD
DAV
DEME
DS7-0
DSP3-0
DW2-0
FB7-0
GIE
, IES
IM4-0
IV15-8
IW1,0

LA
LMBT
LOR
, LOOP
LTA

N
OVF
OWP
PAR'
POLL
PS2-0
RA
RAR
RDIS
RE
RF10-8
RFF
RIN
RIS1,0
RLO
RPEN
RR
RTF7-0
RW
SEC
SLR
TA
TCS1,0
TF10-8

· · ·. .• · · ••.. . ····i····· . •. •

1·206

. .AC8\
NCF
ISP
ATR
TCR
ACR
CCR
CCR
OCR
ACR
TSR
NCF
OS
ISP
OCR
FBR
ACR
ECR
ICR
IBR
OCR
NCF
ECR
ACR
TMR
NCF
CCR
ECR
TCR
ECR
NCF
TMR
TSR
NCF
ECR
TSR
TSR
NCF
TMR
ICR
TCR
TMR
CCR
RTR
CCR
TCR
TCR
TSR
OCR
TCR

(3)
[1]
[7-4]
[7-0]
[4]
[4]
[4]
[1]
[7]
[2]
[3]
[3]
[7-0]
[3-0]
[2-0]
[7-0]
[0]
[2]
[4-0]
[7-0]
[4,3]
[5]
[1]
[1]
[6]
[4]
[3]
[4]
[3]
[3]
[0]
[2-0]
[4]
[2]
[0]
[5]
[2-0]
[6]
[4]
[7,6]
[7]
[5]
[6]
[7-0]
[5]
[6]
[5]
[6]
[6,5]
[2-0]

Function

... I imirl999titr()!

..

.

,"oW,,"_

Receiver Status
Stacks
Receiver Control
Transmitter Control
Interrupt Control
Interrupt Control
Arithmetic Flag
Timing Control
Timing Control
Receiver Status
Receiver Status
Stacks
Stacks
Timing Control
Transmitter Control
Interrupt Control
Receiver Error Code
Interrupt Control
Interrupt Control
Timing Control
Receiver Status
Receiver Error Code
Remote Interface
Transceiver Control
Receiver Status
Arithmetic Flag
Receiver Error Code
Transmitter Control
Receiver Error Code
Receiver Status
Transceiver Control
Receiver Status
Receiver Status
Receiver Error Code
Receiver Status
Receiver Control
Receiver Status
Receiver Control
Interrupt Control
Receiver Control
Receiver Control
Remote Interface
Transceiver Control
Remote Interface
Receiver Control
Receiver Control
Transmitter Status
Transceiver Control
Transmitter Control

6.0 Reference Section

(Continued)

6.2.1 Bit Index (Continued)
An alphabetical listing of all status/control bits in the CPU·addressable special function registers, with a brief summary of
function. Detailed definitions are provided in Section 6.2.3, Bit Definition Tables.
Bit

Name

TFE
TFF
TIN
TLD
TM7-0
TM15-8
TMC
TO
TRES
TST

Transmit FIFO Empty
Transmit FIFO Full
Transmitter INvert
Timer LoaD
TiMer
TiMer
TiMer Clock select
Time Out flag
Transceiver RESet
Timer StarT
oVerflow
Zero

V
Z

Function

Location
NCF
TSR
TMR
ACR
TRL
TRH
ACR
CCR
TMR
ACR
CCR
CCR

6.2.2 Register Description

[7]
[7]
[3]
[6]
[7-0]
[7-0]
[5]
[7]
[7]
[7] .
[2]
[0]

Transmitter Status
Transmitter Status
Transmitter Control
Timer
Timer
Timer
Timer
Timer
Transceiver Control
Timer
Arithmetic Flag
Arithmetic Flag

ACR AUXILIARY CONTROL REGISTER
[Main R3; read/write]

A list of all CPU-addressable special function registers, in
alphabetical order.

7

6

5

4

I TST I TlD I TMC I BIC

The Remote Interface Configuration register (RICI, which is
addressable only by the remote system, is not included. See
Section 6.3, Remote Interface Reference for details of the
function of this register.

321
rsv

0

I COD I LOR I GIE

rsv ... state is undefined at all times.

TST

Each register is listed together with its address, the type of
access available, and a functional description of each bit.
Further details on each bit can be found in Section 6.2.3, Bit
Definition Tables.

- Timer StarT ... When high, the timer is enabled
and will count down from it's current value.
When low, timer is disabled. Timer is stopped by
writing a 0 to [TST].

TlD

- Timer LoaD ... When high, generates timer load
pulse. Cleared when load complete.

TMC

-

TIMer Clock select ... Selects timer clock frequency. Should not be written when [TST] is
high. Can be written at same time as [TST] and
[TlD).
TMC

Timer Clock

o

BIC

-

(CPU-ClK)/16
1
(CPU-ClK)/2
BI-directlonal Interrupt Control ... Controls direction of BIRQ.
BIC

BIRQ

o

1-207

Input
Output
Clock Out Disable ... When high, ClK-OUT output is at TRI-STATE.

COD

-

lOR

-

Lock Out Remote ... When high, a remote system is prevented from accessing the BCP.

GIE

-

Global Interrupt Enable ... When low, disables
all maskable interrupts. When high, works with
[lM4-0] to enable maskableinterrupts.

4TR

-

4 T-state Read .•• When high, RE'AI5 strobe timing is changed to allow more time between the
TRI-STATE of the AD lines by the BCP and the
falling of the RE:AD strobe. All data memory reads
take four T-states when this bit is set. See Section.2.2.2 for more information.

6.0 Reference Section

(Continued)
CCR CONDITION CODE REGISTER
[Main RO; bits 0-3, 5-7 read/write, bit 4 read only]
76543210

ATR AUXILIARY TRANSCEIVER REGISTER
[Alternate R2; read/write]
7

6

543

I AT7 I AT6 I AT5 I AT4 I AT3

o

2
AT2

AT1

I ATO I

TX-ACT Hold Time (p.s)
(if TCLK = 8 MHz)

00000
00001
00010
00011

0
0.5
1.0
1.5

!

!

11111

15.5

N

I

V

I

C

I

z

TO

- Time Out flag ... Set high when timer counts to
zero. Cleared by writing a 1 to this location or by
stopping timer (by writing a 0 to [TST».
RR
- Remote Read ... Set on the trailing edge of a
REM-RD pulse, if RAE is asserted and {RIC} is
pointing to Data Memory. Cleared by writing a 1
to this location.
RW
- Remote Write ... Set on the trailing edge of a
REM-WR pulse, if RAE is asserted and {RIC} is
pointing to Data Memory. Cleared by writing a 1
to this location.
BIRO - BI-directional Interrupt ReQuest ... [Read
only). Reflects the logic level of the Bi-directional
interrupt pin, BIRO. Updated at the beginning of
each instruction cycle.
N
- Negative .. . A high level indicates a negative
result generated by an arithmetic, logical or shift
instruction.

AT7 -0 - Auxiliary Transceiver ... In 5250 protocol
modes, bits 2-0 define the receive station address, and bits 7-3 control the amount of time
TX-ACT stays asserted after the last fill bit.
In 8-bit protocol modes, bits 7-0 define the receive station address.
For further information, see Section 3.0 Transceiver.
ATR 7-3

I TO I RR I RW I BIRO I

V
C

Z

1-208

-

oVerflow ... A high level indicates an overflow
condition generated by an arithmetic instruction.
- Carry ... A high level indicates a carry or borrow
generated by an arithmetic instruction. During a
shift/rotate operation the state of the last bit shifted out appears in this location.
- Zero ... A high level indicates a zero result generated by an arithmetic, logical or shift instruction.
Further information: Section 2.2.1 ALU, Section
2.2.3 Interrupts.

6.0 Reference Section

(Continued)

DCR DEVICE CONTROL REGISTER
[Alternate RO; read/write]

DS DATA STACK
[Main R31; read/write]

76543210

ICCS ! TCS1! TCSO !IW1
CCS

!IWO ! OW2! OW1 ! OWO

I

o

6

543

OCLK
OCLK/2

TCS1,O - Transceiver Clock Select ... Selects transceiver clock, TCLK, frequency.
OCLK represents the frequency of the on-chip
oscillator, or the externally applied clock on input X1. X-TCLK is the external transceiver
clock input.
TCS1,O
TCLK
00
OCLK
01
OCLK/2
10
OCLK/4
11
X-TCLK
IW1,O
- Instruction memory Walt-state select ...
Selects from 0 to 3 wait states for accessing
instruction memory.
OW2-0 - Data memory Walt-state select ... Selects
from 0 to 7 wait states for accessing data memory.

1-209

0

OS1

I OSO I

- Data Stack ... Data stack input/output port.
Stack is 16 bytes deep. Further information:
Section 2.1.1.8 Stack Registers.

rsv ... state is undefined at all times.

CPUCLK

2

I OS7 \ OS6 \ OS5 I OS4 ! OS3 ! OS2\
OS7-0

- CPU Clock Select . .. Selects CPU clock frequency. OCLK represents the frequency of the
on-chip oscillator, or the externally applied clock
on input X1.
CCS

7

6.0 Reference Section (Continued)
ECR ERROR CODE REGISTER
[Alternate R4 with [SEC] high; read only]
7

654

3

2

FBR FILL-BIT REGISTER
[Alternate R3; read/write]
1

0

7

6

543

2

o

I rsv I rsv Irsv I OVF I PAR liES ILMBT I RDIS I

I FB7 I FB6 I FB5 I FB4 I FB3 I FB2 I FB1 I FBO I

OVF

- Receiver oVerFlow ... Set when the receiver
has processed 3 words and another complete
frame is received before the FIFO is read by the
CPU. Cleared by reading (ECR) or by asserting
[TRES].

FB7 -0 - Fill Bits ... 5250 fill-bit control. Further information: Section 3.0 Transceiver.

PAR

- PARity error ... Set when bad (odd) overall
word parity is detected in any receive frame.
Cleared by reading (ECR) or by asserting
[TRES].

IES

- Invalid Ending Sequence ... Set when the
"mini-code violation" is not correct during a 3270,
3299, or 8-bit ending sequence. Cleared by reading (ECR) or by asserting [TRES].
LMBT - Loss of Mid-Bit Transition ... Set when the expected Manchester Code mid-bit transition does
not occur within the allowed window. Cleared by
reading (ECR) or by asserting [TRES].
RDIS - Receiver DISabled while active ... Set when
transmitter is activated while receiver is active,
without RPEN being asserted. Cleared by reading
(ECR) or by asserting [TRES]. Further information: Section 3.2 Transceiver Functional Description.

1-210

C

6.0 Reference Section

"'0
CD

(Continued)

(,)

IBR INTERRUPT BASE REGISTER
[Alternate R1; read/write]
7654321

0

IIV151IV14!IV13!IV12!IV11 !IV10! IV9

I IV8 I

011100
000100
001000
001100
010000
010100

543

2

m

1

0

I RISO I rsv I IM4 11M3 11M2 I IM1 I IMO I
RIS1,O Interrupt Source
00
01
10
11

15
8
5
o
The interrupt vector is obtained by concatenating IIBR J
with the vector address:
NMI
Receiver
Transmitter
Line Turn Around
Bi-directional
Timer

I RIS1

6

RIS1,O - Receiver Interrupt Select ... Defines the
source of the Receiver Interrupt.

I I I IBIR I I I 10
10 I. Ivector
I address
I I I
.

Vector Address

7

rsv •.. state is undefined at all times

IV15-8- Interrupt Vector ... High byte of interrupt and
trap vectors. Further information: Section 2.2.3,
Interrupts.
Interrupt Vector

Interrupt

0l:Io
0l:Io

ICR INTERRUPT CONTROL REGISTER
[Main R2; read/write]

RFF + RE
DAV + RE
(unused)
RA

" +" indicates logical "or"

Priority

Further information: Section 3.2.3 Transceiver Interrupts.

1 high
2 i
3
4 !
5 low

IM4-0 - Interrupt Masks ... Each bit, when set high,
masks an interrupt. 1M3 functions as an interrupt
mask only if BIRO is defined as an input. When
BIRO is defined as an output, 1M3 controls the
state of BIRO.
IM4-0

Interrupt

o0 0 0 0 No Mask
X X X X 1 Receiver
X X X 1 X Transmitter
X X 1 X X Line Turn-Around
X 1 X X X Bi-Directional
1 XXXX Timer
Further information: Section 2.2.3 Interrupts.

1-211

6.0 Reference Section

(Continued)

ISP INTERNAL STACK POINTER
[Main R30; read/write]
7654321

NCF NETWORK COMMAND FLAG REGISTER
[Main R1; read only]
0

76543

210

ITFE / RFF I LA I LTA I DEME I RAR lACK / POLL I

IASP3/ASP2/ASP1/ASPO/DSP3/DSP2/DSP1/DSpol
ASP3-0 - Address Stack Pointer ... Input/output port
of the address stack pointer. Further information: Section 2.1.1.8 Stack Registers.
DSP3-0- Data Stack Pointer ... Input/output port of the
data stack pointer. Further information: Section
2.1.1.8 Stack Registers.

TFE
RFF

LA

1-212

- Transmit FIFO Empty ... Set high when the
FIFO is empty. Cleared by writing to {RTR I.
- Receive FIFO Full ... Set high when the Receive FIFO contains 3 received words.
Cleared by reading to {RTR I.
- Line Active ... Indicates activity on the receiver input. Set high on any transition;
cleared after detecting no input transitions for
16 TCLK periods.

LTA

-

Line Turn Around ... Set high when end of
message is received. Cleared by writing to
{RTR l. writing a "1" to this location, or by
asserting [TRES].

DEME

-

Data Error or Message End ... In 3270 &
3299 modes, asserted when abyte parity error is detected. In 5250 modes, asserted when
the [111] station address is decoded and
[DAV] is asserted. Cleared by reading {RTR I.
Undefined in 8-bit modes and in the first frame
of 3299 modes.

RAR

-

ACK

-

POLL

-

Received Auto-Response ... Set high when
a 3270 Auto-Response message is decoded
and [DAV] is asserted. Cleared by reading
{RTR I. Undefined in 5250 and 8-bit modes
and in the first frame of 3299 modes.
Poill ACKnowledge ... Set high when a 3270
poll/ack command is decoded and [DAV] is
asserted. Cleared by reading {RTR I. Undefined in 5250 and 8-bit modes and in the first
frame of 3299 modes.
POLL ... Set high when a 3270 poll command
is decoded and [DAV] is asserted. Cleared by
reading {RTR I. Undefined in 5250 and 8-bit
modes and in the first frame of 3299 modes.
Further information: Section 3.0 Transceiver.

6.0 Reference Section

(Continued)

RTR RECEIVE/TRANSMIT REGISTER
[Alternate R4; read/write]
7

S

5

4

3

2

TCR TRANSCEIVER COMMAND REGISTER
[Alternate RS; read/write]
7

10

S

543210

IRTF7' RTFS\ RTF5\ RTF4' RTF3\ RTF2\ RTF1 \ RTFO \

I RLQ \ SEC \ SLR \ ATA \ OWP \ TF10 , TF9\

RTF7-0 -

RLQ

Receive Transmit FIFO's ... Input/output
port to the least significant eight bits of receive
and transmit FIFO's. [OWP], [TF10-8] and
[RTF7-0] are pushed onto the transmit FIFO
on moves into (RTRI. [RF10-8] and [RTF70] are popped from receiver FIFO on moves
out of (RTR I. Further information: Section 3.0
Transceiver.

- Receive Line Qulesce ... Selects number of
line quiesce bits the receiver looks for.
RLQ

SEC
SLR

TF8\

Number of
Qulesces

o

2

1

3

- Select Error Codes ... When high (ECRI is
switched into (RTR I location.
- Select Line Receiver ... Selects the receiver
input source.
SLR

Source

o

ATA

OWP

DATA-IN
On-chip analog
line receiver
- Advance Transmitter Active ... When high,
TX-ACT is advanced one half bit time so that
the transmitter can generate 5.5 line quiesce
pulses.
- Odd Word Parity .,. Controls transmitter
word parity.
OWP

o
TF10-8

1-213

Word Parity
Even
Odd

- Transmit FIFO ... [OWPl, [TF10-8] and
[RTF7 -0] are pushed onto transmit FIFO on
moves into (RTR I.
Further information: Section 3.0 Transceiver.

6.0 Reference Section (Continued)
TMR TRANSCEIVER MODE REGISTER
[Alternate R7; read/write]
7

6

543210

I TRES 1 LOOP 1 RPEN 1 RIN
TRES

LOOP

RPEN

RIN
TIN
PS2-0

TRH TIMER REGISTER - HIGH
[Main R29; read/write]
76543210

I· TIN 1 PS2 1 PS1 1 PSO I

ITM151TM141TM131TM121TM111TM10lTM91TMSI
TM15-S- TiMer ... Input/output port of high byte of timer.
Further information: Section 2.1.1.4 Timer Reg.
isters.

- Transceiver RESet .... Resets transceiver
when high. Transceiver can also be reset by
RESET, without affecting [TRES].
- Internal LOOP-back ... When high, TX-ACT
is disabled (held at 0) and transmitter serial
data is internally directed to the receiver serial
data input.
- RePeat ENable ... When high, the receiver
can be active at the same time as the transmitter.
- Receiver INvert ... When high, the receiver
serial data is inverted.
- Transmitter INvert ... When high the transmitter serial data outputs are inverted.
- Protocol Select ... Selects protocol for both
transmitter and receiver.
PS2-0 Protocol
000 3270
001 3299 multiplexer
010 3299 controller
01 1 3299 repeater
100 5250
1 01
5250 promiscuous
110 S-bit
1 1 1 S-bit promiscuous
Further information: Section 3.0 Transceiver.

1-214

6.0 Reference Section

(Continued)

TRL TIMER REGISTER-LOW
[Main R2S; read/write]
7

I TM71

6

5

4

3

TSR TRANSCEIVER STATUS REGISTER.
[Alternate R5; read only]
2

1

76543

0

TM61 TM5\ TM4\ TM3\ TM2\ TM1 \ TMO

I

TM7-0- TIMer ... Input/output port of low byte of timer.
Further information: Section 2.1.1.4 Timer Registers.

I TFF

2

\ TA \ RE \ RA \ DAV \ RF10 \ RF9

0
RFS

TFF

- Transmit FIFO Fu" ... Set high when the transmit FIFO is full. I RTR 1 must not be written to
when [TFF] is high.
.

TA

- Transmitter Active ... Reflects the state of. TXACT, indicating that data is being transmitted.
Unlike TX-ACT, however, [TA] is not disabled by
[LOOP].
- Receiver Error ... Set high when a receiver error is detected. Cleared by reading I ECR 1 or by
asserting [TRES).

RE

RA

- Receiver Active ... Set high when a valid starting sequence is received. Cleared wh~m either
an end of message or an error is detected. In
5250 modes; [RA] is cleared at the same time
as [LA].
DAV
- Data AVailable ... Set high when valid data is
available in IRTR 1and I TSR I. Cleared by reading I RTR I, or when an error is detected.
RF10-S- Receive FIFO.; ; [RF10-S] and [Frr:F7-0] reflect the state of the top word of the. receive
FIFO.
Further information: Section 3.0 Transceiver.
I

1-215

6.0 Reference Section

(Continued)

6.2.3 Bit Definition Tables
The following tables describe the location and function of all control and status bits in the various BCP addressable special
function registers. The Remote Interface Configuration register, (RIC I, which is addressable only by a remote processor is not
included.
6.2.3.1 Processor
Bit
Timing/
Control

CCS

Name
CPU Clock Select

Location
OCR [7]

Function

Reset State
1

Selects CPU clock frequency.
CCS
0
1

CPUCLK
OClK
OClK/2

Where OClK is the frequency of the on-chip oscillator, or
the externally applied clock on input X1.
DW2-0

Data memory
Wait-state select

OCR [2-0]

111

Selects from 0 to 7 wait states for accessing data memory.

IW1,O

Instruction memory
Wait-state select

OCR [4,3]

11

Selects from 0 to 3 wait states for acceSSing instruction
memory.

Clock Out Disable

ACR [2]

0

When high, ClK·OUT is at TRI·STATE.

'4T';'sfiittfFlead'"

'ACR[3]

()

When high; data memoryreaastakefolJrT~states;

lORt

Lock Out Remote

ACR [1]

0

When high, a remote processor is prevented from accessing
the BCP or its memory.

RRt

Remote Read

CCR [6]

0

Set on the trailing edge of a REM·RD pulse, if RAE is
asserted and (RIC I is pointing to Data Memory. Cleared by
writing a 1 to [RR].

RW·

Remote Write

CCR [5]

0

Set on the trailing edge of a REM-WR pulse, if RAE is
asserted and (RIC I is pointing to Data Memory. Cleared by
writing a 1 to [RW).

BIC

Bi·directional
Interrupt Control

ACR [4]

0

Controls the direction of BIRO.

COD
.··.~IB<

Remote
Interface

Interrupt
Control

BIC

BIRQ

0
1

Input
Output

BIRO

Bi·directional
Interrupt ReQuest

CCR [4]

X

[Read Only]. Reflects the logic level of the BIRO input.
Updated at the beginning of each instruction cycle.

GIE

Global Interrupt
Enable

ACR [0]

0

When low, disables all maskable interrupts. When high,
works with [lM4-0] to enable maskable interrupts.

IM4-0

Interrupt Mask
select

ICR [4-0]

11111

Each bit, when set high, masks an interrupt.
IM4-0

Interrupt

00000

No Mask
Receiver
Transmitter
Line Turn-Around
Bi·Directional
Timer

XXXX1
XXX1X
XX1XX
X1XXX
1XXXX

Priority

1
2
3
4
5

High

t
.J,
low

1M3 functions as an interrupt mask only when BIRO is
defined as an input. When BIRO is defined as an output,IM3
controls the state of BIRO.
·These bits represent the only visibility and control that the processor has Into the operation of the remote interface controller. The Remote Interface Configuration
register, (RICI, accessible only by a remote processor, provides further control functions. See Remote Interface section for more Information.

1-216

6.0 Reference Section

(Continued)

6.2.3 Bit Definition Tables (Continued)
The following tables describe the location and function of all control and status bits in the various SCP addressable special
function registers. The Remote Interface Configuration register, (RIC l. which is addressable only by a remote processor is not
included.
6.2.3.1 Processor (Continued)
Bit
Interrupt
IV15-8
Control
(Continued)

Name
Interrupt Vector

Location

Reset State

Function

ISR [7-0]

00000000

High byte of interrupt and trap vectors.
The interrupt vector is obtained by concatenating (ISR) with
the vector address:
Interrupt

Vector Address

NMI
Receiver
Transmitter
Line Turn Around
Bi-Directional
Timer

011100
000100
001000
00'1100
010000
010100

Interrupt Vector

I

I

I

I

I

I

j

10 "0

15
RIS1,O

Receiver Interrupt ICR [7,6]
Select

11

8

ASP3-0

Address Stack
Pointer

DSP3-0 Data Stack
Pointer

Arithmetic
Flags

I

I

I

I

I

I

vector address
5

0

Defines the source of the receiver interrupt.
RIS1,O Interrupt Source
00
01
10
11

Address
and
Data
Stacks

I

ISR

RFF + RE
DAV + RE
(unused)
RA

ISP [7-4]

0000

Address stack pointer. Writing to this location changes the
value of the pointer.

ISP [3-0]

0000

Data stack pointer. Writing to this location changes the value
of the pointer.

XXXXXXXX Data Stack Input/Output port. Stack is 16 bytes deep.

DS7-0

Data Stack

OS [7-0]

C

Carry

CCR [1]

0

A high level indicates a carry or borrow, generated by an
arithmetic instruction. During a shift/rotate operation the
state of the last bit shifted out appears in this location.

N

Negative

CCR [3]

0

A high level indicates a negative result generated by an
arithmetic, logical, or shift instruction.

V

oVerflow

CCR [2]

'0

Z

Zero

CCR [0]

0

1-217

A high level indicates an overflow condition, generated by an
arithmetic instruction.
A high level indicates a zero result generated by an
arithmetic, logical, or shift instruction.

I

6.0 Reference Section

(Continued)

6.2.3. Bit Definition Tables (Continued)
The following tables describe the location and function of all control and status bits in the various BCP addressable special
function registers. The Remote Interface Configuration register, I RIC l. which is addressable only by a remote processor is not
included.
6.2.3.1 Processor (Continued)
Bit
Timer

Name

TLD

Timer LoaD

Location
ACR [6]

Function

Reset State

Set high to load timer. Cleared automatically when load
complete.

0

TM15-8

TiMer

TRH [7-0]

XXXXXXXX

TM7-0

TiMer

TRL [7-0]

XXXXXXXX

TMC

Timer Clock
select

ACR [5]

0

Input/output port of high byte of timer.
Input/output port of low byte of timer.
Selects timer clock frequency. Must not be written when
[TST] high. Can be written at same time as [TST] and
[TLD].
TMC Timer Clock
0
1

CPU-CLK/16
CPU-CLK/2

TO

Time Out flag

CCR [7]

0

Set high when timer counts down to zero. Cleared by writing
a 1 to [TO] or by stopping the timer (by writing a 0 to [TST]).

TST

Timer StarT

ACR[7]

0

When high, timer is enabled and will count down from its
current value. Timer is stopped by writing a 0 to this location.

6.2.3.2 Transceiver
Table includes control and status bits only. It does not include definitions of bit fields provided for the formatting (de-formatting)
of data frames. For further information see the Transceiver section.
Bit

Name

Transceiver LOOP
Control

internal
LOOP-back

TMR [6]

Protocol Select

TMR [2-0]

PS2-0

Location

RTF7-0 Receive/Transmit RTR [7-0]
FIFOs

Reset State
0

Function
When high, TX-ACT is disabled (held at 0) and transmitter
serial data is internally directed to the receiver serial data
input.

000

Selects protocol for both transmitter and receiver.
PS2-0

Protocol

000
001
010
011
100
1 01
110
111

3270
3299 Multiplexer
3299 Controller
3299 Repeater
5250
5250 Promiscuous
8-bit
8-bit Promiscuous

XXXXXXXX Input/output port of the least significant 8 bits of receive and
transmit FIFOs. [OWP], [TF10-8] and [RTF7-0] are pushed
onto the transmit FIFO on moves to I RTR}. [RF10-8] and
[RTF7 -0] are popped from receive FIFO on moves from
IRTR}.

1-218

6.0 Reference Section

(Continued)

6.2.3 Bit Definition Tables (Continued)
6.2.3.2 Transceiver (Continued)
Table includes control and status bits only. It does not include definitions of bit fields provided for the formatting (de-formatting)
data frames. For further information see the Transceiver section.
Bit

Name

Transceiver TCS1,O Transceiver Clock
Select
Control

Location Reset State
OCR [6,5]

10

Function
Selects transceiver clock, TCLK, source.
TCS1,O

(Continued)

TRES
Transmitter ATA
Control
AT7-3

TMR [7]

0

Resets transceiver when high. Transceiver can also be reset
by RESET, without affecting [TRES).

Advance Transmitter TCR [4]
Active

0

When high, TX-ACT is advanced one half bit time so that the
transmitter can generate 5.5 line quiesce pulses.

Transceiver RESet

Auxiliary
Transceiver control

ATR [7-3]

XXXXX

In 5250 modes. Controls the time TX-ACT is held after the last
fill bit.
AT7-3

TX-ACT Hold Time (fA-s)
(If TCLK = 8 MHz)

00000
00001
00010

0
0.5
1

!

!

11111

15.5

FB7-0

Fill Bit select

FBR [7-0] XXXXXXXX The value in this register contains the 1's complement of the
number of additional 5250 fill bits selected.

OWP

Odd Word Parity

TCR [3]

0

Controls transmitter word parity.
OWP
0
1

Receiver
Control

TCLK

00
OCLK
01
OCLK/2
10
OCLK/4
X-TCLK
11
OCLK is the frequency of the on-chip oscillator, or the
externally applied clock on input X1. X-TCLK is the external
transceiver clock input.

Word Parity
Even
Odd

TF10-B Transmit FIFO

TCR [2-0]

TIN

Transmitter INvert

TMR[3]

AT7-0

Auxiliary
Transceiver control

ATR [7-0] XXXXXXXX In 5250 modes, [AT2-0] contains the station address. In B-bit
modes, [AT7 -0] contains the station address.

RF10-B Receive FIFO

TSR [2-0]

000
0

XXX

[OWP], [TF10-B] and [RTF7 -0] are pushed onto the
transmit FIFO on moves to (RTR J.
When high, the transmitter serial data outputs are inverted.

Reflects the state of the most significant 3 bits in the top
location of the receive FIFO.

RIN

Receiver INvert

TMR[4]

0

When high, the receiver serial data is inverted.

RLQ

Receive Line
Quiesce

TCR [7]

1

Selects number of line quiesce bits the receiver requires
before it will indicate receipt of a valid start sequence.
RLQ Number of Line Qulesce Pulses
0
1

2
3

RPEN

RePeat ENable

TMR [5]

0

When high, the receiver can be active at the same time as the
transmitter.

SEC

Select Error Codes

TCR [6]

0

When high, (ECR J is switched into (RTR J location.

1-219

6.0 Reference Section

(Continued)

6.2.3 Bit Definition Tables (Continued)
6.2.3.2 Transceiver (Continued)
Table includes control and status bits only. It does not include definitions of bit fields provided for the formatting (de-formatting)
data frames. For further information see the Transceiver section.
Bit
Receiver
Control

SLR

Name
Select Line
Receiver

Location Reset State
TCR [5]

0

(Continued)

Transmitter
Status

Receiver
Status

Function
Selects the receiver input source.
SLR

Source

0
1

DATA-IN
On-Chip Analog
Line Receiver

TA

Transmitter Active TSR [6]

0

Reflects the state of TX-ACT, indicating that data is being
transmitted. Is not disabled by [LOOP].

TFE

Transmit FIFO
Empty

NCF[7]

1

Set high when the FIFO is empty. Cleared by writing to
IRTR).

TFF

Transmit FIFO
Full

TSR [7]

0

Set high when the FIFO is full. IRTRI must not be written
when [TFF] is high.

polll

NCF [1]

0

Set high when a 3270 poll lack command is decoded and
[DAV] is asserted. Cleared by reading I RTR I. Undefined in
5250 and a-bit modes and in the first frame of 3299 modes.

ACK

ACKnowledge
DAV

Data AVailable

TSR [3]

0

Set high when valid data is available in I RTR I and I TSR I.
Cleared by reading I RTR I , or when an error is detected.

DEME

Data Error or
Message End

NCF [3]

0

In 3270 or 3299 modes, asserted when a byte parity error is
detected. In 5250 modes, asserted when the [111] station
address is decoded and [DAV] is asserted. Undefined in a-bit
modes and first frame of 3299 modes.

LA

Line Active

NCF[5]

0

Indicates activity on the receiver input. Set high on any
transition; cleared after no input transitions are detected for
16 TCLK periods.

LTA

Line Turn Around

NCF[4]

0

Set high when an end of message is detected. Cleared by
writing to I RTR I. writing a "1" to [LT A] or by asserting
[TRES].

POLL

POLL

NCF[O]

0

Set high when a 3270 Poll command is decoded and [DAV] is
asserted. Cleared by reading I RTR I. Undefined in 5250 and
a-bit modes and in the first frame of 3299 modes.

RA

Receiver Active

TSR [4]

0

Set high when a valid start sequence is received. Cleared
when either an end of message or an error is detected.

RAR

Received
Auto-Response

NCF[2]

0

Set high when a 3270 Auto-Response message is decoded
and [DAV] is asserted. Cleared by reading I RTR I. Undefined
in 5250 and a-bit modes and in the first frame of 3299 modes.

RE

Receiver Error

TSR [5]

0

Set high when an error is detected. Cleared by reading I ECR I
or by asserting [TRES].

RFF

Receive FIFO·
Full

NCF [6]

0

Set high when the receive FIFO contains 3 received words.
Cleared by reading I RTR I.

1-220

6.0 Reference Section (Continued)
6.2.3 Bit Definition Tables (Continued)
6.2.3.2 Transceiver (Continued)
Table includes control and status bits only. It does not include definitions of bit fields provided for the formatting (de-formatting)
data frames. For further information see the Transceiver section.
Bit

Name

Location Reset State

Function

Invalid Ending
Sequence

ECR [2]

o

Set when the first mini-code violation is not correct during a
3270, 3299 or a-bit ending sequence. Cleared by reading
(ECR I or asserting [TRES].

LMBT

Loss of Mid-Bit
Transition

ECR [1]

o

Set when the expected Manchester Code mid-bit transition
does not occur within the allowed window. Cleared by reading
(ECRI or by asserting [TRES].

OVF

receiver OVerFlow ECR [4]

o

Set when the receiver has processed 3 words and another
complete frame is received before the FIFO is read by the
CPU. Cleared by reading (ECR I or asserting [TRES].

PAR

PARity error

ECR [3]

o

Set when bad (odd) overall word parity is detected in any
receive frame. Cleared by reading (ECR I or asserting
[TRES].

RDIS

Receiver DISabled ECR [0]
while active

o

Set when transmitter is activated by writing to (RTR I while
receiver is still active, without [RPEN] first being asserted.
Cleared by reading (ECR I or asserting [TRES].

Receiver
IES
Error Codes

6_3 REMOTE INTERFACE CONFIGURATION REGISTER

low (BCP stopped). When set, the BCP begins executing at the current Program Counter address.
When cleared, the BCP finishes executing the current instruction, then halts to an idle mode.

This register can be accessed only by the remote system.
To do this, CMD and RAE must be asserted and the [LOR]
bit in the (ACRI register must be low.

In some applications, where there is no remote
system, or the remote system is not an intelligent
device, it may be desirable to have the BCP powerup/reset running rather than stopped at address
OOOOH. This can be accomplished by asserting
REM-RD, REM-WR and RESET, with RAE de-asserted. (Refer to Electrical Specification Section
for the timing information needed to start the BCP
in stand alone mode.)

76543210

IBIS I SS I FW I LR I LW I STRT I MS1 I MSO I RIC
BIS

SS

FW

Bidirectional Interrupt Status ... Mirrors the state
of 1M3 (( ICR I bit 3), enabling the remote system to
poll and determine the status of the BIRQ I/O.
When BIRO is an output, the remote system can
change the state of this output by writing a one to
BIS. This can be used as an interrupt acknowledge, whenever BIRO is used as a remote interrupt. For complete information on the relationship
between BIS, 1M3 and BIRQ, refer to Section 2.2.3
Interrupts.

MS1,O

Single-Step ... Writing a 1 with STRT low, the BCP
will single-step by executing the current instruction
and advancing the PC. On power up/reset this bit
is low.
Fast Write ... When high, with LW low, selects fast
write mode for the buffered interface. When low
selects slow write mode. On power up/reset this
bit is low (LW will also be low, so buffered write
mode is selected).

LR

Latched Read ... When high selects latched read
mode, when low selects buffered read mode. On
power up/reset this bit is low. (Buffered read mode
is selected.)

LW

Latched Write ... When high selects latched write
mode, when low selects buffered write mode. On
power up/reset this bit is low (FW will also be low,
so slow buffered write mode is selected).

STRT

STaRT ... The remote system can start and stop
the BCP using this bit. On power-up/reset this bit is

Memory Select 1,0 ... These two bits determine
what the remote system is accessing in the BCP
system, according to the following table:
MS1

MSO

Selected Function

a
a

a

1
1

a

Data Memory
Instruction Memory
Program Counter (Low Byte)
Program Counter (High Byte)

1
1

The BCP must be idle for the remote system to
read/write Instruction memory or the Program
Counter.
All remote accesses are treated the same (independent of where the access is directed using MSO
and MS1), as defined by the configuration bits LW,
LR, FW.

•

I

If the remote system and the BCP request data
memory access simultaneously, the BCP will win
first access. If the locks ([LOR], meR) are not set,
the remote system and BCP will alternate access
cycles thereafter.
On power-up/reset, MS1,O points to instruction
memory.
Power-up/Reset state of (RIC[7-0] I is 1000 0001.
1-221

6.0 Reference Section

(Continued)

6.4 DEVELOPMENT TOOLS
National Semiconductor provides tools specifically created
for the development of products that use the DP8344.
These tools consist of the DP8344 BCP Assembler System,
the DP8344 BCP Demonstration/Development Kit, and the
DP8344 BCP Multi-Protocol Adapter (MPA) Design/Evaluation Kit.

many of these products, we do not provide techni.cal support, or in any way guarantee the functionality of these products.
6.5.1 Crystal Supplier
The recommended crystal parameters for operation with the
DP8344 are given in Section 2.2.4. Any crystal meeting
these specifications will work correctly with the DP8344.
NEL Frequency Controls, Inc., Burlington, Wisconsin, has
developed crystals, the NEL C2570N and NEL C2571 N,
specifically for the DP8344 which meet these specifications.
The C2570N and C2571 N are both 18.8696 MHz fundamental mode AT cut quartz crystals. The C2571N has a
hold down pin for case ground and a third mechanical tie
down. NEL Frequency Controls, Inc. is located at:

6.4.1 Assembler System
The Assembler System· is an MS-DOS compatible program
used to translate the DP8344's instruction set into a directly
executable machine language. The system contains a macro cross assembler,. link editor and librarian. The macro
cross assembler provides nested macro definitions and expansions, to automate common instruction sequences,· and
source file inclusion nested conditional assembly, which allows the assembler to make intelligent decisions concerning
instruction sequence based on user directives. The linker
allows relocatable object sections to be combined in any
desired order. It can also generate a load map which details
each section's contribution to the linked module. The librarian allows for the creation of libraries from frequently accessed object modules, which the linker can automatically
include to resolve references.

NEL Frequency Controls, Inc.
357 Beloit Street
Burlington, Wisconsin 53105
(414) 763-3591
6.5.2 System Development Tools
The DP8344, with its higher level of integration and processing power, has opened the IBM mainframe connectivity market to a wider range of product manufacturers, who until
now found the initial cost and time to market prohibitive.
This wider base of manufacturers created the opportunity
fora more extensive line of development tools that dealt not
only with the use of the DP8344 but also with the implementation of the 3270 and 5250 protocols: While National Semiconductor is dedicated to providing the Customer with the
proper tools in both areas, we also have aided and encouraged a number of third party suppliers to offer additional
development tools. This has further provided an avenue for
faster and more reliable product development in this product area. The development tools discussed in this section
are controller emulators and line monitors for the IBM 3270/
3299 and 5250 protocols.

6.4.2 Demonstration/Development Kit
The Demonstration/Development kit is a cost effective development tool that performs functions similar to an in-circuit emulator. The kit, developed by Capstone Technology,
Inc., Fremont, California, consists of a DP8344 based development board, a monitor/debugger software package, National Semiconductor's DP8344 video training tapes, and all
required documentation. The development board is a full
size PC card that contains a 22 square inch area for logic
prototype wiring. The monitor/debugger program displays
internal register contents and status information. It also provides functions such as execution break points and single
stepping.

A controller emulator is a device that emulates an IBM 3x74
cluster controller or a System 3x controller. With the
DP8344 both of these controllers can be emulated with the
same piece of hardware. The controller emulator allows the
designer to issue individual commands or sequences of
commands to a peripheral. This is very useful in characterizing existing equipment and testing of products under development. Capstone Technology offers such a product. Their
Extended Interactive Controller, part #CT-109, is a single
PC expansion card that can emulate both 3270 and 5250
control devices (the 3x74 and System 3X, respectively).
Newleaf Technologies, Ltd., Cobham, Surrey, England, and
Azure Technology, Inc., Franklin, Mass., also supply products in this area. Newleaf Technology offers the COLT52, a
twinax controller emulator, and Azure Technology offers a
controller made with their CoaxScope· and TwinaxScope
line monitors.
A line monitor is a device that monitors all the activity on the
coax or twinax cable. The activity includes both the commands from the controller and the responses from the peripheral. These devices typically decode the commands and
present them in an easy to read format. The individual transmissions are time stamped to provide the designer with responsetime information. The line monitors are very useful in
characterizing communications traffic and in determining
the source of problems during development or in the field.
Azure Technology offers both a 3270/3299 (Coax) and
5250 (Twinax) line monitor. Their Coax Scope and Twinax

6.4.3 Multi-Protocol Adapter (MPA)
Design/Evaluation Kit
The Multi-Protocol Adapter (MPA) is a PC expansion card
that emulates a 3270 or 5250 display terminal and supports
industry standard PC emulation software. The MPA comes
in a design/evaluation kit that includes the hardware, schematics and PAL equations, and software. including all the
DP8344 source code. This kit was produced to provide a
blueprint for PC emulation products and a cornerstone for
all 3270 and 5250 product development using the DP8344.
The code was developed in a modular fashion so it can be
adapted to any 3270 or 5250 application.
6.4.4 DP8344 BCP Inverse Assembler
The DP8344 BCP Inverse Assembler is a software package
for use in an HP 1650A or HP1651A Logic Analyzer, or in an
HP16500A Logic Analysis System with an HP 16510A
State/Timing Card installed. The inverse Assembler was developed by National Semiconductor to allow disassembly of
the DP8344 op-code mnemonics. This allows one to determine the actual execution flow that occurs in the system
being developed with the DP8344.
6.5 THIRD PARTY SUPPLIERS
The following section is intended to make. the DP8344 Customer aware of products, supplied by companies other than
National Semiconductor, that are available for use in developing DP8344 systems. While National Semiconductor has
supported these ventures and has become familiar with
1-222

6.0 Reference Section

(Continued)
The DP8344A exhibits a small amount of contention between certain bus signals as detailed in the Device Specifications section of this data sheet. The DP8344B interface
timing improvements are designed to reduce and/or eliminate this bus contention.

Scope are single PC expansion cards that can record, decode and display activity on the 3270 coax and 5250 twinax
line respectively. These devices also allow the play back of
the recorded controller information. Capstone Technology
also supplies a line monitor. The CT1 01 C, Network Analysis
Monitor (NAM), is a coax line monitor.

- 70 ns Data Memory
At a 20 MHz CPU clock rate, the DP8344B can support 70
ns static RAM for data memory with no wait states. The
DP8344A was limited to 55 ns static RAM for data memory with no wait states. (See Section 5.0 Device Specifications.)

These companies can be contacted at the following locations:
Azure Technology, Inc.
38 Pond Street
Franklin, Massachusettes 02038
(508) 520-3800

• READ
The timing of the READ strobe has been improved to reduce bus contention during a data memory access. There
is now more time between AD disabled and READ falling
as well as one~half T-state between READ rising and AD
enabled. In addition, a new 4 T-state read option has been
provided to eliminate bus contention. (See Section 5.0 Device Specifications for timing changes, and 4 T-state
Read later in this document for more information on the 4
T-state Read option.)

Capstone Technology
853 Brown Rd., Suite 207
Fremont, California 94539
(415) 438-3500
New Leaf Technology, Ltd.
24A High Street
Cobham
Surrey
KT113EB
ENGLAND
(0932) 66466

The user can therefore choose between a fast read mode
(3 T-states) with a small amount of contention and a slower read mode (4 T-states) with no contention.

For technical assistance in using the DP8344B, contact the
BCP Hot Line (817) 468-6676.

• AI AD Bus Timing
The timing of the A and AD buses has been changed to
eliminate bus contention during remote accesses of data
memory. There is now a one-half T-state TRI-STATE zone
during the bus transfer from local to remote control and
vice versa. (See Section 5.0 Device Specifications.)

TABLE 6-4. DP8344 Application Notes
App
Note No.
AN-623
AN-624

AN-516
AN-504
AN-499
AN-625
AN-627
AN-626
AN-641
AN-688

Title
Interfacing Memory to the DP8344B
A Combined Coax-Twisted Pair 3270 Line
Interface for the DP8344 Biphase
Communications Processor
Interfacing the DP8344 to Twinax
DP8344 BCP Stand-Alone Soft-Load
System
"Interrupts"-A Powerful Tool of the Biphase
Communications Processor
JRMK Speeds Command Decoding
DP8344 Remote Processor Interfacing
DP8344 Timer Application
MPA - A Multi-Protocol Terminal Emulation
Adapter Using the DP8344
The DP8344 BCP Inverse Assembler

-IWR
The timing of IWR has been changed such that IWR now
falls one T-state earlier. This eliminates bus contention
during the start of soft loads. (See Section 5.0 Device
Specifications.)
• IA Bus Softload Timing
The auto-increment of the IA bus address during soft
loads of instruction memory now occurs one T-state later
to maintain in-phase data and thereby eliminate bus contention. (See Seection 5.0 Device Specifications.)
• LCL
LCL is now removed when REM-RD is taken high on buffered reads of (RIC}, the program counter, and instruction
memory, to eliminate bus contention in this mode. (See
Section 5.0 Device Specifications.)

6.6 DP8344A AND DP8344B COMPATIBILITY GUIDE

- RIC
The hold time on slow buffered writes to (RIC} and the
program counter has been improved. (See Section 5.0 Device Specifications.)

The DP8344B is an enhanced version of the DP8344A, exhibiting improved switching performance and additional
functionality. The device has been characterized in a number of applications and found to be a compatible replacement for the DP8344A. Differences between the DP8344A
and DP8344B are dstailed in this section.

- "Kick-start"
The h.old time on REM-WR and REM-RD to RESET to
"kick-start" the CPU has been improved. (See Section 5.0
Device Specifications.)

6.6.1 Timing Changes to the CPU
Relative to the DP8344A, the DP8344B incorporates a number of timing changes designed to improve the system interface. These timing changes are improvements in the timing
specifications and therefore should allow the DP8344B to
drop into existing DP8344A designs without any hardware
modifications.

6.6.2 Additional Functionality of the DP8344B
6.6.2.1 4 T-state Read
To eliminate bus contention during memory accesses, a
new optional read mode has been created, controlled by

1-223

I

III
I

6.0 Reference Section

(Continued)
This can be accomplished by creating a section of "filler"
code that will occupy the instruction address range AFOOh
to AF7Fh. As an example, the "filler" section of code could
be as follows:

[4TR] in (ACR}. When a one is written to this bit, all subsequent data memory read operations expand to 4 T-states
with an extra one-half T-state between the falling edge of
ALE and the falling edge of READ. This eliminates bus contention on data memory read operations. After a BCP reset,
or when a zero is written to this bit, the DP8344B data memory read operations operate in 3 T-states, as in the
DP8344A, in which this bit was unused. (See Section 2.2.2
for more information.)

FILLER: • SECT x
: Start of ··filler" code section
.REPEAT 128 ; Repeat the following
instruction 128 times
JMP $
; Jump to self
.ENDR
; End of repeat block
.END

6.6.2.2 AI AD Reset State

The JMP $ instruction causes an infinite loop at that instruction. Thus one would be able to determine if the program
inadvertently entered the "filler" section of code. The repeat 128 instruction causes the section to occupy 128 bytes
of instruction memory which is the size of the affected address range.
Next, by using the Linker in the DP8344 BCP Assembler
System, one can specify that this "filler" section of code
must occupy instruction memory starting at address AFOOh
by using the -L option. For example, the following commands can be entered at the DOS command line to invoke
the Assembler and Linker (this assumes that the "filler"
section is located in the file FILLER.BCP):

After a BCP reset, the index registers and the A and AD
buses will be zero. In the DP8344A, their states were undefined after a reset.
6.6.2.3 RIC
Each time instruction memory is selected via (RIC[1,01l
(Le., (RIC} is set to XXXX XX01 binary), the next read (or
write) of instruction memory by a remote processor will always return (or update) the low order 8 bits of the 16 bit
instruction location pointed to by the program counter. In
the DP8344A, setting (RIC I had no affect on which instruction memory byte would next be fetched and an algorithm
had to be developed to determine this. (See Section 4.1.2
for more information.)

NBCPASM FILLER.BCP
NLINK -LFILLER=AFOO FILLR.BCO

6.6.2.4 Transceiver
When the Transceiver is reset, DATA-OUT now goes into a
state equal to [TIN] e [ATA], which eliminates coincident
transitions on DATA-OUT and DATA-DLY with TX-ACT.
(See Section 3.2 for more information.

This will prevent any other section of code from occupying
the range which the "filler" section of code is located in.
Hence, one would not have to be concerned about using
labels to specify the address in LJMP and LCALL instruction.

6.7 REPORT BUGS

6.8 GLOSSARY
3270-An IBM communication protocol originally developed for the 370 class mainframe that implements a star
topology using a single coax cable per slave device. In this
master-slave protocol, all communication is initiated by the
controller (master) and responses are returned by the terminal or other attached device (slave). The data is transmitted using blphase encoding at a bit rate of 2.3587 MHz.
3299-A communications protocol that is the 3270 protocol with an eight bit address frame added to the beginning
of each controller transmission between the start sequence and the first coax word. Currently, IBM only uses
three bits of the address field which allows up to eight devices to communicate with the controller through a multiplexer.
5250-An IBM communications protocol originally developed for the Series 3 that became widely used on the System 34/36/38 family of minicomputers and currently the
AS/400. It uses a multidrop bus topology on twin-ax cable.
This protocol is a master-slave type. The data is transmitted
using bl-phase encoding at a bit rate of 1 MHz.
accumulator-The implied source register of one operand
for some arithmetic operations. In the BCP, R8 in the currently enabled bank acts as the accumulator.
ALU-The Arithmetic Logic Unit, a component of the CPU
that performs all arithmetic (addition and subtraction), logical (AND, OR, XOR, compare, bit test, and complement),
rotational, and shifting operations.
ALU flags-Bits that indicate the result of certain ALU functions.

6.7.1 History
The DP8344 Data Sheet Reference, first published
10/29/87 (rev. 3.6), listed a total of 13 bugs. All these bugs
were corrected in the DP8344A, released to production April
1989. Subsequent to this date, an additional bug has been
reported. This bug is present in all versions of the BCP:
DP8344, DP8344A and DP8344B.
For additional information regarding differences in functionality between the DP8344B and DP8344A, see Section 6.6.
6.7.2 LJMP, LCALL Address Decode
The LJMP and LCALL instructions to the address range
AfOOh through AF7Fh do not function correctly. Both conditional and unconditional LCALL or LJMP instructions to this
address range will not decode as LCALL or LJMP instructions. Instead the address field will be incorrectly decoded
as the instruction. Thus a LJMP or LCALL to an instruction
in the address range AFOOh through AF7Fh will be decoded
as a RETF instruction.
Example: the instruction
LJMP AFOO
will be decoded as
AFOO
which is
RETF 000. 00
Note that LJMP and LCALL to all other addresses work correctly.
The LJMP or LCALL instruction should therefore not be
used to transfer program control to an instruction in the
range AFOOh to AF7Fh.
6.7.2.1 Suggested Work-around
The simplest work-around is not to place any code necessary for system operation in the affected address range.

1-224

6.0 Reference Section (Continued)
banked registers-Two or more sets of CPU registers that
occupy the same register space, but only one of which is
accessible at a time.
barrel shifter-Dedicated hardware for shifting and rotating.
BCP-An abbreviation for Biphase Communications Processor, the National Semiconductor DP8344.
blphase-In this communications signal encoding technique, the data is divided into discrete bit time intervals denoted by a transition in the center of the bit time. This technique combines the clock and data information into one
transmission. In 3270 and 3299 protocols, a mid-bit transition from low to high represents a bi-phase 1, and a mldbit transition from high to low represents a bi-phase O. For
the 5250 protocol, the definition of biphase logic levels is
reversed. Biphase encoding is also called Manchester II
encoding.
BIRQ-The Bidirectional Interrupt ReOuest. Without any
other notation, BIRO will refer to the BIRO interrupt itself.
BIRO with a bar on top of it (BIRO) is used where the pin is
referenced. BIRO in brackets ([BIRO]) is bit 4 in the
(CCR} register.
coax-(1) RG-62A1U 930 coaxial cable that is used in
3270 protocol systems. (2) Sometimes, this term is used to
refer to the 3270 protocol itself.
code vlolatlon-A violation of the bl-phase encoding format that is part of the start sequence. In 3270, 3299, and
the general purpose 8-blt mode, the code violation is 1%
bit times low and then 1% bit times high. In the 5250 protocol, the signal levels are reversed.
communications protocol-A set of rules which defines
the physical, electrical, control, and formatting specifications required to successfully transfer data between two
systems.
context swltch-Switching between two theoretically independent functions that should not affect each other except
under specified circumstances.
controller-The master device that initiates all communication to the slave device and controls the manner in which
the slave presents the information. It acts as the interface,
both physically and logically, between the slave terminals
and printers and a host processor.
CPU-CLK-The clock that the operation of the BCP's CPU
is synchronized to. The period of this clock which defines
T-state boundaries is either that of OCLK or one-half of
OCLK depending on the configuration of the BCP. The timer clock is also derived from CPU-ClK.
CUT-Control Unit Terminal. A mode of the controller
where attached devices have limited intelligence and are
perceived to be hardware extensions of the controller. The
controller directs all printer, screen, and keyboard activity.
OFT-Distributed Function Terminal. A controller mode
that supports multiple logical terminals in the same device.
The controller communicates in higher level commands via
data placed in the buffer. The slave device has a greater
amount of intelligence than the CUT mode device and is
responsible for the terminal operation.
direct coupled-The connection of the transceiver to the
transmission cable in a manner that does not isolate it from
DC voltages. Contrast this with transformer coupled.

dual port memory-A memory architecture that allows two
different processors to access the same memory range. alternately.
ending sequence-A defined sequence· of bits signifying
the end of a transmission. In 3270 and 3299, it consists of a
bl-phase a followed by a low to high transition on the bit
time boundary and two mini-code violations.
FIFO-A section of memory or, as in the case of the BCP
transceiver, a set of registers that are accessed in a First-In
First-Out method. In other words, the first data placed in the
FIFO by a write will be the first data removed by a read.
fill bits-Fill bits are bl-phase O's used only in the .5250
protocol. A minimum of three fill bits are required between
each frame of a multi-frame message. This number may
be increased by the controller to approximately 243 per the
SetMode command. There are always only three fill bits after the last frame of the transmission.
general purpose 8-blt mod~A generic communications
mode similar to 3270 and 5250 frame formatting using 8-bit
serial data and bl-phase signal encoding. The BCP supports both promiscuous and non-promiscuous modes.
Harvard architecture-A computer architecture where the
instruction and data memory are organized into two independent memory banks, each with their own address and
data buses.
hold time-The amount of time the line is driven at the end
of 5250 transmissions to suppress noise on the cabling system.
'
ICLK-The clock that identifies the start of each instruction
when it rises and indicates when the next instruction address is valid when it falls.
Immediate addressing, mode-An addressing method
where one operand, the data for Move instructions and the
address for Jump instructions, is contained in the instruction
itself.
.
"
Immediate-relative addressing mode-An addressing
method that adds an unsigned 8-bit immediate number' to
the index register IZ to form the data memory address of an
operand.
,
Indexed addressing mode-An addressing method that
uses the contents of an index register as the data memory
address for one of the operands in an instruction. ,
Interrupt latency-The time from when, an interrupt first
occurs until it begins executing at its interrupt vector.: .
jitter-Timing variations for signals of different harmonic
content that move the edges of a transmitted signal in time
causing uncertainty in their decoding.
jitter tolerance-The total amount of time an edge of a
transmitted bit may move and still have its data bit decoded
correctly.
LlFO-A sequence of registers or memory locations that
are accessed in a last-In First-Out method; in other words,
the last data written into the LIFO will be the first to be
removed by a read. Also known as ,a stack.
limited register set-In the BCP, the first 16 register address locations (RO-R11 in both banks and R12-R15) that
can be used in all instructions.

1-225

•

I

6.0 Reference Section

(Continued)
line hold-The act of driving the transmission line during
5250 transmissions at the end of a message to allow the
receivers to unsync. This insures that the receivers will not
see line noise as the start of another frame when the line
floats.
line Interface-All the circuity between the BCP and the
communications cable medium.
line reflection-Energy from a transmission that is not absorbed by a load impedance and can cause interference in
that signal.
Manchester II encodlng-See bl-phase encoding.
mask-(1) A mechanism that allows the program to specify
whether interrupts will be accepted by the CPU. (2) To disable the accepting of an interrupt by the CPU.
mld-blt-In bl-phase encoding, the transition in the center
of a bit time.
mini-code vlolatlon-A violation of the bl-phase encoding
format that is part of the ending sequence in 3270, 3299,
and the general purpose S-blt mode. The mini-code violation has no mid-bit transition being high for the entire bit
time. There is no mini-code violation in 5250.
multldrop-A communication method where all the slave
devices are attached to the same cable and respond to
controller commands and data only when their own address frame precedes the transmitted frame.
multi-frame message-Several bytes of data together in
the same uninterrupted message that have only one start
sequence and one ending sequence.
multlplexer-A device that receives 3299 protocol transmissions from a controller, strips off the address field, and
determines over which of eight ports to transmit the message in 3270 format. The device then directs the response
from the terminal back to the controller.
non-promlscuous-A receiver mode that only enables a
data available interrupt when the address frame of the message matches that previously specified. The 5250 and general purpose S-blt modes of the BCP support both promiscuous and non-promiscuous modes.
NRZ-Non Return to Zero. A data format that uses a high
level to represent a data 1 and a ·Iow level to represent a
data O. The signal level does not return to a zero level in
each bit time. See also NRZI.
NRZI-Non Return to Zero Inverted. A data format similar
to NRZ but with the signal levels reversed.
OCLK-The external Oscillator CLocK connected to the
BCP. This frequency, from a crystal or a clock, cannot be
changed by the BCP itself. CPU-CLK is derived from OCLK;
in addition, the transceiver can be configured so that TCLK
is derived from OCLK.
parlty-A one bit code, usually following data, that makes
the total number of 1's in a data word odd or even, including
the parity bit itself. It is included as an error checking mechanism.
POLL-A command issued by a controller to determine
changes in terminal status, such as keyboard activity or keylock.
POLLI ACK (PACK)-A command issued by a controller
to indicate to the terminal that the controller has recognized
the non-zero status response of the terminal to its POLL,
hence its full name poll/acknowledge.

pop-To remove data from a stack.
predistortion-The initial voltage step in a Manchester
encoded bit used to change frequency components of the
signal to limit introducing jitter.
promiscuous-A receiver mode that enables a data available interrupt regardless of the contents of the transmission
address frame. The 5250 and general purpose S-blt
modes of the BCP support both promiscuous and non-promiscuous modes.
push-To place data onto a stack.
qulesce pulse-A bl-phase 1 bit that is placed at the beginning of a transmission to charge the cable in preparation
for the transmission of data. In addition, the quiesce pulses
are used as part of the identifying start sequence. Typically, five quiesce pulses are placed there.
register addressing mode-An addressing method that
uses only operands contained in registers.
register-relative addressing mode-An instruction addressing mode that adds the unsigned 8-bit value in the
current accumulator to anyone of the index registers forming a data memory address for one of the instruction's operands.
remote access-An access to dual port memory by a
device other than the BCP.
repeater-A device used to extend the communication distance between a controller and a slave device by receiving
the message and re-transmitting it.
RIAS--The Remote Interface and Arbitration System that
allows a remote processor and the BCP to share the same
memory with arbitration of any conflict while the BCP is running. A remote processor may also stop and start the BCP
as well as read and write the Program Counter.
soft-Ioadable-A feature of a processor system that allows
another processor to provide it with instructions and data.
stack-See LIFO.
start sequence-A unique arrangement of bits that begin
each transmission to ensure proper frame alignment and
synchronization. Each transmission begins with five blphase encoded 1's quiesce pulses, a code violation, and
the sync bit of the first frame.
station address-The identification number of a 5250 terminal or other slave device that will specify which device on
a multidrop line a message is sent to.
sync bit-A bl-phase 1 that is placed as the first bit of a
frame.
T-state-The period of CPU-CLK.
TCLK-The Transceiver CLocK that runs both the transmitter and receiver at a frequency equal to eight times the required serial data rate. The clock can be obtained from a
scaled OCLK or from X-TCLK.
tlme-out-An interrupt that occurs when the timer reaches
a count of zero.
transceiver-The TRANSmitter used for sending messages and the reCEIVER used for reading messages.
transformer coupled-The isolation of the transceiver
from the transmission cable through the use of a transformer. Contrast this with direct coupled.
trar>--A BCP instruction that forces a software interrupt.

1-226

6.0 Reference Section (Continued)
TTl AR-Transmission Turn-around I Auto Response. An
acknowledgement by the terminal or other slave device that
a write command has successfully been received or that a
POLL command status response is all zero.
twin-ax-(1) The shielded pair cable that is used in a 5250
communications systems. (2) Sometimes used to refer to
the IBM 5250 communications protocol itself.

unmask-Enable the accepting of an interrupt by the CPU.
wait state-Additional T-states that may be added to a
memory access to increase the time from address generation to the beginning of either a memory read or write. The
BCP may add as many as seven data wait states and three
instruction wait states.
X-TCLK-The eXternal Transceiver CLocK. An independent clock source that the BCP transceiver operation may
synchronize to rather than from OCLK.

1-227

Section 2
Application Notes

Section 2 Contents
AN-641 MPA-II-A Multi-Protocol Terminal Emulation Adapter Using the DP8344 .......... .
AN-624 A Combined Coax-Twisted Pair 3270 Line Interface for the DP8344 Biphase
Communications Processor ....................................................... .
AN-623 Interfacing Memory to the DP8344B .......................................... .
AN-504 DP8344 BCP Stand-Alone Soft-Load System .................................. .
AN-499 "Interrupts"-A Powerful Tool of the Biphase Communications Processor ......... .
AN-625 JRMK Speeds Command Decoding .......................................... .
AN-627 DP8344 Remote Processor Interfacing ........................................ .
AN-626 DP8344 Timer Application ... '.' .............................................. .
AN-516 Interfacing the DP8344 to Twinax .: .......................................... .
AN-688 The DP8344 BCP Inverse Assembler ......................................... .

2-2

2-3
2-95
2-99,
2-101
2-112
2-117
2-121
2-135
2-152
2-172

r------------------------------------------------------------------.>
National Semiconductor
Application Note 641
Thomas Norcross
Paul J. Patchen
Thomas J. Quigley
Tim Short
Debra Worsley
Laura Johnson

MPA-II-A Multi-Protocol
Terminal Emulation
Adapter Using the DP8344

Table of Contents

~~

APPENDIX A HARDWARE REFERENCE
MPA-II Schematic
MPA-II Layout
MPA-II Assembly Drawing
PAL Equations

1.0 INTRODUCTION
About This System User Guide
Contents of the MPA-II Design/Evaluation Kit
MPA-II Description
DP8344B BCP

APPENDIX B TIMING ANALYSIS

2.0 OPERATION

APPENDIX C FILTER EQUATIONS

System Requirements
Requirements for Design Development
Useful Tools
MPA-II Installation
Running Emulation: A Quick Start

APPENDIX D REFERENCES

1.0 INTRODUCTION
About This System User Guide
The purpose of this document is to provide a complete description of the Multi-Protocol Adapter II (MPA®-II), a hardware and software design solution for emulating basic 3270
and 5250 terminal emulation products in an IBM® PC environment. This document discusses the system support
hardware and complete link level firmware required to
achieve 3270/3299 CUT, DFT, and 5250 emulation with the
National Semiconductor Biphase Communications Processor, BCP®. The document is divided into the following chapters and appendices:

3.0 DEVELOPMENT ENVIRONMENT
4.0 SOFTWARE OVERVIEW
IBM 3270 and 5250 Environments
3270 Data Stream Architecture·
5250 Data Stream Architecture
Terminal Emulation
DCA
IBM
Screen Presentation
MPA-II

1.0 Introduction: provides a summary of each chapter and
each appendix along with a checklist of items included in
the MPA-II Design/Evaluation Kit. This chapter provides an
MPA-II product description including a list of the new features in the MPA-II that were not present in the original MPA
Evaluation Kit. Finally, a description of the DP8344 Biphase
Communications Processor, and National Semiconductor's
VLSI Products, is provided.

5.0 HARDWARE ARCHITECTURE
Architectural Overview
BCP Minimum System Core
PC Interface
Front End Interfaces
Miscellaneous Support

6.0 SOFTWARE ARCHITECTURE
Kernel
System Initialization
Coax Task
Coax Interrupt Handlers
IRMA Interface
IBM Interface
Twinax Task
Twinax Interrupt Handlers
Smart Alec Interface
7.0 LOADER AND MPA-II DIAGNOSTICS
Soft-Loading Instruction Memory
Configuring the MPA-II
MPA-II Diagnostics

2.0 Operation: describes the system requirements, installation instructions, and steps for using the MPA-II to achieve
3270/3299 and 5250 emulation.
3.0 Development Environment: describes the environment under which the MPA-II has been developed, the tools
used by the design team to characterize the products evaluated, and the tools used to test the MPA·II.

4.0 System Overview: describes the 3270/3299 environment, 5250 environment, and terminal emulation. This chapter also describes the DCA® and IBM emulator system architectures and discusses the MPA-II system organization.

I

fII
I

2-3

5.0 Hardware Architecture: discusses the MPA-II hardware architecture including a description of the BCP core,
PC interface, Front-end interface, and miscellaneous support circuitry.

ALEC emulation card interface modes, including SIMPC
MASTERTM by SIMWARE, RELAY Gold® by RELAY Communications, and CrossTalkTM MK.4 by Digital Communications Associates, can be used with the MPA-II.

6.0 Software Architecture: discusses the Kernel, coax
task, twinax task, and interrupt structure.

DP8344BBCP
The DP8344B BCP is a communications processor designed to efficiently process IBM 3270, 3299 and 5250 communications protocols. A general purpose 8-bit protocol is
also supported.

Included in this chapter is an in depth discussion of the
IRMATM, IBM and Smart Alec™ interfaces.

7.0 Loader and MPA·IJ Diagnostics: discusses soft-loading the BCP, configuring the MPA-II interface mode, and the
diagnostics provided for testing the MPA-II hardware.

The BCP integrates a 20 MHz, 8-bit, Harvard architecture,
RISC processor and an intelligent, software-configurable
transceiver on the same low power microCMOS chip. The
transceiver is capable of operating without significant processor interaction, releasing processor power for other tasks.
Fast, flexible interrupt and subroutine capabilities with onchip stacks make the power readily available.

Appendix A. Hardware Reference: provides the complete
MPA-II schematic, assembly drawing, board layout and PAL
equations.
Appendix B. Timing Analysis: discusses the timing of the
MPA-II system.

The transceiver is mapped into the processor's register
space, communicating with the processor via an asynchronous interface which enables both sections of the chip to
run from different clock sources. The transmitter and receiver run at the same basic clock frequency although the receiver extracts a clock from the incoming data stream to
ensure timing accuracy.

Appendix C. Filter Equations for the Combined Coaxl
Twisted Pair Interface: provides the derivation of the filter
equations for the combined coax/twisted pair interface.
Appendix D. References: is a list of reference materials
and company contacts.
MPA·IJ Description
The Multi-Protocol Adapter II (MPA-II) is a complete design
solution for IBM 3270, 3299, and 5250 connectivity products. The MPA-II system is intended to be a design example
for customers to use in developing their own products using
the Biphase Communications Processor, BCP. The BCP is a
"system on a chip" designed by National Semiconductor to
specifically address the IBM connectivity market place. Built
on the tradition of the DP8340/41 3270 receiver/transmitter
pair, the BCP takes the state of the art in IBM communications a step further. The MPA-II provides the system support
hardware and complete link level firmware to achieve 3270/
3299 CUT, DFT, and 5250 emulation with the BCP and an
appropriate PC emulator. The MPA-II Design/Evaluation Kit
does not include the PC emulation software. Thus, the end
user must purchase the PC emulation software to bring up a
live terminal emulation session using the MPA-II. PC emulation software such as DCA's E78 for MPA-II IRMA mode,
one of IBM's PC 3270 emulation programs for MPA-II IBM
mode, DCA's EMU for MPA-II ALEC mode, or any of the
third party vendors which support either the IRMA, IBM or

The BCP is designed to stand alone and is capable of implementing a complete communications interface, using the
processor's spare power to control the complete system.
Alternatively, the BCP can be interfaced to another processor with an on-chip interface controller arbitrating access to
data memory. Access to program memory is also possible,
providing the ability to softload BCP code. The MPA-II implements these features.
A simple line interface connects the BCP to the communications line. The receiver includes an on-chip analog comparator suitable for use in a transformer-coupled environment,
although a TTL-level serial input is also provided for applications where an external comparator is preferred.
A typical system is shown in Figure 1-1. Both coax and twinax line interfaces are shown, as well as an example of the
(optional) remote processor interface.
For a detailed discussion on the BCP refer to the DP8344B
Biphase Communications Processor data sheet.

2-4

rPROGRAIA - - - - - - - - -16 - ~
: IAEIAORY
,
,
:

,.r--------------AOOR~S~,

ADDRESS

,

RAIA OR
PROIA
64K X 16
(IAAX)

8

1/".......,'--'----..,.
,
~----------------.
,,

...

C~~~ -!L.--ft3~
:
COAX
, INTERfACE

,

. _ - - - - - - - - - - - - ____ 4

r-----------------~3

,,
,
TWINAX -i-'.....,~--+..
LINE -,--\::r-'"
,,

,

~--~--------------!

NOTE: A TYPICAL SYSTEIA WILL
REQUIRE < 2K PROGRAIA IAEIAORY

OPTIONAL REIAOTE
PROCESSOR INTERFACE
TLlF/l0488-1

FIGURE 1-1. Block Diagram of Typical BCP System
To support the IBM interface mode, the MPA-II utilizes an Bk
block of dual-port RAM. This. RAM must be located somewhere in the PC's memory space. The default location in PC
memory is CEOOO. This location can be relocated by writing
the upper Bk byte boundary to I/O location 2D7h or by using
the MPA-II Loader program (LD).

2.0 OPERATION
System Requirements
THE MPA-II system implements both 3270 and 5250 terminal emulation using the DCA and IBM industry standard interfaces. Note that the MPA-II system emulates the hardware and link-level firmware portion of the DCA and IBM
interfaces. This allows the MPA-II system to run with a variety of emulators. For example, the DCA emulator system for
the 3270 environment is called IRMA. IRMA consists of a
full sized PC board along with its link-level firmware, and the
PC emulator software "E7B.EXE". The MPA-II system replaces the IRMA PC board and its link-level firmware.
Therefore, the MPA-II system, when configured correctly,
appears in every way to the emulator, E7B, to be the actual
IRMA hardware/link-level firmware portion of the DCA emulator system for the 3270 environment. Thus to operate the
MPA-II system in a live communication system, a PC emulation program is required; for example DCA's E7B.EXE. In
DCA interface modes the emulators are: "E7B", for the
3270 IRMA system; and "EMU", for the 5250 Smart Alec
system. In the IBM interface mode the emulators are
"PC3270" for the 3270/3299 CUT environment and
"PSCPG" for the 3270/3299 OFT environment. Any emulator compatible with one of the emulators listed above can
be used to achieve terminal emulation using the MPA-II system.

The I/O space requirements, for any interface mode, are
the total of the I/O space requirements for the MPA-II.
This means that the I/O locations 220h-22Fh and 2DOh2DFh are required for the MPA-II.
For execution space, the LD requirements are minimal (less
than 64k). The amount of free RAM available for a PC emulator depends on the particular emulation package (i.e., E7B,
EMU, or IBM PC 3270, etc ... ). The MPA-II system does
not use any resident software of its own accord.
In summary, the Multi-Protocol Adapter II Design/Evaluation
Kit contains the hardware, software and the MPA-II System
User Guide and Technical Reference to aid designers in
development of peripheral devices and network interfaces
based on the DPB344. The following items are not included
in the MPA-II system and therefore MUST be provided by
the user to use the MPA-II in a live terminal emulation session:

The system requirements for using the MPA-II are dependent upon which interface the MPA-II is emulating. In DCA
interface modes, a PC interrupt is not used. However, in the
IBM interface mode, a PC interrupt is required. The PC interrupt level is selected as follows: IRQ2 is selected with jumper JP6; IRQ3 by jumper JP4; and IRQ4 by jumper JP5. The
factory configuration selects the PC interrupt levellRQ2.

2-5

-

IBM PC XT/AT or compatible

-

PC-DOS version 3.0 or higher

-

PC emulation software such as DCA's E7B for MPA-II
IRMA interface mode, one of IBM's PC 3270 emulation
programs for MPA-II IBM interface mode, DCA's EMU
for MPA-II ALEC interface mode, or any of the third party
vendors which support either the IRMA, IBM or ALEC
emulation card interface modes, including SIMPC MASTER by SIMWARE, RELAY Gold by RELAY Communications, and CrossTalk MK.4 by DCA.

•

I

~

"III:t'

CD

Z
c(

r-------------------------------------------------------------------------------------------,
-

Link to an IBM 370 class mainframe (for example,
through the IBM 3174/3274 controllers) for 3270/3299
connectivity; or a link to a System 3X, or AS/400 for
5250 connectivity.

• If the MPA-II will be used for Twinax operation, determine
if the MPA-II will operate in pass-through or terminate
mode. If it is NOT the terminator, remove jumpers JP2
and JP3. The factory default is terminate .

Requirements for Design Development

• Install the MPA-II in an open PC bus slot.

To create the software design environment for leveraging
off the MPA-II source code, the following software must be
purchased:

• Replace the screw from the end plate previously removed to hold the MPA-II firmly in place. A good electrical connection here is important as it provides shield
ground for the cables.

-

National Semiconductor's DP8344 Assembler System,
DP8344ASM1.2

-

Microsoft's C 5.1 Optimizing Compiler for the IBM PC

• Close the system unit and replace all screws, etc ...
according to the manufacturers instructions.
• For 3270/3299 operation, install any 3270 coax type "A"
port cable to the rear BNC/Twisted Pair connector.

- Microsoft's Macro Assembler 5.1 for the IBM PC
The minimum hardware requirements to set up a hardware
evaluation and design environment for creating virtually any
end product (terminal, printer, protocol converter, multiplexer, gateway, etc.) are an IBM PC/XT, IBM PC/AT or compatible and the MPA-II PC board.

• For 3270/3299 twisted pair. operation, solder any 24
AWG unshielded twisted pair cable to the ADC Twisted
Pair Plug provided with the MPA-II kit. Then, connect the
Twisted Pair plug to the rear BNC/Twisted Pair connector on the MPA-II board. Make sure that the other end of
the 24 AWG unshielded twisted pair cable is properly
attached to the controller as a twisted pair cable.

Useful Tools
The tools listed in this section will greatly assist in the design process:

-

-

-

-

• For twinax operation, install the Twinax Adapter cable to
the MPA-II by inserting the 9 Pin D-Sub-miniature connector onto the mating connector on the rear panel, and
connect the twinax cable(s) to the Tee connector.

Azure Technologies Coax Scope (or Twinax Scope) for
monitoring and analyzing data transmitted on 3270 Coax
Type "A" media (or on IBM System 3X or AS400 Twinax
media).
Capstone Technology CT-104 BCP Demonstration/Development Kit. This kit includes a development board
with a 22 square inch logic prototype area and a· 3
square inch line interface prototype area. Additionally,
the kit supplies a Monitor/Debugger which features a
simple operator interface, single step program execution
and software break-points.
CT-106 Enhanced Interactive Coax-A Controller, EICC,
(or the CT-103 Interactive Twinax Controller, ITC) by
Capstone Technology allows issuing specific 3270 (or
5250) instructions to a Device Under Test in place of the
traditional mainframe and 3X74 controller operations (or
the System 3X or AS400 controller operations).
Logic Analyzer (National Semiconductor has an Inverse
Assembler for the BCP which requires one of the following Hewlett Packard Logic Analyzer Models: HP1650A,
HP1651A or an HP16500A with an HP16510 State/Timing Card).

Running Emulation-A Quick Start

To use the MPA-II immediately, follow these instructions.
First, select a PC/XT, PC/AT, or compatible and make sure
that the following I/O addresses, IRO interrupt, and Memory
addresses are unused in that PC:
I/O: 0220-022F and 02DO-02DF
IROs: IR02
Memory: Segment CEOO
Next, install the MPA-II hardware into the PC. Then, change
the default DOS drive to A:, insert the distribution disk labeled DISK 1 into drive A:, and type at the DOS prompt:

SETUP

c:

where c: is the target hard disk drive. This will install the
MPA-II software onto the PC's hard disk. Next, change the
default DOS drive to the hard disk and change the default
DOS directory to \MPA. Execute the following program at
the'DOS command prompt to verify correct operation of the
MPA-II hardware within the PC:

LD -LS

See Section 3.0, Development Environment for a description of how these tools were used in developing the MPA-II
system.

If the self test passed then the MPA-II board is operational
within this PC. If it fails, check again for I/O, IRO, or Memory
address conflicts as each MPA-II is tested before it is
shipped.
Now, install onto the hard disk the PC emulation software of
your choice, such as DCA's E78 for MPA-IIIRMA mode, one
of IBM's PC 3270 emulation programs for MPA-IIIBM mode,
DCA's EMU for MPA-II ALEC mode, or any of the third party
vendors which support either the IRMA, IBM or ALEC emulation card interface modes, such as SIMPC MASTER by
SIMWARE, RELAY Gold by RELAY Communications, and
CrossTalk MK.4 by DCA. Note that the PC emulation software must be supplied by the end user, it is not included as
part of the MPA-II Evaluation Kit.

MPA-liinstallation

The first step in using the MPA-II is installing the MPA-II
circuit board in an IBM PC/XT, PC/AT or compatible. The
MPA-II installs in the usual way: please be sure that the
power is OFF, that the system unit is unplugged, and that
proper grounding techniques are used.
• Remove the cover by following the directions supplied by
the manufacturer.
• Remove the end plate from the system unit in the slot
desired for the MPA-II.
• Remove the MPA-II from its anti-static bag, and hold it by
the edges.

2-6

l>
Finally, load the MPA-II emulation card with the DP8344AV
microcode using the Loader and then start the PC emulation
program. To use the listed emulator, or equivalent, type at
the DOS prompt when in the \MPA directory:

LD MPA2 -M

= IRMA

; to use the DCA IRMA
emulator ·E78 n or
equivalent

LD MPA2 -M

= IBM

; to use the IBM emulator
"PC3270· or equivalent

LD MPA2 -M

= ALEC

; to use the DCA Smart
Alec emulator "EMU" or
equivalent

A majority of the logic for the DCA and IBM interfaces is
implemented in Programmable Array Logic. We used the
abel program from DATA I/O to prepare the JEDEC files for
programming the devices.

Your emulator should now be operational.

Software development was done on IBM PCs with the National Semiconductor DP8344 Assembler. The assembler
allows relocatable code, equate files, macros, and many
other "large CPU" features that make using it a pleasure.
The modularity of the software design allowed us to use
multiple coders and a single "system integrator" who linked
the modules and handled system debugging. The assembler adapts well to large projects like this because of its
relocation capability. The Microsoft MAKE utility was used
to provide the system integrator with a automated way of
keeping up with source modules' dependencies and changes. The BRIEFTM text editor from UnderWare™ was used
for editing. This editor allowed us to invoke the National
Semiconductor DP8344 Assembler from within the editor
and to locate and correct bugs quickly. Finally, an ethernet
LAN allowed the software development team to share files
and update each other quickly and efficiently. These tools
are not all necessary, but are common enough to be useful
in illustrating a typical environment.

Invoking the Loader program with no arguments will produce a short help screen. A detailed help for the Loader can
be accessed using the -h option. Therefore, at the DOS
command line enter:

The BCP's sophistication and advanced development tools
made the MPA-II development project proceed at a much
greater rate than is possible with other comparable solutions.

Then, change to the PC emulation program directory of the
separately purchased and installed PC emulation software
(see installation instructions of that PC emulation software
for the name of that directory. In this example assume the
directory name is \EMULATOR, and then type the name of
the PC emulator program:

CD \EMULATOR
E78

LD -H

z
I

en
~

.....

Characterization of IBM 3270 and 5250 products was performed by using Capstone's EICCIITC to drive the coax/
twinax line and the Azure scopes to monitor the results. In
this way we could stimulate the IBM terminal under controlled conditions, testing most every situation, and then
stimulate the MPA-II under the same conditions to verify
correct functionality.

For more information on the Loader program, refer to the
Loader documentation in Section 7.0.

3.0 DEVELOPMENT ENVIRONMENT
The environment used for development of the MPA-II consists of a few readily available, relatively inexpensive tools.
The hardware was first prototyped with the Capstone Technology CT-104 BCP Demonstration/Development card. The
software was developed with the National Semiconductor
BCP Assembler. It was tested with Capstone's EICC (Enhanced Integrated Coax Controller), Capstone's ITC (Integral Twinax Controller), and Azure Technologies' Coax and
Twinax scope products. Debugging was accomplished with
BSID, Capstone's debugger/monitor which we modified for
use with the MPA-II software model and the MPADB.EXE
debugger included with the MPA-II (see Chapter 6). For particularly difficult interrupt problems a Hewlett Packard model
16500A Logic Analysis System with a State/Timing card installed was used to monitor instruction execution and PC
accesses.
The CT-104 board was modified through the wire-wrap area
to approximate the hardware design. This wire-wrap card
allowed us to get a working version of the hardware design
very quickly, since most of the circuitry was already there. In
some development projects, it is often faster to go directly
to pcbs as a prototype run. This process has advantages in
speed when the device is large and complex, but often debugging is quite messy with multi-layer pcbs, not to mention
expensive. Since the CT-104 has the major functional
blocks already and the wire wrap area is large, the wirewrap time was minimal, thus allowed us to easily debug the
hardware.

The debuggers allow a developer to load and run code on
the target system, set breakpoints, examine and modify instruction or data memory. Early configurations were accomplished using the standard DOS DEBUG tool, but once the
MPA-II Loader program (LD) was operational, configuration
and loading was accomplished through it.
The HP logic analyzer was attached to the target system to
monitor the instruction accesses and data bus activity on
the target card. This information is helpful in finding interrupt
problems that the debugger cannot. Using ICLK from the
BCP to sample the BCP instruction address and data busses allows one to monitor instruction execution. Symbolic
disassembly can be done with the DP8344 BCP Inverse Assembler, which is a software package for use in an
HP1650A or HP1651A Logic Analyzer, or in an HP 16500A
Logic Analysis System with an HP 16510A State/Timing
Card installed. The inverse assembler was developed by
National Semiconductor to allow disassembly of the
DP8344 op-code mnemonics. The inverse assembler provides the real time sequence of events by displaying on the
HP Logic Analyzer's screen the actual execution flow that
occurred in the system being developed with the DP8344.

4.0 SYSTEM OVERVIEW
The MPA-II addresses a systems market that is driven by
the large installed base of IBM systems throughout the

fI
2-7

I

....

.

~

CD

z

«

world. The IBM plug compatible peripheral and terminal emulation markets are growing along with the success of IBM
in the overall computer market place. The originally proprietary architecture of the IBM peripherals and the subsequent
vague and confusing ProductAttachme,ntinformation Manuals (PAis) have kept the 'attachment technology ~Iusive.
The IBM communications system in generalis not well understood. The desire of customers and systems vendors to
achieve more attachment options, however, is significant,

modular and combines the best features of the System/36
and System/38 to produce IBM's most popular mid-range
system to date. In addition, the AS/400 continues to expand
the role and importance of the 5250 data stream, adding it
to the definition of IBM's SAA. The 370 class and AS/400
machines have grown closer together through the advent of
SNA (Systems Network Architecture). SNA allows both systems to function together in an integrated network.
The 3270 and 5250 communications systems evolved at a
time when hardware design constraints were very different
than today. Microprocessors and 1 Mb DRAMs were not
available. Memory in general was very expensive. Telecommunications channel sharing between multiple peripherals
was imperative. Even so, fast screen updates and keystroke
handling were necessary. The 3270 and 5250 data stream
architectures were developed to address specific design
goals within IBM's overall network communications system.
The controller sub-system where they were implemented
has proved adaptable to new directions in SNA and the migration of processor power out into workstations.
The 3270 and 5250 controller sub-systems split the peripheral support tasks into two sections: screen with keyboard,
and host communications interface. Figure 4-1 shows the
3270 Communications System, 5250 is similar. The controller architectures can be thought of as having integral screen
buffers and keyboards for each of their associated terminals
with the caveat that screens and keyboards must be accessed through a secondary, high speed serial link. Since
the controller views the terminal's screen buffer as its own,
the controller does not maintain a copy of the information
on that screen. The processing capability of some terminals
is severely limited; the early terminals were state machines
designed to handle the specific data stream. With the advent of SNA and APPC, (Advanced Peer to Peer Communications) the intelligence in some peripherals has become
significant. The data streams have essentially remained the
same, with hierarchically structured protocols built upon
them. SNA and these higher protocols will be discussed
later.

IBM 3270 and 5250 Environments
The study of IBM communications fills many volum'es. The
intent of this discussion is not to describe ,it fully, but to
highlight the areas of)BM communications that the BCP
and MPA-II address. Specifically, these areas'are the controller/peripheral'links that use the 3270/3299 and 5250
data streams. These links are found in 370 class mainframe
networks and the smaller, mid-range "systems such as the
AS/400 and System/3x lines.
'
The" 3270 commu~ications' sub-system, was developed for
370 class mainframes as demand for terminal support began to outstrip batch job entry modes. These systems had
large scale networking needs, and ofte,:" needed to support
thousands of terminals and printers. The original systems
were linked together through dedicated telephony lines using' Binary Synchronous Communications (BSC) serial protocol. The 5250 communications system was developed
originally for the Series 3 and became widely used on the
System/34. The System/34 wa.'sa small,office environment
processor with limited networking and terminal support capabilities.' Typical System/34 installations supported up to
16 terminals and printers. The System/36 replaced the System/34 in 1984. Next, IBM introduced the System/38, a
mid-range processor tMt could rival the 4300 series (small
370 class) mainframes in processing power. The System/36
and 38 machines now have greatly enhanced networking
facilities, and can support up to 256 local terminals. In 1988
IBM released a new, mid-range system line called the Advanced System 400, or AS/400, to replace the aging System/3x line. The Advanced ,System 400 series is highly

CURSOR

10

CONTROL
SEC. CONTROL
STATUS

I ,KEYSTROKE I
(

DDDDDDDDDDDDD )
oOOOOOOOODOOO

DOOOOOOocoooc
OOC::==::=:=:=:::OD

LIGHT PEN

I

STRIPE

~

, TL/F/l0488-2

FIGURE 4-1.3270 Communications System

2-8

Separating the screen buffer and keyboard from the intelligence to handle the terminal addressed several design
goals. Since the terminal needs screen memory to regenerate its CRT, the "regen" buffer logically resides in the terminal. The controller need not duplicate expensive memory by
maintaining another screen copy. The data stream architectures implemented with high speed serial links between the
controller and terminal allow fast keystroke echoing. It also
allows fast, single screen updates, giving the appearnace of
good system performance. The terminal screen maintenance philosophy developed with these architectures lends
itself well to the batch processing mode that traditionally
was IBM's strong suit. The terminal system is optimized for
single screen presentation with highly structured field oriented screens. Data entry applications common in business
computing are well suited to this. Essentially, the architecture places field attributes and rudimentary error checking in
the controller, so that most keystrokes can pass from the
terminal to the controller and back to the screen very quick·
Iy without host CPU intervention. Only when particular keystrokes are sent (AID keys) does the controller read the
contents of the screen fields and present the host with the
screen data.

Controllers typically support multiple terminals and essentially concentrate the terminal traffic onto the host communications channel. The controller has a secondary communcations system that implements the 3270 data stream protocol over coaxial cable at 2.3587 Mb/s. Each peripheral connected to the controller has its own coax port. The coax
lengths may be up to 5000 feet. The protocol is controller
initiated, poll/response type.
The serial protocol organizes data into discrete groups of 12
bits, called a frame. Biphase (Manchester II) encoding is
used to impress the data frames onto the transmission medium. Biphase data have embedded clock information denoted as mid-bit transitions. Frames may be concatenated
to form packets of commands and/or data. All transmissions begin with a line quiesce sequence of five biphase
one bits followed by a three bit time line violation. The first
bit of all frames is called the sync bit and is always a logic
one. The sync bit follows the line violation and precedes all
successive frames. Each frame includes a parity bit that establishes even parity over the 12-bit frame. Each transmission from the controller elicits a response of data or status
from the device. The response time requirements are such
that a device must begin its response within 5.5 ms after
reception of the controller transmission. Simple reception of
a correct packet is acknowledged by the device with a
transmission of "DAR", or transmission turn around/auto
response. The controller initiated, poll/response format protocol addresses multiple logical devices inside the peripheral through a three or four bit command modifier. The different logical devices decode the remaining bits as their command sets. Commands to the base or keyboard are decoded as shown in Table 4-1.

3270 Data Stream Architecture
The 3270 communications system, as discussed above, is a
single logical function separated into two physical pieces of
hardware connected by a protocol implemented on a high
speed serial link. The terminal hardware has the screen
buffers and keyboard, magnetic slot reader, light pen, etc.,
(Le., all the user interface mechanisms). The controller has
a communications link to the host CPU or network and the
processing power to administrate the terminal functions.

TABLE 4-1. 3270 Data Stream Command Set
Command
READ TYPE:

WRITE TYPE··:

Value

Description

TO BASE-Device Address 0 or 1
POLL
POLLIACK
READ STATUS
READ TERMINAL ID
READ EXTENDED ID
READ ADDRESS COUNTER HI
READADDRESSCOUNTERLO
READ DATA
READ MULTIPLE

01h
11 h
ODh
09h
07h
05h
15h
03h
OBh

Respond with Status
Special Status Acknowledgement Poll
Respond with Special Status
Respond with Terminal Type
Respond with 4 Byte ID (Optional)
Respond with Address Counter High Byte
Respond with Address Counter Low Byte
Respond with Data at Address Counter
Respond with Up to 4 or 32 Bytes

TO BASE-Device Address 0 or 1
RESET
LOAD CONTROL REGISTER
LOAD SECONDARY CONTROL
LOAD MASK
LOAD ADDRESS COUNTER HI
LOAD ADDRESS COUNTER LO
WRITE DATA
CLEAR
SEARCH FORWARD
SEARCH BACKWARD
INSERT BYTE
START OPERATION
DIAGNOSTIC RESET

02h
OAh
1Ah
16h
04h
14h
OCh
06H
10h
12h
OEh
08h
1Ch

POR Device
Load Control Byte
Load Additional Control Byte
Load Mask Used in Searches, CLEAR
Load Address Counter High Byte
Load Address Counter Low Byte
Load Regen Buffer with Data
Clear Regen Buffer to Nulls
Search Forward in Buffer until Match
Search Back in Buffer until Match
Insert Byte at Address Counter
Begin Execution of Higher Level Command
Special DFD Reset

!II

"Denotes foreground task

"All WRITE type commands elicit TTAR upon clean reception.

I

2-9

attributes is limited by the size of the displayable character
set. The EAB provides a method to enhance screen control,
with color for instance, without losing character space. The
EAB contains both character attributes, that correspond to
characters in the regen buffer, and field attributes that correspond to attributes in the regen.

The 3299 variant on the 3270 data stream uses an additional eight bit address field to address up to 8 more 3270 devices with the same coax cable. Since coax installations are
point-to-point between controller and peripheral, cabling
costs motivated the introduction of 3299 multiplexer/demultiplexers. Using the extended address field, eight devices
can be connected via one coax cable between the controller and the multiplexer. (The 3299 protocol can support up
to 32 devices per line if IBM so chooses.)

Status developed in the terminal, such as keystrokes or errors, are reported in the poll/response mechanism. A POLL
command to the base device with keyboard status pending
elicits a keystroke response in 5.5 J-Ls. The controller then
sends a POLL! ACK command to acknowledge the keyboard status and thus clear it. The terminal then responds
with "clean" status, i.e., TTAR. Controllers poll frequently to
assure that status updates are quick. Outstanding status is
reported in the poll response and in some cases is handled
directly by command modifiers in the POLL command. Keystrokes are the most command status and hence are acknowledged by the POLL! ACK command. Status reported
in the status register can be read and acknowledged independently of the polling mechanism, if desired.

Basic 3270 terminals have a structure as shown in
Figure 4-2. The EAB (Extended Attribute Buffer) is a shadow
of the regen buffer; each location in the regen has a corresponding location in the EAB. The EAB is a separately addressable device with an address modifier of 7h. The EAB
bytes are used to provide extra screen control information.
In the 3270 world, the screen and field attributes that the
controller uses to format and restrict access to fields on the
screen.take up space in the screen. The attribute characters
appear as blanks and cannot be used for displayable characters at the same time. Since the number of permutations
of the a-bit character byte is limited to 256, the number of
ADDRESS COUNTER
(CURSOR HI:)

EAB
REGEN

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

(CURSOR LO:) ~____________________~

KEYSTROKE BUrfER: 1
...____________________......

CONTROL:

3564

(MOD 5)

'----~--~~~~-'-~~~

CONT _BLINK ~ BLINK CURSOR
CONLREV ~ REVERSE IMAGE CURSOR
' - - - - - CONT _'NHCURSOR

~

TURN Off CURSOR

' - - - - - - - CONLBLANK ~ BLANK SCREEN
L -_ _ _ _ _ _
L -_ _ _ _ _ _ _ _ _

7
SECCiNDARY CONTROL:

CONLINHSTEP ~ PREVENT I/O STEP
CONLMOD

~

SCREEN MODEL

0

1rsv 1-1-1-1-1-1-1 B~
SCONLSIG ~ READ BIG MODE

TERMINAL 10: 1
...____..,....____......__..,...__......_0~I
' - - - - - ID_MOD ~ MODEL
ID_KEYBD ~ KEYBOARD TYPE

L -_ _ _ _ _ _ _ _

STALMONO ~ MONO CASE ON
STALRSVI
'-----

STALAVAIL~NOT

BUSY

' - - - - - - - STALKEY - SECURITY KEY ON
L -_ _ _ _ _ _ STALRSV2
L -_ _ _ _ _ _ _ _

'-----------

STAT _fERROR

' - - - - - - - - - - - - - STALBLANK
MASK: I~

N

fEATURE ERROR

STALOPCOMP~OP
N

COMPLETE

SCREEN BLANKED BY KEY

_______________......

EAS MASK: 1
...____________________......

TLlF/l0466-3

FIGURE 4·2. 3270 Internal Terminal Architecture

2-10

The SEARCH, INSERT and CLEAR commands require the
terminal to process the command in the foreground while
responding with "BUSY" status to the controller. (The foreground refers to non-interrupt driven routines. Foreground
routines may be interrupted at any time.) Processing these
commands requires substantially more time than the others,
and hence are allowed to proceed without real-time response restrictions.

parts; a bit synchronization pattern, a frame synchronization
pattern, and one or more command or data frames. The bit
sync pattern is typically five one bit cells. This pattern
serves to charge the distributed capacitance of the transmission line in preparation for data transmission and to synchronize receivers on the line to the bit stream. Following
the bit sync or line quiesce pattern is the frame sync or line
violation. This is a violation of the biphase, NRZI data midbit transition rule. A positive going half bit, 1.5 times normal
duration, followed by a negative going signal, again 1.5
times normal width, allows the receiving circuitry to establish frame sync.

An interesting feature found in terminals and printers is the
START OP command. Originally, this command was used
only by controllers and printers to begin print jobs. Printers
have specific areas within their buffers that are reserved for
higher level commands from the controller. These higher
level protocols started as formatting commands and extra
printer feature control. With the advent of SNA and Distributed Function Devices, this concept is now used in terminals to pass SNA command blocks to multiple NAUs (Network Addressable Units) within the terminal. These NAUs
are complete terminals, or peers, not just simple user interface devices.
As large mainframe systems proliferated, 50 did the need to
off-load terminal support from the emerging 370 class mainframe. The need to "network" both remotely and locally
was becoming apparent. In addition, the need to separate
display and printer interface tasks from applications was
sorely felt. The system developed by IBM eventually became Systems Network Architecture (SNA). The 370 class
machines use secondary processors, or "front-ends" to
handle the networking aspect of large scale systems and
these "front ends" in turn use terminal and printer controlers to interface locally with the user interface devices. The
controllers handle the device specific tasks associated with
interfacing to different printers and displays. The front-ends
handle connecting the routes from terminals or printers to
applications on the mainframe. A session is a logical entity
split into two halves; the application half and the terminal
half, and connected by a virtual circuit. Virtual circuits can
be set up and torn down by the system between applications and terminals easily, and the location of the specific
terminal or printer is not important. NAUs are merely devices that can be addressed directly within the global network.
Setting up multiple NAUs within a terminal allows all sorts of
gateway opportunities, multi-display workstations, combination terminal/printers, and other things.

Frames are 16 bits in length and begin with a sync or start
bit that is always a 1. The next 8 bits comprise the command or data frame, followed by the station address field of
three bits, a parity bit establishing even parity over the start,
data and address fields, and ending with a minimum of three
fill bits (fill bits are always zero). A message consists of a bit
sync, frame sync, and any number of frames. A variable
amount of inter-frame fill bits may be used to control the
pacing of the data flow. The SET MODE command from the
host controller sets the number of bytes of zero fill sent by
attached devices between data frames.
Message routing is accomplished through the use of the
three bit address field and some basic protocol rules. There
is a maximum of eight devices on a given twinax line. One
device is designated the controller or host, the remaining
seven are slave devices. All communication on the twinax
line is host initiated and half duplex. Each of the seven devices is assigned a unique station address from zero to six;
address seven is used for an End Of Message delimiter, or
EOM. The first or only frame of a message from controller to
device must contain the address of the device. Succeeding
frames do not have to contain the same address for the
original device to remain selected. The last frame must contain the EOM delimiter. For responses from the device to
the controller, the responding device places its own address
in the address field in all frames but the last one. It places
the EOM delimiter in the address field of the last frame.
However, if the response to the controller is only one frame,
the EOM delimiter is used. The controller assumes that the
responding device was the one addressed in the initiating
command.
Responses to the host must begin within 60 ± 20 J.Ls of receiving the transmission, although some specifications state
a 45 ± 15 J.Ls response time. In practice, controllers do not
change their time out values per device type so that anywhere from 30 J.Ls to 80 J.Ls response times are appropriate.

DFD devices can support up to five separate NAUs using a
basic 3270 port. Using 3299 addressing allows eight sessions for each DFD device, or 40 possible NAUs per coax.
By layering protocols over the basic 3270/3299 data
stream, the controller can distribute more of the SNA processing to intelligent devices that replace terminals. APPC
will allow more and more functions to be shared by NAUs
that act as "peers" in the network.

The 5250 terminal organization is set up such that there are
multiple logical devices within the terminal as in 3270.
These devices are addressed through a command modifier
field in the command frame. The command set for the base
logical devices is shown in Table 4.2. Note that except for
POLLs and ACTIVATE commands, all commands are executed in the foreground by the terminals, unlike the 3270
commands. In addition, 5250 terminals only respond after a
POLL or ACTIVATE READ command. The remaining commands are loaded on a queue for passing to the foreground
while the terminal responds with "busy" status to the host
when Polled until all the commands on the queue have
been processed. See Figure 4-3 for the 5251 terminal architecture.

5250 Data Stream Architecture

The 5250 data stream architecture has many similarities to
3270, although they are different in important ways. The
primary difference is the multi-drop nature of 5250. Up to
seven devices may be "daisy chained" together on the
same twinax cable. Twinax is a very bulky, shielded, twisted
pair as opposed to the RG/62U coax used in 3270.
The 5250 Bit stream used between the host control units
and stations on the twinax line consists of three separate

2-11

.,...
'O::t'

TABLE 4·2. 5250 Command Set

(,0
I

Z

<

Queueable Commands
Reads

Writes

Read Data (Note 1)
Read Device 10 (Note 1)
Read Immediate (Note 1)
Read Limits (Note 1)
Read Registers (Note 1)
Read Line (Notes 1, 2)

Write Control Data
Write Data and
Load Cursor
Write Immediate (Note 1)
Write Data (Note 1)

Control

Operators

Eoa

Clear
Insert Char.
Move Data
Search

Load ADDR Counter
Load Cursor Reg.
Load Ref. Counter
Reset
Set Mode

Non·Queueable Commands
Responders

Acceptors

Poll
Activate Read

Activate Write

Note 1: Must be last command loaded onto queue. (EOQ may follow). When Terminal responds to POLL as not busy, then the appropriate ACTIVATE command
must be sent.
Note 2: Not a documented command in the IBM PAl. (See MPA·" code for response.)

1

I-.J

80 bytes

--I
16 bits

LINE 1

I

ADDRESS COUNTER

I

16 bits

I REFERENCE COUNTER I
16 bits

SCREEN BUFFER

I

CURSOR REGISTER

I

8 bits

IINDICATOR I
8 bits

I CONTROL I
8 bits

:~

5251 MODEL II

KEYSTROKE
QUEUE

TL/F/10488-4

2·12

PC

I.IPA

DCA
E78

REGEN
SCREEN
BUFFER
0

I

1
3RD
PARTY
APPS

I

~

IBI.I
3278/79
CUT,DFT
3287
DCA
Smart
Alec
5250

NSC
SOFTLOADER

I+-

I

I+4

CHAI.IELEON
INTERFACE
IBI.I
IRI.IA
Smart Alec

l........+

LOAD/
CONFIGURE

~

I
I
I
I
I
I
I
I
I

EAB 0

-

~ 3270 - .
..- 3299 - .

TWINAX
PROCESS

~ 5250 - .

EAB 1

REGEN
SCREEN
BUFFER
I-1

I

COAX
PROCESS

••
•

EABn

REGEN
SCREEN
BUrFER
n

-

I

PC CHANNEL
TL/F/l0488-5

FIGURE 4-4. MPA-II System Architecture

Terminal Emulation

The terminal emulation market opened with Technical Analysis Corporation's IRMA product in 1982. The 3278179 terminal emulator quickly became the industry standard, even
as IBM and many others entered the market place. Technical Analysis Corporation merged with Digital Communications Associates in 1983. The 3270 emulation market is now
dominated by DCA and IBM. IBM· produced the first 5250
terminal emulator in 1984, although it was a severely limited
product. The market opened up in 1985 with the release of
products by AST Research, IDE Associates, and DCA.
DCA's Smart Alec was the first product to provide seven
session support, address bidding, and a documented open
architecture for third party interfacing. DCA's IRMA was released with a technical reference detailing their Decision
Support Interface. This document along with the source
code to E78 (their PC emulator software) allowed many
companies to design micro to mainframe products using the
DSI as the mainframe interface. IBM provides a technical
reference for their 3278 Entry Level' Emulator as well, (see
Appendix C for a complete list of references).

Personal computers are often used to emulate 3270 and
5250 terminals, and in fact, have hastened the arrival of
APPC functions in both the 3270 and 5250 arenas. Basic
CUT (Control Unit Terminal) emulation is often accomplished by splitting the terminal functions into real-time
chores and presentation services. The presentation services, such as video refresh and keyboard functions, are handled by the PC, and real-time response generation, etc., by
an adapter card (see Figure 4-4). This is a somewhat expensive alternative to a "dumb" terminal. However, since
PCs are becoming more and more powerful, their use as
peers in SNA networks, as multiple NAUs, or multiple display sessions in 5250 is very promising. Although primitive
in many ways, the 3270 and 5250 communications system's
fast response times, unique serial protocols and processing
overhead requirements have traditionally limited the confidence of third party developers in designing attachments. In
addition, the high cost of many early solutions discouraged
many would-be developers.

The proliferation of the IBM and DCA interfaces coupled
with the availability of detailed technical information about
them made these interfaces good choices for the MPA-II.
The MPA-II system was designed to do two major functions:
one is emulation of the DCA and IBM emulation products;
the second is to provide a powerful, multi-protocol interface
that will afford greater utilization of the DP8344A. Specifically, the MPA-II emulates the hardwarelfirmware resident in
PC add-in boards for 3270 and 5250 emulation products
from DCA and IBM. To do this, we have constructed hardware and firmware that mimics the corresponding system
components of the other emulators. The MPA-II system appears in every sense to be the board it is emulating, once it
has been loaded and configured.

National Semiconductor opened the 3270 attachment market place to many third parties in 1980 with the release of
the DP8340/41 protocol translation chip set. The chip set
removed one of the major stumbling blocks to attachment
designs, although formidable design challenges remained.
Bit-slice or esoteric microcontrollers were still required to
meet the fast response times specified by IBM. The difficulties and costs in designing interface circuitry for these solutions remained a problem. So in 1987 National Semiconductor introduced the DP8344 Biphase Communications Processor, BCP. By tightly coupling a sophisticated
3270/3299/5250 transceiver to a high speed RISC based
CPU, National eliminated the last major stumbling block to
IBM connectivity. National also made available for the first
time a single hardware platform capable of supporting the
3270, 3299 and 5250 data streams.

2-13

fII

,...

.

~

CD

Z

c(

IRMA maintains a screen image in PC memory that is used
in conjunction with a complex algorithm to determine which
lines of the screen to update. Smart Alec maintains a 16
entry FIFO queue that contains screen modification information encoded in start/end addresses. This information is
processed to decide which screen locations should be updated.

The DCA and IBM system organizations are similar. Each
system is divided into two major functional groups: presentation services, and terminal emulation. The terminal emulation function resides entirely on the adapter hardware and
maintains the screen buffers that belong to the host control
unit. The terminal emulation function includes all real time
responses and status generation necessary to appear as a
true 5250 or 3270 device to the host controller. Presentation services carried out by the PC processor through the
emulator software include fetching screen data from the
adapter, translating it into displayable form, and providing
the data to the PC's display adapter. In addition, the PC side
presentation services collect keystrokes from the keyboard
and present them to the adapter. The communication between the PC presentation handler and adapter emulation
function consists mainly of status updates, keystrokes, and
screen data.

IBM
The IBM system organization, in general, is very similar to
the DCA systems. The major differences lie in the interface
implementations. The IBM system utilizes RAM dual-ported
between the PC processor and the adapter board processor
to transfer screen data from the adapter. In addition, IBM
does not use an interpreted command/response I/O interface. The IBM interface uses 121/0 locations with individual
bits defined in each register for direct status availability. The
status bits consumed by the PC presentation services are
cleared through a "write under mask" mechanism. Consumable bits are read by the PC and, when written to, corresponding status bits are cleared by one bits in the value
written. Reading a register of consumable bits and writing
that value back out clears the bits set in that register. The
interface can operate in a polled manner, although it typically is operated via interrupts. One register in the interface is
dedicated to interrupt status (ISR-Interrupt Status Register, 2DOh) and when the PC is interrupted, the particular
status change event is indicated in that register. Buffer modifications are indicated through a status change in the I/O
interface which also provides an indication of the block
modified. The actual screen data is in 8k of dual-port RAM
and may be read by the PC when the "Buffer-Being-Modified" flag is cleared. This type of interface affords the IBM
products great speed advantages, although limits compatibility with other add in PC boards.

DCA
The DCA products use an I/O mapped 4 byte mailbox to
pass information between the PC's processor and the processor on the emulation card. The information is encoded in
a
,
[],
[],
[] and , [response], [response],
[response] format. Information flow is controlled through a
Command/ Attention semaphore implemented in hardware.
Both the Smart Alec (5250) and IRMA (3270) interfaces
have command sets that include reading and writing the
screen buffers maintained on the adapter boards, sending
keystrokes, and passing display information such as cursor
position and general screen modes. The interfaces are both
used in a polled manner, although both are capable of generating interrupts to the PC processor.
Both Smart Alec and IRMA have Signetics 8X305 processors that run the terminal emulation functions and interface
to the PC presentation services. The PC function initiates
commands and status requests by writing the appropriate
value into the mailbox and setting the Command semaphore. The semaphore is then polled by the PC for a change
in state that signals completion of the command and signals
that valid response data is in the mailbox. The PC will poll
for a specific amount of time before assuming a hardware
malfunction has occurred. The 8X305 processors have no
interrupt capabilities and handle all terminal emulation subtasks in a polled manner. The PC interface tasks are the
lowest priority of all. The 8X305 may initiate information
transfer to the PC by posting the Attention semaphore,
and/or setting a PC interrupt, although this is not generally
done. Both the Smart Alec andlRMA interfaces are implemented with 74LS670 dual-ported register files so that
reads and writes from each processor are directed into separate register files.

Screen Presentation
Both the IBM and DCA systems present EBCDIC data to the
PC presentation services for display. The presentation software must translate the EBCDIC codes into ASCII for PC
display adapters. In addition, the screen attribute schemes
for PCs and mainframe terminals differ greatly. The presentation services must provide the necessary display interface
to emulate the "look" of the terminal that is being emUlated.
The PC keyboard scan codes are incompatible with mainframe scan codes, and must be translated for the keyboard
type of the terminal being emulated. Both systems provide
advanced PC functions such as residency, keyboard remapping, and multiple display support.
MPA-II
The MPA-II implements emulation of both the DCA and IBM
interfaces. Therefore, an overall architecture similar to the
DCA and IBM systems is employed (see Figure 4-5). The
logical split in functionality between the PC and the adapter
board processors is roughly analogous; the PC provides
presentations services and the adapter hardware/firmware
handles the host terminal emUlation tasks (see Figure 4-6,
4-7 and 4-8). The BCP on the adapter board is soft-loaded
by the PC and configured to operate in one of the protocols
and interface modes. The adapter board then assumes the
hardware emulation tasks of the physical interfaces of the
DCA or IBM products. At this time the DCA, IBM (or a
DCAlIBM compatible) emulation program is executed on
the PC. To this program the MPA-II appears to be a DCA or
IBM emulation card.

DCA interfaces were designed for compatibility at the expense of interface through-put. The small I/O requirements
and the fact that interrupts to the PC are not necessary
allow the interfaces to install easily in most environments.
The IRMA Decision Support Interface (DSI) utilizes eight I/O
locations at 220h-227h. Smart Alec resides in I/O locations
228h-22Fh. All screen data and status information must
pass through these mailboxes with the semaphore mechanism. This makes repainting the entire screen very slow.
Both IRMA and Smart Alec utilize different schemes to reduce the necessity of reading entire screen buffers often.

2-14

accesses by the PC and BCP do not occur. The location of
the dual-port RAM in the PC memory map is determined by
a value written into the 2D7h I/O location. This "Segment"
register is the upper 7 bits of the PC address field and is
compared with the address presented during PC memory
cycles for decoding. Writing different values to this register
moves the decoded memory block anywhere within the PC
memory space to avoid conflicts. The pacing of dual-port
accesses is handled by provisions in the emulated interface
definition.

The MPA-II hardware consists of a DP8344A running at
18.89 MHz with 8k x 16 bits zero wait state instruction
memory, 32k x 8 bits one wait state data RAM, a
coax/twisted pair 3270/3299 front end, a 5250 twinax front
end, and a BCP software controlled PC interface that enables the MPA-II to appear as a variety of industry standards interfaces. The BCP Remote Interface Configuration
register (RIC) is located in PC I/O space at 2DFh (see Figure 4-9). This register facilitates downloading of instructions
and data memory from the PC, starting and stopping the
processor, and configuring the low level interface mode.
The MPA-II utilizes the low level fast buffered write/latched
read interface mode.

.

»z

0)
~

.....

The PC I/O map for the MPA-II adapter board is as follows:
TABLE 4-3. MPA-II PC I/O Map

220h221h222h223h224h225h226h-

The MPA-II Configuration register (see Figure 4-10) is located at I/O location 2DCh and controls which type of high
level interface the MPA-II board is operating in (Le., IRMA,
Smart Alec, IBM, coax, etc.). Changing the value of this register while the MPA-II is operating will cause the MPA-II to
change mode, resetting the emulation session in progress.
In addition, a simple MPA-II command set can be issued
through the MPA-II Configuration register and the MPA-II
Parm/Response register (I/O location 2DBh) for use as a
passive debugging aid.

227h228h229h22Ah22Bh22Ch22Dh22Eh-

When either of the DCA modes are enabled, the I/O block
220h-22Fh is decoded, split into read and write banks, and
mapped into the BCP's data memory. For the IBM mode,
the I/O block from 2DOh-2DAh is decoded and the WriteUnder-Mask function is enabled. In addition, the 8k of dualport RAM is defined according to the IBM interface mode.
For CUT emulation, only the lower 4k of the dual-port RAM
is used. For OFT mode, the entire 8k block may be utilized.
Neither DCA mode utilizes dual-port memory, but it is still
available to the PC so the MPA-II firmware maps screen
information there. Note that the MPA-II hardware always decodes I/O addresses 220h-22Fh and 2DOh-2DFh regardless of the PC interface selected.

22Fh2DOh2D1h2D2h2D3h2D4h2D5h2D6h2D7h-

The MPA-II interface mimics the DCA and IBM interfaces by
interrupting the BCP when write accesses occur to the I/O
space of interest (220h-22Fh, 2DOh-2D6h and 2D8h2DEh) while holding off any other PC accesses to the
MPA-II board, thus "locking out" the PC. The BCP monitors
these I/O accesses through the use of the "MPA-II Access"
register contained in a PAL. This register captures the location of the last PC I/O access. The BCP's I/O access interrupt routines then get control and emUlate in software
DCA's or IBM's I/O hardware functions (such as IBM's write
under mask function). At the end of interrupt processing, the
software "unlocks" the PC, allowing access once again to
the MPA-ll's memory and I/O registers by the PC. The extreme speed of interrupt processing by the BCP makes this
feasible. Accesses of the dual-port RAM by the PC are regulated by the interface only in assuring that simultaneous

IRMA Command/Status Register
IRMA Argument/Response
IRMA Argument/Response
IRMA Argument/Response
Decoded, Unused
Decoded, Unused
IRMA Command/Attention
Semaphore Control
IRMA Command/Attention Semaphore
Smart Alec Command/Status Register
Smart Alec Argument/Response Register
Smart Alec Argument/Response Register
Smart Alec Argument/Response Register
Decoded,Unused
Smart Alec Control Register
Smart Alec Control Register,
Command/ Attention Semaphore
Smart Alec Strobe

2D8h2D9h2DAh-

IBM Interrupt Status Register
IBM Visual/Sound
IBM Cursor Address Low
IBM Cursor Address High
IBM Connection Control
IBM Scan Code
IBM Terminal 10
IBM/MPA-II Dual-Port Segment
Location Register
IBM Page Change Low
IBM Page Change High
IBM 87E Status

2DBh2DCh2DDh2DEh2DFh-

MPA-II Parm/Response Register
MPA-II Configuration/Command Register
Decoded, Unused
Decoded,Unused
MPA-II RIC Register

•
2-15

I

.,...
~

CD

z•

EMULATION CARD
(MPA-II)

PC

«

INTERRUPT
HANDLERS

RECEIVER
TRANSMITTER
TIMER
BIRQ (INTERrACE)

IBM

3278/79

DUAL PORT
t.tEt.tORY

CUT, Drr

8k -

6~k

IRt.tA
(DCA)

3278/79
THIRD PARTY
APPLICATIONS
ALEC
(DCA)

5250

THIRD PARTY

' - - - - f i l l APPLICATIONS
SIt.CPC
RELAY GOLD
CROSS TALK
TL/F/l04BB-15

FIGURE 4-5. PC Terminal Emulation Architecture

PC

IBM

PC SOFTWARE

3278/79
CUT, Drr

- REFORMATS AND TRANSLATES REGEN
BUFFER TO ASCII FOR PC SCREEN'
IRt.tA
(DCA)

3278/79

-ACCEPTS KEY STROKES FROM USER

~

- PERFORMS FILE AND DATA TRANSFER

~

THIRD PARTY
APPLICATIONS

,.

ALEC
(DCA)

5250

THIRD PARTY
APPLICATIONS
SIt.lPC

I

~

-

- THIS COULD BE DONE IN THE BCP MICROCODE

~

~~

RELAY GOLD

I

CROSS TALK
TLlF/l04BB-9

FIGURE 4-6. PC Software

2-16

PC INTERFACE

DUAL PORT
1.4Et.lORY

• ALLOWS PC TO COMMUNICATE
WITH THE TERMINAL EMULATOR
CARD.

6k - 64k

• IBM
-STATUS QUERY METHOD
• IRMA/ALEC
-COMMAND/RESPONSE
METHOD

TLlF/10488-10

FIGURE 4-7. PC Interface

EMULATION CARD
(MPA-II)

EMULATION CARD
• PROVIDES PHYSICAL AND ELECTRICAL
CONNECTION
• PROCESSES ALL DATA LINK COMMANDS
• ISSUES ALL DATA LINK RESPONSES
• OPERATES INDEPENDENT OF PC CPU
-REBOOTING PC HAS NO EFFECT ON
ACTIVE SESSIONS
IBM
HOST SYSTEM
OR
CONTROLLER
TLlF/l0466-11

FIGURE 4-8. Emulation Card

I

FII
2-17

I

I

I

I

I

I I

I I

~

MSO: MEMORY SELECT: DATA, INSTRUCTION
MS1: MEMORY SELECT: DATA, INSTRUCTION
STRT: BCP START/STOP
LW: LATCHED WRITE INTERrACE MODE
LR: LATCHED READ MODE
RW: r AST WRITE MODE
SS: SINGLE STEP THE BCP
BIS: BIRO STATUS

TL/F/l04BB-B

FIGURE 4-9. BCP Remote Interface Configuration Register

[

I J I I I I I I

I

L

POR INTERrACE (0 INDICATES THAT POR IS COMPLETE)
RESERVED
3299 MODE
COAX EAB INSTALLED
MPA COMMAND (0 INDICATES COMMAND EXECUTION COMPLETE)
IBM INTERrACE MODE
DCA INTERrACE MODE
5250/3270

TLlF/l04BB-7

FIGURE 4-10. MPA-II Configuration Register

yields an average instruction cycle time of 160 ns, a maximum instruction cycle time of 212 ns and a maximum interrupt latency of 237 ns (excluding wait states due to PC accesses). Although such performance may seem excessive,
remember that the 3270 protocol requires a 5.5 JLs response time and that the newer controllers sometimes send
commands less than 10 JLs apart. These commands must
be executed in real-time, so for short periods of time, extremely high performance is required. In the MPA-II, the
BCP also has other real-time demands on it. For example,
the MPA-II requires the BCP to perform DCA or IBM 110
hardware emulation real-time in firmware. Furthermore, both
the controller and the PC are asychronous events which
can (and do) occur at the same time.

MPA-II Firmware Organization

The BCP firmware provides true 5250, 3270, and 3299 emulation support, as well as providing the intelligence behind
the PC interface. To do this, a software architecture radically different than the DCA or IBM systems was developed.
The real power of the BCP lies in its rich instruction set and
full featured CPU. Taking advantage of that power, the BCP
firmware is interrupt driven and task oriented. It is not truly
multi-tasking, although the firmware logically handles mUltiple tasks at once. The firmware basically consists of a round
robin task scheduler (called the Kernel) with real-time interrupt handlers to drive the system. Events that happen in
real-time, such as accesses by the PC or host commands,
schedule tasks to complete background processing. Realtime status and responses are developed and presented in
real-time.

Using Hewlet Packard's 16500A Logic Analyzer and
10390A System Performance Analysis Software, the
MPA-lI's worse case performance scenario was analyzed.
This scenario consisted of the MPA-II running 3270 with
EAB installed while performing IRMA file transfers using
DCA's FTCMS software. A special NO-OP routine was added to the MPA-II software in order to achieve 100% utilization of the BCP. The breakdown of relative activity is shown
in Table 4-4.

The BCP firmware uses a number of memory constructs
known as templates to handle its data structures. The primary construct is the D~P, or Device Control Page. The
DCP is a 256 byte block that contains all global system
variables. The DCP contains a map of which SCPs, or Session Control Pages are active. Each SCP is 256 bytes and
contains all variable storage for a particular session; 3270,
5250, or 3299. Each SCP has a corresponding screen buffer, and optionally an EAB buffer (there is no EAB in 5250
terminals).

TABLE 4-4. MPA-II Performance

MPA-II Performance

The BCP is running at 18.8696 MHz with no instruction
memory wait states and one data memory wait state. This

Coax Related Activity
IRMA Related Activity

9%
10%

Total Activity

19%

As is shown in Table 4-4, the BCP still has over 81 % of its
bandwidth free to do additional tasks.

2-18

Advanced Product Possibilities

mabie logic devices, this level of functionality was provided
on a single half-height PC XT / AT card. In an effort to convey the reasons behind specific decisions made in the hardware design, the design methodology is presented from a
"top-down" perspective.

With over 81 % of the BCP's bandwidth unutilized, possibilities for advanced 3270/3299 and 5250 devices with exceptional overall system performance, advanced features, and
compactness become both realizable and practical. For example, if a more efficient PC to MPA-II (BCP) interface was
developed which eliminated the need for the BCP firmware
to emulate I/O hardware, and additional tasks were off loaded to the BCP, such as Regen/EAB buffer to PC Screen
buffer translation, then the overall system performance of a
full featured MPA-II CUT mode terminal could rival that of
the most advanced IBM CUT mode terminals. Yet, the PC
memory requirements of such an emulator would be less
than that of the simplest PC emulator on the market today
because the PC software would only need to process keystrokes and copy the BCP's translated PC screen buffer
directly into the PC's screen buffer memory. Furthermore,
advanced features such as 3299 support could be included
without additional hardware costs. All this is possible using
the current MPA-II board without hardware modification because the MPA-Il emulates DCA and IBM interface hardware using BCP software. Adding this new interface into the
.
product requires only software changes.

Architectural Overview
The MPA-II hardware should be viewed as three conceptual
modules (see Figure 5-1 ), including:

1. BCP minimum system core, consisting of the BCP, instruction memory, data memory, clock, and reset logic.
2. PC interface including the PC and BCP memory decode
and interrupts.
3. Coax/twisted pair and twinax front-end logic and connectors.
These module divisions are denoted by the dotted lines
seen in Figure 5-1. The minimum system core is required,
with some modifications, for any design using the BCP. The
type of bus (PC, PS/2™ Micro Channel™, VME, etc.) and
transfer rate requirements dictate the interface logic, which,
for the MPA-II design, is optimized for the PC XT/AT I/O
channel. The front-end logic meets the physical-layer requirements of the 3270 and 5250 protocols.
Since much of the logic external to the BCP is implemented
in programmable logic devices (PALs), these conceptual
partitions overlap at the device level. Although the design
can be implemented in discrete logic, we chose to use programmable logic devices to shorten development time, decrease board real-estate requirements, and maintain maximum future adaptability. The schematic and the listings describing the logic embodied in the PALs are in the Hardware
Reference in Appendix A.

5.0 HARDWARE ARCHITECTURE
This chapter focuses on the hardware employed to satisfy
the goals of the MPA-II project. Designed to support both
the coax (3270/3299) and twinax (5250) protocols, the
hardware also allows emulation of the PC interfaces outlined in Chapter 2. By taking advantage of the BCP's power
and integrating the extra logic requirements into program-

FRONT END

BCP CORE

I

I
I
I
I
I
I

INSTRUCTION
RAt.I
Bk x 16

COAX/
TWISTED
PAIR
FRONT
END

~

TWINAX
FRONT
END

I+i-

~

32k x B DATA RAt.I
0

t t

BK

BCP
DPB344

~

18.86" .",

PC INTERFACE
I
I
I
I

j

DUAL PORT
MEMORY

DCA READ
REGISTERS
DCA WRITE·
REGISTERS

B MHz

~I

Inb

MPA-II REGISTERS
PC ACCESS REGISTER
(MPA_ACCESS)

AUXILIARY CONTROL
REGISTER (t.4PA DATA)

INTERFACE
UNIT:

I
I

IBt.I REGISTERS
32K

....

I
I
I
I
I

I

DUAL
""RY
I/O PORT
REGISTERS
PC IRQ INTERRUPT

Lr

~
~

IRMA
MAILBOX

I/o

220-227h

SMART ALEC
MAILBOX

I/o

22B-22Fh

IBt.I
REGISTERS,
DUAL PORT
. MEt.lORY

I/o 2DO-2DFh
t.lEt.lORY BKi
MOVEABLE
DEFAULT:
CEOO: 0000

MPA-II
COMMAND
INTERFACE

I/o

20B-2DCh
2DFh

I
I
I

64K

TLlF/l04BB-B

FIGURE 5·1. MPA·II Hardware Architecture

2-19

•

BCP Minimum System Core

The 18.8696 MHz clock is provided by the BCP's on-chip
clock circuitry and an external oscillator. This circuit, in conjunction with external series load capacitors, forms a
"Pierce" parallel resonance crystal oscillator design. The
oscillator is physically located as close as possible to the X1
and X2 pins of the BCP to minimize the effects of trace
inductances. The traces (0.05") are wider than normal. NEL
Industries makes a crystal specifically cut for the
18.8696 MHz frequency and is the recommended source for
these devices. This crystal requires a 20 pF load capacitance which can be implemented as 40 pF on each lead to
ground minus the BCP/socket capacitance and the trace
capacitance. A typical value for the BCP/socket combination capacitance is 12 pF. The wide short traces contribute
very little additional capacitance. We therefore chose a
standard value of 27 pF for the discrete ceramic capacitors
C24 and C25, placing them as close as possible to the crystal. The 5.60 pull up resistor tied to X1 is designed to improve oscillator start up under unusual power supply ramp
conditions. This is normally not a problem for PC power supplies so that the resistor could be omitted. The twinax clock
is provided by a standard 8 MHz TIL monolithic clock oscillator attached to the BCP's external clock input, XTCLK.

The BCP offers a high level of integration and many functions are provided on-chip; there is, however, a minimal
amount of external logic required. This core is comprised of
the BCP and the external logic require to support the clock
requirements, reset control, Harvard memory architecture,
and multiplexed AD bus (see Figure 5-2).
Clock Source
The coax and twinax protocols operate at substantially different clock frequencies (2.3587 MHz and 1 MHz, respectively), therefore two clock sources are required. The BCP
has the software-programmable flexibility to drive both the
CPU and transceiver in the following ways: the clock independently divided down to either or both sections, or by two
separate asynchronous clocks (utilizing the external transceiver clock input, XTCLK). To provide sufficient waveform
resolution, the transceiver must be clocked at a frequency
equal to eight times the required serial bit rate. This means
that an 18.8696 MHz (8 x 2.3587 MHz) clock source is required when operating in the 3270 coax environment and an
8 MHz clock (8 x 1 MHz) is needed for the 5250 twinax
environment. An 18.8696 MHz clock is also a good choice
for the BCP's CPU section.

The MPA-II runs the BCP at full speed, 18.8696 MHz
((DCR[CCSll = 0), with zero instruction (nIW) and one
data (now) wait states, resulting in a T-state of 53 ns. For a
system running the BCP at half speed, 9.45 MHz
((DCR[CCSll = 1), with zero instruction (nIW) and zero
data (now) wait states, the T-state would be 106 ns. The Tstate can be calculated using the following equation:

Therefore, in the coax mode, the transceiver and the BCP's
CPU share the same clock source. To maximize the available CPU bandwidth in the twinax mode, the 18.8696 MHz
clock source drives the CPU while a TIL clock is used to
drive the BCP's external transceiver clock input. Therefore,
in the twinax mode, the BCP's CPU and transceiver sections
operate completely asynchronously.

T-state = 1/(CPU Clock Frequency)
ADDRESS

IA

CI"!"RY

I

J

I

R7W

r'

/

....

/16

V

RESET

INSTRUCTION
MEMORY

(2) 8k x 8
6264

READ

READ

BCP

WRITE

WRITE

ADDRESS

/

A

/

ALE

CONTROL

~8

X2

AD

.1

"I

X-TCLK

XI

A

/

....

'16

r'

/

'8

osc.

, 16

/
'I

IWR

TL7705A

8 !.1Hz

....

DATA

..1
RESET

/

/

L

~
'I' 8

b.~:;i

LATCH
74ALS573

5[
ADDRESS/DATA

I

DATA
MEMORY

32k x 8

1\
r'

62256

!.1Hz

TL/F/10488-16

FIGURE 5·2. BCP Core

2-20

Reset Control

Instruction Memory

Power-up reset for the BCP consists of providing the debounced, active low, minimum pulse width specification of
ten T-states. Since the BCP powers upin the slowest configuration, a T-state is the period of the oscillator divided by
two, or 106 ns. The external logic must therefore provide a
minimum 1.06 JJ.s reset pulse to the BCP. The MPA-II design
incorporated two reset sources in addition to power-up including: the PC I/O channel reset· control signal (active
high), and an automatic reset if the digital supply voltage
drops by more than 10%.

A design goal for the MPA-II project dictated our choice of
static RAM for instruction memory, since the ability to softload code from the PC was necessary. Furthermore, to maximize CPU bandwidth we chose zero wait-state instruction
memory operation. When the hardware was designed, instruction memory requirements were estimated at 4k to 8k
words, therefore two 8k x 8-bit static RAMs were employed.
Instruction memory access ti~e requirements can be calculated using Parameter 1, the Instruction Memory Read Time,
Table 5-5, Instruction Memory Read Timing, of the Device
Specifications section of the DP8344B Data Book.

We chose the Texas Instruments TL7705A supply voltage
supervisor to monitor Vee and provide the minimum pulse
width requirement. This device will reset the system if the
digital 5V supply drops by more than 0.5V, and keep the
reset asserted until the voltage returns to an acceptable
level. The TL7705A will also assure that the minimum time
delay is met. The time delay is set by an external capacitor
and an internal current source. Since this time delay is not
guaranteed in the data sheet, we chose a 0.1 JJ.F ceramic
capacitor resulting in a typical 1.3 ms reset pulse width. A
0.1 JJ.F ceramic capacitor is connected to the REF input of
the chip to reduce the influence of fast transients in the
supply voltage. The active high PC reset signal is inverted in
the MPA-ILAC (MPA-II Auxiliary Control) PAL. The active
low output of the bipolar TL7705A is the MPA-II system reset and is pulled up by a 10k resistor for greater noise immunity.

(nlW

+ 1.5) T + C-19) ns

Where: nlW is the number 'Of instruction wait-states, and
T = 53 ns. Therefore the maximum access time is (0 + 1.5)
53 - 19 = 60.5 ns. For the MPA-II system running the BCP
at half speed (T-state = 106 ns), the maximumaccess time
is (0 + 1.5) 106 - 19 = 140 ns. Comparing both the half
and full speed maximum instruction memory access tim~
requirements, it is apparent that 55 ns RAMs are appropri:
ate. A complete instruction memory timing analysis is pro~
vid~d in Appendix B.
.
Reads of instruction memory by the remote system occur
through the BCP and look identical in timing to the local
(BCP) reads on the instruction bus.

Soft-Load Operation
The BCP. cannot modify instruction memory itself. Memory
is only written through the BCP (while the BCP is stopped)
from the remote system (PC), and is referred to as "softload" operation. Since the BCP has an 8-bit data path and a
16-bit instruction bus, instructions are read or written by the
PC in two access cycles; the first cycle accessing the low
byte of the instruction, the second cycle accessing the high
byte of the instruction and automatically incrementing the
Program Counter after the instruction has been accessed.
See the Remote Interface section of the DP8344B Data
Book for a complete description of instruction memory accesses.

Memory Architecture
The BCP utilizes separate instruction and data memory sections to overcome the single bus bandwidth bottleneck often associated with more conventional architectures. Instruction memory is owned exclusively by the BCP (remote
processor accesses to this memory occur through the BCP,
and only when the BCP is stopped); therefore, the entire
instruction memory/bus bandwidth is available to the BCP.
This architecture allows the BCP to simultaneously fetch
instructions and access data memory, thus load/store operations can be very quick. It is important to note, however,
that the instruction bus bandwidth does have some dependency on data bus activity. If a remote processor, for instance, is currently the data bus master, execution of an
instruction accessing data memory will be waited, degrading
BCP CPU performance.

The critical parameter for instruction writes is the minimum
write strobe pulse width of the RAM, which is about 40 ns
for most 8k x 8 55 ns static RAMs (55 ns RAM specifications are compared to the BCP minimum requirements since
it represents the worst case). The IWR (BCP Instruction
WRite output, active low) minimum pulse width is calculated
from Parameter 20 (IWR Low Time) in Table 5-22, Fast Buffered Write of IMEM, of the Device Specifications section of
the DP8344B Data Book:

The speed of both instruction and data memory accesses is
limited by memory access time. Since the BCP features programmable memory wait states, the designer has the flexibility of choosing memories strictly on a cost/performance
trade-off. No ex1ernal hardware is required to slow the BCP
memory access down (unless the maximum number of programmable wait states is insufficient, in which case the'
WAIT input of the BCP can be utilized). Instruction memory
access time has the biggest impact on system performance'
since every instruction executed involves an access of this
memory. Each added instruction wait state degrades zerowait state performance by approximately 40%. Load/store
operations occur less frequently in normal code execution,
therefore relatively slower data memory can often be utilized. Each additional data memory wait state degrades the
performance of a zero-wait state data access by about
33%.

(nlW

+

1)T -10ns

For soft-loads thafoccur after reset, the CPU clock is in the
POR half-speed state and the number of instruction and
data memory wait states is a maximum; therefore aT-state
is 106 ns and nlW equals 3; thus, IWR minimum pulse width
is (3 + 1) 106 - 10 '= 414 ns. Soft-loads that occur after
the BCP Device Control Register has been initialized to full
speed operation with no instruction wait states represent
the worst case timing of (0 + 1) 53 -.,. .10 = 43 ns, which is
still greater than the 55 ns RAM requirement of 40 ns.

2-21

Again, the numbers reveal the validity of the hardware design for local (BCP) accesses of data memory. Please see
the PC interface section for timing related to the remote
access. Also, an MPA-II timing analysis of both 106 ns and
53 ns T-states is provided in Appendix B.

Other parameters that must be considered are data setup
and hold times for the RAM. The BCP must provide valid
data on the Instruction bus before the minimum setup time
of the RAM and hold the valid data on the bus at least as
long as the minimum hold time. For the RAMs we considered, these times were 25 ns and 0 ns, respectively. Again,
looking at Table 5-22 (Parameter 19, I valid before IWR rising), we see that if valid data for the high byte of the instruction is present on the AD bus in time, the BCP is guaranteed
to present valid data on the Instruction bus a minimum of

Multiplexed AD Bus
The BCP's 8-bit data bus is multiplexed with the lower 8-bits
of the data memory address bus to lower pin count requirements. This necessitates de-multiplexing the Address/Data
bus externally. The timing of the ALE (Address Latch Enable) control signal relative to the AD bus is optimized for
use with a standard octal latch, therefore a 74ALS573 is
employed to provide separate Address and Data buses for
the system. The TRI-STATE buffers of the latch are enabled
by the BCP output LCL (active low) such that if a remote
access occurs this device will TRI-STATE.

(nlW + 1) T - 18 ns
before the rising edge of IWR. The BCP will hold that data
on the bus for a minimum of 22 ns afterward (see Parameter
18, IWR rising to I Disabled). To see that the minimum set
up time is met for both the half speed POR state and the full
speed operation, note that both (3 + 1) 106 - 18 ns =
406 ns (half speed) and (nlW + 1) 53 - 18 ns = 35 ns (full
speed) are greater than the minimum set up time of the
RAM which was 25 ns. Furthermore, the minimum hold time
of 22 ns, for both half speed and full speed, is greater than
the 0 ns required. Thus, successful operation is assured.
See the MPA-II timing analysis in Appendix B and the PC
interface section in this chapter for a discussion of AD bus
timing.

PC Interface
As mentioned earlier, the MPA-II supports the industry-standard interfaces associated with coax and twinax terminal
emulation. These include:
COAX:
IBM 3270 Emulation Adapter Interface
DCA Decision Support Interface (IRMA)
TWINAX:
DCA Smart Alec Interface
These interfaces share some common elements, but have
many differences as well. The IBM adapter employs an interrupt-driven interface, IRMA's PC interface is a polled implementation, and Smart Alec, while operating in a polled
environment, has the capability of interrupting the PC as
well. The IBM Emulation Adapter's control registers are
mapped into the PC's I/O space; the screen buffer is
mapped into the PC's memory space and is relocatable
(see Table 5-2). The two DCA interface occupy a contiguous block of PC I/O space only; there screen buffer(s) are
not directly visible to the PC. These architectures are explored in much greater detail in Chapter 6 of this manual.
Note than the MPA-II utilizes some of the IBM reserved registers for MPA-II usage. These MPA-II registers may be easily relocated by changing the MPA-II PAL equations.

Data Memory
A considerable amount of data memory was required for the
MPA-II design since the system supports multiple sessions
(see Chapter Six, MPA-II Software Architecture, for more
information). For this reason we specified 32K of 8-bit data
memory).
Data Memory Timing
Data RAM can be accessed by both the BCP and the remote system, part of the RAM appears to the remote system as dual-ported RAM via the Remote Interface logic of
the BCP. This memory can be both read from and written to
during BCP code execution. Designing in the data RAM is
therefore a more complicated procedure than selecting instruction memory. Using 53 ns for the MPA-II T-state and
one for now (number of data wait-states) as defined earlier,
we can verify the critical memory parameters by comparing
the results of the calculations against the RAM requirements. The 32K x 8, 100 ns static CMOS RAM minimum
requirements for the critical parameters are compared
against the BCP's minimum specifications and are listed in
Table 5-1. For a complete description of the BCP minimum
specifications, see Appendix B.

TABLE 5-2. PC Mapping of the MPA-II Board

I/O
IBM Interface:
Remote Interface
Control (RIC)
Decoded and Unused
MPA-II Configuration
Register
MPA-II Parm/Response
Register
IBM Control Registers

TABLE 5-1. Data Memory Timing
Parameter

RAM

BCp·

Address Setup
Chip Select to Write End
Access Time
Write Strobe Width
Data Setup
Data Hold

0
90
100
60
40
0

47.5
122.5
108.5
96
86
31.5

Address

Description

02DF*
02DD* - 02DE*
02DC*
2DB*
02DO-02DA
CEOOO
(Relocatable)

IBM Screen Buffer

-All units are In nanoseconds.

DCA DSllnterface:
IRMA
Smart Alec

'53 ns T-state with one data wait state.

'Reserved IBM register spaces.

2-22

Memory

0220-0227
0228-022F

decoded for several functions (see Table 5-3). The decoding sections feed into a control section that makes the final
decision on whether (or not) the current PC bus cycle is an
access of one of the emulated systems. It should be noted
that the type of emulation is not selectable; the MPA-II
board will respond to accesses of all of the PC addresses
detailed in Table 5-2. The MPA-II will not run concurrently
with any of the boards it emulates, or any other board that
overlaps with these same addresses.
The BCP's RIC (Remote Interface Control) register is
mapped into the PC's 1/0 space. The PC can always find
this register by reading 1/0 hex address 02DFh. The DCA
interfaces (IRMA and Smart Alex) occupy PC 1/0 addresses
220-22Fh. The IBM interface occupies PC 1/0 addresses
2DO-2DFh for register space, and a relocatable 8k block of
memory for the screen buffer(s).

The MPA-II design had to encompass all of these implementations. This was accomplished by taking advantage of
the underlying similarity of the interfaces as well as the
speed and flexibility of the BCP. We minimized chip count
and board space requirements through judicious partitioning
of the PC address decode while emulating in BCP software
the interface registers in data RAM. Refer to Figure 5-3 for
an overview of the hardware architecture employed in implementing the BCP/PC interface.
The PC address decoding is partitioned into sections that
first check for accesses to the relocatable memory block
and accesses to the 1/0 register addresses of the different
interfaces. These addresses are then translated into the
proper area of the BCP data memory. The BCP data memory map is divided in half, the lower 32k is contained in the
single 32k x 8 RAM described earlier, and the upper 32k is

TABLE 5·3. BCP Data Memory Map
Description

BCP Address (A15-0)

Auxiliary Control Register (mp~data)
PC Access Register (mp~access)
'IBM API Registers
DCA API (IRMA and Smart Alec)
PC Writes:
PC Reads:
BCP-Owned Memory Area
'Screen Buffer Area

AOOO-BFFF
8000-9FFF
7FDO-7FDF
7F20-7F2F
7E20-7E2F
2000-7E1F
0OOO-1FFF

°Dual-Ported RAM (Visible to Both BCP and PC)

2-23

PC 1/0 Address

2DO-2DF
220-22F

Relocatable

.

»
z

en
~
~

~

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

'OI:t
CD

Z

cs:
-

OE

READ

--

ViR

WRITE

....
ADDR

A

~
ALE

BCP

~

"

LATCH
74ALS573

.A

~'}.

".

...t.

I

AD
-

~

...t.

~"

DATA
RAM
32k ,x '8

-1\
-V

DATA

62256

LCL

XACK
WR-PEND
REM-RD REM-WR

-

CMD RAE

,

,

4Y .
.... ;r

PC I/o AND MEMORY
ADDRESS DECODE

t-

t-

~

~

BUS
CONTROL
..tt.

...t.

lOW

lOR

MEMR

MEMW

10CHRDY
DATA

~

~

~
'4

PC

ADDR

TL/F/10488-19

FIGURE 5·3. BCP/PC Interfaces

the MPA-II System, the base address of the memory segment must be loaded into the segment register (PC 1/0 address 2D7h) before the PC can access the IBM screen buffer area in dual-port RAM. This Segment Register is not accessible by the BCP. It is only accessed by a PC write to 1/0
location 2D7h. A PC read of the 1/0 address 2D7h accesses a corresponding RAM location which is written in the
same manner as all writes to the IBM 1/0 locations 2002DAh, as described next.

PC 1/0 and Memory Address Decode

The BCP CPU and Remote Interface units operate autonomously. Since the 1/0 registers are mapped into the BCP's
data RAM and the CPU has to know which register was
written to by the PC, external logic is provided that latches
the low six bits of the address bus during remote accesses.
The BCP can read this external register to identify which
emulated register has been modified and take the appropriate action.

Accesses to the 1/0 locations used by the IBM Interface
(200h-2DFh) and the DCA DSI Interfaces (220-22Fh) are
decoded as follows: PC address lines A 12-A4 are brought
into the MPA-II_PD (PC Address Decode) PAL-U9 for decode. PC address lines A 14-A16 and A 17 -A 19 are first
decoded with three input NOR gates, U5B and U5C, which
are in a 74ALS27. The outputs of both of these NOR gates
are then brought into the MPA-II_PD PAL for further decode. Note that PC address lines A 13 and AO-A3 are not
decoded at this point. A preliminary decision is made by the
MPA-II_PD Pal to indicate if the IBM or DCA interfaces are
being accessed. The outputs DCA-REG and IBM_REG

The relocatable memory segment location where the
screen buffer of the IBM interface is located is decoded in
discrete hardware consisting of the following components:
U15, a 74ALS521 magnitude comparator that compares the
PC memory address accessed against the stored value of
the relocatable memory segment address and asserts the
signal MMATCH (active low) when a match occurs; the Segment Register U16, a 74ALS574 containing the stored
memory address used to identify the memory segment of
the screen buffer block. The relocatable block of data memory defaults to base address CEOOO on the IBM adapter. In

2-24

indicate which, if any, emulated interface is being accessed.
These signals are used in conjunction with MMATCH, the
PC address lines A 13 and AO-A4, and the read and write
strobes of the PC in U7, the MPA-II_RD (MPA-II Register
Decode) PAL to make the final determination on the validity
of the access. If it is an emulated interface I/O register access, IOJCCESS will be asserted back to the MPA-II_PD
PAL. This PAL will in turn translate the access to the top of
the BCP data RAM where the I/O register page is located
(see Table 5-3). Note the differentiation in Table 5-3 between PC reads and writes for the DCA translation. This is
required to emulate the dual-ported register files used on
the DCA boards.

operates autonomously. This unis is very flexible and offers
a number of configurations for different external interfaces
(see the Remote Interface and Arbitration System chapter
of the BCP data book). We chose to use the Fast Buffered
Write/Latched Read interface configuration to maximize the
possible data transfer rate and minimize the BCP performance degradation by the slower PC bus cycles. Data is buffered between the PC and BCP data buses with U18, a
74ALS646, giving us a monolithic, bidirectional transceiver
with latches for PC reads and buffering for PC writes.
Rest Time Circuit
To support the newer high performance PC AT compatibles
entering the market, a rest time circuit is implemented on
the MPA-II. The purpose of this circuit is to prevent two
remote accesses made by a high performance PC from being mistaken as one remote access. (For a detailed descrip~
tion of BCP remote rest time, refer to the Remote Interface
and Arbitration System section of the DP8344A data sheet).

If the PC access is to the IBM screen buffer, IOJCCESS
will not be asserted out of the MPA-II_PD PAL. The MPA"_PD PAL will, when [C[ goes high on the remote access,
force A15 low and pass the buffered address lines A12-8
onto the data RAM. Address lines A 14 and A 13 are implemented through U8, MPA-II_CT (MPA-II Control Timing)
PAL. PC address lines A7-0 are buffered by U14, a
74ALS541 and passed onto the BCP data memory address
lines AD7 -0 when LCL switches high for the remote access. The data memory RAM's chip select, DMEM_CS, is
asserted on any remote access. If the BCP's LCL output
goes high, DMEM_CS will be asserted low; on,a local access, this signal will be asserted if the BCP's A 15 signal is
low (RAM occupies the lower half of the BCP's memory
map).

The rest time circuit is implemented in one PAL16RA8,
MPA-II_RI, U4. This rest time circuit implements all modes
except Latched Write and does not take advantage of the
increase in speed possible when CMD does not change
from one access to the next.
First, how the REM_ENABLE Signal controls remote accesses will be discussed. Then, a description of the operation of the rest time state machine in the PAL16RA8 will be
given.

This scenario for remote accesses works because RAM is
the only element external to the BCP that is visible to the
PC. If the PC is accessing the BCP (RIC, the Program Counter, or Instruction Memory), the BCP's READ/WRITE
strobes will not be asserted to the data RAM. On a PC access of the BCP's RIC register, for example, data RAM will
be selected and the CMD (CoMmanD) output of the MPA"_RD PAL will be asserted to the BCP, selecting the BCP's
RIC. No bus collision will occur on a read or data inadvertently destroyed on a write because the BCP will not assert
the external strobes on an internal register access.

The REM_ENABLE signal is produced in the rest time
PALRA8 and is low during rest time. After rest time is over
the REM_ENABLE signal goes high until the end of the
next access, when it once again goes low during rest time.
The signal REM_ENABLE is fed back into MPA-II_RD,
U7.
Through the rest time circuit, both REMRD and REMWR are
held high when REM_ENABLE = o. This prevents all remote accesses during rest time. When rest time is over
REM_ENABLE = 1 and then decodes of MEMW, MEMR,
lOW, and lOR control REMRD and REMWR respectively.

The MPA-II_RD PAL also combines the memory and I/O
read/write strobes to form the REMRD/REMWR strobes to
the rest of the MPA-II system. Since PC bus cycles can only
be validated by the assertion of one of these strobes, this
PAL makes the final decision on the validity of the bus cycle.
If the PC cycle is a valid access of the BCP system, this PAL
will assert RAE (Remote Access Enable), the BCP's chip
select. RIC, the output CMD, and the BCP's READ/WRITE
strobes will determine which part of the system receives or
provides data.

To describe the operation of the state machine, a state by
state description follows. When reading through the states
one should remember that the state machine can only
change states on the rising edge of CLK-OUT.

STATE: IDLE
This state is entered when a system reset occurs. In this
state REM_ENABLE = 1, and XACK controls the state of
PC_RDY.
The state machine will stay in this state until a valid remote
access starts (Le. RAE = 0). Then the state machine
moves to CYCLLSTART.

The PC IRQ interrupt for the IBM interface is set and
cleared by the BCP through U3, the MPA-IIJC (Auxiliary
Control) PAL. The interrupt is set from the BCP by pointing
data memory to an address in the range AOOO-BFFF (see
Table 5-3), and writing to this location with AD7 set high; it is
likewise cleared by writing with AD7 low, to this location. The
interrupt powers up low (deasserted) and can be assigned
to PC interrupts IRQ2, 3, or 4 by setting the appropriate
jumper (JP4-6).

NOTE: The Signal ~ is a full decode of a valid access by MPA-U_RD, U7.
If I1Al: is only an address decode, it alone would not indicate that a
valid access has started.

STATE:CYCLE--START
In this state, REM_ENABLE = 1 and XACK controls the
state of PC_RDY. The state machine will stay in this state
until the remote access ends, indicated by RAE = 1. Then
the state machine moves to WAIT1.

Remote accesses of the BCP are arbitrated and handled by
the Remote Interface and Arbitration System (RIAS) control
logic. The arbiter sequential state machine internal to the
BCP shares the same clock with the CPU, but otherwise

2-25

,...
~

CD

STATE: WAIT1

L.stat
-Emulation Mode
mp3.-mainstat
-Main Interface Control Bits, such as
Clicker and Alarm Status

2-37

•

I

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

CD

Z

ca:

mp<-pack, respectively. The basic functions of the cz-poll
routine are to decide if TT / AR or special status should be
returned to the coax controller and to handle the POLL
modifiers in the upper bits of the POLL command. These
modifiers include the terminal alarm and key click control.
The determination of which status to send is made after
checking mp~control for the MPA-STAT_PEND bit. If
MPA-STAT_PEND is asserted, the poll response variables have new status to send. If no status is pending,
TT / AR is sent. Next, the POLL command modifiers are applied
to the alarm and clicker status bits in mpLmainstat.
The POLL! ACK routine always responds with TT / AR. Next,
mp~control is checked to see if the pending status has
been polled by the coax controller..If not, the POLL! ACK
routine exits. Otherwise the pending status is cleared and
both mp~control and mp~auxcontrol are updated. Then
the poll response bytes, poliresp_lo and pollresp_hi, are
cleared.
Update_poll in the C~TASK.BCP module handles updating mp~control and mp~auxcontrol to reflect new status
conditions. This routine' updates the poliresp_lo and hi
bytes based on the priority of the status in mp~control
and mp~auxcontrol. POR is the highest priority condition
and outstanding status from EAB is the lowest.

2-40

Read Commands
All read type commands to the base are found in the
CLBASRD.BCP module. Each read type command is decoded by the receiver interrupt handler and vectored to the
appropriate cx-routine. The most basic read type command is cx-readata. This is invoked upon decoding the
READ DATA data stream command. The character pointed
to by the address counter is sent immediately. The addrcounter variable is incremented after the character is
sent.

through the routine and cumulative interrupt latency effects
may become significant. To address this, the dv_write routine always empties the receiver FIFO.
Other write type commands found in the CW_BASWR.BCP
module include the initial stubs for the foreground commands; SEARCH FORWARD, SEARCH BACKWARD, INSERT, and CLEAR. All these commands are initially decoded and vectored here in real-time. When their associated
parameters are received, the foreground commands are
scheduled through the sub-task communcation mailbox. All
the foreground commands cause the terminal to set
NOTJVAIL status (busy) in the status register. All four
respond with TT / AR to acknowledge reception of the command and parameters cleanly.
All the other write commands load variables on the SCP
corresponding to registers in the emulated terminal, or
cause some controlling action in the terminal. These include
the low and high bytes of the address counter, the mask
value for CLEAR and INSERT, the control registers and resetting the terminal. Cx-reset calls the hosLreset routine
that re-initializes the SCP variables to the POR state. The
screen buffers are not cleared. The START OPERATION
command causes a vector to the cx-start routine and returns TT / AR.

The cx-readmul routine is also found in the
CLBASRD.BCP module and is vectored to when a READ
MULTIPLE command is decoded. READ MULTIPLE expects multiple bytes of screen data to be sent within 5.5 p,s.
The response is initiated inside cx-rdmul. The routine has
two modes: 4 byte and 32 byte. The default mode is 4 byte
and is determined by the state of the LSB in the secondary
control register. Both modes use the variable addrcounter
on the SCP to determine both where to find the data to send
and how many bytes to send, up to the 4 or 32 byte limit. In
other words, 4 and 32 bytes are the maximum that will be
sent to the coax controller. The addrcounter is incremented
after sending each byte and terminates the response when
the two or five low order bits roll to zero. The transmit FIFO
on the BCP will hold up to three bytes. The Transmitter
FIFO Full flag, TFF, indicates when the transmitter's FIFO
has been loaded with those three bytes. Using this flag, the
read multiple routine begins by loading the transmitters
FIFO. Once TFF is true, the read multiple routine then alternates between checking the TFF flag and checking for PC
activity via the BIRO flag. If PC activity is detected, then the
appropriate fast BIRO routine is called to handle the PC
access. When. all the requested bytes have been sent, the
read multiple routine passes control to the receiver interrupt
handler exit routine. The remaining read type commands
are all handled similarly. Cx-rach and cx-racl respond
with the high and low bytes of the addrcounter variable,
respectively. Cx-rdid responds with the terminal ID byte.
Cx-rxid responds with TT / AR since it is not implemented.
Cx-rdstat responds with the staLreg variable. All these
commands check for LTA prior to responding. If LTA has
not occurred, then a protocol error is posted since read type
commands are required to be the last frame in a message
from a coax controller. The cx-rdid routine does additional
processing, however. The status conditions OPERATION
COMPLETE and FEATURE ERROR are cleared by reception of the READ ID command.

Foreground Commands
The foreground routines are all executed by cx-task when
the sub-task communication mailbox is filled with the appropriate value. These are tLinsert, tLclear, tLsforward
and tLsback. The routines are found in the
CLCOM.BCP module along with other local support routines.
EAB Commands
The EAB commands are found in the CLEAB.BCP module. Read and write type commands addressed to the EAB
feature are included here. The number of commands for the
EAB feature are small enough that they are logically
grouped together in one module, as opposed to the base
commands. Some of the more complex commands from a
performance standpoint are addressed to the EAB feature.
WRITE ALTERNATE, WRITE UNDER MASK, and READ
MULTIPLE EAB require the most real-time bandwidth of any
coax function.
The READ MULTIPLE EAB command is the same as its
base counterpart except for two features: it functions with
the EAB exclusively and, if the Inhibit Feature I/O step bit in
the Control register is set, then this command is ignored.
WRITE ALTERNATE receives a variable length stream of
data that is written with screen and EAB data alternately.
The WRITE UNDER MASK command uses data associated
with the command, the EAB byte pointed to by the cursor
register, and the EAB mask to modify the contents of the
EAB. The algorithm is quite strange and is best described by
the code. Please refer to eab_wum and dv_wum for specifics on the command implementation.

Write Commands
All write type commands to the base are found in the
CLBASWR.BCP module. Commands are decoded by the
receiver interrupt handler and vectored to this module at the
cx-addresses. Each write command has an associated
dv_stub for handling incoming data. The routines load the
DATA-VECTOR with the appropriate stub before exiting.
Cx-write and its data vector stub dv_write are responsible
for writing data into the screen buffer, setting the MPA-ll's
Buffer Being Modified semaphore and indicating the screen
buffer update in the MPA page change word. When the next
command is decoded, write mode will be terminated, the
Buffer Being Modified bit will be cleared, and the Buffer
Modified bit will be set. The dv_write stub is very critical in
that very large blocks of data may be sent to the device

IRMA Interface Overview
IRMA is a member of a family of micro-to-mainframe links
produced by Digital Communications Associates. It provides
the IBM PC, PC XT, or PC AT with a direct link to IBM 3270
networks via a coaxial cable connection to an IBM3174,
3274, or integral terminal controllers with type "A" adapters.

I

II

I

2-41

.....
~

CD

Z

<-read_line vector is set up for the
transmitter interrupt. The transmitter will in turn respond to
the System Unit with the contents of the regen buffer line.
The tw_read_dev_id_cmd command routine first decodes the device/feature address by comparing the field to
all defined logical devices and feature addresses. If there is
a match, it will jump to the appropriate command routine to
set up routines to respond with the device or feature ID.
Otherwise it will jump to the twJead_fid~oLinstall routine which will direct the transmitter to respond with zero
data.
There are three different flavors of the READ DATA command. The READ DATA command addressed to the Magnetic Strip Reader is documented in the 5250 PAl. Since the
MSR is not installed, the tw_read_dat~cmd command
routine sets up the t><-read_data routine address for the
transmitter interrupt and them jumps back to tw_cmd_ret.
The transmitter will in turn respond to the System Unit with
sixteen bytes of zero data, per the 5250 PAl. The other two
flavors of the READ DATA command are undocumented,
but supported by the IBM 5250 terminal emulation card. The
READ DATA command 08h directed to the Base device
simply returns the regen buffer byte that the address counter currently points to. An invalid register exception is posted if the address counter value lies outside the regen buffer
area. Then the t><-dat~vector is set to the t><-rd_dat~
base 08 routine address for the transmitter interrupt by the
tw_rd_dat~base08_cmd command routine. The READ
DATA command 18h is the other undocumented read command. It is very similar to the read immediate command
discussed below except that the address counter points to
the start of the response, the address counter is set to the
last byte of the response plus one, and that if no attribute is
found when the end of the regen buffer is reached, then an
attribute exception is posted. The tw_rd_dat~base18_
cmd sets up the t><-rd_dat~base18 routine address for
the transmitter interrupt, as well as the starting address for
the response. Note that the tw_rd_dat~base18_cmd
command routine actually determines the ending address
and then simply passes a count to the transmitter interrupt
as to how many bytes of the regen buffer to return. This
keeps the transmitter interrupt very simple.
The tw_read_limits_cmd transfers a display field of data
to the controller. The area of transfer is delimited by the
address counter and reference counter; therefore, tw_
read_limits_cmd first checks whether they lie within the
regen buffer and whether the reference counter is greater
than or equal to the address counter. If anyone of these
tests fail, the program will post an invalid register value exception and return to the session task. Otherwise, it will
pass the address counter and the byte count (reference minus address) to the transmitter interrrupt through four memory storage locations: tw_acLbeginlo, tw_acLbeginhi,
tw_acLendlo and tw_acLendhi, and then set up the
READ LIMITS routino. The transmitter will then fetch the
data from the regen buffer and send it to the System Unit.

WRITE Commands
All write type commands are grouped in the TW_
WRITE.BCP module. The entry names of the command routines are shown in Table 6-6. The PREACTIVATE WRITE
command routines, tw_write_imm_cmd and tw_write_
dat~cmd, are relatively simple. They just set the beginning
address of the operation to tw_acLbeginhi and tw_acL
beginlo. When the receiver interrupt gets an ACTIVATE
WRITE command, the receiver interrupt will put the data
into the regen buffer and determine the end of operation.
Processing of other write commands is done completely in
the foreground. We shall discuss each command in more
detail.
TABLE 6-6. Entry Names of Module tw_write
Command Name
WRITE CONTROL DATA
WRITE DATA and
LOAD CURSOR-base
WRITE DATA and
LOAD CURSOR-indicate
WRITE IMMEDIATE DATA
WRITE DATA

Command Routine
Entry Name
tw_write_cntl_cmd
tw_write_datCL.ld_cur_cmd
tw_write_datCL.lo_ind_cmd
tw_write_imm_cmd
tw_write_datCL.c.:md

The tw_write_cntl_cmd command pops the data byte following the command from the queue and puts it into the
control register location (tw_ctrI1) in the SCPo It also
checks the Reset Exception Status bit (bit 12) of the data
word. If the bit is set; the tw_clear_exception subroutine is
called. On the 3180-2 model terminal, the command may
have a second data byte. This routine checks bit 8 of the
first data byte, if it is set, one more byte will be popped out
and saved into tw_ctrl2 in the SCPo
The tw_write_dat~ld_cur_cmd command may also
have one or more data bytes associated with it. This routine
checks the first data byte to determine if it is in the range of
01 to OEh. If the data byte is not in this range, it is the only
data byte associated with the command and the routine just
writes it to the location pointed to by the address counter. If
the data byte is in this range, the routine will take the first
byte as the byte count and will pop that number of data
bytes from the queue and write them into the regen buffer.
During the write operation, the address counter will be incremented and checked for overflow. Storage exception status
will be posted if an overflow occurs. At the end of the operation, the program updates the cursor register to the value of
the address counter and loads up the action stack by calling
the tw_acLldr routine.
The tw_write_dat~to_ind.~_cmd command routine handles the WRITE DATA AND LOAD CURSOR command ad-

2-62

dressed to the indicators. It simply pops out the data byte
following the command and saves it in the memory location
tw_idctr_data in the appropriate SCPo It also notes the
transition direction of certain indicators and saves this information in the memory location tw_s~trans_ident for
Smart Alec.
The tw_write_imm_cmd routine first pops the starting address from the queue, then checks to see if it is valid. If it is
valid, it will be converted into absolute form and passed to
the receiver interrupt. The starting address entry of the action stack is also set up. The receiver will then pick up the
rest of the operation when the ACTIVATE WRITE command
is received.
The tw_write_dat, for information on the commands supported by MPADB. All the source code for
MPADB is included, see MPADB.C under the directory
DEBUG.

LD [Confi9-options ... ] [Options ... ] 
where the following notation applies:

The read and write data commands use an internal MPA-II
register called the MPA-II address counter, AC. This address counter works much like the Coax and Twinax address counters. The read command returns the byte pointed
to by the MPA-II address counter. The write command
places its data at the location pointed to by the MPA-II address counter. Whether or not the MPA-II address counter
auto-increments depends on the contents of the MPA-II
control register, see Figure 6-21. If the LSB is a one (1) then
the MPA-II address counter auto-increments, otherwise it
does not change.

Items enclosed in square brackets are optional.

< >

Items enclosed in triangular brackets are required.

ALL CAPS Items in all capital letters must be entered exactly as shown.
lower case Items in lower case letters indicate that desired
values should be substituted.
The Loader Options that apply to the "soft-loading" of instruction memory will be discussed in the section titled
"Soft-Loading
Instruction
Memory".
The
Loader
Confi9-options will be discussed in the section titled "Configuring the MPA-II". The Loader options that apply to the
selftest facility will be discussed in the section titled "MPA-II
Diagnostics". Examples demonstrating the Loader options
as well as the Loader defaults will also be provided in this
chapter.

If 1 THEN POST INCREMENT AC

The Loader is primarily written in Microsoft "C"5.1. The portion of the Loader code which performs the MPA-II Diagnostics has been written using National Semiconductor's
DP8344 BCP Assembler System as well as Microsoft's
Macro Assembler 5.1. All of the source code required for
the Loader is included on the distribution disks and is well
documented. For complete details of the implementation of
the Loader functions described in this section, refer to the
source code.

L..-L_.l...-.......L_.L.........L_ _ _ RESERVED
TL/F/10488-65

FIGURE 6-21. MPA-II Control Register
The Load Address Counter High, Load Address Counter
Low, Read Address Counter High, and Read Address Counter Low commands simply provide access to the 16-bit
MPA-II address counter. The Load Control Register allows
one to write to the 8-bit MPA-II control register.

The Loader provides two levels of help. The first level of
help is provided in a brief, single screen and is accessed by
typing LD with no options at the DOS system prompt. A
multi-screened, comprehensive help, is accessed by specifying the -h option of tlie Loader as shown below:
LD -h

The receiver error counter commands provide an easy, reli·
able way to read the MPA-II receiver error counters located
in the MPA-II Device Control Page, DCP. PC software that
uses these commands does not have to be updated if the
receiver errors are relocated in BCP data memory because
the BCP assembler will automatically update all references
to those error counters when the MPA-II microcode is re-assembled.

The Loader provides the following return values which are
useful when using the Loader in a batch file:

Finally, the Revision Number command allows the PC to
determine a) if the MPA-II running and b) what version of the
MPA-II microcode is the MPA-II running. This MPA-II command is used by the Loader when the Loader performs an
autoload (·a option). For the PC to read the revision number,
the REV command must be executed three (3) times. Each
returned byte's bits are defined as "xxcc dddd", where:

o

PASSED: Loader ran to completion as requested by the
user.

8

WARNING: Loader ran to completion, but not exactly as
requested by the user.

16 FATAL ERROR: Loader was unable to run to completion due to a fatal error.
Before the Loader implements any of its primary functions, the Loader will verify that the MPA-II printed circuit
board is present in the PC. This is done in two different
stages (see the Loader flow chart, Figure 7-1). First, the
Loader performs a non-intrusive test. This test entails
reading RIC a number of times while checking that the
value of RIC does not change and that the single step bit
of RIC is not set. The second test is intrusive, meaning
that it will affect the current state of operation of the
MPA-II, if the MPA-II is "alive" (more on this later). This
test checks for the presence of the MPA·II by writing various patterns to RIC, then reading RIC back to check that it
contains the correct value. For example, when the pattern
written to RIC has the single-step bit set and the start bit
cleared, the Loader expects to read back RIC with the
single-step bit cleared. If either of the instrusive or non-in-

dddd = a revision digit coded in Binary Coded Decimal,
BCD
cc
= a count showing the position of the revision digit
xx

[]

= reserved

For example, if calling REV three times returned (in hex) 20,
34, and 13, then the revision number is 3.04.
Last notes, unused commands and invalid parms are ig·
nored. In addition, commands with values less than 3F(hex)
are reserved for National Semiconductor. Feel free to define
commands with values greater than this if compatibility with
future MPA-II releases is desired.
7.0 LOADER AND MPA-II DIAGNOSTICS
The Loader is a PC program designed to load the MPA-II
with BCP microcode, start the BCP, and configure the
2-71

•

I

,...

.

~:

CD

Z


Filename: The file specified by the Filename contains the
BCP microcode to be soft-loaded into the MPA-II system.
The file format must be either BCX or FMT as described
earlier in this section. The - Band - F options can be
used to specify the file format as BCX or FMT, respectively. The file format can also be specified implicitly with
a file extension of .BCX for BCX format files or .FMT for
FMT format files. The Loader defaults to BCX format,
and, if no file extension is entered, the Loader will append
the appropriate file extension (i.e., either .BCX or .FMT).
A file with no extension can be loader by ending the file
name with a".".

Once the program counter has been initialized, the first instruction to be loaded into instruction memory is fetched
from the BCX or FMT format file specified by the user. The
instruction is then split into high and low bytes. This is necessary because the instructions are 16 bits wide, but they
must be latched into instruction memory through the BCP's
a-bit Data bus. The instructions are then loaded into the
MPA-ll's instruction memory by pointing RIC to instruction
memory and writing the low byte of the instruction followed
by the high byte of the instruction to dual port memory. The
program counter then auto-increments allowing the next instruction to be loaded. At any time, the program counter
may be modified, followed by instruction loads, to allow areas of instruction memory to be skipped. The remaining instructions are loaded in the same manner. When all the
instructions have been loaded, the system is started and
configured as requested by the user.

Options:

- 8- Specifies that the format of the file to be loaded is
binary or "BCX" format. This option provides the user
with the flexibility to load a file with an extension other
than .BCX as a BCX format file.
- F- Specifies that the format of the file to be loaded is
ASCII PROM or "FMT" format. This option provides the
user with the flexibility to load a file with an extension
other than .FMT as a FMT format file.
-N[ =] [I_addr]- Soft-loads the file into instruction memory beginning at the hex address, I_addr, but does not
start the MPA-II after the load. This feature can be useful
for debugging code using tools such as Capstone's monitor debugger, BSID. The load address, I_addr, defaults
to the hex address 0000.
- R[ =] [addr] [,r_addr]- Soft-loads the file into instruction memory beginning at the hex address I_addr, then
sets the program counter to r_addr and starts the BCP.

Interrupts can occur prior to the execution of the first instruction loaded into instruction memory if a BCP program
has been previously running in the MPA-II system with interrupts enabled. This is because the BCP uses a "dummy"
instruction to fetch the first instruction in instruction memory
and this "dummy" instruction does not disable interrupts.
The following is a scenario that describes this: the MPA-II is
running with a BCP program that has receiver interrupts enabled. The BCP is then stopped by clearing [STRT] in

2-73

The instruction address where the BCP begins running,
r_addr, defaults to the value of I_addr if r_addr is not
specified. I_addr defaults to the hex address 0000.

is possible for the BCP, but not for the DCA or IBM interfaces.) The terminal emulation interface which the MPA-II emulates is implemented by the MPA-II as described in Chapter
6. The Loader Configuration Options available to the user
will be discussed later in this section.

- U [ = ] [seg_id]- Enables dual port RAM in the PC memory map to the PC memory segment seg_id, where
seg_id is the upper byte of the PC memory segment.
This allows the MPA-II system to avoid PC memory conflicts. The Loader defaults to seg_id = CEo The value for
the seg_id must be on an even 8K boundary. Therefore,
seg_id = CD is invalid.

The Loader configures the MPA-II interface mode by writing
the configuration to the MPA-ll's Configuration Register.
Figure 7-2 shows the bit definitions for the MPA-II Configuration Register. The Loader writes to the configuration register immediately after starting the BCP's CPU. The MPA-II
configuration register is located at the PC I/O location
2DCh. Writing to this register will set the BIRO interrupt, and
thus, could lock out the PC if this feature has been activated
by previous BCP microcode. If the BCP's CPU is stopped
when the configuration register is written, then the next access of the BCP's memory (both dual port and I/O) made by
the PC could be held off indefinitely since the BIRO interrupt
can not be cleared by the BCP's microcode. Therefore,
when the Loader Option - N, as described in the previous
section, is selected, the Loader will not set the configuration
requested. (The Loader notifies the user that the configuration has not been set.) See Chapter 5 for further information
regarding BIRO and the PC lock out feature.

Examples using the file, MPA2.BCX, provided in the MPA-II
Design/Evaluation Kit are shown below. This file is a BCX
formatted file. The following examples all load the file
MPA2.BCX in the same format and demonstrate the - B
and - F options:
LD MPA2

Loader defaults to BCX
format and applies the .BCX
file extension.

LD MPA2.BCX

Loader determines that
format is BCX from the file
extension.

LD MPA2.BCX -B Loader determines that the
file format is BCX from
the -B option.
The following example demonstrates options which affect
how the file is soft-loaded:

The Loader uses the following handshaking protocol with
the BCP microcode to verify that the configuration has been
recognized by the MPA-II system. The Loader sets [PaR] in
the MPA-II Configuration register when it writes a configuration to the MPA-II Configuration Register. The Loader then
polls the MPS-II Configuration Register looking for [PaR] to
be cleared by the BCP microcode. This indicates that the
BCP microcode has processed the requested configuration.
The value in the MPA-II Configuration Register now contains the actual MPA-II interface configuration implemented
by the BCP microcode. If [PaR] is not cleared within a predefined time period, then the Loader reports a failure. If
[PaR] is cleared within the predefined time limit, the Loader
then compares the configuration implemented with the configuration requested by the user. If they are not the same,
the Loader reports the differences. This feature allows the
BCP microcode to determine valid configurations.
The Loader Configuration Options are discussed here.
Where applicable, these options can be combined to create
a customized configuration for the interface mode. Once
again, for convenience the ,Loader notation is repeated:

LD MPA2 -R=OOOO, 0126 -U=CC
In this example, the Loader soft-loads code through dual
port memory mapped at the PC memory address CCOOO,
from the BCX format file MPA2.BCX, starting at instruction
memory OOOOh. The Loader then sets the program counter
to 0126h and starts the BCP.
Configuring The MPA~II
The Loader configures the MPA-II terminal emulation interface mode as requested by the user through the Configuration Options. Configuring the MPA-II interface mode enables
the MPA-II to emulate the standard PC terminal emulation
interfaces including DCA's IRMA and Smart Alec interface
modes; and IBM's 3270 CUT and OFT interface modes. In
addition, the MPA-II extends the DCA and IBM 3270 modes
to support single session 3299. (Multi-session 3299 support

LD[Config_options ••• ] [Options ••• ] 

o

I I I I I I I I I'

IL

POR SYSTEM (0 INDICATES THAT THE POR IS COMPLETE)
RESERVED
3299 MODE
COAX EAB INSTALLED
MPA COMMAND (0 INDICATES COMMAND EXECUTION COMPLETE)
IBM INTERFACE MODE
DCA INTERFACE MODE
5250/3270
TL/F/10488-46

FIGURE 7-2. MPA-II Configuration Register

2-74

Conflg_options:

the correct version of microcode), the Loader will automatically load the BCP microcode and configure the MPA-II as
requested.

-C-The Loader clears the 5250/3270 bit of the MPA-II
Configuration Register. This selects a 3270 Coax-Twisted
Pair terminal emulation interface mode for the MPA-II interface.

The autoload function is useful when the Loader is used in a
batch file such as the AUTOEXEC.BAT file. If the PC is rebooted then the Loader will not destroy an ongoing terminal
emulation session. In addition, the error levels returned by
the Loader may be used to skip loading of the PC terminal
emulator if the MPA-II board is not present. The following is
an example of how to use the autoload function to implement the IRMA interface mode in a batch file:

-0-The Loader sets the DCA Interface Mode bit of the
MPA-II Configuration Register. This selects a DCA terminal
emulation interface mode for the MPA-II interface. The
5250/3270 bit of the MPA-II Configuration Register is used
to determine which DCA Interface mode, IRMA or Alec, is
actually set.

LD MPA2.BCX -M=IRMA -A
IF ERRORLEVEL 8 GOTO SKIPIRMA
E78 /R
:SKIPIRMA

-E-The Loader sets the EAB bit of the MPA-II Configuration Register. This selects the Coax Extended Attribute Buffer.
-I-The Loader sets the IBM Interface Mode bit of the
MPA-II Configuration Register. This selects the IBM 3270
terminal emulation interface mode for the MPA-II interface.

MPA-II Diagnostics
The Loader can run diagnostics to test the functionality of
the MPA-II hardware. These diagnostics are implemented
with the Loader and the BCP microcode; MPADIAG.BCX,
provided in MPA-II Design/Evaluation Kit. Note, the Loader
expects the file MPADIAG.BCX to be located in the same
directory as the file LD.EXE.

-T-The Loader set the 5250/3270 bit of the MPA-II Configuration Register. This selects a 5250 Twinax terminal emulation interface mode for the MPA-II interface.

-Xl =] -The Loader sets the 3299,

mux, bit of the
MPA-II Configuration Register. This selects 3299 coax
mode for the MPA-II interface. A decimal muX address is
required, and is passed to the MPA-II through the MPA-II
parm/response register, 2DBh, which is written prior to the
configuration being set, but after the BCP's CPU is started.

Figure 7-3, The MPA-II DiagnostiCS Flow Chart, provides a
good overview of the extent of testing performed by the
MPA-II diagnostics. For the actual implementation of these
tests, refer to the source code, which is well documented.
The first four diagnostic tests do not require BCP microcode. These diagnostics include testing RIC, the BCP's Program Counter, dual port memory, and instruction memory. In
all of these diagnostics, the Loader writes patterns to the
device under test, and expects to read the pattern back
from the device under test.

-Z-The Loader does not set the MPA-II Configuration Register. This option provides the flexibility to use the Loader to
load microcode other than the MPA-II microcode.
-M[ =] -This option allows for automatic configuration of the standard terminal emulation modes, i.e.,: DCA's
IRMA, DCA's Smart Alec and IBM's interface modes. Valid
MODE options are IRMA, IBM, and ALEC. These modes set
the MPA-II Configuration Register as follows: When the
mode is ALEC, the Loader sets the 5250/3270 bit and the
DCA Interface Mode bit in the MPA-II Configuration Register. For IBM mode, the Loader clears the 5250/3270 bit and
sets the IBM Interface Mode bit. For IRMA mode, the Loader clears the 5250/3270 bit, sets the DCA Interface bit and
the Coax EAB bit. This option also allows a hex value to be
entered directly into the MPA-II Configuration Register with
the < MODE> = CONFIG [ = ] < config > , where config is the
hex byte value to be loaded into the MPA-II Configuration
Register. The Loader defaults to configure the MPA-II interface mode for IRMA.

If all these initial tests pass, then the BCP microcode,
MPA-DIAG.BCX is soft-loaded into instruction memory and
the BCP is started. The Loader maintains ultimate control
over the diagnostics. This is accomplished through a handshaking protocol in which dual port memory is used to pass
codes to and from the Loader program and the BCP microcode program, MPADIAG.BCX. The Loader passes a start
code through dual port memory. The BCP microcode polls
dual port memory until it receives the start code. Once the
BCP microcode recognizes the start code, it executes the
next test in sequence. Each diagnostic test that the BCP
microcode executes writes codes into dual port memory to
indicate both the completion of the test and if the test
passed or failed. When appropriate, the BCP microcode
also indicates the failure mechanism. The BCP microcode
then polls dual port memory for the start code of the next
test. After the Loader writes a start code to dual port memory, it polls dual port memory for the code from the BCP
microcode indicating completion of the test. If the completion code is not received within a predefined time limit, the
Loader indicates a failure. If the completion code is received, the Loader then checks dual port memory to determine if the test passed or failed.

As an example of how to use the configuration options, lets
assume that the IRMA interface mode is required along with
coax 3299 support using the 3299 station address 3. The
following command lines all perform this task using the Configuration Options discussed above:

LD MPA2.BCX -M=IRMA -X=3
LD MPA2.BCX -C -D -E -X=3
For further flexibility, the Loader also provides an autoload
option, -a, to configure the MPA-II on the fly. The autoload
function is actually a "smart hotswitch", allowing the user to
change the MPA-lI's configuration without necessarily reloading BCP microcode. The autoload is "smart" in that the
Loader verifies that the MPA-II is "alive" before it changes
configurations. If the MPA-II is not alive (i.e., running with

Either of the two Loader Options, -s or -I, cause the Loader
to implement the MPA-II diagnostics. For convenience the
Loader notation is repeated and the options which apply to
the MPA-II diagnostics are discussed here:

LD[Config_options ••• ] [Options ••• ] 

2-75

•

I

Options:
-S[=][count[,lrq#]]- Selftest option of the Loader. Cycles through the MPA-II Diagnostics count (default
count= 1) times. The irq# refers to the PC IRQ interrupt
level to be tested. irq#=2 (default) tests the PC IRQ2
interrupt (Le., jumper JP6 connected). irq#3 tests the PC
. IRQ3 interrupt (Le., jumper JP4 connected). irq# =4 tests
the PC IRQ4 interrupt (Le., jumper JP5 connected).
-L-In addition to the selftest, the BCP's transceiver is tested by implementing an external Loopback feature. In
loopback, the BCP's receiver and transmitter are allowed
to be active at the same time. This allows the BCP to test
the external transmitter and receiver logic on the

MPA-II board. This test should not be performed when
the MPA-II is connected to a controller as it may cause
the controller to detect line errors.
The following examples demonstrate using the Loader options to implement the MPA-II diagnostics:
LD -S=3, 4 Cycles through the MPA-II diagnostics three
times (the external loopback test is not performed), the PC IRQ interrupt level 4 is tested.
LD-L-S
Cycles through the MPA-II diagnostics one
time, the loopback test is performed, and PC
IRQ interrupt level 2 is tested.

TLlF/10488-47

FIGURE 7·3. MPA·II Diagnostics Flow Chart
2-76

.

~

Z

APPENDIX A

0')
~

.....

HARDWARE REFERENCE

name:
description:

MPAII_AC - U3·
V3.02
auxillary control register

Provides line interface logic, including the coax and
twinax TX_ACT signals as well as the ex-or of /DATA_OUT and
DATA_DLY for the twinax logic.
AD6 -> COAX
(if AD6 10, COAX enabled)
IRQ output to pc is registered output of AD7 in this pal.
If
the BCP puts a 1 to AD7 during a write to this register, the
PC interrupt will be asserted.
The interrupt is cleared by
a BCP write with AD7 = O.

history:VO.1
VO.2
VO.3
VO.4
Vl.O
V3.00
V3.01

rosa
msa
rosa
msa
msa
wvm
wvm

12/13/87
12/16/87
12/31/87
02/27/88
04/07/88
08/10/88
09/07/89

V3.02

wvm

09/11/89

create
Abel version
added IRQ
u9 -> u4
u4 -> aux_ctl
eliminated manual reset
make signal names match
schematic and add test vectors
add BIRQ_EN function

COPYRIGHT NATIONAL SEMICONDUCTOR,

INC. 1987,1988,1989,1990

module mpaii_aux_ctl
title 'data register'
"declarations
TX_ACT
DATA_DLY
DATA_OUT
ADS
BCP_RSTPC_RST
AD6
AD7

COAX_ACT
TWX_ACT
act_swtch
not_used1
BIRQ_EN
IRQ
INTENSE
IRSTH,L,C,Z,X
outputs
r_outputs

mpaii_ac
pin
9;
pin
8;
pin
7;
pin
6;
pin
5;
pin
4;
pin
3;
pin
2;
pin
pin

11;
1;

pin
pin
pin
pin
pin
pin
pin
pin

19;
18;
17;
16;
15;
14;
13;
12;

device 'P16R4';

1,0, .C., .Z., .X.;
(COAX_ACT,TWX_ACT,INTENSE,IRST-);
(act_swtch,not_used1,BIRQ_EN,IRQ);

I

TL/F/l0488-48

2-77

II

I

,...
~

CD
I

Z

 u9a
u9a -> ctl_tim
fixed DATA_G- bus contention
(REMRD- -> REMWR-)
made revisions for MFAII:
1) eliminated unused chip
selects
2) removed bcp_rst, it was an
unused signal input
3) moved the pc_rdy signal to
MFA II_R I
4) added PRE_BIRO decode
5) added A13 and A14 decodes
for remote accesses
make signal names match
schematic and add test vectors
change name of DATA_CBA to
DATA_CAB and corrected equation
to use XACK instead of BCP_RD.
replace IODO with IBM_REG-,
simplified PRE_BIRO, and modified
out_A13 and out_A14 to include
IBM_REG-

COPYRIGHT NATIONAL SEMICONDUCTOR, INC. 1987,1988,1989,1990

module mpaii_ctl_tim
title 'PC iface - data control'
"declarations
device 'P20L10'j

mpaii_ct
XACK
REMRDREMWRIBM_REGRAE-

IO_ACCESSBCP RDBCP _WRLCLAlS,A14,A13

-

pin
pin
pin
pin
pin
pin
pin
pin
pin
pin

1;
2;
3;
4;

5;
7;
10;
11;
13;
9,6,8;
TL/F/l0488-50

2-79

•

I

~
~

r-----------------------------------------------------------------------------------------------,

CD

Z
<

pin
pin
pin
pin
pin
pin
pin
pin
pin
pin

DMEM_CSAREG_OCAREG_CLKout_A13
DATA_DIRDATA_CABDATA_Gout.;..A14
DREG_CLKPRE_BIRQ
H,L,Z,X
a_dec
outputs

oS:

14:
23:

15;
16;
17;
18;
19;

20:
21;
22;

1,0, .Z., .X.:
[A15 .. A13);
[DMEM_CS-,AREG..;..OC-,AREG_CLK-:-,DREG_CLK-,
DATA_DIR-,DATA_CAB-,DATA_G-,PRE_BIRQ);
[out_A14,out_A13);

equations
!DMEM_CS- .. LCL- t (!A15 & !LCL-);
lAREG_CLK- ... lIO_ACCESS-& LCL- & !BCP_WR-:
!AREG_CLK!LCL- & !BCP_WR- & (a_dec
~blOO);
!AREG_OC- c: !BCP_RD- &,lLCL- & (a_dec c: .. ~blOO);
out_A13
out_A14

.. lIO_ACCESS- t lIBM_REG-;
a
lIO_ACCESS- t !IBM_REG-;

lDATA_GlDATA_CAB":'
DATA_DIRenable outputs
enable bcp_oc

" pc access to set
" bcp access to clear

(! REMWR- & oLCL-) t

c:

(l RAE- & 1REMRD-) :

... ! REMRD- & ,! XACK & LCL-;

..

"Abus -> Bbus if rem_read cycle

lREMRD- & lRAE-:

~blllllll11;

LCL-:

TL/F/10488-51

2-80

name:
description:

V3.03
Upper PC address buffer and I/O decode

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

This PAL decodes the PC address lines A12-A4,PC_A19_16 ,PC_A16_14 and
IOACCESS-, REMRD- to provide the BCP A1S, A12-8 outputs and the
two partial decodes IBM, DCA indicating which system (IBM, or DCA)
is being accessed. Note that this scheme will not allow the MFAII board
to co-exist w/ any board using these PC I/O addresses. A1S, A12-8
are enabled by LCL- going high, indicating a remote access cycle .

..
..
"
"

If IOACCESS- and LCL- are as~erted, A12-8 are driven high to translate
the PC I/O access to the top page of the BCP's data RAM (7FFX - unless
it is a read of IRMA space, which is translated to 7FEX,) required to
emulate the dual-ported registers used on this board .

.. If the PC accesses the BCP's data memory, LCL- will be asserted but not
\\ IOACCESS-, in which case no translation will occur, and A12-8 will only
\\ be buffered onto the BCP's address lines.
IBM_REG- DCA_REG1
1
0
1
1
0
0
0

-type of decodenot an MFAII 10 decode
DCA 10 access (addresses 0022x)
IBM 10 access (addresses 002dx)
not an MFAII 10 decode

wvrn

12/13/87
12/16/87 Abel
12/17/87
02/27/88
03/03/88
03/12/88
04/07/88
08/10/89

V3.01

wvrn

09/07/89

V3.02
V3.03

wvrn
tas

09/11/89
10/25/89

history:VO.1
VO.2
VO.3·
VO.4
VO.5
VO.6
VI. 0
V3.00

msa
rosa

tjq
msa
rosa
rosa
rosa

COPYRIGHT NATIONAL SEMICONDUCTOR,

create
version
simulate
u3 -> u23
corrected address pin nums
edits for TN's irma code
u23 -> pad_ dec
made revisions for MFAII:
1) moved REMOTE decode to an
inverter
2) moved A13 and A14 decodes
for remote accesses to
MFAII_CT
3) include decode of PC_A14
through PC_A19 in 1000
and 1001
make signal names match
schematic and add test vectors
rearrange pins
renamed 1000 and 1001 to DCA_REGand IBM_REG-,respectively. Swapped
1000/1 pins. Added IBM_REG- to
A12-A8.

INC. 1987,1988,1989,1990

module mpaii-pad_dec
title 'PC iface - i/o decode'
TlIF/10488-52

2-81

~

0III::t
CD

:Z

«

r-----------------------------------------------------------------------------------------------.
"declarations
mpaii-pddevice 'P20L10';
PC_A12,PC_A11,PC A10
PC_A9,PC_AS,PC_A7
PC_A6, PC_AS, PC_A4
PC_A14 16
PC_A17 19

pin
pin
pin
pin
pin

1,3,4;
S, 6, S;
9,10,11;
lS;
16 ;

REMRDIO_ACCESSLCL-

pin
pin
pin

2;
7;
13;

A1S
A12, All
A10, A9, AS

pin
pin
pin

14;
17,lS;
19,20,23;

IBM_REG-,DCA_REG-

pin

21,22;

-

H, L, X, Z '"

low
pc a
pc_abuf
bcp_oc
bcp_a
io_dec

1,0, .X., .Z.;
"bll;
[PC_A12 .. PC_M];
[PC_A12 .. PC_AS];
[A12 .. AS];
[A12 .. AS];
[IBM_REG-,DCA_REG-];

equations
!IBM_REG!DCA_REG-

"h02d) & PC_A14_16 & PC_A17_19;
"h022) & PC_A14_16 & PC_A17_19;

A15

L;

A12
All
AIO
AS

PC_A12
PC_All
PC_AI 0
PC_A9
PC_AS

enable iO_dec
enable bcp_oc
enable A1S

low;
LCL-;
LCL-;

A9

f
f
f
f
f

!IO_ACCESS- f
!IO_ACCESS- f
!IO_ACCESS- f
!IO_ACCESS- f
(! IO_ACCESS-

!IBM_REG-;
!IBM_REG-;
! IBM_REG-;
!IBM_REG-;
& REMRD-)

f

! IBM_REG-;

TLlF/l0488-53

2-82

l>

z
I

0')

name:
description:
"
"
"
"
"

~

.....

MPAII_RD - U7
V3. 04
PC I/O register decode

Decodes the low 4 bits of the PC address
data memory, RIC, and SREG.
All four PC
strobes as well as the IBM_REG-/DCA_REG-,
signals are inputs. /RAE, CM /MEM_CS and
and /SREG_EN are outputs.
history:VO.1
VO.2
VO.3
VO.4
VO.5
VO.6
VO.7
V1.0
V3.00

msa
msa

msa
msa
wvrn

12/13/87
12/16/87
12/17/87
12/17/87
12/31/87
02/27/88
03/12/88
04/07/88
08/10/89

V3.01

wvrn

09/7/89

v3.02
v3.03

wvrn
tas

09/11/89
10/19/89

V3.04

tas

10/25/89

rosa

msa
msa
rosa

lines to
read and
PC_A13,
/REM_RD,

determine enables for
write
PC_AEN, REM_enable and /MMATCH
/REM_WR, /IOACCESS

create
Abel version
added pc_clk edit
to 2018
added bcp reset input
u4 -> u8
edited for tn's irma
u8 -> reg_dec
revisions made to MPAII:
1) eliminate PC_HI_OC and
PC_LO_OC
2) remove IO_MAYBE and replace
it with PC_AEN
3) input PC_A13 for address
decodes
4) input REM_enable to control
accesses during rest-time
5) Make RAE- a full decode of
every access
make signal names match
schematic and add test vectors
rearrange pin assignments
aaded PC_AEN to SREG_EN to
eliminate accidental clock of SREG.
Rename 1000, 1001 to DCA REG-,
IBM_REG-, repectively.' Swap 1000, 1001 pins. Changed
la_ACCESS to avoid SREG.

COPYRIGHT NATIONAL SEMICONDUCTOR,

INC. 1987,1988,1989,1990

module mpaii_reg_dec
title 'PC iface - i/o decode'
"declarations
mpaii_ rd
BCP RSTDCA REGPC_AEN
IBM REGPC A3,PC A2
PC A1,PC AD
PC_MEMRPC_MEMWPC IOR-

-

-

-

pin
pin
pin
pin
pin
pin
pin
pin
pin

device 'P20LB';

1;
2;
3;
4;
5,6;
7, B;

9;
10;
11;
TL/F/10466-54

2-83

•

.....
~

CD

Z•

ct

PC_IOWBCP_WRPC_A 13
REM_enable
MMATCH-

pin
pin
pin
pin
pin

13;
14;
16;
17;
23;

RAE-

CMD
IO_ACCESSSREG_EN-

pin
pin
pin
pin
pin
pin

22;
21;
20;
19;
18;
15;

CMD

ISTYPE

'feedyin' ;

REMRDREMWR-

H,L,X,Z

c

pc a
pc_hi
pc_lo
iO_dec
no_acc
dca_acc =
ibm_acc =
strobes =
outputs c

equations
lRAE-

1,0, .X., .Z.;
[PC_A3 .. PC_AD];
(pc_a -- "blllO);
(pc_a -- "bl101);
[IBM_REG-,DCA_REG-];
(io_dec -- "b11):
(io_dec c = "b10);
(io_dec == "b01);
[PC_MEMR-,PC_IOR-,PC_MEMW-,PC_IOW-];
[CMD, RAE- , REMWR- , REMRD- ,
IO_ACCESS-,SREG_EN-];

«lPC_IOR- f lPC_IOW-) & lno_acc& lPC_AEN& lPC_A13)
f (!MMATCH- & lPC_AEN & (!PC_MEMW- t !PC_MEMR-));

CMD
!REMRD-

..

!PC_IOR- & REM enable
t !PC_MEMR- & REM_enable:

!REMWR- =

!PC_IOW- & REM_enable
f !PC_MEMW- & REM_enable;
(!PC_IOW-) & (pc_a c = "b0111)&(ibm_acc)&(!PC_A13)&!BCP_WR~
&!PC_AEN f !BCP_RST-;

!IO_ACCESS-= lDCA_REG- & lCMD & lPC_A13 & lPC_AEN & (lPC_IOW- • !PC_IOR~)
• !IBM_REG- & !CMD & !PC_A13 & !PC_AEN & !PC_IOR• !IBM_REG- & !CMD & !PC_A13 & lPC_AEN & !PC_IOW- &
(!PC_AOf !PC_Al • !PC_A2):
" IO_ACCESS- is active if:
1) it's an IRMA register read or write
2) it's an IBM register read
3) it's an IBM register write except to xxx7 or xxxF.
xxx7 = Segment Register (U16)
xxxF
the BCP's RIC register
enable outputs =

"bll1l11 :

TL/F/l0488-55

2-84

name:
description:

V3.02
birq register and rest-time circuit

This PAL sends the BIRO interrupt to the BCP whenever a
IBM, IRMA or SMART_ALEC I/O access is made. The BIRO
interrupt is cleared when the BIRO register is read by
the BCP.
This PAL also contains all of the rest-time 'state machine
needed to pevent missed or inproper accesses.
The signal
REM_enable is fed back to MPAII_RD and prevents remote accesses
during rest-time.
The PC_RDY signal to the PC bus is also
controlled by XACK from the BCP and the rest-time state
machine.
history:V3.00
V3.01

wvm
wvm

08/10/89
09/07/89

V3.02
V3.02

wvm

tas

09/11/89
01/03/90

create
make signal names match
schematic
change BIRO decode
corrected some test vectors

COPYRIGHT NATIONAL SEMICONDUCTOR, INC. 1989-1990

module remote_interface-pal
title 'REST-TIME Compliance State Machine':
MPAII RI device

-

'P16RA8':

"inputs
PLXACK
CLK_OUT
BCP rst-

RAE-

unused_ 1
BIRO_EN
AREG_CLKPRE_BIRO
OE-

pin
pin
pin
pin
pin
pin
pin
pin
pin
pin

11:

pin
pin
pin
pin
pin
pin
pin
pin

19:
18:
17:
16:
15:
14:
13:
12:

1:
2:

3:
4:
5:
6;
7;
8;
9:

"outputs
PC_RDY-

qO
q1
q2
q3
wait_start
REM_enable
BIRO

"definitions
x,z,L,H

.x., . z., 0, 1:
TL/F/l0488-56

2-85

•

I

,..
'III:t

Cf

:i

equations
enable PC_RDY-

'" (!RAE-);

PC_RDY- .RE
PC_RDY-.PR

., 1;
., 1;
:= (!XACK
I qO & !RAEI !q2 & !RAEI q3 & !RAE-);

REM_enable.RE
REM_enable .PR

= 1;

., 1;

:- wait_start
!q3 & q2 & q1 ,

I RAE- ,

q3.PR
q3.C
!q3

'" !BCP_rst-;
.. CLK_OUT;
: .. (! qO &

I
I
f

q2.RE
q2.C

! q2
!qO & !ql ,
!qO , !q3 ,
!qO , !ql &

, ! q3
!RAE!RAE- & !wait_start
q2);

- !BCP_rst-;
.. CLK_OUT;

!q2

:- (!qO , !ql & !q2 & !q3
I !ql , q3 & !RAEI ql & !q2 , q3
I qO & !ql , q3);

ql.PR
q1.C

"" !BCP_rst-;

!ql

!qO;

.. CLK_OUT;

:.. (! qO

&

! ql

&

q3

I !qO & !q2 & q3
I qO & q2 & q3
I !qO & !ql & q2 , RAE-);

qO .PR
qO.C

.. !BCP_rst-i

!qO

:= (!qO & !ql
f !qO & !q2

., CLK_OUT;

TL/F/10488-S7

2-86

I BIRQ & ql & !q2 & q3
I !qO & !q3);

wait_start.PR
wait_start.C

u

c

q3 & !q2 & !ql & !qO;
RAE- & BCP_rst-;
!q3 & q2 & !ql & !qO;

BIRQ.RE
BIRQ.C

!BCP_rst-;
'"' AREG_CLK-;

!BIRQ

end rernote_interface-pal
TL/F/l0468-56

2-87

APPENDIX B

er than 60.5 ns (See Table B-1). Note that 55 ns Static
Rams will work for both full speed and half speed operation
of the MPA-II.

Timing Analysis
This section will first discuss the timing analysis used in seleting appropriate data memory and instruction memory for
use in the MPA-II system. Following this is a description of
the timing involved in interfacing the MPA-II system with the.

PC-XT/AT.
As discussed in Chapter 5-Hardware Architecture, the
BCP utilizes a Harvard Architecture, where the data memory
and instruction memory are organized into two independent
memory banks, each with their own address and data buses. The data memory is dual ported enabling both the BCP
and the remote processor to have access. The instruction
memory, on the other hand, is exclusively owned by the
BCP. Any remote processor accesses to this memory occur
through the BCP, and only when the BCP is idle.

TL/F/10488-59

FIGURE B-1. Instruction Memory Read Timing
TABLE B-1. Instruction Read Times, tl (ns)

The MPA-II system runs with the BCP operating at full'
speed, 18.8696 MHz ({ OCR [CCS] I = 0), with zero instruction (nIW) and one data (now) wait state resulting in a
T-state of 53 ns. For a system running the BCP at half
speed, 9.45 MHz ({ OCR [CCS] I = 1), with zero instruction
and zero data wait states, the T-state is 106 ns. The T-state
is calculated as shown:

Interfacing Memory to the DP8344B
As with most other aspects of a design, choosing memory is
a cost vs. performance trade off. Maximum performance is
achieved running no wait-states with fast, expensive memory. Slower, less expensive memory can be used, but waitstates must be added, slowing down the BCP. Therefore
one needs to choose the slowest memory possible while
still meeting design specifications. While this appendix assumes RAM is used for instruction and data memory, the
information is relevant to memory devices in general.

1

2

3

9.43
18.86
20.00

140
60.5
56

246
115.5
106

352,
166.5
156

458
219.5
206

Walt States nlw

tos = (nlW

+ 1)T -

18 ns

and the write pulse width tlW (parameter 20) is:

Instruction Memory Timing

tlW = (nlW

The BCP needs separate data and instruction RAM, each
with their own requirements. Instruction read time is the major constraint when choosing instruction RAM. Instruction
read time tl, as shown in Figure B-1, is measured from when
the instruction address becomes valid to when the next instruction is latched into the BCP. Instruction read time for
various clock frequencies and wait states are given in Table
B-1. Clock frequency and wait state combinations other
than those given in the table can be calculated using parameter 1 in Table 5-5, Instruction Memory Read Timing, of the
OP8344B data sheet:

+

0

However, instruction read time is not the only timing consideration when choosing instruction RAM. If the BCP is used
in an application which requires full speed softloading of
instruction RAM, there are two other timing relationships
which require evaluation. These are data setup time and
write pulse width (see Figure B-2). The relevant BCP timing
parameters are I valid before IWR rising, tos, and IWR low
time, tiW. The value of these timing parameters depends on
the Remote Interface mode of operation, which is Fast Buffered Write for the MPA-II system. Using Table 5-22, Fast
Buffered Write of IMEM, of the OP8344B datasheet, the
data setup time (parameter 19) is:

T-state = 1I(CPU Clock Frequency)

tl = (1.5

CPU
Clock Freq.
(MHz)

+ 1)T -

10 ns

Table B-2a and B-2b give various data setup times and write
pulse widths. Once again, the RAM chosen must have a
faster RAM data setup time and quicker RAM write strobe
width than the corresponding desired data setup time and
write pulse width. Thus, for the MPA-II system, the selected
Instruction RAM data setup time must be less than 35 ns
(Table B-2a), and the RAM Write Strobe Width must be less
than 43 ns (Table B-2b). In a typical application of the BCP,
softloading occurs after reset with the BCP operating with
CLK/2 and full wait states. Under these conditions the instruction read time value is the critical parameter for choosing the instruction RAM. In the MPA-II system, softloading
can also occur under the full speed conditions. First, softloading occurs upon a first load of instruction memory into
the MPA-II on power up. The MPA-II system can then be
reloaded without powering down. In this situation, the
MPA-II system is set to full speed. Therefore, the RAM selected must meet all the parameters listed thus far.

nlW) T - 19 ns

where tl is the instruction read time (ns), nlW is the number
of instruction memory wait states, and T is the 7-state time
(ns). The RAM chosen needs to have a faster access time
than the read time for the desired combination of clock frequency and wait states. Since the MPA-II system runs at full
speed (18.8696 MHz) with nlW = 0, the RAM chosen for
instruction memory must have an access time which is fast-

2-88

~

________________________________--JI
v///~/I////li///////////////i///4

~

__________________________________-JI

~----------------------------~I
I

\'----------

<

)

}

<

_______________________________________c:=:

IWR

TL/F/10466-60

FIGURE B-2. Data Setup Time and Write Pulse Width for Fast Buffered Write of IMEM
signal (IWR) from the BCP. Table B-3 compares the selected instruction memory RAM parameters with required parameters for the DP8344B.

TABLE B-2a. Data Setup Times,
tos (ns) for Fast Buffered
Write of Instruction Memory
CPU
Clock Freq.
(MHz)

0

1

2

3

9.43
18.86
20.00

88
35
32

194
88
82

300
141
132

406
194
182

Data Memory Timing

Walt States nlw

The MPA-/I system uses a 100 ns 32K x 8 CMOS Static
RAM to implement the system data memory.
The selection of data memory RAM requires the evaluation
of several important timing parameters. The RAM access
time, strobe width, and data setup times are three of the
most critical timing parameters and must all be matched to
equivalent BCP timing parameters. The RAM access time
should be compared to the data read time of the BCP.

TABLE B-2b. Write Pulse Width,
tlW (ns) for Fast Buffered
Write of Instruction Memory
CPU
Clock Freq.
(MHz)

0

1

2

3

9.43
18.86
20.00

96
43
40

202
96
90

308
149
140

414
202
190

Data read time, to, (Figure 8-3) is measured from when the
data address is valid to when data from the RAM is latched
into the BCP. Table B-4 gives data read times. The equation
for calculating data read time is similar to the one given for
instruction read time, and is taken from Table 5-3 (Parameter 14) of the DP8344B data sheet:

Walt States nlw

to = (2.5 + MAX (now, nlW - 1»T - 40
where to is the data read time (ns), now is the number of
data memory wait states, nlw is the number of instruction
memory wait states, and T is the T-state time (ns). Since the
lower address byte (AD) is externally latched, the latch
propagation delay needs to be subtracted from the available
read time when determining the required RAM access time.

The MPA-/I uses two 55 ns 8K x 8 CMOS Static RAMs for
instruction memory. The output enable is tied low and the
chip select enables are both enabled. Therefore, the RAMs
are always selected. The write enable is the instruction write

•
2-89

I

I

T-

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

~

TABLE B-3. Instruction Memory Read and Write Parameters

CD

Z

«

DP8344B BCP (Minimum)
Fujitsu RAM
(Minimum)
(55 ns)

Parameter

Read

55
40
25

Access Time (tl)
Write Pulse Width (tw)
Data Setup (tos)

Write

Full
Speed

Half
Speed

POR

60.5

140

458

Full
Speed

Half
Speed

POR

43
35

96
88

414
406

Measurements are in ns.
Full Speed is 53 ns T-state with nlw = 0 and now = 1.
Half Speed is 106 ns T-state with nlW

POR is 106 ns T-state with nlW

=

=

T1

=

0 and now

=

3 and now

O.

7.

TX

T2

relationships for a data memory access are shown in Figure
8-3 for a read and in Figure 8-4 for a write. Table 8-5 contains READ and WRITE pulse width values for various clock
frequencies and wait state combinations. The equation for
calculating READ and WRITE pulse widths are taken from
parameter 8 of Table 5-4 and parameter 12 of Table 5-3 in
the DP83448 data sheet:

T1

CLK-OUT~
I

IA

===WWd/////~

:=:::x

x:::

ALE~
AD

ij/////////,

ADDR

tR = tw = (1 + MAX (now, nlW - 1»T - 10
where tw (= tR) is the pulse width (ns), now is the number
of data memory wait states and nlW is the number of instruction memory wait states. The RAM chosen should require shorter strobe widths than the pulse width listed in
Table 8-5 for the desired combination of clock frequency
and wait states. Thus, for the MPA-II system, the RAM
strobe width must be shorter than 96 ns.

)--~

A /'//////// / /.

READ

The last important consideration when choosing the data
memory RAM is setup times into the 8CP on a read and into
the RAM on a write. In a typical application, READ is connected to the output enable pin on the RAM. When reading
from the RAM, the data becomes valid when READ falls
and activates the RAM outputs. The data must become valid fast enough to meet the setup time required by the 8CP.
This setup time tSR, as shown in Figure 8-3, is listed in
Table 8-6 for various combinations of clock frequencies and
wait states. Using Table 5-3 (parameter 7) of the DP83448
datasheet, tSR can be calculated as follows:

TL/F/104BB-61

FIGURE B-3. Data Memory Read Timing
TABLE B-4. Data Read Time, to (n5)
Wait States
Max (now, nlW - 1)

CPU
Clock Freq.
(MHz)

0

1

2

9.43
18.86
20.00

225
92.5
85

331
145.5
135

437
198.5
185

tSR = (1 + MAX(now, nlW - 1»T - 22
where tSR is the maximum time allowed for the data to become valid (ns), now is the number of data memory wait
states and nlW is the number of instruction memory wait
states. The data memory RAM used needs to have a faster
output enable time than the time listed in Table 8-6 for the
desired combination of clock frequency and wait states.

An octal latch (74ALS573) is used in the MPA-II system to
demultiplex and latch the address. There is a delay associated with latching of the address and it is dependant on the
latch considered. The latch' enable is the ALE signal from
the 8CP. While ALE is high, the outputs follow the inputs.
When ALE falls the address is latched on the outputs. The
latch has a propagation delay of 20 ns which corresponds to
the time it takes for the data on the inputs to reach the
outputs.

When writing to data memory, the data must be valid in time
to meet the setup time requirement of the RAM. In a typical
application, this time is measured from the data becoming
valid out of the 8CP to WRITE going high. Figure 8-4 shows
this timing relationship, tow, and Table 8-7 contains times
for various combinations of clock frequencies and wait
states. The equation for calculating this time is from Table
5-4 (parameter 4) of the DP83448 datasheet.

Therefore, for the MPA-II system the RAM access time is:
tacc = to - 20 ns
Using Table 8-4, the required RAM access time can be cal.
culated to be:

tow = (1 + MAX(now, nlW - 1»T - 20
where tow is the minimum data valid time before WRITE
rising (ns), now is the number of data memory wait states
and nlW is the number of instruction memory wait states.
This time should be at least as long as the data setup time
of the RAM.

tacc = 145.5 - 20 = 125.5 ns
for full speed operation with one wait state.
Another important timing parameter is the RAM strobe
width. The 8CP READ and WRITE outputs will typically be
used to strobe data out of and into the RAM. The signal

2-90

TABLE B·S. READ and WRITE Pulse Width, tR = tw (ns)

Table B-8 compares the BCP data memory requirements
with the selected data RAM.

Walt States
Max (now, nlW - 1)

CPU
Clock Freq.
(MHz)

o

1

2

9.43
18.86
20.00

96
43
40

202
96
90

308
149
140

PC System
The MPA-II expansion board is an 8-bit board, which runs in
a PC-XT, PC-AT or compatible system. The timings of the
two systems have many differences, but the 8 MHz PC-AT
bus specifications are more stringent than those of the
4.77 MHz PC-XT bus. So, this evaluation will cover the
8 MHz PC-AT.

TABLE B·6. Data Read Setup Time, tSR (ns)

The critical timing in this system will be the amount of time
the MPA-II will have before it must deassert 10-CHRDY low
in order to extend the access cycle by adding wait states.
By deasserting 10CHRDY the MPA-II can extend a read or
write cycle until the correct data is available or written, respectively.

Wait States
Max (now, nlw - 1)

CPU
Clock Freq.
(MHz)

0

1

2

9.43
18.86
20.00

84
31
28

190
84
78

296
137
128

As stated before, the MPA-II is an 8-bit board so both the
1/0 and memory cycles will have 8-bit access cycles. In the
PC-AT, 8-bit 1/0 and memory cycles have the exact same
timing. There is always one command delay (0.5 T-states)
from the time ALE falls until the command strobe (lOR,
lOW, MEMR or MEMW) goes active low. Four programmed
wait states are inserted, forcing the command strobe to stay
active low for a minimum of 4.5 T-states. Figure 8-5 shows
the relationship between ALE, the command strobes and
the bus cycles T-states.

TABLE B·7. Data Write Valid Time, tow (ns)
Wait States
Max (now, nlw - 1)

CPU
Clock Freq.
(MHz)

0

1

2

9.43
18.86
20.00

86
33
30

192
86
80

278
139
130

For the following calculations the original IBM PC-AT schematic has been used. This schematic can be found in IBM
Technical Reference Personal Computer AT.

Instruction RAM has the greatest affect on execution speed.
Each added instruction memory wait state slows the BCP by
about 40% as compared to running with no instruction
memory wait states. Each added data memory wait state
slows a data access by 33% as compared to running with
no data memory wait states. RAM costs are coming down,
but higher speed RAM still carries a price premium. So there
is the trade-off.

In the PC-AT, both ALE and all of the command strobes are
controlled by an 82288 bus controller. The command
strobes will go active a short delay time after the 82288
inserts the command delay. (The delay time for an 8 MHz
82288 is T (delay 82288) = 25 ns.) After leaving the 82288,
MEMR and MEMW pass through a 74ALS244 before reaching the expansion bus.

TABLE B·8. Data Memory Read and Write Parameters
Hitachi
HM62256
RAM
(Minimum)

Parameter

100
60
40

Access Time (tace>
Write Pulse Width (tw)
Data Setup (tDW)
Output Enable (tSA)

DP8344B BCP (Minimum)
Read

Write

Full
Speed

Half
Speed

125.5

205

84

Full
Speed

Half
Speed

96
86

96
86

84

Measurements are in ns.
Full Speed is 53 ns T·state with nlw

= 0 and nDW = 1.

Half Speed is 106 ns T-state with nlw = 0 and nDW

IALE

=

O.

FIRST
SECOND
THIRD
FOURTH
STATUS
COMMAND
PROGRAMMED
PROGRAMMED
PROGRAMMED
PROGRAMMED
STATE ---I- STATE - I - WAIT --I- WAIT --I--- WAIT --I- WAIT-STATE
STATE
STATE
STATE

~~~--~~--+-~--~

CMD

TLlF/l04BB-63

FIGURE B·S. Relationship of ALE, CMD, and Bus Timing

2-91

So, T(delay 82288) + T(delay 74ALS244) is equal to the
maximum amount of time from the end of the command
delay until the command strobe reach the MPA-II.
T(strobes valid) = T(delay 82288)
= 25 ns + 10 ns
= 35 ns

+

As a final note, the reader should be aware that most faster
PC-AT's still run their expansion buses at 8 MHz to remain
compatible. This means that the timing on these expansion
buses should remain the same as those on any other PC-AT
no matter how fast the CPU runs. Thus, the MPA-II will run
in all PC-AT's with 8 MHz expansion buses that follow the
original 8 MHz PC-AT's expansion bus design. In fact, as
can be seen above, the MPA-II will run with bus speeds
faster than 8 MHz.

T(delay 74ALS244)

In order to add wait states any expansion board must deassert 10CHRDY low in time for it to propagate through a
74ALS32, then through a 74F74 (from preset to output), and
then setup to the 82284 by the end of the third programmed
wait state (which is also the beginning of the fourth wait
state). If the 10CHRDY signal also meets the 82284's hold
requirement, then a fifth wait state will be added. Then
again, at the end of the fourth wait state if 10CHRDY is still
deasserted low a sixth wait state will be added. This will
continue until 10CHRDY is asserted high. On the other
hand, if 10CHRDY is deasserted too late (Le. after the end
of the third programmed wait state), then the cycle will end
without adding any additional wait states.

APPENDlXC
Filter Equations
Derivation of Filter
Equations for the Combined
Coax/Twisted Pair Interface

The basic operation of the filter can be understood by studying the figure below. The actual circuit includes the effects
of the terminating resistors, DC isolation capacitors, and the
transformer; furthermore, a thorough investigation of bandwidth and gain characteristics should employ the use of a
circuit simulator such as SPICE.

The following is a calculation of the minimum amount of
time before the end of the third wait state that 10CHRDY
must be deasserted to add wait states:
T(add wait) = T(delay 74ALS32 H-L)
T(setup 82284)
= 12 ns

+

25 ns

+

+

T(74F74 P-Q)

+

0 ns

37 ns
The maximum amount of time an expansion board has before it must deassert 10CHRDY (to add wait states) from the
command strobe being valid is:

TL/F/10488-64

T(Max 10CHRDY) = 3.5T - T(st'robes) - T(add wait)

Simple loop analysis yields the following transfer function
for the filter:

where, T = 125 ns in a 8 MHz expansion bus. Therefore,
T(MAX 10CHRDY = 3.5 (125 ns) - 35 ns - 37 ns
= 365.5 ns

1

2_R.!:.2C....!2:.....(S_)_~----

Vo = _ _-=-____
Vs
s2 +s [ R1C1 + C2 (4R2 + 2R1)] + - -1- 2R1R2C1C2
R1 R2C1C2
If it is assumed R1 > > R2 and C1 > > C2, we can then
simplify the equation and solve for the poles to obtain the
following form:

This means that the MPA-II has 365.5 ns to deassert
10CHRDY (if wait states are needed) from the time it receives a valid remote access command strobe.
On the MPA-II, the command strobes are buffered by a
20L8B PAL tothe BCP's REM-RD and REM-WR inputs. The
BCP will respond to a valid remote access by deasserting
XACK a delay time after receiving a valid remote access
REM-RD or REM-WR strobe. XACK controls 10CHRDY via
a 16RA8 PAL.

III

41T

The maximum delay from receiving a valid remote access
command strobe to deasserting 10CHRDY follows:
T(MPA-IIIOCHRDY) = T(delay 20L8B) + T(XACK) 1 +
T(delay 16RA8)
= 15 ns

+

26 ns

+

~ ~ ± ~~ -4 (R,R;C,C,)

After splitting the above equation to solve each pole and
using a binomial expansion to simplify each pole's equation,
we get:

35 ns

1
fl::::: --::::: 20kHz
1TR1C1
(vs. 30 kHz from simulation and testing)

= 76 ns

The MPA-II will deassert 10CHRDY a maximum of 76 ns
after it receives a valid remote access command strobe.
One should notice 76 ns is much less than the maximum
allowable time of 365.5 ns.

1

fh::::: ---::::: 40 MHz
41TR2C2
(vs. 30 MHz from simulation and testing)

2-92

Microsystem Components Handbook-Volume I (230843·
002), Intel Corporation, Literature Department, 3065.Bowers
Avenue, Santa Clara, CA 95051.

APPENDIX D

References
DP8344B Biphase Communcations Processor Data Sheet,
National Semiconductor, 2900 Semiconductor Drive, P.O.
Box 58090, M/S 16·197, Santa Clara, CA 95052·8090, Ver·
sion 4.2.
DP8344 Biphase Communcations Processor Assembler
User Manual (DP8344BSM·M5) National Semiconductor,
2900 Semiconductor Drive, P.O. Box 58090, Santa Clara,
CA 95052·8090, February 1988.
DP8344 Biphase Communications Processor Application
Notes, National Semiconductor, 2900 Semiconductor Drive,
P.O. Box 58090, Santa Clara, CA. 95052·8090.
IBM PC 3270 Emulation Program Entry Level Version 1.10
(84X0280), International Business Machines Corporation,
Department 52Q, Neighborhood Read, Kingston, NY 12401,
1981.
IRMATM User's Manual (40·97910·001), Digital Communica·
tions Associates, Inc., 1000 Alderman Drive, Alpharetta, GA,
30201.
Smart Alec™ User's Guide (40·98100·007), Digital Com·
muncations Associates, Inc., 1000 Alderman Drive, Alphar·
etta, GA 30201.
Guide to Operations Personal Computer AT (1502241), In·
ternational Business Machines Corporation, P.O. Box
1328·C, Boca Raton, FL 33432, 1984.
Guide to Operations Personal Computer XT (6936810), In·
ternational Business Machines Corporation, P.O. Box
1328·C, Boca Raton, FL 33432, 1983.
IBM 3270 Connection Technical Reference (GA23·0339·
02), Information Development, Department 802, P.O. Box
12195, Research Triangle Park, NC 27709, 1988.
IBM 3174/3274 Control Unit to Device Product Attachment
Information, International Business Machines Corporation,
Armonk, NY 10504, October 1986.
IBM 3274 Control Unit to Distributed Function Device Prod·
uct Attachment Information, International Business Ma·
chines Corporation, Armonk, NY 10504, June 1985.
5250 Information Display System to System/36, System/
38, and Applications System/400, System Units Pr~duct At·
tachment Information, International Business Machines Cor·
poration, Armonk, NY 10504, October 1988.
Technical Reference Personal Computer A T (502243), In·
ternational Business Machines Corporation, P.O. Box
1328·C, Boca Raton, FL 33432, 1984.
Technical Reference Personal Computer XT (6936808), In·
ternational Business Machines Corporation, P.O. Box
1328·C, Boca Raton, FL 33432, 1983.
abe/TM(880004), Data I/O Corporation, 10525 Willows Road
NE, P.O. Box 97046, Redmond, WA 93073·9746,1988.
BRIEFTM User's Guide, Underware, Inc., 84 Gainborough
St., Suite 103W, Boston, MA 02115, June 1987.
BSID, Capstone Technology, 47354 Fremont Blvd., Fre·
mont, CA 94538.
DP8344 BCP Demonstration/Development Kit, Capstone
Technology, 47354 Fremont Blvd., Fremont, CA 94538.

8088 Microprocessor Data Sheet
8288 Bus Controller Data Sheet
80286 Microprocessor Data Sheet
82288 Bus Controller Data Sheet
8284 Clock Generator and Driver Data ,Sheet

iAPX 86/88, 186/188 User's Manual Hardware Reference
1985 (210912·001), Intel Corporation, Literatur~ Distribu·
tion, Mail Stop SC6·714, 3065 Bowers Avenue, Santa Clara,
CA 95051.
iAPX286 Hardware Reference Manual 1983 (210760·001),
Intel Corporation, Literature Department, 3065 Bowers Ave·
nue, Santa Clara, CA 95051.
S/LS/TTI Logic Data Book (1985-400050), National Semi·
conductor, 2900 Semiconductor Drive, Santa Clara, CA
95051.

Contacts
For further information on the MPA·II or the DP8344 BCP
contact:
BCP Product Marketing
National Semiconductor
2900 Semiconductor Drive
Mail Stop: D3800
Santa Clara, CA 95052·8090
Phone: (408) 721·5000
For Technical Information on the MPA·II or the DP8344 BCP
contact:
DATACOM Applications Support
National Semiconductor
1111 W. Bardin Road
Mail Stop: A2190
Arlington, TX 76017
Phone: (817) 468·6676
Fax: (817) 468·1468
For requesting IBM Product Attachment Information manu·
als (PAl's) contact:
Industry Relations Dept.
IBM
2000 Purchase Street
Purchase, New York 10577
Phone: (914) 697·7227
For ordering IBM manuals other than PAl's contact your
local IBM Sales Office.
For ordering products from Azure Technologies contact:
Azure Technologies, Inc.
38 Pond Street
Franklin Massachusetts 02038
Phone: (508) 520·3800
Fax: (508) 528·4518
For ordering products from Capstone Technology contact:
Richard L. Drolet
Capstone Technology
47354 Fremont Blvd.
Fremont, CA 94538
Phone: (510) 438·3500

II
I

2·93

~

~

CD

Z

«

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

For ordering products from Hewlett Packard contact your
local Hewlett Packard Sales Office:

For ordering products from Relay Communications, such as
Relay Gold, contact:
Relay Communications, Inc.
41 Kenosia Avenue
Danbury, CT 06810
Phone: (800) 222-8672

For ordering products from DCA contact:
Digital Communications Associates, Inc.
1000 Alderman Drive
Alpharetta, Georgia 30201
Phone: (404) 740-0300
For ordering products from Simware, such as SimPC Master, contact:

For ordering products from Fischer International Systems,
such as Xeus, contact:

Simware, Inc.
20 Colonnade Road
Ottawa, Ontario
Canada K2E 7M6
Phone: (613) 727-1779
Fax: (613) 727-9409

2-94

Fischer International Systems Corp.
P.O. Box 9107
4073 Merchantile Avenue
Naples, Florida 33942
Phone: (813) 643-1500

A Combined Coax-Twisted
Pair 3270 Line Interface for
the DP8344 Biphase
Communications Processor

National Semiconductor
Application Note 624
Tim Davis and David Weinman

This paper will discuss the design of an improved 3270
transceiver interface for the National Semiconductor
DP8344 combining increased error-free performance and
the ability to communicate over both coax and twisted pair
transmission lines. At this date, the largest installed base of
terminals is the 3270 protocol terminal which primarily utilizes coax cabling. Because of phone wire's easy accessibility and lower cost, twisted pair cabling has become popular
among end users for new terminal installations. In the past,
baluns have been used to augment existing coax interfaces,
but their poor performance and cost considerations leave
designers seeking new solutions. In addition, the integration
of coax and twisted pair on the same board has become a
market requirement, but this is a considerable design challenge. A brief summary of the interface concepts, a discussion of the proposed design, and a description of the results
are included in this application note.

An effective receiver design must address each of the
above concerns. To counteract the effects of line filtering
and noise, there must be a large amount of jitter tolerance.
Some filtering is needed to reduce the effects of environmental noise caused by terminals, computers, and other
proximate circuitry. At the same time, such filtering must not
introduce transients that the receiver comparator translates
into data jitter.

CONCEPTS

Coax cable is normally driven on the center conductor with
the shield grounded. Conversely, unshielded twisted pair cable is driven on both lines. Because of the way that each is
driven, coax operation is often called unbalanced and twisted pair operation balanced.
Transmission line characteristics of coax and twisted pair
cables can be envisioned as essentially those of a low-pass
filter with a length-dependent bandwidth.1 In 3270 systems,
different data combinations generate dissimilar transmission
frequencies because of the Manchester format. 2 These two
factors combine to produce data pulse widths that vary according to the data transmitted and the length and type of
cable used. This pulse-width variation is often described as
"data jitter." 3
In addition to line filtering, noise can cause jitter. Coax cable
employs a shield to isolate the signal from external noise.
Electromagnetically balanced lines minimize differential
noise in unshielded twisted pair cable. In other words, the
twisted pair wires are theoretically equidistant from any
noise source, and all noise superimposed on the signal
should be the common-mode type. Although these methods
diminish most noise, they are not totally effective, and environmental interference from other nearby wiring and circuitry may still cause problems.
Besides the effects of jitter, reflections can produce undesirable Signal characteristics that introduce errors. These reflections may be caused by cable discontinuities, connectors, or improper driver and receiver matching. Signal edge
rates may aggravate reflection problems since faster edges
tend to produce reflections that may dramatically distort the
signal. 3 Most reflection difficulties occur over short cable
(less than 150 ft.) because at these distances reflections
suffer little attenuation and can significantly distort the signal. Since the timing of the reflections is a function of cable
length, it may be possible to operate at some short distance
and not at some greater length.

Like the receiver design, a successful driver design should
compensate for the filtering effects of the cable. As cable
length is increased, higher data frequencies become attenuated more than lower frequency signals, yielding greater disparity in the amplitudes of these signals. 4 This effect generates greater jitter at the receiver. The 3270 signal format
allows for a high voltage (predistorted) magnitude followed
by a low voltage (nondistorted) magnitude within each data
half-bit time. 2 Increasing the predistorted-to-nondistorted
Signal level ratio counteracts the filtering phenomenon because the lower frequency signals contain less predistortion
than do higher frequency signals. Thus, the amplitude of the
higher frequency components are greater than the lower
frequency components at the transmitter. Implementation of
this compensation technique is limited because nondistorted signal levels are more susceptible to reflection-induced
errors at short cable lengths. Consequently, proper impedance matching and slower edge rates must be utilized to
eliminate as much reflection as possible at these lengths.
Besides improved performance, both unbalanced and balanced operation must be adequately supported. Electromagnetic isolation for coaxial cabling can be provided by a
properly grounded shield. Electrically and geometrically
symmetric lines must be maintained for twisted pair operation. For both cable types, proper termination should be employed, although terminations slightly greater than the characteristic impedance of the line may actually provide a larger received signal with insignificant reflection. 3 In the board
layout, the comparator traces should be as short as possible. Lines should be placed close together along their entire
path to avoid the introduction of differential noise. These
traces should not pass near high frequency lines and should
be isolated by a ground plane.
BCP LINE INTERFACE DESIGN

An extensive characterization of the BCP comparator was
done to facilitate this interface design. The proposed design
enhances some of the BCP transceiver's characteristics
and incorporates the aforementioned suggestions.
The interface design takes into account the common comparator attributes of power supply rejection, variable switching offset, finite voltage sensitivity, and fast edge rate sensitivity. Vee noise can affect the comparator output when the
inputs are biased to the same voltage. This particular type of
biasing may render portions of the comparator susceptible
to supply noise. Variable switching offset and finite voltage
sensitivity cause the receiver decoding circuitry to see a

I

II
I

2-95

-.:r

.

~
Z

«

substantial amount of data jitter when signal amplitudes approach the sensitivity limits of the comparator. At these signal magnitudes, considerable variation in the output of the
. comparator is observed. Finally, edge sensitivity may allow
a fast edge to introduce errors as charge is coupled through
the inputs during a rapid predistorted-to-nondistorted level
transition, especially as the nondistorted level is reduced in
magnitude.

Like many present 3270 circuits, the driver design (Figure 2)
utilizes a National Semiconductor DS3487 and a resistor
network to generate the proper signal levels. The predistorted-to-nondistorted ratio was chosen to be about 3 to 1. This
ratio was observed to offer good noise immunity at short
cable lengths (less than 150 feet) and error-free transmission to an IBM 3174 controller at long cable lengths (greater
than 5000 feet).

The receiver interface design (Figure 1) addresses each of
the BCP comparator's characteristics. A small offset (about
17 ·.mV) separates the inputs to eliminate Vee-coupled
noise. This offet is relatively large compared to possible fab. rication variations;' resulting in a more consistent, deviceindependent operation. The offset has the added benefit of
making the comparator more immune to ambient noise that
may be present on the circuit board. A 2:1:1 transformer
(arranged as a 3:1) restores any voltage sensitivity lost by
introducing the offset. A bandpass filter is employed to re. duce the edge rate of the signal at the comparator and to
eliminate environmental noise. The bandwidth (30 kHz to
30 MHz) was chosen to provide sufficient noise attenuation
while producing minimum data jitter. Refer to Appendix 2 for
a derivation of the filter equations.

To allow for two interfaces in the same circuit design, the
coax/twisted pair front end (Figure 3) includes an ADC Telecommunications brand TPC connector to switch between
coax and twisted pair cable. This connector allows different
male connectors for coax and twisted pair cable to switch in
different interfaces for the particular cable type. The coax
interface has only the shield capacitively coupled to ground.
The 510n resistor and the filter loading produce a termination of about 95n. The twisted pair interface balances both
lines and possesses an input impedance of about 1DOn .
This termination is somewhat higher than the characteristic
impedance (about 96!1) of twisted pair. Terminations of this
type produce reflections that do not tend to generate mid-bit
. errors, as well as having the benefit of creating a larger
voltage at the receiver over longer cable lengths.

DP8344

+5V
PE 5769

42

,-=+.;..........o4J......--II--+--JWIr---4~--I +AlG-IN

41

''--+----4......- - - I I - -....-'V'V'\t--...- - - I -AlG-IN

Legend

o

To coax/twisted pair front end

lID

To line driver circuitry
TLlF/l044B-l

*Includes board capacitance

FIGURE 1. BCP Receiver Filter Design

1/2 DS3487

DP8344

45.3n 1%
38
1--+-__ -1 DATA-OUT

+
37
1--+---1 DATA-DlY
loon 1%
. Legend,

lID

"

.

.

To 2:1:1 Transformer _

TLlF/l044B-2

FIGURE 2. BCP Driver Design

2-96

ADC Connector

0.1 J.lF

Center - - - - - - -..2;;....--(i~-----Ia-[[r
Twisted Pair
Shleld_

J

1

:: 510n

..L O.IJ.1F
"> 510n~

....-../.

"

I77T

GND
Legend

(A) To 2:1:1 Transformer

I~-

IIl..!..J
0.1 J.lF

Il'·'PF

TL/F/l044B-3

·Connector closes switch for coax and opens switch for twisted pair.

FIGURE 3. BCP Coax/Twisted Pair Front End
RESULTS AND COMPARISONS

ances (higher turn ratios may demand circuits with very low
tolerance percentages).

The evaluation involved producing multiple data transfers
between an IBM 3174-81 R and the device under test during
a live 3270 session. The preferred method of testing would
be to transfer extremely large files to the host. Since terminals and muxes cannot transfer files and all devices being
tested needed to be evaluated under similar conditions, a
screen-oriented approach was taken for testing. The
screen-oriented approach involved using common methods
for forcing the controller to send an entire screen of characters to the device. Procedural specifics are included in Appendix 1.

There are also economical advantages in using the BCP
comparator. The number of active and passive components
required to build the line interface is small compared to
competing solutions. The proposed design is extremely cost
competitive with current media solutions.
CONCLUSION
An effective and economical 3270 interface solution has
been demonstrated using only passive components and a
line driver. Guidelines have also been suggested to facilitate
the design and layout of such an interface. Criteria concerning board layout and noise suppression must be considered
to be at least as important as the components themselves;
for example, adjustments should be made for variations in
board capacitances and inductances. With only slight modification of the components given for this design, it is thus
likely that optimum performance can be obtained for a specific layout. Implementation of these design principles
should prove advantageous for the development of an efficient and competitive 3270 line interface.

Performance of the BCP interface typically extended over
7000 feet of RG62A/U coax and 1700 feet of AT&T DIW
4 pair/24 AWG unshielded twisted pair. This operation met
or exceeded many of the current 3270 solutions. The performance of other 3270 products was obtained from production stock of competitors' equipment and should be taken as typical operation. Although these long distances are
possible, it is recommended that companies specify their
products to IBM's PAI2 specifications of 5000 feet of coax
cable. The extra long distance capability of the new interface will assure the designer a comfortable guardband of
performance. Similarly, a 50% margin on the unshielded
twisted pair capability will give approximately a 900 foot
specification.

REFERENCES
1. H.P. Neff, Jr., Basic Electromagnetic Fields, New York:
Harper and Row, 1981, Chapter 13.
2. IBM 311413214 Control Unit to Device Product Attachment Information, Communication Products Information Development, International Business Machines Corporation,
Research Triangle Park, NC, October 1986.

It should be noted that the BCP receiver detects errors before the controller does. This is because of comparator
skew, a mechanism that occurs when the amplitude of the
signal approaches the sensitivity of the comparator. At
these small levels, propagation symmetry for high-to-Iow
and low-to-high transitions is lost. The failure mechanisms
of competitors include insufficient receiver jitter tolerance,
filter tranSients, and comparator skew. Operational distance
may be extended by the utilization of transformers with higher turn ratios as long as considerations are taken for impedance matching, driver loading, and component quality toler-

3. K.M. True, The Interface Handbook: Line Drivers and Receivers, Semiconductor Components Group, Fairchild Camera and Instrument Corporation, Mountain View, CA, 1975.
Chapters 3 and 4.
4. N.S. Nahman, "A Discussion on the Transient Analysis of
Coaxial Cables Considering High Frequency Losses," IRE
Trans. Circuit Theory, vol. CT-9, pp. 144-152, June 1962.

I

EI
I

2-97

~

~
Z

 > R2 and C1 > > C2, we can then
simplify the equation and solve for the poles to obtain the
following form:

III

~ ~ ± ~~ - 4 (AI A2' e, e2)
41T

After splitting the above equation to solve each pole and
using a binomial expansion to simplify each pole's equation,
we get:

1
f, :::: 'lTR1 C1 :::: 20 kHz
(vs. 30 kHz from simulation and testing)
1
fh :::: 4'IT R2 C2 :::: 40 MHz

(vs. 30 MHz from simulation and testing)

2-98

Interfacing Memory to the
DP83448

National Semiconductor
Application Note 623
Bill Fisher,
Mark Koether

As with most other aspects of a design, choosing memory is
a cost vs. performance trade off. Maximum performance is
achieved running no wait-states with fast, expensive memory. Slower, less expensive memory can be used, but waitstates must be added, slowing down the BCP. Therefore
one needs to choose the slowest memory possible while
still meeting design specifications. While this article assumes RAM is used for instruction and data memory, the
information is relevant to memory devices in general.
The BCP needs separate data and instruction RAM, each
with their own requirements. Instruction read time is the major constraint when choosing instruction RAM. Instruction
read time, tl, as shown in Figure 1, is measured from when
the instruction address becomes valid to when the next instruction is latched into the BCP. Instruction read time for
various clock frequencies and wait states are given in Table
I. Clock frequency and wait state combinations other than
those given in the table can be calculated by the following
equation:

The selection of data memory RAM requires the evaluation
of several important timing parameters. The RAM access
time, strobe width, and data setup times are three of the
most critical timing parameters and must all be matched to
equivalent BCP timing parameters. The RAM access time
should be compared to the data read time of the BCP. The
following discussion assumes 3 T-state data memory read
timing ([4TR] = 0). However, the basic approach is applicable to the less critical 4 T-state data memory read timing.
Detailed information on this mode can be found in the CPU
Description and the Device Specifications sections of the
BCP data manual.
Data read time, to, (Figure 2) is measured from when the
data address is valid to when data from the RAM is latched
into the SCPo Table II gives data read times. The equation
for calculating data read time is similar to the one given for
instruction read time:

tl = 103 (1

h +
+T

nlw)/fcPU - 19

where tl is the instruction read time (ns), nlW is the number
of instruction memory wait states, T L is the CPU clock low
pulse width (ns), T is the CPU clock period (ns), and fcpu is
the clock frequency (MHz) at which the CPU is running. The
RAM chosen needs to have a faster access time than the
read time for the desired combination of clock frequency
and wait states. However, instruction read time is not the
only timing consideration when choosing instruction RAM. If
the BCP is used in an application which requires full speed
softloading of instruction RAM, there are two other timing
relationships which require evaluation. These are data setup
time and write pulse width. The relevant BCP timing parameters are I valid before IWR rising, tpo-I-IWR, and IWR ·Iow
time, tW-IWR. The value of these timing parameters depends
on the Remote Interface mode of operation. More detailed
information can be found in the Device Specifications and
the Remote Interface and Arbitration System sections of the
BCP data manual. Note that in a typical application of the
BCP, softloading occurs after reset with the BCP operating
with CLK/2 and full wait states. Under these conditions the
instruction read time value is the critical parameter for
choosing the instruction RAM.
T1

T2

tp = 103 (2

T1

I

TABLE II. Data Read Time, to (ns)
CPU
Clock Freq.
(MHz)
(TL/T = 0.5)

FIGURE 1. Instruction Read Time

9.43

140

246

352

18.86

60

113

166

20.00

56

106

156

C

TL/F/10447-2

TL/F/10447-1

2

::::::::XZVAV?1W~

FIGURE 2. Data Memory Read Timing

I,

1

T1

ALE~

~"~

0

T2

IA:::::::X

lAO-IS

Wait States

TX

CLK-OUT~

T1

TABLE I. Instruction Read Times, tl (ns)

MAX (now, nlW - 1»/fCpu - 40

where to is the data read time (ns), now is the number of
data memory wait states, nlW is the number of instruction
memory wait states, T L is the CPU clock low pulse width
(ns), T is the CPU clock period (ns), and fcpu is the clock
frequency (MHz) at which the CPU is running. Since the
lower address byte (AD) is externally latched, the latch
propagation delay needs to be subtracted from the available
read time when determining the required RAM access time.

CLK-OUT~

CPU
Clock Freq.
(MHz)
(TL/T = 0.5)

h +
+T

Wait States
MAX(now, nlw - 1)

0

1

2

9.43

225

331

437

18.86

92

145

198

20.00

85

135

185

Another important timing parameter is the RAM strobe
width. The BCP READ and WRITE outputs will typically be
used to strobe data out of and into the RAM. The signal
relationships for a data memory access are shown in Figure
2 for a read and in Figure 3 for a write. Table III contains
READ and WRITE pulse width values for various clock frequencies and wait state combinations. The equation for calculating READ and WRITE pulse width is:
tw = 10 3(1 + MAX(now, nlW - 1)/fcpu - 10

2-99

•

I

~

~

Z

~

,---------------------------------------------------------------------------------------,
where tw is the pulse width (ns), now is the number of data
memory wait states, nlW is the number of instruction memory wait states, and fcpu is the clock frequency (MHz) at
which the CPU is running. The RAM chosen should require
shorter strobe widths than the pulse width listed in Table III
for the desired combination of clock frequency and wait
states.

and fcpu is the clock frequency (MHz) at which the CPU is
running. The data memory RAM used needs to have a faster output enable time than the time listed in Table IV for the
desired combination of clock frequency and wait states.
TABLE IV. Data Read Setup Time, tSR (ns)
CPU
Clock Freq.
(MHz)

elK-OUT

~

____________c:

9.43

ALE

l(Z

DATA

TLIF/10447-3

FIGURE 3. Data Memory Write Timing

Walt States
MAX(now, nlw - 1)

0

1

2

84

190

296

18.86

31

84

137

20.00

28

78

128

When writing to data memory, the data must be valid in time
to meet the setup time requirement of the RAM. In a typical
application, this time is measured from the data becoming
valid out of the BCP to WRITE going high. Figure 3 shows
this timing relationship, tow, and Table V contains times for
various combinations of clock frequencies and wait states.
The equation for calculating this time is:

9.43

96

202

308

tow = 103 (1 + MAX(noW,nIW - 1»/fcpu - 20
where tow is the minimum data valid time before WRITE
rising (ns), now is the number of data memory wait states,
nlW is the number of instruction memory wait states, and
fcpu is the clock frequency (MHz) at which the CPU is running. This time should be at least as long as the data setup
time of the RAM.

18.86

43

96

149

TABLE V. Data Write Valid Time, tow (ns)

20.00

40

90

140

TABLE III. READ and WRITE Pulse Width, tw (ns)
CPU
Clock Freq.
(MHz)

Walt States
MAX (now, nlW - 1)
0

1

2

The last important consideration when choosing the data
memory RAM is setup times into the BCP on a read and into
the RAM on a write. In a typical application, READ is connected to the output enable pin on the RAM. When reading
from the RAM, the data becomes valid when READ falls
and activates the RAM outputs. The data must become valid fast enough to meet the setup time required by the BCP.
This setup time tSR, as shown in Figure 2, is listed in Table
IV for various combinations of clock frequencies and wait
states. It can be calculated from the following equation:
tSR = 103 (1 + MAX(now, nlW - 1)/fcpu - 22
where tSR is the maximum time allowed for the data to become valid (ns), now is the number of data memory wait
states, nlW is the number of instruction memory wait states,

CPU
Clock Freq.
(MHz)
9.43

Walt States
MAX (now, nlW - 1)
0

1

2

94

200

306

18.86

41

94

147

20.00

30

80

130

Instruction RAM has the greatest effect on execution speed.
Each added instruction memory wait state slows the BCP by
about 40% as compared to running with no instruction
memory wait states. Each added data memory wait state
slows a data access by 33% as compared to running with
no data memory wait states. RAM costs are coming down,
but higher speed RAM still carries a price premium. So there
is the trade-off.

2-100

l>
ZI

National Semiconductor
Application Note 504
Jim Margeson

DP8344 BCP Stand-Alone
Soft-Load System
INTRODUCTION
The DP8344 Biphase Communications Processor (BCP) is a
20 MHz Harvard architecture microprocessor with an onchip transmitter and receiver. The BCP can be used to implement several biphase communication protocols:
IBM 3270, IBM 3299, IBM 5250, and National's general purpose 8-bit protocol. This application note shows how

U1

o

~

DP8344 software can be loaded from EPROM into instruction RAM. It is particularly valuable in stand-alone systems
where the BCP is not interfaced to a host processor. Possible applications include: protocol converters, multiplexers,
high-speed remote data acquisition systems and remote
process control systems.

INSTRUCTION ADDRESS
16

LINE
INTERFACE

INSTRUCTION
MEMORY

INSTRUCTION
16
DATA ADDRESS

BCP

DATA
MEMORY
8

MULTIPLEXED
ADDRESS/DATA

HOST
PROCESSOR
TL/F/9403-1

FIGURE 1. BCP System with Host Processor
INSTRUcnON ADDRESS

'16
1

LINE
INTERFACE

A
"I

"v

INSTRUCTION
RAM 45n5

INSTRUcnON
'16

DATA ADDRESS

BCP

1

1-

'$~6

DATA
MEMORY

LATCH

I

'8

Jr"

INTERFACE
CONTROL
LINES

PAL
16R6B

' 8

IoIULTlPLEXED
ADDRESS/DATA

,

~

CONTROL
i - . LINES

-+

,8

16K X 8
EPROM
3~O

ns

+~

PERIPHERALS:
DIGITAL I/o
ANALOG I/o
AND/OR
UARTS

FIGURE 2. BCP Stand-Alone System with EPROM Soft Load Circuit

2-101

TlIF/9403-2

IWR
INSTRUCTION AOORESS

ClK-OUT A.

XTAll

V

1J118.8696

N.C.
-

it

ICU<

It!

CLK-OUT

13

citr'
~ It :~TClK
~

MHZ

34

u

39p'

T

X2

WAiT

iiiiI

3

10K

ffi-IN
BIRQ

Rl

~O:IS)

BCP

INSTRUCTION BUS
REAo-

OP8344V
A(8:1S)
t.(O:7

AO(O:7

LINE
INTERFACE

J

_ _ _ _...I

~
10 10

DATA-OEL
DATA-OUT
TX-ACT
IN-PLUS
IN-MINUS

20
30
40
SO
60
70
80
C

20
30
4Q
SO
SO
70
SO

tAc

~i=
~~
r

I--<

tt:::::

OC

----i

CH.~

r~e

A~ ~K ~ I:.i. ....lC.l_'-I-...Jr,---ti-!F=j]t::=================
.

T"

ill

..

lu. iKt.lW

f jJ.mt. .

~~u 4,..!ill- :~ ~g~!I..l.!~LillQ.~~:t:=:----t-l
6
4~
V
RAE.' _ _ _+-__...1
74ALS14

:MCK

11

-

.11W1

1

EPAO

TLIF/9403-3

FIGURE 3. Schematic

2-102

»
z
I

en
o
~

iA(O:IS) INSTRUCTION AOORESS

INSTRUCTION WEWORY
T28

vee

~

3 1.12
All
1A9
4 1.10
lAB
5 1.9
AS
~ 1.7 RAW
1.6 8KX8
1A5
AS 45nS
1A4
6
1.4
A3
A2
AI
lAO I
1.0 GIlD
11.11

Eli
P.P
~ ~~ ~

Pd

~4

INSTRUCTION BUS

WE
Or

ffi

T28

hI
I:: :a

CS2
,
07
D6
05
16 11
04
03 ~
02 ~
01 ~
DO

1.12
1A10
1 All
AID
lAB 2 Ai
1.8
1.7
RAW
~
1.6 8KX8
AS 45nS
1.4
1.3
~
IA2
8
1.2
AI
!
AD GIlD

~
~

~

r---#.--4
i ~~ ~

rU--L-

I~~ 1~

WB81 C78A-45
PKG FT-28PW02

vee

~

}i4

~0:15)

WE
Or
CSi

CS2

hT
22
2
6

:;

07 19 17
D6
05
04 ~
03
3 I
02
1
11
01
DO

i:~

m!=

rll--L-

WB81 C78A-45
PKG FT-28PW02

READ
WRITE
ADDRESS (HIGH)

1.(8:15)
1.0:7

ADDRESS LOW

A 0:7

DATA WULTIPLEXED

DATA WEWORY

! ~~~ 2~

~
t-#-¥.
~
1.7
3

"b!

NWC27CP128

1 VPP
VCC

iUl'

A7

A6
AS
1.4
1.3
A
AI
AO

20 EE

AI4~,

1.13
OE
1.12
EPROW All
16KX8 Ai~
350nS 1.8
07
1.7
06
1.6
05
AS
04
1.4
03
A3
02
A2
01
AI
00 GNO AD

~4

4

5
6
7
8
9
10

I
~8

VCe....
1.12
WE
All
Or
AID
ffi
Ai
CS2
1.8
1.7 RAW 07
1.6 8KX8 D6
AS 45nS 05
1.4
04
1.3
03
A2
02
AI
01
1.0
DO
GIlD

~4

27

~
Ii
18
17
16
15
13
1
11

1.07
1.06
ADS
AD4
AD3
AD
ADI
ADO

PERIPHERALS
(UARTS.
DIGITAl I/O.
AND/OR
ANAlOG I/O)

WB81 C78A-45
PKG FT-28PW02

12

~l

IAU

I

TL/F/9403-4

FIGURE 3. Schematic (Continued)

I

II

I

2-103

~

o

Ll)
I

Z

«,

WHY EPROM 50FT-LOAD?

In a stand-alone application, the BCP instruction code must
be kept in non-volatile memory. Instruction memory with
45 ns access time is required to run the BCP at full speed.
EPROM at this speed can be quite expensive, much more
than 45 ns RAM or 350 ns EPROM. RAM with 45 ns access
time can be used for instruction memory if a scheme is employed to load the BCP code into the RAM from slow
(350 ns), inexpensive EPROM, upon power-up.
In non-stand-alone applications, a host processor would
communicate with the BCP through the BCP's built-in remote interface (Figure 1). In such a system, BCP code
would be loaded from the host into the BCP's instruction
RAM using the remote interface. In a stand-alone system,
however, the BCP is not interfaced to a host; the program is
loaded from EPROM through the remote interface. As
shown in Figure 2 a PAL ® sequencer controls the loading of
the program, generating handshaking, signals similar to
those of a typical host processor. When the load is complete, the sequencer tells the BCP to begin execution of the
program.
HOW THE 50FT-LOAD CIRCUIT WORKS
The BCP, as configured in this system,.comes up halted'
after reset (Figure 3). The program counter is set to zero,
and the remote interface is configured to receive '16-bit instructions in 8-bit pieces and write them into instruction
memory. The BCP has the feature that it can be configured

to come up stopped or to begin program execution after a
reset has occurred. If the following conditions are true when
reset is de-asserted then the processor will begin running:
RAE - (Remote Access Enable, active low) = High,
REMWR - (Remote Write, active low) = low, REMRD(Remote Read, active low) = low. Otherwise, it will come up
halted.
The PAL sequencer begins the software load by writing the
low byte of the first instruction to the remote interface. A
simplified flowchart of the sequence operation is shown in
Figure 4.
This byte comes from address OOOOH of the EPROM. The
corresponding locations of EPROM and RAM are shown in
Figure 5. The I,east significant address line of the EPROM is
controlled by the seque~cer; the other address lines are
driven by the instruction address bus of the BCP. The instruction address bus reflects the contents of the BCP's
program counter (PC), which contains the destination of the
instruction currently being loaded. After the low byte of the
first instruction' is' written to the remote interface, the sequencer brings the least significant address line of the
EPROM high. Now location 0001 H of the EPROM is addressed, and the high byte of the first instruction is written to
the remote interface. At this point the BCP writes both bytes
into address OOOOH of instruction RAM, and increments its
, program counter.

TL/F/9403-5

FIGURE 4. Sequencer Operation

2-104

EPROM
Address

0
1

2
3
4
5

•
•
•
•
16382
16383

address bus. Location 0002H of the EPROM is addressed,
and the low byte of the second instruction is written to the
remote interface. The sequencer then brings the least significant address line of the EPROM high (to address location 0003H) and the high byte of the second instruction is
transferred. The BCP writes the second 16·bit instruction to
location 0001 H of instruction RAM. This process is repeated
until the last instruction is transferred.

Instruction
Memory Address

0
0
1
1
2

(Low Byte)
(High Byte)
(Low Byte)
(High Byte)
(Low Byte)
(High Byte)

•
•
•

•
•
•

2

·

8190
8191

The sequencer senses that the load is complete when instruction address line 13 comes high. This occurs when the
program counter is incremented to a value of 4000H, indicating that 8K instruction words have been transferred. At
this point the BCP must be started. To achieve this, the
sequencer resets the BCP again, while holding RAE - high,
REMRD- low, and REMWR- low. A reset during these
conditions brings the processor up running, and also clears
the program counter. The BCP begins execution at instruction address OOOOH and the sequencer and EPROM go into
an inactive state, transparent to the software being executed. A detailed version of the sequencer flowchart is shown
in Figure 6. A hardware compiler/minimizer was used to obtain the equations shown in Figure 7. These equations were
used to program a National PAL16R6B. Typical timing
waveforms of the soft-load are shown in Figure 8.

·

(Low Byte)
(High Byte)

FIGURE 5. EPROM to RAM Address Mapping

The first 16-bit instruction has been transferred; the second
is done in a similar manner. The sequencer brings the least
significant address line of the EPROM low again. The PC
now contains 0001 H, which is output on the instruction

2-105

.

-.:to

oLt)

z

XXXXXX
I I I I I
I I I I

«

REt.4RD
STI
ST2
CS
EPAO
REt.4WR

I

--I I II
---- I I I
I I
-----I

WRITE LOW BYTE
INSTRUCTION

or

TLIF/9403-8

FIGURE 6. Sequencer Flowchart

2-106

increment through the memory locations, thus an external
13-bit counter would be needed. TRI-ST ATE® buffers would
isolate the RAM and EPROM from the instruction data and
instruction address busses during soft-load. These buffers
would add propagation delays to memory accesses demanding that faster RAM be used. Soft-loading through the
remote interface requires fewer I.Co's and does not degrade
the performance of the processor.

There are several advantages to using the remote interface
to load the BCP software. If a scheme like the one in Figure
9 was used to load the program directly from EPROM to
instruction RAM, much more hardware would be required
and the access time of the RAM would need to be shorter.
Two EPROMs would have to be used instead of one because the transfer would be 16 bits wide instead of 8 bits. In
this case the BCP's program counter could not be used to

DMPAL16R6B;
SOFTLOAD
CK LCL XACK IA13 RESET NC6 NC7 NC8 IWR GND
10E IBRESET IREMWR IEPAO ICS IST2 ISTl IREMRD ILCLINV VCC
IREMRD .- RESET*
IREMRD*
CS*/EPAO*/REMWR
+ RESET*
IREMRD*
ST2* CS*
IREMWR
+ RESET*
IREMRD* ST1*
CS*
IREMWR
+ RESET*IA13* REMRD*/ST1*/ST2*/CS*/EPAO* REMWR
._ RESET*
REMRD*/ST1* ST2*/CS
ISTl
+ RESET*
REMRD* ST1*/ST2*/CS
+ RESET*
IREMRD* ST1*/ST2* CS*
IREMWR
+ RESET*
IREMRD*/ST1* ST2* CS*
IREMWR
IREMWR
+ RESET*/XACK*REMRD*
IST2*/CS*
._ RESET*
REMRD*
ST2*/CS
IST2
IREMWR
+ RESET*/XACK*REMRD*/ST1*
ICS*
+ RESET*
IREMRD*
ST2* CS*
IREMWR
+ RESET*
CS* EPAO*/REMWR
IREMRD*/STl*
+ RESET*
REMRD* ST1*/ST2* CS* EPAO* REMWR
._ RESET*
REMRD*
IREMWR
ICS
ICS*
+ RESET*
REMRD* ST1*
ICS
+ RESET*
REMRD*
ICS* EPAO
+ RESET*
REMRD*
ST2*/CS
+ RESET*
REMRD* ST1* ST2*
EPAO* REMWR
+ RESET*/IA13*REMRD*
ICS
*/EPAO := RESET*
REMRD*
ST2*/CS*/EPAO
+ RESET*/XACK*REMRD*
ICS*/EPAO
+ RESET*
REMRD*
ICS*/EPAO* REMWR
+ RESET*
REMRD* ST1*
ICS*/EPAO
+ RESET*
IREMRD* ST1*
CS*/EPAO*/REMWR
+ RESET*
ST2* CS*/EPAO*/REMWR
IREMRD*
+ RESET*XACK* REMRD*/ST1*/ST2*/CS*EPAO*/REMWR
+ RESET*
REMRD* ST1* ST2* CS*EPAO* REMWR
IREMWR .- RESET*
IREMRD*
ST2*/CS*
IREMWR
+ RESET*
REMRD* ST1*
ICS*
IREMWR
+ RESET*
IREMRD*
CS*/EPAO*/REMWR
+ RESET*
IREMRD*
ST2* CS*
IREMWR
+ RESET*
REMRD*/ST1*/ST2*/CS*
REMWR
+ RESET*
IREMRD* ST1*
CS*
IREMWR
+ RESET*/XACK*REMRD*
ICS*
IREMWR
IBRESET
IRE SET +
IREMRD*/ST1*
CS *IEPAO *IREMWR
ILCLINV
LCL

=
=

FIGURE 7

2-107

.

»
z

U1

o

~

.

~

0

It)

:riming at Beginning of Instruction Load

z

«

RESET

~.

BRESET

~.

RAE ~.

REMRD

REMWR

XACK

LCL

.~r

__~fl~·__~·t.l~__~fl~·__~·~

~

__~'[l~'__~'[l~'_'__~I.l~'____'~

.u......

____~.I. ...... ~ .

.r'--.. . .I.

IWR

U . .L
.,-I'---ilL.

ICLK
TLIF/9403-6

Timing at End of Instruction Load

BRESET-------------------------------,.LJ.

1.

RAE _._ _ _ _ _ _ _ _ _ _ _

REMWR
XACK

.1·--1·1.
..
.................... .
la-.:__. . . .n. ·. _______n. .·_. ·.1. . .................... .
la-:__. ·n
. . ___.·1.. .

.u.

.~r

_________________________

.f____1
n. . . --......I·n.....· _.fLJ. --......If

ICLK _______________________........

1-..1

TL/F/9403-9

FIGURE 8. Example of Timing Waveforms

2·108

r

PAL

--I

I
INSTRUCTION
ADDRESS
I

-,..

'16

LINE
INTERFACE

A
~

'"

INSTRUCTION

V

I

16

r-B

,

U

'16

r
r

E
R
'-

DATA ADDRESS

,

"$

BCP

LATCH

~

T
13 - BIT
COUNTER

INSTRUCTION
RAM
<45ns

,
'16

,
'II

,

I

's

's

r

4

ROM
300ns

I

DATA
MEMORY'

MULTIPLEXED
ADDRESS/DATA

-+

~

PERIPHERALS:
DIGITAL I/O
. ANALOG I/o
AND/OR
UARTS
TL/F/9403-7

FIGURE 9. Another Method of Soft-Loading (A Non-Ideal Solution)
tional I.C.'s into the breadboard area. A diagram of the
CT-l04 board with the additional components is shown in
Figure 11. Note that most of the prototyping area remains
available, enabling the addition of other circuitry specific to
the application being developed. A parts list is shown in
Figure 12. The PAL16R6 is programmed with the equations
shown in Figure 7. U22 and U23 must be removed from the
CT-l04 board and be replaced with specially wired 20-pin
headers. The wiring on these headers, shown in Figure 13,
provides access to the RESET - signal and disables the
unused interface circuitry on the board. Pin 11 of the header
that replaces U23 must be wired to pin 13 of the 74LS14. A
wiring list is shown in Figure 14. Power supply connections
must be added because the board can no longer reside in
the PC. Development of a stand-alone soft·load application
can be done easily and quickly by using the CT-l04 board
because minimal circuit construction is required.

MODIFYING THE SOFT-LOAD SYSTEM
FOR LARGER MEMORY
The soft-load system as documented loads 8K x 16 bits of
instruction memory. Large programs may require more
memory; smaller, lower cost systems may use less. The
soft-load system can easily be altered to load larger or
smaller instruction memory by changing one connection.
Connecting a different instruction address line to pin 4 of
the PAL changes how much instruction memory is loaded:
These connections are shown in Figure 10
Instruction Memory Size:

Connect Pin 4 of PAL to:

32kx 16
16k x 16
8kx 16
4kx 16
2kx 16

IA15
IA14
IA13
IA12
IAll

SUMMARY

FIGURE 10. Connections for Altering
Instruction Memory Size

The soft-load circuit uses the BCP's remote interface to
load BCP code from slow EPROM to fast RAM, with a minimum of extra hardware. This method is useful in systems
where there is no host processor directly interfaced to the
BCP and the full processing speed of the BCP is needed.

USING THE CAPSTONE CT-104 DEVELOPMENT BOARD
TO EVALUATE THE SOFT-LOAD APPLICATION
A DP8344 biphase Communications Process development
board is available from Capstone Technology Inc., of Fremont, California. The board is designed to reside in an IBM®
PC. A breadboard area is provided on the board so that
custom circuitry can be added. It can be converted into a
stand-alone soft-load system by wire-wrapping three addi-

The circuit can easily be modified to load different sizes of
memory. The Capstone Technology, Inc. CT-l04 development board can easily be converted to a stand-alone softload system for evaluation of the application.

2-109

•

I

.

~

o

Ln

z



11
11

~22 ns

REt.lRD

-,

1

r

minimum

'"'

.

L

~

1
mi~~~~m -.f

I

..

1

'1
1

REt.lWR
TLlF/l04S1-2

(b) This timing diagram shows the timing necessary for the BCP to recognize both accesses as separate accesses. The first set of arrows
shows the BCP sampling a valid remote r~ad. One T-state later at the second set of arrows, the BCP will sample the erid of the first
remote access. Another T-state later at the third set of arrows,the BCP will sample the beginning of the second remote access~
FIGURE 1. Mistaking Two Remote Accesses as Only One

I

d

1.5 T - s t a t e s - - - - - - - i

BCP's CPU CLK

RAE

REt.lRD

REt.lWR

Ct.lD

2nd Remole Access's

1st Remota Access's
CIAO Value

CIAO Value

TL/F/l04S1-3

(a) This timing diagram shows the second remote access violating rest time. The first set of arrows shows the BCP sampling a valid
remote write. The second set of arrows (1 T-state later), shows the BCP sampling the end of the first remote access. If a second
remote access starts before the position of the third set of arrows (another 1.5 T-states later), the value of CMD will not be sampled.
The value of CMD has changed from the first remote access, so the BCP will write to the wrong location during the second access.

~

I\:)

w

1------- 1.5 T-stat•• - - - - - - . j
BCP's CPU CLK

RAE

-+..!.-....

+ - 1_ _ _ _ _ _

REt.lRD

REt.lWR

+-1_ _ _ _ _ _ _

CMD I 1st Remote Access'.
CIAO Value

......I~....

2nd Remote Access's
CWO Value

TL/F/l04S1-4

(b) This timing diagram shows the second remote access violating rest time. The first set of arrows shows the BCP sampling a valid remote write.
The second set of arrows (1 T-state later), shows the BCP sampling the end of the first remote access. If a second remote access starts
before the position of the third set of arrows (another 1.5 T-states later), the value of CMD will not be sampled. The value of CMD
does not change from the first remote access, so the BCP will write to the intended location during the second remote access.
FIGURE 2. Remote Rest Time for All Modes except Latched Write

L~9·N\f

III

AN-627
1+------- 1.5 r-.tat•• - - - - - - . j
BCP's CPU CLK

r--l

I

I

4>

~b

I

I

I

RAE

I

......,

h

I

h

I -22 minlmum- f..

~ IOns

~

minimumj..-

REt.lRD

I
j . - - 22 minimum-

REt.lWR

Ct.lD

lst Remote Acce.s's
CWD Value

I" "" "

""1/11

"

"

n

I
.... IOns minimumj..-

""

'II

'"''''

U U U

,.. .. ...... ,'"'''''''''''''''''''''''''''''' I

')

2nd Remote Acces.'s
CWD Value

TUF/l0451-5

(C) This timing diagram shows the timing needed to avoid rest time for all modes except latched write. The first set of arrows shows the BCP sampling the end
of the first remote access. The second set of arrows (1.5 T-states later), shows the BCP recognizing no remote access has started and the value of CMD will
be sampled for the next remote access. The third set of arrows shows the BCP sampling the correct value of CMD for the second remote access.

FIGURE 2. Remote Rest Time for All Modes except Latched Write (Continued)

r

~

I\)
~

BCP's CPU CLK

~

I

I

r1

!
!

-l
4>

r

D.5 r-ltatll-1 r I 11 RAE REt.lRO REt.lWR WR-PENO .J 11 8n.-I ~ 8ns r1 '1 H '1 ~ I Ct.lO ~ 2nd Remot. Acc ...•• CWD Value TLlF/l0451-13 (d) This timing diagram shows a remote access starting after a half T-state plus a hold time since WR-PEND rose. The first set of arrows shows the BCP sampling the value of CMD when WR-PEND rises. The second set of arrows shows the BCP recognizing that no remote access has started and the value of CMD will be sampled for the next remote access. The third set of arrows shows the BCP sampling the correct value of CMD for the second remote access. The BCP will carry out the second remote access as it was intended. FIGURE 3. Rest Time for Latched Write Mode (Continued) I\) 0> 1-1 r-stat.--l CPU CLOCK ClK-OUT TLlF/l0451-9 (a) BCP Running at Full Speed CPU ClOCK I----- ,.-..... I ClK-OU' TLlF/l0451-10 (b) BCP Running at Half Speed FIGURE 4. Relationship between the BCP's CPU-Clock and ClK-OUT cle. As a result, at full speed one T -state equals one ClK-OUT cycle, but at half speed one T-state equals two ClK-OUT cycles. (Reference Figure 4 to see the relationship between the BCP's CPU-ClK and ClK-OUT at full speed and half speed.) The specifications in Table 26 are all measured with the BCP running at full speed. All of the rest time specifications are dependent on the CPU-ClK and not on ClK-OUT. At full speed, the CPU-ClK and ClK-OUT are the same, and this fact allows specifications to ClK-OUT in place of the CPU-ClK. On the other hand, at half speed the specifications to ClK-OUT are no longer valid because one cannot tell if a rising edge of ClK-OUT is a rising or falling edge of the CPU-ClK. Earlier the worst case rest time for the BCP mistaking two fast back to back accesses as only one was given as: For latched write mode the remote rest time starts when WR-PEND rises. The rest time for this case can be calculated as follows: rest time = 0.5T (CMD changes) The real time worst case for rest time in latched write mode is with the BCP running at half speed. The following is a calculation of this rest time with the BCP running at half speed and OClK = 18.8196 MHz. rest time = 1(ClK-OUT cycle) (CMD changes) DESIRABLE FEATURES OF A REST TIME CIRCUIT The real time worst case for the BCP mistaking two accesses as one, happens when the BCP runs at half speed. So for the BCP running at half speed and OClK = 18.8696 MHz, the worst case rest time for mistaking two accesses as one is: In regards to designing with the rest time specifications, the first suggestion is to determine if rest time is an issue in one's design(s). If one's present or future design(s) is for systems which can never violate the rest time specification, the whole issue of rest time is a moot point. + th On the other hand, designs such as terminal emulation boards, which may be placed in faster and faster PC buses, must address rest time. In slower PCs one's product may never violate rest time, but in faster PCs rest time may become an issue. rest time = 2(53 ns) + 22 ns + 10 ns (mistaking two accesses as one) rest time = 135 ns (mistaking two accesses as one) All remote accesses are susceptible to having two fast back to back accesses recognized as only one. The worst case rest time for this was determined earlier as: Up to a full T-state (or two ClK-OUT cycles) may be added to the above equation if one is using latched Read or Fast Buffered Write modes. As explained in the CAUSES of Remote Rest Time section, this extra T-state is only added if the remote processor can terminate the remote access quickly after XACK rises (within a T-state). Otherwise, the above equation remains valid as written. The reader should note that this extra T-state is not mentioned or included in the following calculations because it takes place coincidentally with that cause of rest time. As mentioned previously, the absolute worst case rest time for all modes, except latched write mode, may be calculated by adding the above case of rest time to the second source of rest time caused by fast back to back accesses with different values for CMD. This rest time can be calculated as follows: rest time = first source (CMD changes) rest time = 135 ns (mistaking two accesses as one) (where OClK = 18.8696 MHz and the BCP runs at half speed, [CCS] = 1) All designs with the BCP must guarantee this minimum amount of time between every access. The second issue of remote rest time involves fast back to back accesses that have different values for CMD. The worst case for this was also calculated earlier as: rest time = 297 ns (CMD changes) (where OClK = 18.8696 MHz and [CCS] = 1) Two ways to handle this rest time issue are: + second source 1. Prevent all remote accesses to the BCP for at least 297 ns after the end of every remote access. resttime = [H + t (setup time) + t (hold time)] (CMD changes) + [1.5T + t (hold time)] 2. Hold off remote accesses that change the value of CMD for a minimum of 297 ns after the last remote access. However, allow remote accesses that do not change the value of CMD to occur a minimum of 135 ns after the last access. (When the value of CMD does not change from one access to the next, this will allow accesses up to 162 ns sooner than option 1). Note: The first hold time is during the second source's 1.5 T-states, so in the following formula it disappears. rest time = 2.5T (CMD changes) + t (setup time) + t (hold time) For the BCP running at half speed and OClK 18.8696 MHz, the absolute worst case rest time is: rest time = 5(ClK-OUT cycles) (CMD changes) rest time = 5(53 ns) (CMD changes) + 22 ns + + t (hold time) rest time = 53 ns + 7 ns = 60 ns (CMD changes) Please refer to the latest datasheet for more information and the most current specifications. rest time = H + t (setup time) + t (hold time) (mistaking two accesses as one) rest time = 2(ClK-OUT cycles) + tsu (mistaking two accesses as one) + t (hold time) When designing with rest time one must decide if the increase in speed of option 2) is worth the extra logic. However, as is demonstrated by the design example for the CT-104 (Next section), the increase in logic between option 1) and option 2) may be minimal. + tsu + th 10 ns rest time = 297 ns (CMD changes) 2-127 ...... ~ ::2: c( On the original CT-104, the REMRD and REMWR outputs of U22 were buffered signals of MEMR and MEMW respectively. With the new rest time circuit both REMRD and REMWR are held high when REM_enable = O. This prevents all remote accesses during rest time. When rest time is over REM_enable = 1 and once again, MEMR and MEMW control REMRD and REMWR respectively. Again, latched write mode is addressed separately. Unlike the other modes, latched write's rest time starts when WR-PEND rises. Two possible design options are: 1. Hold off all remote accesses for at least 60 ns (If OClK = 18.8696 MHz) after WR-PEND rises. However, doing ,this will result in slowing every remote access to the BCP. Furthermore, it should be noted that WR-PEND Will, not rise until a minimum of three T-states after the previous access has ended. If no accesses are allowed until after WR-PEND rises, then the second access will never be mistaken as a continuation of the previous access. One of the D flip-flops in the 74AlS74 stores the value of the previous access's CMD (LCMD). This value (LCMD) was'latched at the beginning of the previous valid remote access. With this value stored in a flip-flop, the rest time state machine can determine if the present value of CMD has changed since the last remote access. 2. Similar to the previous options, allow accesses after 136 ns if CMD has not changed between accesses. Then hold off access for at least 60 ns after WR-PEND rises when CMD changes between accesses. The other D flip-flop acts as a part of the rest time circuit's state machine. When RAE rises (signaling the end of that access) a one (1) is latched into this flip"flop. This signal (WAIT_START) forces the state machine to move through the next three states in sequence. If this latch is not used, the rest time state machine may also miss the ending of an access if back to back accesses occur within one ClK-OUT cycle plus the setup time for a PAL 16R4B's register input. If OClK = 18.8696 MHz this time will be: The last design issue that must be addressed is how to wait the host processor while preventing remote accesses to the ,BCP. Normally the wait signal of a remote processor is driven by the XACK signal out of the BCP. (Please note that the XACK signal can be active low, only when a remote access to the BCP is in progress.) During rest time, the rest time circuit prevents remote accesses to the BCP, so the XACK signal will not wait the remote processor. PC buses specify the maximum amount of time before the bus must be waited (i~ it is going to be waited). It is possible that not allowing remote accesses to the BCP (during rest time) may delay the XACK signal long enough to violate this bus specification. To prevent this, designs which wait a PC bus, must use logic to waitthe bus whenever a remote access begins during rest time. Furthermore, the logic that starts waiting the bus before remote access is allowed to the BCP, must continue to wait the bus until XACK takes over waiting the bus. time = 1 (ClK-OUT cycle) time = 53 ns + t (setup time for PAL 16R4B) + 20 ns = 73 ns This in effect, trades a rest time of 136 ns for one of 73 ns. However, while the output of this latch (WAIT_START, Figure 5) equals one, REM_enable will be low and the state machine will be forced to' start the rest time states. In the third rest time state the WAIT_START latch is, cleared by the ClR_ST ART (Figure 5) signal going low. ClR_START is produced in the rest time PAL 16R4B and ClR_START equals zero (0) only when in the third rest time state. In this way the WAIT_START signal guarantees the minimal rest time of 136 ns by keeping REM_enable equal to zero through at least three ClK-OUT cycles (Le., 3[53 ns] = ,159 ns if OClK = 18.8696 MHz). DESIGN EXAMPLE FOR THE CT-104 The four major goals in designing a rest time circuit for the CT-104 were: 1. Keep the component count to a minimum. To describe the operation of the state machine, a state by state description follows. When reading through the states one should remember that the state machine can only change states on the rising edge of ClK-OUT. A flow chart of this state machine is provided as Figure 6. Figure 7 is a PAL program (written in the ABEL program language) for the PAL 16R4, rest time PAL. Figure 8 shows the reduced equations that result for the PAL program given in Figure 7. 2. Keep the impact to the original CT-104 design to a minimum. 3. Allow the CT-104 to operate in every mode. 4. Take advantage of the faster accesses allowed when CMD does not change from one access to the next. The rest time circuit is implemented on one PAL 16R4B and one 74AlS74. Only a single signal (REM_enable) is fed back into the original CT-104 design. In addition, the XACK signal from the BCP is now fed into the rest time PAL 16R4B and the IO_CHRDY signal to the PC bus is controlled by this PAl®. This rest time circuit implements all modes and takes advantage of the increase in speed possible when CMD does not change from one access to the next. STATE: IDLE This state is entered when a system reset occurs. In this state REM_enable = 1, CMD_clk = 0, and XACK controls the state of IO_CHRDY. The state machine will stay in this state until a valid remote access starts (Le., RAE = 0). Then the state machine moves to CYCLE_START. First, how the REM_enable signal controls remote accesses will be discussed. Then, the functions implemented by the two positive-edge-triggered D flip-flops in the 74AlS74 will be discussed. Finally, a description of the operation of the rest time state machine, in the PAL 16R4B, will be given. Figure 5 is the schematic for the CT-104's rest time circuit. Note: On the CT-104, the Signal RAE is a full decode of a valid access. This means that it decodes a valid address and a valid MEMR or MEMW. If RAE is only an address decode, it alone would not indicate that a valid access had started. STATE:CYCLE--START The REM_enable (Figure 5) signal is produced in the rest time PAL 16R4B and is low during rest time. After rest time is over the REM_enable signal goes high until the end of the next access, when it once again goes low during rest time. In this state REM_enable = 1, CMD_clk = 1 as long as RAE = 0, ClR_ST ART = 1, and XACK controls the state of IO_CHRDY. Note, when CMD_clkrises it latches in the present value of CMD. The state machine will stay in this state until the remote access ends, indicated by either RAE = 1 or WAIT_START = 1. Then the state machine moves to WAIT1. The signal REM_enable is fed back into U22 (a PAL16l8) on the CT-104. (Note that this PAL had one unused pin so the design of this PAL was only slightly altered.) 2-128 SYS_RESET ......II ~ CL10,LU22 PAL16L8 UODE UODE 'C..ADDR + PC_CTL L ~ 0 3 18 B7 13 SYS RESET A17 4 17 B6 14 REURD A16 5 16 B5 15 HST PD PCH A15 6 15 B4 16 HST PO PCL AD 7 14 B3 17 RAE AEN 8 13 B2 18 REJ.I ENABLE UEUR 9 12 01 19 CUD UEUW 11 11 ~D I I ......-. ---C-H HS~P --- ---CL --- HS~P ~ .....~ ......-. RESLPAL PAL16R4 CLILOUT 1 SYS RESET 2 RAE 3 WAfT START 4 CK 00 19 5 ~D .....- ......-. A19 .... ..... CULSTART ~ 08 12 REUWR 0 ???? START PR T I:I..ILOUT co I 1 110 2 19 74lS74 o ~CK I\) I REJ.IWR A19 I WR PEND 6 XACK 7 LCUD 8 CUD 9 10 11 12 10 CHRDY 01 18 CUD_CLK --- IO~D 02 13 CLR_START 03 12 REU ENABLE 13 14 15 16 17 00 17 00 01 16 01 02 15 02 03 14 03 74lS74 ~ D PR 0 LCUD CU~CK 0 CLR .... ...... -=- t m TLlF/l0451-11 FIGURES L~9·N" Ii yes REt.4_enable = 0 Ct.4D_clk =0 CLR_START = 1 REt.4_enable = 0 Ct.4D_clk = 0 CLR_START = 0 REt.4_enable = 0 Ct.4D_clk =0 CLR_START = 1 REt.4_enable = 0 Ct.4D_CLK=O CLR_START = 1 REt.4_enable = 0 Ct.4D_clk =0 = 1 REt.4_enable = 1 Ct.4D_CLK= 1 CLR_START = 1 REt.4_enable = 1 Ct.4D_clk = 1 CLR_START = 1 TL/F/10451-12 FIGURE 6. State Diagram of Rest Time Circuit RAE = 0. Again WAIT_START = 1 and after another ClK-OUT cycle the state machine moves to WAIT3. STATE: WAin In this state REM_enable = 0, CMD_clk = 0, ClR_ START = 1, and if a remote access starts, IO_CHRDY is driven low whenever RAE = 0. While in this state WAIT_ START remains equal to one because it has not been cleared yet. Thus, after one ClK-OUT cycle the state machine moves to WAIT2. STATE: WAIT3 In this state REM_enable = 0, CMD_clk = 0, ClR_ START = 0 which clears WAIT_START, and IO_CHRDY is driven low whenever RAE = 0. Since WAIT_START is cleared, on the next rising edge of ClK-OUT the state machine will make a decision: STATE: WAIT2 In this state REM_enable = 0, CMD_clk = 0, ClR_ START = 1, and IO_CHRDY is driven low whenever 2-130 IF LCMD equals CMD (indicating no change in the value of CMD between cycles) and a valid remote access has started (Le., RAE = 0), then the state machine will move to the RESUME state. (The RESUME state is covered after the WAITS state.) However, if those conditions are not met then the state machine moves to WAIT4. . » z module rescpal flag '-r3' title 'REST-TIME Compliance State Machine'; Q) N ~ 'p16r4'; "inputs: c1ock,enab !sys_reset !rae waicstart !wr_pend xack STATE: WAIT4 In this state REM_enable = 0, CMD_clk 0, ClR_ START = 1, and IO_CHRDY is driven low whenever RAE = O. If LCMD equals CMD and RAE = 0, then on the next rising edge of ClK-OUT the state machine will move to the RESUME state. Otherwise the state machine moves to state WAIT5. L cmd cmd STATE: WAITS pin I,ll; pin 2; pin 3; pin 4; pin 6; pin 7; pin 8; pin 9; "outputs: rem_enable pin 12; pin 13; c1cstart q3,q2,ql,qO pin 14,15,16,17; pin 18; cmd_clk pin 19; I03hrdy In this state REM_enable = 0, CMD_clk = 0, ClR_ START = 1, and IO_CHRDY is driven low whenever RAE = O. IF LCMD equals CMD and RAE = 0 then the next state will be RESUME. As long as the above condition is not met and WR-PEND = 0, the state machine will remain in this state. WR-PEND = 0 indicates that the previous access was a write with the BCP in latched write mode. Holding the state machine at WAIT5 prevents remote accesses, that changes the value of CMD, for the required latched write rest time. =[q3,q2,ql,qO]; =rem_enable; sreg' outputs "definitions: ck,x,z,L,H access st If both of the above conditions are false then the next state will be WAIT6. = .C., .X., .Z.,O,l; = rae; =[q3,q2,ql,qO]; "State Values ... STATE: WAITS idle start waitl wait2 wait3 wait4 wait5 wait6 wait7 wait8 resume hold notusedl notused2 notused3 notused4 In this state REM_enable = 0, CMD_clk = 0, ClR_ START = 1, and IO_CHRDY is driven low whenever RAE = O. If LCMD equals CMD and RAE = 0, then on the next rising edge of ClK-OUT the state machine will move to the RESUME state. Otherwise the state machine moves to state WAIT7. STATE: WAIT7 In this state REM_enable = 0, CMD_clk = 0, ClR_ START = 1, and IO_CHRDY is driven low whenever RAE = O. Any remote access that has changed the value of CMD will be prevented until the end of this state. That would be a minimum of seven ClK-OUT cycles between accesses or 371 ns if OClK = 1S.S696 MHz. Also, all remote accesses which follow a latched write and change the value of CMD have been prevented at least two ClK-OUT cycles or 106 ns, if OClK = 1S.S696 MHz. Thus after one ClK-OUT cycle, if RAE = 0 the next state will be RESUME. Otherwise," it will be WAITS. ="bOlOO; ="bOllO; ="blllO; ="bll 11; ="bllOl; ="blool; ="blOll; ="blOlO; ="bl000; ="blloo; ="bOOOO; ="boolO; ="bOll 1; ="booll; ="bOlOl; ="bOOOl; " 4h " 6h "Eh "Fh "Dh " 9h " Bh " Ah " 8h "Ch "Oh " 2h "7h " 3h " 5h " lh TLlF/l0451-14 . FIGURE 7. PAL Program File (Written In the ABEL Program Language) STATE: WAITS In this state REM_enable = 1, (allows accesses), CMD_ " clk = 0, CLEAR_START = 1, and IO_CHRDY is driven low 2-131 ~ N CD Z < r---------------------------------------------------------------------------------~ equations enable outputs =1; enable IO_chrdy =access; !I03hrdy =( q3 * access) # (!q2 * access) # ( qO * access) # (!xack) # (waicstart * access ); !clcstart = «q3) * (q2) # (sys_reset); * (!q1) * (qO» cmd3lk =(access * !q3 * !q2 * !qO * !waicstart) #(access * !q3 * q1 * !qO * !waicstart) # (access * cmd_clk * !waicstart); !rem_enable =(!q2 * q3) # qO # (q 1 * q3) # waiutart; state_diagram sreg; State idle: " Remain in idle while sys_reset is active. IF (sys_reset) TIffiN idle; ELSE IF (access) TIffiN start; ELSE idle; State start: " Begin normal access. IF (sys_reset) TIffiN idle; ELSE IF (!access # waicstart) TIlEN wait1; ELSE start; State wait1: "First wait cycle. IF (sys_reset) TIffiN idle; ELSE IF (access & L3md & cmd & !waiutart) TIffiN resume; ELSE IF (access & !L3md & !cmd & !waiUtart) TIlEN resume; ELSE wait2; . State wait2: IF (sys_reset) TIffiN idle; ELSE IF (access & L_cmd & cmd & !waicstart) TIIEN resume; ELSE IF (access & !L_cmd & !cmd & !waiUtart) TIlEN resume; ELSE wait3; State wait3: IF (sys_reset) TIffiN idle; ELSE IF (access & L_cmd & cmd & !waicstart) TIffiN resume; ELSE IF (access & !L_cmd & !cmd & !waiUtart) TIffiN resume; ELSEwait4; TL/F/10451-15 FIGURE 7. PAL Program File (Written In the ABEL Program Language) (Continued) whenever RAE = O. This state was included in the state machine to reduce the state machine's logic. Otherwise it would have been logical to return to the IDLE state from WAIT? if RAE = 1 (no access in progress). If RAE = 0, then the next state will be RESUME. Otherwise the state machine returns to IDLE. STATE: RESUME In this state REM_enable = 1, CMD_clk = 1 (rising edge of CMD_clk latches in the present value of CMD), CLR_ START = 1, and 10_CHRDY is driven low while RAE = O. When the state machine moves to this state, it means that a remote access took place quickly after the previous access. The state machine has allowed the remote access to proceed. However, the state machine must have waited the PC-bus for some period of time before entering this state. As a result, the PC-bus should be waited until the XACK signal can take over control of driving 10_CHRDY. For the design of the CT-104, it was determined that once REM_enable = 1, the XACK signal would take over control within two ClK-OUT cycles. So the state machine will wait the PC-bus through this state and the next. On the next rising edge of ClK-OUT the state machine will move to the HOLD state. STATE: HOLD In this state REM_enable = 1, CMD_clk = 1, CLR_ START = 1, and 10_CHRDY is driven low while RAE = O. Again, this state is provided to wait the PC-bus for a second ClK-OUT cycle while still allowing remote access. The next state is CYClLSTART. In CYCLE_START, XACK will take over control of 10_CHRDY. 2-132 State wait4: IF (sys_reset) TIffiN idle;' ELSE IF (access & L_cmd & cmd & !waiutart) THEN resume; ELSE IF (access & !L_cmd & !cmd & !waicstart) TIffiN resume; ELSE waitS; State waitS: IF (sys_reset) TIffiN idle; ELSE IF (access & L_cmd & cmd & !waicstart) THEN resume; ELSE IF (access & !L_cmd & !cmd & !waicstart) THEN resume; ELSE IF (wcpend) THEN waitS; ELSE wait6; State wait6: IF (sys_reset) TIffiN idle; ELSE IF (access & L_cmd & cmd & !waicstart) TIffiN resume; ELSE IF (access & !L_cmd & !cmd & !waicstart) THEN resume; ELSE wait7; State wait7: IF (sys_reset) TIffiN idle; ELSE IF (access) TIffiN resume; ELSE wait8; State wait8: IF (sys_reset) TIffiN idle; ELSE IF (access) TIffiN resume; ELSE idle; State resume: IF (sys_reset) TIffiN idle; ELSE hold; State hold: IF (sys_reset) TIffiN idle; ELSE start; State notusedl: IF (sys_reset) THEN idle; ELSE wait2; State notused2: IF (sys_reset) TIffiN idle; ELSEwait2; State notused3: IF (sys_reset) THEN idle; ELSE wait2; State notused4: IF (sys_reset) THEN idle; ELSE wait2; end TL/F/10451-16 FIGURE 7. PAL Program File (Written in the ABEL Program Language) (Continued) • I 2·133 REST-TIME Compliance State Machine Equations for Module rescpal REST-TIME Compliance State Machine Equations for Module rescpal Device REST_PAL Device REST_PAL !qO := (!qO & !ql # !qO& !q2 # q 1 & !q2 & q3 & -wr_pend # !L3md & !cmd & q3 & I-rae & !waiUtart # L_cmd & cmd & q3 & !-rae & !waiUtart # !-sys_reset # !qO& !q3); Reduced Equations: enable rem_enable = (l); enable IO_chrdy = (!-rae); !I03hrdy = (!-rae & waiutart # !xack #qO& I-rae # !q2 & I-rae # q3 & I-rae); TL/F/10451-18 !elcstart = (!-sysJeset # qO & !q 1 & q2 & (3); !cmd_clk =(waicstart # !cmd_elk & qO # !cmd_elk & !q 1 & q2 # !cmd_elk & q3 #-rae); !rem_enable = (waiUtart # q 1 & q3 # qO # !q2 & (3); !q3 := (!qO & !q2 & !q3 # !qO& !ql & I-rae # !L_cmd & !cmd & q3 & I-rae & !waiutart #L_cmd &cmd&q3 & I-me & !waiutart # !qO & !q3 & I-rae & !wait_start # !-sys_reset # !qO & !ql & q2); !q2:= (!qO & !ql & !q2 & !q3 & -sys_rcset # !ql & q3 & I-rae & -sys_reset # q 1 & !q2 & q3 & -sys_reset # qO & !q 1 & q3 & -sys_reset # !L_cmd & !cmd & q3 & I-rae & -sysJeset & !wait_start # L_cmd & cmd & q3 & I-rae & -sys_reset & !waicstart); !ql := (!qO & Iql & q3 # !qO& !q2 &q3 #qO&q2&q3 # !L_cmd & !cmd & q3 & I-rae & !wait_start # L_cmd & cmd & q3 & I-rae & !wait_start # !qO & !q 1 & q2 & -rae # !-sys_reset); TLlF/10451-17 FIGURE 8. Reduced Equations for Rest Time State Machine PAL 2-134 » z National Semiconductor Application Note 626 William V. Miller DP8344 Timer Application I 0) I\) 0) INTRODUCTION The DP8344 is a communications processor which handles IBM 3270, 3299 and 5250 protocols along with NSC general 8-bit protocol. In order to reduce the impact on the DP8344's CPU the timer was designed to stand-alone and count independently of the CPU. The timer's circuitry includes a unique holding register. This holding register can be loaded with a sixteen-bit countdownvalue, which will remain unchanged until a new value is loaded or the DP8344 is reset. When the timer counts to zero it takes two actions: 1) it sets both the timer interrupt and the Time Out flag [TO], and 2) the timer reloads the sixteen-bit countdown-value stored in the holding register and continues the countdown cycle. This demonstrates a significant advantage of the DP8344's timer; the timer continues keeping accurate time while notifying the CPU that the timer has completed a cycle. The timer does not wait for the CPU to service it, instead the timer notifies the CPU of the completion of a cycle and allows the CPU to take the desired action when it has the time. With the use of the holding register, a multiple number of timer cycles of the exact same duration can be performed consecutively. The other major advantage of the holding register is that it allows the interleaving of any number of countdown-values. Loading the holding register with a new countdown-value does not affect the countdown-value presently in the timer's countdown circuitry. In this way a countdown-value (call it A) can be counting down and the holding register can be loaded with a new countdown-value (call it B). When the value A reaches zero, both the timer interrupt and Time Out flag [TO] are set, and the value B is loaded into the countdown circuitry and starts its countdown. Then the value A can be loaded back into the holding register when the CPU has the time. This demonstrates how countdown-values with different durations can be interleaved and once again how the timer does not have to wait to be serviced by the CPU, making both the timer and CPU more efficient. The CPU can load the upper and lower bytes of the holding register by writing the desired value to the CPU registers {TAHI and {TALI respectively. Control of the timer's countdown circuitry is maintained via three bits in the Auxiliary Control Aegister {ACA I. Timer STart [TST] (bit 7 of (ACAI) is the start/stop control bit for the timer. Writing a one to [TST] starts the timer counting down from the present value in the countdown circuitry. When [TST] is zero the timer stops and the timer interrupt is cleared. The second control bit is Timer LoaD [TLD] (bit 6 of (AAC I). This bit allows the CPU to immediately load the timer's countdown circuitry with the value in the timer's holding register. This capability is required after the DP8344 is reset; the value in the timer's countdown circuitry will be the reset value and not the desired value. CPU controlled loading can also be used to load higher priority countdownvalues before a lower priority countdown is completed. The 5250 Protocol application implements the timer in this manner. Writing a one to [TLD] will load the timers countdown circuitry with the value in the timer's holding register and initializes the timer clock in preparation to start counting down. Upon completing the load operation [TLD) is cleared by internal hardware. When the timer is loaded by writing a one to [TLD], the timer is re-initialized to prevent the timer's circuitry from decrementing the newly loaded countdown-value prematurely. By initializing the countdown circuitry after a CPU load, the newly loaded countdown-value's duration will be accurately measured. The reader should note that there is no way to precisely measure the total elapse time of two or more countdown-values if the CPU loads them (using [TLD)) into the countdown circuitry. However, the error due to CPU loading will be a maximum of one period of the timer for each CPU load and can often be ignored if the countdown values are large. EXAMPLE: countdown-value = 1000 maximum count error = 1 maximum error = 0.1 % The last control bit is TiMer Clock select (bit 5 of (ACAI). This bit determines the rate at which the countdown-value will be decremented. When [TMC] is low, the timer decrements the countdown-value at one-sixteenth the CPU's clock frequency. When [TMC] is high the rate is one-half the CPU's clock frequency. The reader should note that the timer's decrement rate is based on the CPU's clock frequency, which is controlled by CPU Clock Select [CCS] (bit 7 of (DCA I). When [CCS] is low the CPU's clock frequency equals the oscillator's clock frequency, and when [CCS] is high the CPU's clock frequency equals one-half the oscillator's clock frequency. The last portion of the timer's circuitry is a sixteen-bit output register. This output register is loaded with the present value of the countdown-value in the countdown circuitry, at the end of every execution cycle. This register is loaded even if the timer is stopped. The CPU can read the upper and lower bytes of this output register by reading the CPU registers {TAHI and {TALI respectively. The reader should note that when the CPU reads and writes to the registers {TAHI and {TALI the timer's circuitry accesses different registers. All writes will load the timer's holding register and all reads will read the timer's output register. The count status of the timer can be monitored by reading {TAL I and/or {TAH I. When the registers are read, the value in the timer's output register is presented to the CPU and not the value in the input holding register. To read back what was written to {TALI and {TAHI, the timer must be loaded first, followed by a one instruction delay before reading {TALI and {TAHI to allow the output register to be updated after the load operation. Figure 1 is a block diagram of the Timer-CPU interface. 2-135 Ell I ~ r-------~------------------------------------------------------------------- N ~ CPU :2: z 0, I\) 0') lW_TIMER.BCP: .SECf X exx MA,AB ; switch reg bank PUSHP IZ ; save IZ or CCR_TO,CCR ; clear time out of timer UMPBP RSTATE,lW_ TIMER_RESP,NS,tm_relti_c1k ;jump to real time clock counter timer poll/activate read response timeout and offline response timing and -ACR_TST,ACR move TM_2IMS_HI,ACC stop timer prepare timer input upper byte move ACC,lRH ; move, to TRH move TM_2IMS_LO,ACC ; prepare timer input lower byte m0 ve ACC,1RL ; move to TRL or ACR_TST,ACR ; start timer UMPBP RSTATE,RX_RESPONSE_WAIT,S,tm_skip_tfe ; if offline response timeout, skip tfe call and ; unmask Tx interrupt since interrupt expects to be unmasked ; go handle response via TFE interrupt tm_skip_tfe: UMPBP RSTATE,lW_TO_PEND,S,tm_relti_c1k_1 ; jump to real time clock if interrupt pending and -(lW_TIMER_RESPIRX_RESPONSE_WAIT),RSTA TE; ; reset poll response flag ; go check birq, do birq if needed [V0.51 ; real timer e10ck counter tm_relli_clk_l: and -(lW_ TlMER_RESPIRX_RESPONSE_W Am lW_ TO]END),RSTATE reset poll response, response wait, and int pending FLAGS tm_relli_e1k: move DCPHI,IZHI ; setup IZHI move LOW(tw_sysa_por_cntO-I),ACC ; setup IZLO move ACc,mn move I,ACC ; set a 'I' for later use move [+IZ1,GP7 ; get counter cmp GP7,TM_5SEC ; equal to 5.4sec? jz tm_nexCI ; yes, goto next session without counter + I adda GP7,[IZ] ; increment counter ., I TL/F/104S0-S FIGURE 3 (Continued) I 2-141 CD N CD Z tm_nexc1 : « move [+IZ),GP7 GP7,TM_5SEC cmp jz tm_nexc2 adda GP7,[IZ) ; get counter ; equal to 5.4sec? ; yes, goto next session without counter + 1 ; increment counter tm_next_2: move [+IZ),GP7 cmp GP7,TM_5SEC jz tm_nexC3 adda GP7,[IZ) ; get counter ; equal to 5.4sec? ; yes, goto next session without counter + 1 ; increment counter tm_next_3: move [+IZ),GP7 cmp GP7,TM_5SEC tm_next_4 jz adda GP7,[IZ) ; get counter ; equal to 5.4sec? ; yes, go to next session without counter +1 ; increment counter tm_next_4: move [+IZ),GP7 GP7,TM_5SEC cmp jz tm_nexc5 adda GP7,[IZ) ; get counter ; equal to 5.4sec? ; yes, goto next session without counter + 1 ; increment counter tm_nexc5: move [+IZ),GP7 GP7,TM_5SEC cmp tm_next_6 jz adda GP7,[IZ) ; get counter ; equal to 5.4sec? ; yes, goto next session without counter + 1 ; increment counter tm_nexc6: move [+IZ),GP7 GP7,TM_5SEC cmp tm_next_end jz adda GP7,[IZ) tm_nex t_end: tm_check_birq: Ijmp CCR,BIRQ,S,tm_no_birq IcaH dca_fasCbirq tm_no_birq: POPP IZ UNl1XX ret RI,RFB ; get counter ; equal to 5.4sec? ; yes, goto next session without counter + I ; increment counter ; following codes added in [VO.5) ; check pending birq ; yes, go do it ; restore Z ; unlock remote ; return with OlE, ALU flags and reg bank restored .end TL/F/l0450-6 FIGURE 3 (Continued) from a serial keyboard. The timer in this application is used to read the serial keystroke dataword at the proper baud rate. (Refer to Figure 4 for the actual BCP code used for this application.) DP8344 AS A SERIAL INPUT FROM A KEYBOARD Introduction To keep the cost of terminals low, the 3270 protocol was designed to place all of the intelligence of the system in the cluster controller while all of the memory remained in the terminal. In this protocol the terminal is responsible for recording all keystrokes until the cluster controller can poll the terminal and process the keystroke data. Description The specifications for the serial dataword produced by the serial keyboard and read by the DP8344 are as follows: it is 1) asynchronous, 2) ten bits long (1 startbit, 8 databit with the most significant bit first, and 1 stopbit), and 3) transmitted at 1200 baud. When no serial data is being transmitted With that in mind this application uses the timer along with the BIRO interrupt pin as a serial port to read in keystrokes 2-142 the serial data line will be held high. The start bit will be a zero to indicate the beginning of the serial bit string. Once the value of the keystroke dataword has been calculated it is transferred to data memory and the temporary register is cleared so that the next keystroke value may be calculated there. The following is a more detailed description of this process, starting in the middle of the start bit. As mentioned in the introduction, the serial data line from the keyboard is connected to the BIRO interrupt pin (Pin 53 on the OP8344). The BIRO interrupt pin acts as the serial port through which the serial keystroke dataword is read into the OP8344. After eight more timer interrupts the middle of the first and most significant data bit is present at the BIRO pin. So the software unmasks the BIRO interrupt. If a zero is present at the BIRO pin, the software calls the BIRO interrupt service routine. The BIRO interrupt is masked off and nothing is added to the value in the temporary register. After masking off the BIRO interrupt the software returns to perform other operations. On the other hand, if the value at the BIRO pin is a one, the BIRO interrupt is masked off and the value 80 (Hex) (Most Significant Bit) is added to the value (initially 00 (Hex)) in the temporary register. First, BCP software programs the timer to determine the baud rate at which the OP8344 will read the serial dataword presented at the BIRO pin. The timer is pre-configured to divide the CPU clock by two (Le., [TMC] = 1) with the CPU clock set equal to the oscillator clock at 18.8696 MHz (Le., [CCS] = 0). The time out value of 0307 (Hex) is loaded into the timer's holding register via (TRLI and (TRH I. The time out value of 0307 (Hex) corresponds to 0.104188748 ms or approximately one eighth of 0.833333 ... ms, which is the period of one bit at 1200 baud. After the holding register is loaded, the timer is loaded but not started. Both the timer and BIRO interrupts are unmasked and enabled. Now the OP8344 is ready to read an asynchronous, ten bit long serial keystroke dataword at 1200 baud via its BIRO interrupt pin. After the timer is configured the OP8344's software can perform other operations until a zero on the serial data line activates the BIRO interrupt (Note: the BIRO interrupt is active low). The software then jumps to a BIRO interrupt service routine. The service routine will mask off the BIRO interrupt and start the timer and then return to perform other operations. After four consecutive timer interrupts the middle of the startbit should be present at the BIRO pin. To ensure that a glitch or noise did not produce a zero momentarily and that the zero is actually a startbit, the BIRO interrupt is unmasked. If the value at the BIRO pin is a one instead of a startbit zero, the timer is stopped and reloaded with the countdown-value 0307 (Hex). The BIRO interrupt will remain unmasked waiting for the next zero. However, if the value at the BIRO pin is a zero (indicating a valid startbit), the software jumps to the BIRO interrupt service routine. The BIRO interrupt is masked off and the timer continues to run and the software returns to perform other operations. Likewise, after eight more timer interrupts the middle of the second serial databit is present at the BIRO pin. So the BIRO interrupt is unmasked and goes through the same procedure as above to decide if 40 (Hex) should be added to the value in the temporary register. Similarly this method will continue for the next six data bits. After the least significant bit has been evaluated, the value in the temporary register is moved to data memory. The reader should realize that this value can also be stored in another register if desired. Then the temporary register is cleared so that the next keystroke value can be recorded there. The software continues to mask off the BIRO interrupt until the end of the stopbit. At the end of the stopbit the timer is stopped and the time out value 0307 (Hex) is loaded into the timer. The BIRO interrupt is unmasked to wait for the next start bit zero. This application has demonstrated how the timer and the BIRO input/output pin can be used as a serial input. However there should be a note of warning that a production program should sample the serial input signal more than once every bit-time to guarantee valid data at a given baud rate. Furthermore, the software for the OP8344 must guarantee that the timer and/or BIRO interrupts are not masked off by higher priority interrupts for too great a time; this could delay the sampling of the serial input signal for more than a bittime, resulting in invalid data being read. For the case of a true startbit the OP8344 needs to read in the value of the serial keystroke dataword. The value of each data bit must be read one at a time. After each value is read, it is added to a temporary value stored in a register. 2-143 . ~ ~------------------------------------------------------------------~ C\I ~ z < ;----------------------------------------------------------------------- ". This program will receive serial data using the BIRQ pin as a serial. input pin. The timer will be used to detennine when the middle of a bit is present at the BIRQ pin. Then the value of the bit is sampled with the use of the BIRQ interrupt along with software to decide if the bit is a one or a zero. Then the software takes the appropriate action for each case. In this program all keystoke values are stored in consecutive memory locations. ****** National Semiconductor Copyrightl988 ***** ,----------------------------------------------------------------------stdequ.hdr" .input II .sect x CODE: initialization: exx move move exx move move move move move move move move move move move move move move move move move move move move move move move move move move move move move move move move AA,AB,DI SFh,DCR 02h,IBR MA,MB,DI OE7h,ICR lO,IWLO OO,IWHI O,IX O,GPO O,GPl O,GP2 O,GP3 O,GP4 O,GPS GPS,IZLO l,GP6 GP5,IZHI 80h,GP7 GP7,[IZ+2] 40h,GP7 GP7,[lZ+3] 20h,GP7 GP7,[IZ+4] lOh,GP7 GP7,[IZ+S] 08h,GP7 GP7,[IZ+6] 04h,GP7 GP7,[IZ+7] 02h,GP7 GP7,[IZ+8] Olh,GP7 GP7,[IZ+9] OD7h,GP7 GP7,TRL 03h,GP7 ;set CPU-CLK equal to OCLK ;set up interrupts ;unmask timer and BIR interrupts ;clearIW ;clearIX ;clear temporary registers ;load IZ with ;base address in data memory ;for bit constant values ;storing constants for ; the most significant bit ; bit6 ; bit S ; bit4 ; bit 3 ; bit 2 ; bit 1 ; the least significant bit ;load timer's holding register ;with count down value TL/F/10450-7 FIGURE 4 2-144 » z a, move GP7,TRH ;load timer move 61h,ACR ;END of initialization N 0) back: cmp jz cmp jz cmp jnz move jmp GPO,O back GPO,O back GPl,O nexcl O,GP2 nexc2 move move move adda cmp jnz move move move OEFh,ICR GPl,GP4 [IZ+AJ,GP4 GP5,GP5 GPl,9 next 2 ;waiting for BIRQ interrupt ;protection ;Is this a true start bit? ;NO, then clear GP2 nexcl: ;mask off the BIRQ interrupt ;load value of present bit ;add value of present bit ;Is this bit O? GP5~[IW+J ;YES, store byte of imfonnation ;clear temporary registers O,GP5 O,GP6 nexc2: move O,GPO Ijmp back ;Timer Interrupt Service Routine ,.******************************* tm: or cmp jnz add cmp jnz move move move move move move 80h,CCR GP6,O nexclO l,GP3 GP3,14h nexcll 60h,ACR O,GPI O,GP2 O,GP3 l,GP6 OE7h,ICR ret RI cmp jnz add cmp jnz move move move GPl,O nexc12 l,GP3 GP3,4 nexc13 l,GPO O,GP3 OE7h,ICR ret RI ;clear [TO] flag ;Is GP6 = O? ;loop until the stop ; bit has passed ;stop and load timer ;clearGPl ;clearGP2 ;clearGP3 ;set GP6 = 1 ;unmask the BIRQ interrupt nexcll: nexcl0: ;Is this the start bit? ;YES, add one to GP3 ;Is it the middle of the ;start bit? ;YES, set GPO = 1 ;clearGP3 ;unmask BIRQ interrupt nexc13: TL/F/10450-8 FIGURE 4 (Continued) 2-145 z jmp 0) loop N 0) ;Timer interrupt selVice routine ,.******************************* dest: nexcl: nexC2: nexc3: CODE: or add cmp rnz move move add cmp jnz move move rnz move add cmp jnz move move move rnz move add cmp jnz move move move rnz move add move move ret 80h,CCR 1,IWLO IWLO,32h RI O,IWLO [IZ+40h] ,IXLO 1,IXLO IXLO,3Ch nexcl O,IXLO IXLO,[lZ+40h] RI [IZ+30h],IXLO 1,IXLO IXLO,3Ch nexc2 O,IXLO IXLO,[IZ+30h] O,IXLO RI [IZ+20h],IXLO 1,IXLO IXLO,18h nexc3 O,IXLO IXLO,[lZ+20h] O,IXLO RI [IZ+ 1Oh],IXLO 1,IXLO IXLO,[IZ+ 10h] O,IXLO RI ;c1ear [TO] flag ;increment IW ;does IW =50 decimal ;NO, then return with interrupt on ;c1earIW ;YES, then increment IX ;does seconds =60 ;YES, then clear seconds ;move seconds to data memory ;increment minutes ;does minutes =60 ;YES, then clear minutes ;move minutes to data memory ;increment hours ;does hours =24 ;YES, then clear hours ;move hours to data memory ;increment days .sect ax .org 114h Ijmp dest .END TL/F/10450-13 FIGURE 7 (Continued) I II I 2·151 . U) ,.... Lt) Z PHASE-A .--------+......------c:::::::>PHASE-B ~-~~~~---~~~~ SHIELD eND . ~-ACT -0. , PWR-COOD TERMINATE 5Ull 1:; 54.911 1:; 10K 10 10K 820K UK 33pF 10"-9 L> NRZI-DAT " 1 '. . . . . . . TLIF/9635-5 FIGURE 5_ Schematic 2-154 nominally 29 mV ± 20%. This value allows the steady state, worst case signal level of 100 mV 66% of its amplitude before transitioning. The current mode drive method used by native twinax devices has both distinct advantages and disadvantages. Current mode drivers require less power to drive properly terminated, low-impedance lines than voltage mode drivers. Large output current surges associated with voltage mode drivers during pulse transition are also avoided. Unwanted current surges can contribute to both crosstalk and radiated emission problems. When data rate is increased, the surge time (representing the energy required to charge the distributed capacitance of the transmission line) represents a larger percentage of the driver's duty cycle and results in increased total power dissipation and performance degradation. To achieve this, a differential comparator with complementary outputs can be applied, such as the National LM361. The complementary outputs are useful in setting the hysteresis or switching threshold to the appropriate levels. The LM361 also provides excellent common mode noise rejection and a low input offset voltage. Low input leakage current allows the design of an extremely sensitive receiver, without loading the transmission line excessively. In addition to good analog design techniques, a low pass filter with a roll-off of approximately 1 MHz should be applied to both the A and B phases. This filter essentially conducts high frequency noise to the opposite phase, effectively making the noise common mode and easily rejectable. A disadvantage of current mode drive is that DC coupling is required. This implies that system grounds are tied together from station to station. Ground potential differences result in ground currents that can be significant. AC coupling removes the DC component and allows stations to float with respect to the host ground potential. AC coupling can also be more expensive to implement. Layout considerations for the LM361 include proper bypassing of the ± 12V supplies at the chip itself, with as short as possible traces from the pins to 0.1 J.LF ceramic capacitors. USing surface mount chip capacitors reduces lead inductance and is therefore preferable in this case. Keeping the input traces as short and even in length is also important. The intent is to minimize inductance effects as well as standardize those effects on both inputs. The LM361 should have as much ground plane under and around it as possible. Trace widths for the input Signals especially should be as wide as possible; 0.1 inch is usually sufficient. Finally, keep all associated discrete components nearby with short routing and good ground/supply connections. ' Drivers for the 5250 environment may not place any signals on the transmission system when not activated. The poweron and off conditions of drivers must be prevented from causing noise on the system since other devices may be in operation. Figure 5 shows a "DC power good" signal enabling the driver circuit. This Signal will lock out conduction in the drivers if the supply voltage is out of tolerance. Twinax signals can be viewed as consisting of two distinct phases, phase A and phase B, each with three levels, off, high and low. The off level corresponds with 0 mA current being driven, the high level is nominally 62.5 mA, +20%-30%, and the low level is nominally 12.5 mA, +20%-30%. When these currents are applied to a properly terminated transmission line the resultant voltages impressed at the driver are: off level is OV, low level is 0.32V ± 20%, high level is 1.6V ± 20%. The interface must provide for switching of the A and B phases and the three levels. A bi-modal constant current source for each phase can be built that has a TTL level interface for the BCP. An integrated solution can be constructed with a few current mode driver parts available from National and Texas Instruments; The 7511 OA and 75112 can be combined to provide both the A and B phases and the bi-modal current drive required as in Figure 5. The external logic used adapts the coax oriented BCP outputs to the twinax interface circuit, and prevents spurious transmissions during power-up or down. The serial NRZ data is inverted prior to being output by the BCP by setting TIN, {TMR[3] J. Design equations for the LM361 in a 5250 application are shown here for example. The hysteresis voltage, Vh, can be expressed the following way: Vh = Vrio + ((Rin/(Rin + RI) x Vol) - (Rin/(Rin + RI) x Vol)) where Vh - Hysteresis Voltages, Volts Rin - Series Input Resistance, Ohms RI - Feedback Resistance, Ohms Cin - Input Capacitance, Farads Vrio- Receiver Input Offset Voltage, Volts Voh- Output Voltage High, Volts Vol - Output Voltage Low, Volts The input filter values can be found through this relationship: Vcin = Vin1 - Vin2/1 + jwCin (Rin1 where Rin1 = Rin2 = Rin: Fro = W/21T RECEIVER CIRCUITS The pseudo-differential mode of the twinax signals make receiver design requirements somewhat different than the coax 3270 world. Hence, the analog receiver on the BCP is not well suited to receiving twinax data. The BCP provides both analog inputs to an on-board comparator circuit as well as a TTL level serial data input, TTL-IN. The sense of this serial data can be inverted by the BCP by asserting RIN, {TMR[4]J. + Rin2) Fro = 1/(21T X Rin X Cin) Cin = 1/(21T X Rin X Fro) where Vin1, Vin2- Phase A and B signal voltages, Volts Vcin - Voltage across Cjn, or the output of the filter, Volts Rin1, Rin2- lnput resistor values, Rin1 = Rin2, Ohms Fro - Roll-Off Frequency, Hz W - Frequency, Radians The external receiver circuit must be designed with care to ensure reliable decoding of the bit-stream in the worst environments. Signals as small as 100 mV must be detected. In order to receive the worst case signals, the input level switching threshold or hysteresis for the receiver should be 2-155 » z I U1 -" m CD orLI) :2: z ..... U1 en CD '9'- Lt) z• < setup. This vectors to code that refills the FIFO and re-enabies that interrupt again, if needed. This operation must be carried out before the transmitter is finished the last frame in the FIFO or the message will end prematurely. RECEIVER INTERRUPT The receiver interrupt algorithm handles any or all seven addresses possible on the twinax line. The same code is used for each address by utilizing a page oriented memory scheme. Session specific variables are stored in memory pages of 256 bytes each. All session control pages, or SCPs are on 256-byte even boundaries. By setting the high order byte of a BCP index register to point to a particular page or SCP, the low order byte then references an offset within that page. Setting up data memory in such a way that the first SCP begins at an address of B # xxxx xOOO 0000 0000 further enhances the usefulness of this construct. In this scheme, the high byte of the SCP base pointer can be used to set the particular SCP merely by summing the received or selected address into the lower three bits of the . base register. The last frame transmitted must contain the EOM delimiter. It can be loaded into !TCRI and data into !RTRI while the transmitter is running without affecting the current frame. In other words, the transmit FIFO is 12 bits wide, including address and parity with data; the address field is clocked along with the data field. In this way, multi-byte response may be made in efficient manner. ERROR HANDLING In 5250 environments, the time immediately after the end of message is most susceptible to transmission errors. The BCP's receiver does not detect an error after the end of a message unless transitions on the line continue for a complete frame time or resemble a valid sync bit of a multiframe transmission. If the twinax line is still active at the end of what could be an error frame, the receiver posts the LMBT error. For example, if noise on the twinax line continues for up to 11 p,s after the three required fill bits, the receiver will reset without flagging an error. If noise resembles a start bit, the receiver now expects a new frame and will post an error if a loss of synchronization occurs. If the noisy environment is such that transitions on the receiver's input continue for 11 p,s, or the receiver really has lost sync on a real frame, the error is posted. Basically, the receiver samples [LA] in addition to the loss of synchronization indication to determine when to reset or to post an error. After a loss of synchronization in the fill bit portion of a frame, if the [LA] flag's time-out of 2 p,s is reached prior to the end of what could be the next frame, the receiver will reset. If the transitions prevent [LA] from timing out for an entire 11 p,s frame time, a LMBT error is posted. This method for resetting the receiver is superior in that not only are the spurious loss of mid bit errors eliminated, the receiver performs better in noisy environments than other designs. NORMAL OPERATION In normal operation, the configuration described thus far is used in the following manner: After initializing the registers, data structures .are initialized, and interrupt routines should be activated. This application utilizes the receiver, transmitter, timer, and bi-directiorial interrupts. Since (lBRlis set to H#1F, the interrupt table is located at H#1FOO. A LJMP to the receiver interrupt routine should be installed at location H # 1F1 04, the transmitter interrupt vector at H # 1FOS, the BIRO interrupt vector at H#1F10, and the Timer interrupt vector at H # 1F14. Un-masking the receiver interrupt and BIRO at start up allows the device to come on-line. When interrupt by the receiver, the receiver interrupt service routine first checks the [ERR] flag in ! TSR [B5] I. If no errors have been flagged, the received_EOM flag is either set or cleared. This is accomplished by comparing ! TSR [BO-2]1 with the B # 111 EOM delimiter. A test of the selected flag, ! GP5' [B7] I determines if any of the active addresses are selected. Assuming that the system is just coming on line, none of the devices would be selected. ·U the frame is addressed to an active device, the SCP for that device is set, and the command is parsed. Parsing the command sets the appropriate state flags, so that upon exiting, the interrupt routine will be prepared for the next frame. Once parsed, the command can be further decoded and handled. If the command is queue-able, the command is pushed on the internal command queue, and the receiver interrupt routine exits. If the command requires an immediate response, then the response is formulated, the timer interrupt is setup, and the routine is exited. The timer interrupt is used in responding to the host by waiting an appropriate time to invoke the transmit routine. The typical response delay is 45 ± 15 p,s after the last valid fill bit received in the command frame. Some printers and terminals are allowed a full 60 ± 20 p,s to respond. In either case, simply looping is very inefficient. The immediate response routine simply sets the timer for the appropriate delay and unmasks the timer. SUMMARY The IBM 5250 twinax environment is less understood and in some ways more complex than the 3270 environment to many developers. This application note has attempted to explain some basics about twinax as a transmission medium, the hardware necessary to interface the DPS344 to that medium, and some of the features of the BCP that make that task easier. Schematics are included in this document to illustrate possible designs. Details of the twinax waveforms were discussed and figures included to illustrate some of the more relevant features. Also, some different software approaches to handling the transceiver interface were discussed. REFERENCES 5250 Information Display to Systeml36. and Systeml38 System Units Product Attachment Information, IBM, November 19S6. Transmission Line Characteristics, Bill Fowler, National Semiconductor Application Note AN-10S. Basic Electromagnetic Theory, D.T. Paris, F.K. Hurd McGraw-Hili Inc., 1969. In the transmit routine, the data to be sent is referenced by a pointer and an associated count. The routine loads the appropriate address in the three LSBs of !TCRI. and writes the data to be sent into! RTR I. This starts the transmitter. If the data count is greater than the transmit FIFO depth (three bytes), the Transmit FIFO Empty interrupt [TFE] is 2-160 » z APPENDIX A: EXAMPLE CODE I The following code was assembled with the HILEVEL assembler. Table II shows the correlation between HILEVEL mnemonics and the mnemonics used in National data sheets for the DP8344V. U1 ~ Q) TABLE II HILEVEL National Semiconductor MOVE LD ST LDAX STAX LDNZ STNZ LDl STl t10VE MOVE MOVE MOVE MOVE MOVE MOVE MOVE MOVE Rs,Rd F't r , Rd { , Md e} Rs,F'tr{,Mde} F'tr,Rd Rs,F'tr n,Rd Rs,n n,Rd n,F'tr Rs,Rd EmIr J , Rd Rs, EmIr J Elr + AJ ,Rd Rs,Elr + AJ EIZ + nJ ,rd rs,EIZ + nJ n,rd n,ElrJ ADD Rs,Rd ADDRI Rs,F'tr{,Mde} ADDl n,Rsd ADDA Rs,Rd ADD A Rs, EmIr J ADD n,rsd ADC Rs,Rd ADCRI Rs,F'tr(,Mde} ADCA Rs,Rd ADCA Rs, EmIr] SUBT Rs,Rd SUBRI Rs, F'tr (, Mde} SUBl n,Rsd SUBA Rs,Rd SUBA Rs,EmIrJ SUB n ,r-sd SBC Rs,Rd SBCRI Rs,F'tr{,Mde} SBCA Rs,Rd SBCA Rs, EmIr] AND Rs,Rd ANDRI Rs,F'tr(,Mde} ANDI n,Rsd ANDA Rs,Rd ANDA Rs, EmIr] AND n,rsd Rs,Rd OR ORRI Rs,Ptr{,Mde} ORI n,Rsd ORA ORA OR XOR Rs,Rd XORRI Rs,F'tr(,Mde} XORI n,Rsd XORA Rs,Rd XORA Rs, emIr J XOR n,rsd Rs,Rd Rs, EmIr] n,rsd CMF' Rs,n CMF' rs,n CPL Rsd CF'L Rsd BIT Rs,n BIT rs,n SRL SLA ROT Rsd,n Rsd,n Rsd,n SHR SHL ROT Rsd,b Rsd,b Rsd,b TLIF/9635-9 I II 2-161 U) r------------------------------------------------------------------------------------. .... a.n . JMP LJMP JMPR JMPI JRMK Jt1PB JMPF Z c( JMP LJMP JMP LJMP JRM.< LJMP JMP Jcc n n Rs Ptr Rs,n,m Rs,s,p,n s,f,n n nn F~s UrJ Rs,b,m Rs,p,s,nn f,s,n n - opt. syntax for JMP f- CALL n LCALL n CALLB Rs,s,p,n CALL r, LCALL LCALL RET {g{,rf}} RETF s,f{,g{,rf}} {g {,rf}} RETF f,s,{,{g} {g o[,rf}} Rcc EXX Rs,p,s,nn F~ET EXX a,b{,g} nn {,r-f}} -: opt. !.;ynta:·: - ba,bb,{,g} TRAP n {,gU} TRAP no[, g} Tab l~:l 2. Addr Line 1 2 3 4 5 6 7 9 9 10 11 12 13 14 15 16 17 19 19 20 21 22 23 24 25 26 .REL TAB B WIDTH 132 LIST S,F TITLE RXlNT ;----------------- ---------------------------------------------------RUNT· 9/21/87 pseudo tode ; ;boal jbyte jbyte jbaol '* selected; seladdrj luItitount; activated; station is selected 1* address af selected station '*nulber af frales in this luI ti It tOlland has been activated data; rx.eolll; Ita; 1* data star age It recei ved EDI! If line turn araund flag j ;rxinto jbyte ;baol jbaal j{ if (errarl if (lagerrar () == true I return; 1* recei ver errors ) else { if (TSR == ED"I rx.eal = true; else rx.eoll = false; It set received EO" flag 27 29 if (!selectedl { TLIF/9635-10 2·162 if (!rx_eoll seladdr : !TSR f EO~); I l = (SCPBASE + seladdrl; /f set SCP to appropriate session -/ data: rtr; else { proto_error (); I' should not get here reset_xcvr (I; return II; 32 33 34 35 36 37 ) 3B 39 40 else { reset_xcvr II; return II; 41 42 47 if (lIuHifralle) ( If adivate llrite, etc ... lulticount = parseldata)j /f set nUlber of frales 1/ seleded = truej /f ani y lIay to select f/ queue Idata) ; 49 49 else { 44 45 46 ) 50 51 52 53 54 55 Addr /f not of interest } --43 / f not luI ti , if ((var = single_decodeldata)) == queable) queue (datal; else if (var == illedl illediate Idatal j else { 1Z = (SCPBASE + seladdr I; 'f selected " Li ne RUNT data = rtr 56 57 5B 59 60 61 62 63 64 65 66 67 6B 69 70 71 72 73 74 75 76 77 78 . »z if Cacti vel { 29 30 31 ,. in the liddle of translission if (acti vatedl { act_data(datal; if (rx_eol) { selected = false; activated = false; 'f end of lessage } return () ; } if Clulticount > 0) queue(data) ; if (luI ticount-= 0) if (n_eol) selected = fal se; ) else { if (luHifrue) ( luHicount = parse Idata); queue (data); ) else { if ((var = singleJecodeldatall == queablel queue(datal; TL/F/9635-11 2-163 U1 -I. 0) ~ ..... Lt') r---------------------------------------------------------------------------------else if ('/ar == i.led) imllediateldata); if Irx_eolll) selected = false; 79 :2: BO Bl c:r:: B2 83 84 B5 86 B7 ., return I); II BB ; logerror () 89 90 j( 91 T2 93 94 95 96 97 9B 99 100 101 102 103 104 105 lOb 107 lOB 109 110 Addr } ; boal resul tj s"itch lerror _typel case RDIS: result = errJdisl)j break; case 1MBT: result = err )Ibt II; break; case PARR: result = err _parr II ; break; case OVF: result = err _ovf () j break; defaul t: result = err _unknolln (); break; 'If receiver diabled while active /f loss of midbi terror /f pari ty error /f recei ver FIFO overrun /* strange error handler return Iresul t) j Line RUNT 111 112 113 114 115 116 117 11B 119 120 121 122 123 124 125 126 127 12B jerr )lbtO j{ if I!DA &Ie !selected else { log (); return (true) j 1I~ !delayllAIl returnlfalselj /* delay of 6 usee 1* bump error counters /f adlli t defeat ; --------------------------------------------------------------------nale: RXlNi recei ver interrupt handler descri ption: recei ved datu. is sent to other routines thru gp7' SCP is set appropriately in lZ SP5P - active addresses: bits 0-6 . selected flag: bit 7 6P6P - lultieount: bit 7-6 unused: bi t 5 TlIF/9635-12 2-164 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 00000 00000 00001 00002 00003 00004 00004 IC:"'I .N AEE8 D500 CCOO D900 D900 B078 00005 FI6S 00006 307B 00007 DODO bi t 4 bi t 3 bi ts 2-0 Oil interrupt, GP5', GP6' ACC' ,SP7' ARE DESTROYED tjq 9/16/87 create entry: exit: hi story: --------------------------------------------------------------------PUBLIC RCVRINT 5ELERR: RXEDI'I: EOI'I: MULTI: SELECT: LTA: CFLAS: EXTRN EHRN EXTRN PARSE, QUEUE, I ~~EDECODE, RESXCVR I'll DERRL, I'll DERRH, OVFERRL, OVFERRH, PARERRL, PARERRH RXERRL ,RXERRH ,R5PCTL ,RSPCTH ,8flSE5CP, IESERRL, IESERRH EQU EQU EQU EQU EQU EQU EQU 8101000000 BI0000I000 BIOOOOOlll 8111000000 8110000000 ell01 8100000010 ; sel ect the error regi ster j rxeoll flag i EOM deliileter ; multi count ; selected flag EXX /'\A,AB,DI ; 5ET APPROPRIATE BANK JI'IPF CALL JI'IPF NS, RERR, NOERROR RXERROR ; ERROR IN FRAME 5, C, EXIT ; ABORT LDI AND EOH,ACC TSR,SP7 ; LOAD MASK ; FORM ADDRESS CMP GP7, EO 1'1 ; TEST JI'IPF NS,Z,CIRXINT i IF NOT EQUAL, JUMP ORI JHP RIEOI'I, GP6 C2RXINT ; ELSE SET EOI'I FLAG ANDI RXEOM* ,6Pb ; CLEAR IT j ; CARRY FLAG RCVRINT: NOERROR: Line RXINT Addr 00008 00009 OOOOA OOOOA 154 154 155 156 157 158 159 160 160 161 161 162 acti vated: rx_eoll flag: seladdr: 6P7P - received data 50BA cavo C800 4F7A OOOOB 00008 8DE9 OOOOC 0000 163 164 165 101: 167 168 169 170 171 171 171 172 173 CIRXINT: ; ; DECIDE IF WE'RE ALREADY SElECTED ; C2RXINT: JI'IPB 6P5,S,B7,DEVSELECT ; IF ALREADY SELECTED ; ; NOT SELECTED ... DECIDE IF ADDRESS IS ACTIVE, IE; VALID FOR US TLIF/9635-13 2-165 ....CD . it) z Z U1 ..... Line RUNT OOOSE BCOB 0005F 0000 00060 CEeJ 00061 ~OOO 00062 CEBO 00063 0000 00064 CBOO 00065 00065 CEBO 00066 0000 00067 0006B 00069 0006A BC6A 0000 47F9 47F9 0006A 0006B 0006C 0006C CEBO 0000 0000 AFBO 0006D 0006D 5406 0006E FD64 0006F 4BF 6 00070 BD2D 00071 0000 00072 BD6D 00073 0000 265 265 265 266 266 266 267 267 267 26B 269 270 271 272 273 273 273 274 274 274 275 276 277 277 277 27B 279 290 2Bl 2B2 2B3 2B4 2B5 2B6 2B7 2BB 2B9 290 291 292 293 294 294 295 296 296 296 297 297 297 299 I JIIPB SP7,NS,BO,SINGLE; IF NEW COIIIIAND IS NOT IIULTI, LCALL PARSE ; IS IIUL TI, SET COUNT LCALL QUEUE ; PUSH ON QUEUE Q) ; QUIT, TIL NEXT FRAIIE JIIP EXIT ; ; NEil COIIIIAND IS SINGLE ANDIOR NEEDS IIIIIEDIATE RESPONSE ; SINGLE: ; SINGLE ••• SO DO IT LCALL IIIIIEDECODE JIIPB 6P6,NS,B3,EXIT ; IF NOT EOII ••• ANDI SELECT f ,6PS ; CLEAR SELECTED BIT LCALL RESXCYR j RET RI,RF ; RETURN GRACEFULLY RSTRX: RESET, CLEAR DATA OUT EXIT: ;--------------------------------------------------------------------RXERROR nne: description: recei ver ERROR handl er entry: exi t: hi story: ; DA + ERR interrupt, SPS', GP6' ACC' ,GP7' ARE DESTROYED tjq 9/16/B7 create --------------------------------------------------------------------- j j RECEIVER ERROR HANDLER ; RXERROR: SELERR, TeR ORI RTR,SP7 110YE ; SET ECR BIT j SET ERROR TYPE ANDI JIIPD SELERRt, TCR ; RESET TCR GP7,S, 81 ,LIIBTERRj LOSS OF IIID8IT JI1PB GP7,S,B3,PARERR; PARITY JI1PB SP7, S, 84, OYFERR ; OYER FLOW TLIF/9635-17 • I I 2-169 CD ,.... I.t) Z c( 00074 00075 00076 00076 BDBB 0000 0000 BOOB Addr 00079 BDE9 0007A 0000 0007B ceoo BCAI 0000 0000 BOOB CBOO CBOO. BOOB CBOO CBOO B008 B008 000B3 E212 000B4 BOIB 00085 COCA 000B6 A04A 000B7 0100 OOOBB COCA 000B9 OOOBA OOOBB OOOBD oooac OOOBC OOOaD ILLEGAL: LDI ILLEGAL, ACC ; WHAT ERROR IS THIS? JI!P BUI!PERR ; SHOULD NOT GET HERE!! JI!PF JI!PB ; if DA, THEN NO ERROR S,DA,CLEARC GP5,S,B7,LOSIT ; IF SELECTED, POST CALL JI1PB ; DELAY FOR 6 USEe SOLY NCF,NS,B5,CLEARC; IF NOT ACTIVE - DISCARD, ELSE POST LDI JI1P I!IOERRL,ACC BUI1PERR ; LOSS OF I!IDBIT i INCREMENT CoUtlTER LDI JI!P PARERRL ,ACC BUI1PERR j LDI OVFERRL, ACC ; OVERFLOW ... VERY BAD! ADD ZLO, YLO ; FORI! NEW POINTER LDI LD HIOl,ACC PTRY,GP6 j ADORI GP6,PTRY,POSTD i ilRITE OUT NEil JI!PF LD NS,C,RXEIIT PTRY,GP6 ADDRI 6P6,PTRY ORl CFLA6,CCR Line RUNT 00077 CBOO 0007B CBOO 00078 DEOO 0007C 00070 oo07E 0007E 0007F OOOBO OOOBO OOOBI 00082 000B2 00083 29B 29B 299 300 AOCA 5020 5020 AFBO AFBO 4FDO CBOO 301 302 303 304 304 304 305 306 306 306 307 30B 309 310 311 312 313 314 315 316 316 317 31B 31B 319 319 320 321 321 322 322 323 324 325 326 327 32B 329 330 331 332 333 334 335 336 337 LI!BTERR: LOGIT: PARERR: PARITY OVFERR: BUI1PERR: INCREIIENT ; FETCH OLD COUNT ; 6ET OUT ; FETCH UPPER BYTE i SET CARRY RIEXIT: ; DO NOT restore flags RET CLEARC: ANDl JI1P CFLAGf,CCR RXEXIT ; CLEAR CARRY ; --------------------------------------------------------------------SDLY nale: delay routine, I!ULTIPLES OF 4.Busec, description: 1.4 usee OVERHEAD, IIAI OF 410usec delay count on stack entry: acc destroyed exi t: DDNT CALL THIS WITH COUNT = O! WARNING: tjq 9/16/B7 create history: -------------------------------------------------------------------TL/F /9635-18 2·170 :r> 338 339 SDLV: OOOBE 340 OC08E AESO 340 341 0008F FD1F 341 342 00090 FFEB 342 343 Addr Line RUNT 00091 FFEA 00092 00093 00093 00094 00094 00095 00096 00097 FD6S FD6S S03A B03A 201A 0000 201B 0000 00098 FD5F 00099 FD7F 0009A AFBO 343 344 344 345 346 347 348 349 350 351 352 352 353 353 354 355 356 357 Z en ..... EXX IIA,IIB,NAI j BANK, ALLOW INTERRUPTS 1I0VE DS,Ace j SET COUNT !lOVE SP7,DS j PUSH 6P7 RESISTERS USED IIOVE SP6,DS 1I0VE ACC,6P7 ; USE 6P7 FOR COUNT ALSO LOI HI03,6P6 j SUBI JIIPF SUBI JIIPF !'lOVE j DECREIIENT COUNT HI01,6P6 NS, Z,SDLYLP2 ; CONTINUE UNTIL EXHAUSTED ; DECREMENT OUTER COUNT HI01,6P7 NS, Z,SDLVLPI j CONTINUE IF NOT ZERO j POP RE6 DS,6P6 !lOVE DS,6P7 RET RI,RF Q) SDLVLPI : LOAD FOR 4.8usec COUNTS SDLVLP2: j RETURN, RESTORE FLASS END Asselbl y Phase co.plete. o error (51 detected. TLlF/9635-19 II I 2-171 00 00 CD r-------------------------------------------------------------------------------------~ National Semiconductor Application Note 688 Laura Johnson :Z The DP8344 BCp® Inverse cc Assembler OVERVIEW The DP8344 BCP Inverse Assembler is a software package for use in a Hewlett Packard Logic Analyzer. It was developed by National Semiconductor's Arlington Design Center to allow disassembly of the DP8344 op-code mnemonics. When developing systems using a RISC processor such as the DP8344, the need often arises to know the sequence of events that occurred in real time in the system. The actual execution flow that occurred in the system can be determined by monitoring the states on the Instruction memory Address bus and the Instruction memory bus of the DP8344 with a Hewlett Packard Logic Analyzer. The DP8344 BCP Inverse Assembler enhances this development tool by displaying the BCP instruction op-code mnemonics on the logic analyzer's screen. This Application Note lists the equipment needed as well as the necessary information to set up, use, and obtain the DP8344 BCP Inverse Assembler. Additionally, the source code flow chart for the DP8344 BCP Inverse Assembler is provided in Appendix A of this Application Note. EQUIPMENT REQUIRED Design/Evaluation Kit includes both the hardware and software that allows the MPA to emulate a 3270 or 5250 display terminal and to support industry standard PC emulation software. The MPA Design/evaluation Kit is available from National Semiconductor (Part No. D88344MPA-EB). All the examples in this document were generated using an MPA board and it's associated software for the target system. Additional equipment which one may find useful includes an extender card and an 84-pin PLCC Adapter. The extender card brings a PC board out of the PC chasis, allowing easier access to the BCP. An 84-pin PLCC Adapter allows one to directly connect the channels of the logic analyzer to the pins on the BCP. Emulation Technology, Inc., makes an 84-pin PLCC Adapter which it calls a BUG KATCHER. (It is Part No. BC-4-084-PCC5-00000). The sample target system described above includes the following equipment: 1. IBM® Personal Computer or compatible 2. MPA Development Kit 3. Extender Card (optional) The following equipment is required to use the DP8344 BCP Inverse Assembler: 1. DP8344 BCP Inverse Assembler; Available from National Semiconductor. 2. HP1650A or HP1651A Logic Analyzer, or HP16500A Logic Analysis System with an HP16510A State/Timing Card installed. 3. DP8344 Biphase Communications Processor in a System. It is assumed that the reader is familiar with the operation of the HP Logic Analyzer. For further information refer to the Operation Reference Manual provided with the HP1650A or 1651 A Logic Analyzers, or with the HP1651 OA Logic Analyzer Module. Information pertaining to the operation of the logic analyzer in a state mode will be useful. SYSTEM SETUP A block diagram of the setup of the system for using the DP8344 BCP Inverse Assembler is shown in Figure 1. The target system refers to a system containing a BCP which is running. The DP8344 BCP Inverse Assembler is software which has been loaded into the HP Logic Analyzer. The target system is interfaced to the DP8344 BCP Inverse Assembler through the HP Logic Analyzer's channels. An example of a target system is a Multi-Protocol Adapter (MPATM) installed in a personal computer. The MPA I Target System I I 4. 84-Pin PLCC Adapter The DP8344 BCP Inverse Assembler requires information from both the Instruction memory Address bus and the Instruction memory data bus of the BCP in the target system. Thus, these pins must be connected to the logic analyzer. The 84-pin PLCC Adapter allows one to directly connect the logic analyzer channels to the BCP. Figure 2 provides a detailed view of the pin connections from the DP8344 to the logic analyzer. The pins can be connected to any of the pods as long as the channel and label definitions are defined accordingly in the FORMAT Menu as described later in this Application Note. STARTING THE DP8344 BCP INVERSE ASSEMBLER Once the system hardware has been set up, the DP8344 BCP Inverse Assembler software needs to be installed in the HP Logic Analyzer. The 3% inch diskette provided in the DP8344 BCP Inverse Assembler Package contains the software for the HP Logic Analyzer. Load the DP8344 BCP Inverse Assembler Software into the HP Logic Analyzer by selecting either LOAD ALL from file BCP, or LOAD State/ Timing E, from File BCP.E as in Figure 3. This automatically loads the DP8344 BCP Inverse Assembler as well as the stored State/Timing configuration into the HP Logic Analyzer. Channels from the HP Logic Analyzer to the BCP J I IHP Logic Analyzer I TL/F/10B14-1 FIGURE 1. Block Diagram of the System Set Up ) 2-172 CONFIGURING THE HP LOGIC ANALYZER logic analyzer's configuration must follow the setup described here. Figures 4-6 show the configuration provided on the DP8344 BCP Inverse Assemblerdiskette. One may create their own configuration by adding more labels and connecting more channels to the target system than shown in the examples in this document. This will allow one to monitor the system activity according to their needs. However, the logic analyzers system configuration must include the following: The DP8344 Inverse Assembler software contains a Statel Timing configuration which one may use without any changes. The designer can change this default configuration, or define an entirely new configuration to meet their own systems needs. However, certain parameters must exist in the configuration for the DP8344 Inverse Assembler to work. These parameters will be described using the default configuration as an example. » z m CD CD In the Configuration Menu, as in Figure 4, one must: Internal communication variables are set as the logic analyzer collects data from the target system. Therefore, the 1. Define the Analyzer Type to be a State Analyzer. 2. Assign at least two pods to the State Analyzer. Label DATA: Channels 8-15 Label DATA: Channels 0-7 ,,' Label DATA: ~eIO ... {~------~~'------~ Label ADDR: Channels 1-7 AD7 18 AD6 19 ADS 20 DP8344A AD4 Vee Label STAT Channel 0 21 BCP 22 GND 23 84-pin PLCC 24 (top viow) AD3 Label ADDR: Channels 8-15 25 26 Connect to clock channel of any Pod and define this as the clock in the Format Menu TLIF/10814-2 FIGURE 2. Pins Connected to Logic Analyzer Pods fII I 2-173 '-_";"-_ _"') ( Front Disc) ) from file All BCP ( Execute TL/F/l0614-3 File Type File Description inverse_assem 16530A-config 16510A-config 16500A-config DP8344 BCP DP8344 BCP DP8344 BCP DP8344 BCP INVERSE ASSEMBLER INVERSE ASSEMBLER INVERSE ASSEMBLER INVERSE ASSEMBLER (a) '-_";"-_ _"') ( ( Cancel Front DISC) '-____...J) ) State/TImlng E from file ( BCP_E ) Execute ) TL/F/l0814-4 Filename File Type File Description BCP BCP_D BCP_E BCP_ inverse_assem 16530A-config 16510A-config 16500A-config DP8344 DP8344 DP8344 DP8344 BCP INVERSE ASSEMBLER BCP INVERSE ASSEMBLER BCP INVERSE ASSEMBLER BCP INVERSE ASSEMBLER (b) FIGURE 3. Two Methods to Load DP8344 BCP Inverse Assembler Software from the Front Disk Menu ( state/TImlng E )( Configuration Analyzer 1 Name: Type: ( ( ) cancel ) ( Run ) Analyzer 2 MACHINE 1 State Type: Off Unassigned Pods I . __________ ---- _:- __ ---'J Pod 1 Pod 2 I Pod 5 11--.-----------------------------__-_-1 I ( ---------~~~~--------- ) ----. ___-----___________ J Pod 3 _____________________ . II TL/F/l0814-5 FIGURE 4. Configuration Menu on Logic Analyzer 2-174 l> In the Format Menu, see Figure 5, define the labels and assign the channels in the following manner: 1. Create labels ADDR, DATA, and STAT. iii. For the label STAT it is not necessary to actually connect any of the defined channels to the BCP. However, it is recommended that one does connect all defined channels to a pin such as ground. This is because the BCP does not use a STATUS bus. The STAT label must be defined in the Format Menu. In the example shown in Figure 5, the channel assigned to the STAT label corresponds to a ground pin on the BCP connected to channel 0 of Pod E3. 2. Assign the channels connected to the labels as follows: i. label ADDR refers the channels connected to the Instruction memory Address Bus on the DP8344. From Figure 2, these are pins 75 through 68, and pins 65 through 58. To use the default configuration the pins from the Instruction memory Address bus must be connected to channel 0 through 15 of Pod E1. ) ( Format 1 Cancel ) Clock I~I ~~~: )( Run Pod E3 Pod E2 Pod E1 m m m Clock Clock II -1-5-~~-.--87-~~-~:-O Pol Q) ( SymbolS) ,-~~__ (~~Jt~______- J ! • en Q) 3. Define the Clock to be the channel which corresponds to the connection from the pod clock connection to pin 51, IClK, on the DP8344. In the example shown in Figure 5, the J clock means that IClK is connected to the clock channel of pod E1. Set the clock to trigger on the rising edge of IClK. ii. The DATA label refers to the channels connected to the Instruction memory data bus on the DP8344. From Figure 2, these are pins 9-2, and pins 83-76. To use the default configuration the pins from the Instruction memory Data bus must be connected to channels 0 through 15 of Pod E2. State/TIming E z II1-5-~~-.--87- Clock 15 ••• 87 .... 0 •• -: :-0 I ~+~.:::::::::: ~~~ ......."..,,: ~~~ . """""". STAT + . . . . . . . . . .• ........... . ......... . + •••••••••• . .•...••.•• DATA ......•.. " Off Off Off Off TL/F/l0814-6 FIGURE 5. Format Menu on Logic Analyzer )( Stae t /TIImlng . ~ Run race ) Sequence Levels While storing "any state" TRIGGER on "a" 1 times Store "any state" Label> ( AD DR ) (DATA ) (STAT ) (DATA Base> ( Hex )( ( 0000 ) )( )( ( XXX X ) ( ( XXXX ) )( ( ( ( XXXX ) ( 0 Invasm Hex X Hex XXXX X )( XXX X X )( )( XXXX X XXXX ( Branches Off ) ( Count TIm. ) ( Prestor. Off ) ) ) ) ) ) ) TL/F/l0814-7 FIGURE 6. Trace Menu on Logic Analyzer 2-175 • I 00 00 CD :Z < r----------------------------------------------------------------------------------------------Third, verify that the three labels: ADDR, DATA and STAT exist in the Format Menu. Fourth, in the State Listing Display, shown in Figure 7, select the base field below the label DATA. This will generate seven pop-outs. Select the "Invasm" pop-out to allow the mnemonics to be displayed. Finally, store the new configuration to the DP8344 BCP Inverse Assembler using one of the two methods shown in Figure 8. Whenever this configuration file' is loaded, the inverse assembler will automatically load. Note that storing the configuration to the Inverse Assembler will write over any previously stored configurations. Therefore, it is recommended that one back up all of the stored configurations by copying them to a backup diskette. The trigger may be defined in. the Trace Menu according to the ,information desired. For example, in Figure 6, the trace is set to, trigger, when the BCP executes the program, Le., the Instruction ,memory Address bus is 0 hex. Once the system configuration has been developed,'it must be linked with,'the inverse assembler software. First; load the DP8344 BCP Inverse Assembler Software by either method showhin Figure 3; Second, create a configuration by either: . Lmodifying'theconfiguration file which was loaded into the HPLogic AnalyZerwith the DP8344' BCP Inverse Assembler, or' iL by loading another State/Timing Configuration 'which has been stored "on diskette. State/TImlng E ) ( Listing 1 ~====:II DATA Hex L..-"':':':::;""'..,JII The system is now set to capture the BCPop-codes from your system and display them as mnemonics. ( ) Invasm ) ~ ( Run I~I====DP=8=34=4=B=C=P=~=NE=M=O=NI=C==~1 ~I===n=m=e=~ II 1 1-1__R~e:::la:::;tI~ve~---I Hex TL/F/l0S14-S FIGURE 7~ State LIsting Display The Data Label with base Hex DATA to be "Invasm". will display the op-codes in Hex Format. The DP8344 BCP MNEMONIC Label is generated by selecting the base type for the Label .. ( System ( , Store' ) ( ) Front Disc 1'," ( ( file description: All to file ( DP8344 BCP INVERSE ASSEMBLER BCP ) ( ) Execute ) TL/F/l0S14-9 Filename File Type File Description BCP BCP_D BCP_E BCP_ inverse_assem 16530A...:..ccinfig 16510A...:..config 16500A...:..config DP8344 BCP INVERSE ASSEMBLER DP8344 BCP INVERSE ASSEMBLER DP8344 BCP INVERSE ASSEMBLER DP8344 BCP INVERSE ASSEMBLER (a) ( (. System' "" ' : Stofe ' ) ( Front Disc' ) ) ( file description: ( State/TImlng E ) to file ( DP8344 BCP INVERSE ASSEMBLER BCP_E ) ( Execute ) ) TL/F/l0S14-10 " Filliname BCP BCP_D BCP_E BCP_ File Description File Type DP8344 BCP INVERSE ASSEMBLER DP8344 BCP INVERSE ASSEMBLER DP8344 BCP INVERSE ASSEMBLER DP8344 BCP INVERSE ASSEMBLER inverse_assem 16530A...:..config 16510A...:..config , J6500A...:..config (b) FIGURE 8. Two Methods to Store Configurations to the DP8344 BCP Inverse Assembler Software 2-176 DP8344 BCP INVERSE ASSEMBLER OPERATION the display. Then select the "Invasm" pop-up on the top line of the State Listing Display. This causes the inverse assembler to disassemble the code from the first line on the display. For an example, refer to Figures 9 through 12. The inverse assembler was set to trigger when the Instruction Address Bus was 80 hex, as in Figures 9 and 10. The two byte instructions captured prior to the trigger were not correctly disassembled. Referring to Figure 11, one observes that line -10 is disassembled as an ADD Instruction rather than as the second byte of the LJMP instruction from line -11. To correct this, one must select "Invasm" from the top line of the State Listing Menu. The inverse assembler immediately disassembles the code from the first line on the screen. The correctly disassembled code is shown in Figure 12. An inverse assembler converts instructions captured by the logic analyzer in binary form into mnemonics. Thus it makes it much easier to follow the program's execution flow. Furthermore, one can still use the logic analyzer to view other useful information by specifying the trace conditions, labels and channel connections in the logic analyzer's configuration file. One needs to be aware of how the captured information is actually diassembled. The inverse assembler begins disassembling at the event which was triggered upon. Hence, any information captured prior to the trigger may not be correctly disassembled. To ensure valid disassembly of states captured prior to the trigger, one must scroll the display so the first instruction one wants disassembled is the first line on State/TIming E ) ( Trace 1 Run Sequence Levels While storing "anystate" 1 times TRIGGER on "a" Store "anystate" Label> Base> 0 ( ADDR ) (DATA ) ( STAT ( ( )( ) ) ) ) ) ( Hex ) ~=~ ( X ) X ) (~=~ ~=:::: X ) ( ~=~ X _) ("""---_ ( ( ( Hex 0080 XXXX XXXX XXXX Invasm Branches J ( ( Count TIme ) Prestore ) Off Off ) (DATA) ~=~ ( Hex) ( XXX X ) ( XXXX ) ( XXXX ) ( XXXX ) TL/F/l0B14-11 FIGURE 9. Triggering Event State/TIming E ) [ Listing 1 []QQ[J~I Invasm DP8344 BCP I.tNEI.tONIC ~~I -7 ( Hex 0001 0501 CF40 CFOO 4FE2 C50B CC1C JMP AE, S, 005EH JMP AE, NS, 005FH ILLEGAL OPCOOE ILLEGAL OPCOOE ANO FEH, ICA/ATA ILLEGAL OPCOOE CALL0080H Run II II TIme Relative TLlF/l0B14-12 -6 -5 -4 -3 -2 -1 005C 0050 005F 0060 0061 0062 0063 120 ns 80 ns 160 ns 120 ns 120 ns 80 ns 120 ns 0 0080 AE80 EXX MA, MS, NCHG 160 ns 0081 0082 0083 0084 0085 0104 0085 0086 C343 AE90 AEC8 C343 AEEO AFFO AEEO C343 MOVE ACA/FSA, [IV + 1 EXX AA, MS, NCHG EXX MA, AS, EI MOVE ACA/FSA, [IV + 1 EXX MA, BM, 01 AETOI, AFB EXX MA, MB, 01 MOVE ACA/FBA, [IV + 1 80 ns 160 ns 120 ns 120 ns 160 ns 80 ns 120 ns 120 ns FIGURE 10. Triggered Event as Shown In the State Listing 2-177 I Ell co co . CD Z < ( ( )[ StateL!!mln~ E t.4arkers Off Invasm ~ [ Hex II II DATA Hex II II DP8344 BCP t.4NEt.40NIC Hex II II ) Time Relative TLlF/l0814-13 -16 -15 -14 -13 0050 0051 0052 0053 0054 0055 0056 0051 4009 C340 C089 8000 857C COOO ADD 05H, NCF/18R AND OOH, GP5/GP5' MOVE CCR/OCR, [IV + ] JMP GP5/GP5' MOVE OOH, IWHI MOVE 57H, IWLO LJMP [lW] -12 0057 8009 JRMK GP5/GP5', OH, OH 80ns -11 -10 -9 -8 -7 -6 -5 -4 0058 0059 005A 0058 005C 0050 005F 0060 8009 0058 8C09 005C 0001 0501 CF40 CFOO LJMP GP5/GP5', OH, S, 0058H ADD 05H, GP4/GP4' LJMP GP5/GP5', OH, NS, 005CH ADD 05H, IWLO JMP RE, S, 005EH JMP RE, NS, 005FH ILLEGAL OPCOOE ILLEGAL OPCOOE 200ns 120ns 120ns 80 ns 120 ns 120 ns 160 ns 80 ns -17 Run ) ADDR -19 -18 ) Listing 1 120ns 80ns 120 ns 160 ns 200 ns 120 ns 120 ns FIGURE 11. Incorrectly Disassembled Instructions Prior to Triggered Event ( ( StateL!!mln~ E t.4arkers Off Invasm Listing 1 ~ Run ) ADDR Hex -19 -18 )[ II II DATA Hex II II DP8344 BCP t.4NEt.40NIC Hex II II Time Relative TLlF/l0814-14 -16 -15 -14 -13 0050 0051 0052 0053 0054 0055 0056 0051 4009 C340 C089 8000 857C COOO ADD 05H, NCFII8R AND OOH, GP5/GP5' MOVE CCR/OCR, [IV + ] JMP GP5/GP5' MOVE OOH, IWHI MOVE 57H, IWLO LJMP [lW] 120 ns 80 ns 120 ns 160 ns 200 ns 120 ns 120 ns -12 0057 8009 JRMK GP5/GP5', OH, OH 80ns -11 -10 -9 -8 -7 -6 -5 -4 0058 0059 005A 0058 005C 0050 005F 0060 8009 0058 8C09 005C OD01 0501 CF40 CFOO LJMP GP5/GP5', OH, S, 0058H 200ns 120ns 120ns 80ns 120 ns 120 ns 160 ns 80ns -17 LJMP GP5/GP5', OH, NS, 005CH JMP RE, S, 005EH JMP RE, NS, 005FH ILLEGAL OPCOOE ILLEGAL OPCOOE FIGURE 12. Instructions Prior to Triggered Event, Correctly Disassembled after Choosing the "Invasm" Pop-Out 2-178 This same technique must be applied if one jumps ahead in the display and then scrolls backwards to view a certain state; in other words, you do not scroll forward through every line to reach the desired state. For example, if one manually selected the line number -12 in Figure 12 and entered line 226, the screen would display lines 219 through 234. Now if one rolls the screen backwards to display lines 199 through 214 as in Figure 13, the two byte instruction, LJMP, is once again not correctly disassembled. Therefore, select the "Invasm" pop-out and the display is'correctly disassembled as shown in Figure 14. To view the op-code in both mnemonic form and hex form, as in Figure 16, define the, DATA label twice in the Format Menu, as in Figure 4. Then, select the base label to be "Hex" for one and "Invasm" for the other in the State listing. OBTAINING THE DP8344 BCP INVERSE ASSEMBLER The DP8344 BCP Inverse Assembler package for use in a Hewlett Packard Logic Analyzer can be obtained from National Semiconductor. Included in the Inverse Assembler Package is the DP8344 BCP Inverse Assembler software, including configuration files as described in this application note. These will be on a 3%" diskette formatted for use in the HP Logic Analyzer. Additionally, a 5%" diskette formatted for use on an IBM personal computer or compatible, containing the DP8344 Inverse Assembler source code can be obtained upon a request from National Semiconductor. One of the features of the BCP is that it uses register banks. However, there is no external indication of the bank's state. The name of a register therefore depends upon which bank one is in, as in Figure 15. Due to the manner in which the inverse assembler disassembles the captured data, keeping track of the correct register name meant that one would constantly have to scroll the screen back to the last EXX statement and hit the "Invasm" pop-out to ensure that the displayed register names are correct. Hence, to avoid this inconvenience, the register names for both banks are displayed at all times. Refer to line 45 of Figure 16 for an example. The op-code decodes to MOVE where the source register is RO. Therefore, the register names for RO in both banks: Main Bank A -: CCR, and Alternate Bank A - DCR, are displayed. ( State/T!mlng E ADDR Hex 199 200 201 202 203 204 205 006A 0068 006C 006A 0068 006C 006A ) ( II II If one owns the HP 10391A Inverse Assembler Development Package, the source code can be modified to make any improvements one wishes to make to the DP8344 BCP Inverse Assembler. Note that it is not necessary to have the HP 10391A Inverse Assembler Development Package to use the DP8344 BCP Inverse Assembler., Listing 1 DATA Hex FD08 CEOa 006A FD08 CEOO 006A FD08 ( II Invasm DP8344 BCP t.lNEt.40NIC II Hex MOVE GP4/GP4', GP4/GP4' LJMPOa6AH ADD 06H, GP6/GP6' MOVE GP4/GP4', GP4/GP4' LJMP006AH ADD 06H, GP6/GP6' MOVE GP4/GP4', GP4/GP4' ~ ( II TIme II Relative TL/F/10814-15 120 ns 80 ns 120ns 120ns 80ns 120 ns 80 ns 206 0068 CEOO LJMP006AH 120 ns 207 208 209 210 211 212 213 214 006C 006A 0068 006C 006A 0068 006C 006A 006A FD08 CEOO 006A FD08 CEOO 006A FD08 ADD a6H, GP6/GP6' MOVE GP4/GP4', GP4/GP4' LJMP006AH ADD 06H, GP6/GP6' MOVE GP4/GP4', GP4/GP4' LJMP006AH ADD 06H, GP6/GP6' MOVE GP4/GP4', GP4/GP4' 120ns 80ns 120 ns 120 ns 80 ns 120ns 120ns 80ns FIGURE 13. Incorrectly Disassembled Instructions Produced by Jumping Ahead In Display 2-179 Run co co . r---------------------------------------------------------------------------------------, CD z ( State/TImlng E ) ( LIsting 1 G;D ( Invasm ( ( StateL!!mln2 E t.4arkers Off ) Listing 1 ( Invasm ) Z ~ ( Run en ) Q) Q) ) ADDR Hex 45 46 47 48 49 50 51 )( 002B 002C 0020 002E 002F 0030 0031 II II DATA Hex C340 E96S C340 A52B C340 207B C340 II II DP8344 BCP t.4NEt.40NIC Hex MOVE CCR/DCR, [IV + ) SUBA GP4/GP4', GP7/GP7' MOVE CCR/DCR, [IV + ) SUBA GP7 /GP7', [IX + ) MOVE CCR/DCR, [IX + ) SUB 07H, GP7/GP7' MOVE CCR/DCR [IV + ) II II TIme Relative TLIF/10814-17 160ns 160 ns 120 ns' 160 ns 160ns 160 ns 80 ns 52 0032 ED6B SBCA GP7/GP7', GP7/GP7' 160 ns~ 53 54 55 56 57 58 59 60 0033 0034 0035 0036 0037 0038 0039 003A C340 A72B C340 A92B C340 F573 C340 AB2B MOVE CCR/DCR [IV + ) SBCA GP7/GP7' [IX + ) MOVE CCR/DCR [IV + ) ANDA GP7/GP7', [lX+) MOVE CCR/DCR, [IV + ) ORA IZHI, GP7/GP7' MOVE CCR/DCR, [IV + ) ORA GP7IGP7', [lX+) 120ns 160 ns 160 ns 160 ns 160ns 160 ns, 80 ns 160 ns FIGURE 16. listing of Inverse Assembler on Logic Analyzer Demonstrating the Display of Both Register Bank Names I EI I 2-181 co co to :Z < APPENDIX A Flow Chart of DP8344 Inverse Assembler Source Code TL/F/10814-18 2·182 Section 3 Physical Dimensions I Ell Section 3 Contents Physical Dimensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bookshelf Distributors 3-2 3-3 "::r ~ ~National U (;' Semiconductor All dimensions are in inches (millimeters) e. c 3' (I) :s tn 24 Lead Molded Dual-In-Line Package (N) NS Package Number N24A 0' :s en 1.243-1.270 1--------(31.57_32.261--------1 0.062 (1.5751 RAO PIN NO. llDENT z oonEO OUTLINES REFLECT ALTERNATE ~~ MOLDED BODY CONFIGURATION 114.731 0.030 MIN -(0.-76-21 0.075 0.600-0.620 MAX 11.9051 r: 0.16010.005 Ll"I""r----+-+------;..;.;...-H---,n--J:-----------L [r,115.24-15.7481 95°±5° I_ 0.625 ~:~~~ ~ r-- (15875 +11.635) ---l . -(1.381 ~~ 0.10010.010 (2.54010.2541 ~ t t TYP 0.015 0.018±0.0. (0381' - - - - 0.125-0.140 • I (0.457 ±0.0761 (3.175-3.5561 MIN . N2'AIREVEl 84 Lead Plastic Chip Carrier (V) NS Package Number V84A 1{j ::~:1 NDM 1.12010.010 ~ UAIINO.IID£HT 0.080 (1.IUI DIA ~ .!!!!.':!:ill.. 32L DDH-D.OS31 (1:m-l.3461-' REf VIEW A-A 20 SPACES AT 0.005-0,015 (~:~:~=~::l---~~ sa -~ ~ til I 3·3 NOTES NOTES NOTES NOTES NOTES NOTES NOTES ~National ~ Semiconductor Bookshelf of Technical Support Information National Semiconductor Corporation recognizes the need to keep you informed about the availability of current technical literature. This bookshelf is a compilation of books that are currently available. The listing that follows shows the publication year and section contents for each book. Please contact your local National sales office for possible complimentary copies. A listing of sales offices follows this bookshelf. We are interested in your comments on our technical literature and your suggestions for improvement. Please send them to: Technical Communications Dept. MIS 16-300 2900 Semiconductor Drive P.O. Box 58090 Santa Clara, CA 95052-8090 AlS/AS lOGIC DATABOOK-1990 Introduction to Advanced Bipolar logic • Advanced low Power Schottky. Advanced Schottky ASIC DESIGN MANUAL/GATE ARRAYS & STANDARD CEllS-1987 SSIIMSI Functions • Peripheral Functions • lSllVlSI Functions • Design Guidelines • Packaging CMOS lOGIC DATABOOK-1988 CMOS AC Switching Test Circuits and Timing Waveforms. CMOS Application Notes • MM54HC/MM74HC MM54HCT/MM74HCT. CD4XXX. MM54CXXX/MM74CXXX. Surface Mount DATA ACQUISITION liNEAR DEVICES-1989 Active Filters • Analog Switches/Multiplexers • Analog-to-Digital Converters • Digital-to-Analog Converters Sample and Hold • Temperature Sensors • Voltage Regulators • Surface Mount DISCRETE SEMICONDUCTOR PRODUCTS DATABOOK-1989 Selection Guide and Cross Reference Guides • Diodes • Bipolar NPN Transistors Bipolar PNP Transistors • JFET Transistors • Surface Mount Products • Pro-Electron Series Consumer Series • Power Components • Transistor Datasheets • Process Characteristics DRAM MANAGEMENT HANDBOOK-1991 Dynamic Memory Control • Error Detection and Correction • Microprocessor Applications for the DP8408A109A117/18/19/28/29· Microprocessor Applications for the DP8420Al21A122A Microprocessor Applications for the NS32CG821 EMBEDDED SYSTEM PROCESSOR DATABOOK-1989 Embedded System Processor Overview • Central Processing Units • Slave Processors • Peripherals Development Systems and Software Tools FDDI DATABOOK-1991 FOOl Overview. DP83200 FOOl Chip Set • Development Support. Application Notes and System Briefs F100K ECl lOGIC DATABOOK & DESIGN GUIDE-1990 Family Overview • 300 Series (low-Power) Datasheets • 100 Series Datasheets • 11 C Datasheets ECl BiCMOS SRAM, ECl PAL, and ECl ASIC Datasheets. Design Guide. Circuit Basics. logic Design Transmission Line Concepts • System Considerations • Power Distribution and Thermal Considerations Testing Techniques • Quality Assurance and Reliability. Application Notes FACTTM ADVANCED CMOS LOGIC DATABOOK-1990 Description and Family Characteristics • Ratings, Specifications and Waveforms Design Considerations • 54AC174ACXXX • 54ACT174ACTXXX • Quiet Series: 54ACQ17 4ACQXXX Quiet Series: 54ACTQ17 4ACTQXXX • 54FCT174 FCTXXX • FCTA: 54FCTXXXA17 4FCTXXXA FAST® ADVANCED SCHOTTKY TTL LOGIC DATABOOK-1990 Circuit Characteristics. Ratings, Specifications and Waveforms. Design Considerations. 54F174FXXX FAST® APPLICATIONS HANDBOOK-1990 Reprint of 1987 Fairchild FAST Applications Handbook Contains application information on the FAST family: Introduction • Multiplexers • Decoders. Encoders Operators. FIFOs. Counters. TTL Small Scale Integration. Line Driving and System Design FAST Characteristics and Testing. Packaging Characteristics GENERAL PURPOSE LINEAR DEVICES DATABOOK-1989 Continuous Voltage Regulators. Switching Voltage Regulators • Operational Amplifiers • Buffers • Voltage Comparators Instrumentation Amplifiers • Surface Mount GRAPHICS HANDBOOK-1989 Advanced Graphics Chipset • DP8500 Development Tools • Application Notes IBM DATA COMMUNICATIONS HANDBOOK-1992 IBM Data Communications. Application Notes INTERFACE DATABOOK-1990 Transmission Line Drivers/Receivers • Bus Transceivers • Peripheral Power Drivers • Display Drivers Memory Support • Microprocessor Support • level Translators and Buffers • Frequency Synthesis • Hi-Rei Interface LINEAR APPLICATIONS HANDBOOK-1991 The purpose of this handbook is to provide a fully indexed and cross-referenced collection of linear integrated circuit applications using both monolithic and hybrid circuits from National Semiconductor. . Individual application notes are normally written to explain the operation and use of one particular device or to detail various methods of accomplishing a given function. The organization of this haridbook takes advantage of this innate coherence by keeping each application note intact, arranging them in numerical order, and providing a detailed Subject Index. , . , LOCAL AREA NETWORK DATABOOK-1992 Integrated Ethernet Network Interface Controller Products. Ethernet Physical layer Transceivers Ethernet Repeater Interface Controller Products. Hardware and Software Support Products. FOOl Products. Glossary LS/S/TTL DATABOO~-1989 Contains former Fairchild Products Introduction to Bipolar logic • low Power Schottky • Schottky • TTL • TTL-low Power MASS STORAGE HANDBOOK-1989 Rigid Disk Pulse Detectors • Rigid Disk Data Separators/Synchronizers and ENDECs Rigid Disk Data Controller • SCSI Bus Interface Circuits • Floppy Disk Controllers • Disk Drive Interface Circuits Rigid Disk Preamplifiers and Servo Control Circuits. Rigid Disk Microcontroller Circuits. Disk Interface Design Guide MEMORY DATABOOK-199Q PROMs, EPROMs, EEPROMs • TTL I/O SRAMs • ECl I/O'SRAMs MICROCONTROLLER DATABOOK-1989 COP400 Family. COP800 Family • COPS Applications • HPC Family • HPC Applications MICROWIRE and MICROWIRE/PlUS Peripherals. Microcontroller Development Tools MICROPROCESSOR DATABOOK-1989 Series 32000 Overview. Central Processing Units • Slave Processors • Peripherals Development Systems and Software Tools. Application Notes. NSC800 Family PROGRAMMABLE LOGIC DATABOOK & DESIGN MANUAL-1990 Product Line Overview. Datasheets • Designing with PLDs • PLD Design Methodology. PLD Design Development Tools Fabrication of Programmable Logic • Application Examples REAL TIME CLOCK HANDBOOK-1991 Real Time Clocks and Timer Clock Peripherals • Application Notes RELIABILITY HANDBOOK-1986 Reliability and the Die • Internal Construction. Finished Package. MIL-STD-883. MIL-M-38510 The Specification Development Process • Reliability and the Hybrid Device • VLSIIVHSIC Devices Radiation Environment • Electrostatic Discharge. Discrete Device • Standardization Quality Assurance and Reliability Engineering • Reliability and Documentation • Commercial Grade Device European Reliability Programs • Reliability and the Cost of Semiconductor Ownership Reliability Testing at National Semiconductor. The Total Militaryl Aerospace Standardization Program 883B/RETSTM Products. MILS/RETSTM Products. 883/RETSTM Hybrids. MIL-M-38510 Class B Products Radiation Hardened Technology • Wafer Fabrication • Semiconductor Assembly and Packaging Semiconductor Packages. Glossary of Terms. Key Government Agencies. ANI Numbers and Acronyms Bibliography. MIL-M-38510 and DESC Drawing Cross Listing SPECIAL PURPOSE LINEAR DEVICES DATABOOK-1989 Audio Circuits • Radio Circuits • Video Circuits • Motion Control Circuits • Special Function Circuits Surface Mount TELECOMMUNICATIONS-1990 Line Card Components • Integrated Services Digital Network Components • Analog Telephone Components Application Notes NATIONAL SEMICONDUCTOR CORPORATION DISTRIBUTORS' ALABAMA Huntsville Arrow Electronics (205) 837·6955 Bell Industries (205) 837·1074 Hamilton! Avnet (205) 837·7210 Pioneer Technology (205) 837·9300 Time Electronics (205) 721·1133 ARIZONA Chandler Hamilton! Avnet (602) 961·1211 Phoenix Arrow Electronics (602) 437·0750 Tempe Anthem Electronics (602) 966·6600 Bell Industries (602) 966·7800 Time Electronics (602) 967·2000 CALIFORNIA Agora Hills Bell Industries (818) 706·2608 Time Electronics (818) 707·2890 Zeus Components (818) 889·3838 Burbank Elmo Semiconductor (818) 768·7400 Calabasas F!X Electronics (818) 592·0120 Chatsworth Anthem Electronics (818) 700·1000 Arrow Electronics (818) 701·7500 Time Electronics (818) 998·7200 Costa Mesa Avnet Electronics (714) 754·6050 Hamilton Electro Sales (714) 641·4100 Cypress Bell Industries (714) 895·7801 Gardena Hamilton! Avnet (213) 516·8600 Irvine Anthem Electronics (714) 768·4444 Rocklin Anthem Electronics (916) 624·9744 Bell Industries (916) 652·0414 Roseville Hamilton! Avnet (916) 925·2216 San Diego Anthem Electronics (619) 453·9005 Arrow Electronics (619) 565-4800 Hamilton! Avnet (619) 571·1900 Time Electronics (619) 586·1331 Zeus Components (619) 277·9681 San Jose Anthem Electronics (408) 453·1200 Arrow Electronics (408) 441·9700 Pioneer Technology (408) 954·9100 Zeus Components (408) 629-4789 Sunnyvale Bell Industries (408) 734·8570 Hamilton! Avnet (408) 743·3300 Time Electronics (408) 734·9888 Torrance Time Electronics (213) 320-0880 Tustin Arrow Electronics (714) 838·5422 Time Electronics (714) 937·0911 Woodland Hills Hamilton! Avnet (818) 594·0404 YorbaUnda Zeus Components (714) 921·9000 COLORADO Aurora Arrow Electronics (303) 373·5616 Englewood Anthem ElectroniCS (303) 790·4500 Hamilton! Avnet (303) 799·7800 Time Electronics (303) 721·8882 Wheatridge Bell Industries (303) 424·1985 CONNECTICUT Danbury Hamilton!Avnet (203) 743·6077 Shelton Pioneer Standard (203) 929·5600 Wallingford Arrow Electronics (203) 265·7741 Waterbury Anthem ElectroniCS (203) 575·1575 FLORIDA Altamonte Springs, Bell Industries (407) 339·0078 Pioneer Technology (407) 834·9090 Zeus Components (407) 788·9100 Clearwater Pioneer Technology (813) 536·0445 Deerfield Beach Arrow Electronics (305) 429·8200 Bell Industries (305) 421·1997 Pioneer Technology (305) 428·8877 Fort Lauderdale Hamilton!Avnet (305) 767·6377 Time Electronics (305) 484·7778 Lake Mary Arrow Electronics (407) 333·9300 Orlando Chip Supply (407) 298·7100 Time Electronics (407) 841·6565 SI. Petersburg Hamilton! Avnet (813) 572·4329 Winter Park Hamilton! Avnet (407) 657·3300 GEORGIA Duluth Arrow Electronics (404) 497·1300 Hamilton! Avnet (404) 446·0611 Pioneer Technology (404) 623·1003 Norcross Bell Industries (404) 662·0923 Time Electronics (404) 368·0969 ILLINOIS Addison Pioneer Electronics (708) 495·9680 Bensenville Hamilton! Avnet (708) 860·7700 Elk Grove Village Bell Industries (708) 640·1910 Itasca Arrow Electronics (708) 250·0500 Schaumburg Anthem Electronics (708) 884·0200 Time Electronics (708) 303·3000 INDIANA Carmel Hamilton! Avnet (317) 844·9333 Fort Wayne Bell Industries (219) 423·3422 Indianapolis Advent Electronics Inc, (317) 872·4910 Arrow Electronics (317) 299·2071 Bell Industries (317) 875·8200 Pioneer Standard (317) 573·0880 IOWA Cedar Rapids Advent Electronics (319) 363·0221 Arrow Electronics (319) 395·7230 Hamilton! Avnet (319) 362·4757 KANSAS Lenexa Arrow Electronics (913) 541·9542 Hamilton! Avnet (913) 888·8900 MARYLAND Columbia Anthem Electronics (301) 995·6840 ' Arrow Electronics (301) 995·6002 Hamilton!Avnet (301) 995·3500 Time Electronics (301) 964·3090 Zeus Components (301)997·1118 Gaithersburg Pioneer Technology (301) 921·0660 MASSACHUSETTS Andover Bell Industries (508) 474·8880 Beverly Sertech Laboratories ' (508) 927·5820 Lexington Pioneer Standard (617) 861·9200 Norwood Gerber Electronics (617) 769·6000 Peabody Hamilton!Avnet (508) 531·7430 Time Electronics (508) 532·9900 Tyngsboro Port Electronics (508) 649·4880 Wakefield Zeus Components (617) 246·8200 Wilmington Anthem Electronics (508) 657·5170 Arrow Electronics (508) 658·0900 MICHIGAN Grand Rapids Arrow Electronics (616) 243·0912 Pioneer Standard " (616) 698·1800 Grandville Hamilton! Avnet (616) 243·8805, Livonia Arrow Electronics (313) 665·4100 Pioneer Standard (313) 525·1800 Novi Hamilton! Avnet (313) 347·4720 Wyoming R. M, Electronics, Iryc. (616) 531·9300 MINNESOTA Eden Prairie Anthem Electronics (612) 944·5454 Arrow Electronics (612) 828·7140 Pioneer Standard (612) 944·3355 Edina Arrow Electronics (612) 830·1800 Time Electronics (612) 943·2433 Minnetonka Hamilton! Avnet (612) 932·0600 NATIONAL SEMICONDUCTOR CORPORATION DISTRIBUTORS (Continued) MISSOURI Chesterfield Hamilton! Avnet (314) 537·1600 SI. Louis Arrow Electronics (314) 567·6888 Time Electronics (314) 391·6444 NEW JERSEY Cherry Hill Hamilton! Avnet (609) 424·0100 Fairfield Hamilton! Avnet (201) 575·3390 Pioneer Standard (201) 575·3510 Marlton Arrow Electronics (609) 596-8000 Time Electronics (609) 596-6700 Parsippany Arrow Electronics (201) 538·0900 Pine Brook Anthem Electronics (201) 227·7960 Wayne Time Electronics (201) 758·8250 NEW MEXICO Albuquerque Alliance Electronics Inc. (505) 292·3360 Bell Industries (505) 292·2700 Hamilton! Avnet (505) 345·0001 NEW YORK Binghamton Pioneer (607) 722·9300 Buffalo Summit Electronics (716) 887·2800 Commack Anthem Electronics (516) 864·6600 Fairport Pioneer Standard (716) 381·7070 Hauppauge Arrow Electronics (516) 231·1000 Hamilton! Avnet (516) 231·9444 Time Electronics (516) 273·0100 Port Chester Zeus Components (914) 937·7400 Rochester Arrow Electronics (716) 427·0300 Hamilton! Avnet (716) 292·0730 Summit Electronics (716) 334·8110 Ronkonkoma Zeus Components (516) 737·4500 Syracuse Hamilton! Avnet (315) 437·2641 Time Electronics (315) 432·0355 Westbury Hamilton! Avnet Export Div. (516) 997·6868 Woodbury Pioneer Electronics (516) 921·8700 NORTH CAROLINA Charlotte Hamilton! Avnet (704) 527·2485 Pioneer Technology (704) 527·8188 Durham Pioneer Technology (919) 544·5400 Raleigh Arrow Electronics (919) 876-3132 Hamilton! Avnet (919) 878·0810 Time Electronics (919) 874·9650 OHIO Centerville Arrow Electronics (513) 435·5563 Cleveland Pioneer (216) 587·3600 Columbus Time Electronics (614) 794·3301 Dayton Bell Industries (513) 435·8660 Belllndustries·Military (513) 434·8231 Hamilton! Avnet (513) 439·6700 Pioneer Standard (513) 236·9900 Zeus Components (513) 937·7400 Solon Arrow Electronics (216) 248·3990 Hamilton! Avnet (216) 349·5100 Westerville Hamilton! Avnet (614) 882·7004 OKLAHOMA Tulsa Arrow Electronics (918) 252·7537 Hamilton! Avnet (918) 664·0444 Pioneer Standard (918) 492·7840 Radio Inc. (918) 587·9123 OREGON Beaverton Anthem Electronics (503) 643·1114 Arrow Electronics (503) 626·7667 Hamilton! Avnet (503) 627·0201 Lake Oswego Bell Industries (503) 635·6500 Portland Time Electronics (503) 684·3780 PENNSYLVANIA Horsham Anthem Electronics (215) 443·5150 Pioneer Technology (215) 674·4000 Mars Hamilton!Avnet (412) 281·4150 Pittsburgh Pioneer (412) 782·2300 TEXAS Austin Arrow Electronics (512) 835·4180 Hamilton! Avnet (512) 837·8911 Minco Technology Labs. (512) 834·2022 Pioneer Standard (512) 835-4000 Time Electronics (512) 399·3051 Carrollton Arrow Electronics (214) 380·6464 Dallas Hamilton! Avnet (214) 308·8111 Pioneer Standard (214) 386·7300 Houston Arrow Electronics (713) 530-4700 Hamilton! Avnet (713) 240·7733 Pioneer Standard (713) 495·4700 Richardson Anthem Electronics (214) 238·7100 Time Electronics (214) 644·4644 Zeus Components (214) 783·7010 UTAH Midvale Bell Industries (801) 255·9611 Salt Lake City Anthem Electronics (801) 973·8555 Arrow Electronics (801) 973·6913 Hamilton!Avnet (801) 972·2800 West Valley Time Electronics (801) 973·8494 WASHINGTON Bellevue Arrow Electronics (206) 643·4800 Bothell Anthem Electronics (206) 483·1700 Kirkland Time Electronics (206) 820·1525 Redmond Bell Industries (206) 867·5410 Hamilton! Avnet (206) 241·8555 WISCONSIN Brookfield Arrow Electronics (414) 792·0150 Pioneer Electronics (414) 784·3480 Mequon Taylor Electric (414) 241-4321 Waukesha Bell Industries (414) 547·8879 Hamilton! Avnet (414) 784·8205 CANADA WESTERN PROVINCES Burnaby Hamilton! Avnet (604) 420-4101 Semad Electronics (604) 420·9889 Calgary Electro Sonic Inc. (403) 255·9550 Semad Electronics (403) 252·5664 Zentronics (403) 295·8838 Edmonton Zentronics (403) 468·9306 Markham Semad Electronics Ltd. (416) 475·3922 Richmond Electro Sonic Inc. (604) 273·2911 Zentronics (604) 273·5575 Saskatoon Zentronics (306) 955·2207 Winnipeg Zentronics (204) 694·1957 EASTERN PROVINCES Mississauga Hamilton! Avnet (416) 795·3825 Time Electronics (416) 672·5300 Zentronics (416) 564·9600 Nepean Hamilton! Avnet (613) 226·1700 Zentronics (613) 226·8840 Ottawa Electro SoniC Inc. (613) 728·8333 Semad Electronics (613) 727·8325 Pointe Claire Semad Electronics (514) 694-0860 51. Laurent Hamilton! Avnet (514) 335·1000 Zentronics (514) 737·9700 Willowdale ElectroSonic Inc. (416) 494·1666 Winnipeg Electro Sonic Inc. (204) 783·3105 ~ National ~ Semiconductor National Semiconductor Corporation 2900 Semiconductor Drive PO. Box 58090 Santa Clara, CA 95052-8090 Tel: 1-800-272-9959 TWX: (910) 339-9240 SALES OFFICES INTERNATIONAL OFFICES Electronlca NSC de Mexico SA Juvenllno Rosas No 1 , 8-2 Col Guadalupe Inn MexIco, 01020 OF MexIco Tel 52·5·524·9402 Fax 52·5·524·9342 National Semicondutores 00 Brasil Ltda. Av Bng Faria Lima. 1409 60 Andar Cep 01451 J. Paullstano Sao Paulo. SP, Brasil Tel (55/11) 212-5066 Telex: 3911131931 Fax (55/11)212·1181 NSBRBR National Semiconductor GmbH Eschborner Lans!r 130-132 0-6000 Frankfurt 90 Germany Tel: 1069) 78 9109·0 Fax 1069) 7 89 43 83 National Semiconductor GmbH Industnestrasse 10 0-B080 F urstenfeldbruck Germany Tel 10·81·41) 103·0 Telex: 527-649 Fax (08141) 103554 National Semiconductor GmbH Misburger Slrasse 81 0 03000 Hannover 6' Germany Tel 10511) 560040 Fax. 10511) 561740 National Semiconductor GmbH Untere Waldplatze 37 D· 7000 Stuttgarl 80 Germany Tel711686511 Fax: 71 16865260 National Semiconductor (UK) Ltd. The Maple. Kembrey Park SWlndon. Wiltshire SN2 6UT United Kingdom Tel (07·93)61·41·41 Telex 444·674 Fax (07·93) 69·75-22 ( 1991 National Semiconductor (Continued) National Semiconductor Benelux Vorstlaan 100 B·1170 Brussels Belgium Tel 102) 6-61-06·80 Telex: 61007 Fax: 102) 6·60·23·95 National Semiconductor (UK) Ltd. Rlngager 4A. 3 DK·2605 Brandy Denmark Tel 102) 43·32·11 Telex: 15- 179 Fax. 102) 43·31-11 National Semiconductor S.A. Centre d·Affalres·La Boursldlere Batlment Champagne. BP 90 Route Natlonale 186 F·92357 Le PlessIs Robinson Pans. France Telln 40·94·88·88 Telex: 631065 Fax· (1) 40·94-88-1 I National Semiconductor (UK) Ltd. Unit 2A Clonskeagh Square Clonskeagh Road Dublin 14 Ireland Tel 101 ) 269·55·89 Telex 91047 Fax 101) 2830650 National Semiconductor S.p.A. Strada 7. Palazzo R/3 1·20089 Rozzano Mllanoflon Italy Tel: (02) 57 50 03 00 Twx. 352647 Fax 102) 57 500400 National Semiconductor S.p .A. Via del Cararagglo, 107 1·00147 Rome Italy Tel: 106) 5·13·48-80 Fax 106) 5·13·79·47 National Semiconductor AB p.o. Box 1009 Grosshandlarvaegen 7 S·121 23 Johanneshov Sweden Tel 46-8· 7228050 Fax 46·8-7229095 Telex 10731 NSCS National Semiconductor GmbH Calle Agustin de Foxa. 27 (9'0) E·28036 Madrid Spain Tel 101) 733·2958 Telex: 46133 Fax 101) 733-8018 National Semiconductor Switzerland Alte Wlnterthurerstrasse 53 Postfach 567 Ch-8304 Walllsellen·Zunch SWitzerland Tel 101) 830-2727 Telex 828·444 Fax 101) 830·1900 National Semiconductor Kauppakartanonkatu 7 A22 SF·00930 HelSinki Finland Tel 190) 33-80-33 Telex 126116 Fax 190) 33·81·30 National Semiconductor Postbus 90 NL 1380 AB Weesp The Netherlands Tel 10·29·40) 3·04·48 Telex 10·956 Fax 10·29·40) 3·04·30 National Semiconductor Japan Ltd. Sanseldo Bldg. 5F 4-15-3 Nishi Shln)uku ShlnJuku·ku Tokyo 160 Japan Tel (03) 3299·7001 Fax 103) 3299·7000 National Semiconductor (UK) Ltd. Isvelen 45 Postboks 57 N·13930stenstad J\Jorway Tel 12) 796500 Fax 12) 796040 TL3564 RRDIRRD1 OM121/Pnnted In USA National Semiconductor Hong Kong Ltd , 13th Floor. Straight Block Ocean Centre 5 Canton Road, TSlmshatsul East. Kowloon. Hong Kong Tel 1852) 737·1600 Telex 51292 NSHKL Fax. 1852) 736-9960 National Semiconductor (Australia) PTY, Ltd , Bldg 16. Business Park Dr Melbourne. 3168 Vlctofla, Australia Tel 103) 558·9999 Fax 61-3·558·9998 National Semiconductor (PTE ), Ltd. 200 Cantonment Road 13·02 South pOint 200 Singapore 0208 Tel 2252229 Telex: RS 50808 Fax 165)225· 7080 National Semiconductor (Far East) Ltd. Taiwan Branch 9th Floor. No , 8 Sec 1. Chang An East Road Taipei. Taiwan R.OC Tel 186) 521·3288 Telex: 22837 NSTW Fax 02561·3054 National Semiconductor (Far East) Ltd. Korea Branch 13th Floor. Dal Han Life Insurance 63 Building. 60. YOldo·dong. Youngdeungpo·ku. Seoul. Korea 150· 763 Tel 102)784·8051 Telex: 24942 NSPKLO Fax (02) 784·8054


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-c041 52.342996, 2008/05/07-21:37:19
Create Date                     : 2016:08:10 16:58:09-08:00
Modify Date                     : 2016:08:10 18:42:31-07:00
Metadata Date                   : 2016:08:10 18:42:31-07:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:ae371f34-c258-9946-8b9c-3b5baf5746d5
Instance ID                     : uuid:53f776ba-8931-6845-af89-862556917c8e
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 434
EXIF Metadata provided by EXIF.tools

Navigation menu