Oem Micronotes

oemMicronotes oemMicronotes

User Manual: oemMicronotes

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

DownloadOem Micronotes
Open PDF In BrowserView PDF
OEM MICRONOTES

mamDDma

mamaala

Enclosed is the new set of MicroNotes.
This set consists of
twenty-one
new documents relating to some of the latest
component products from Digital.
The original set of 111 MicroNotes has been superseded by this
new edition.
The titles in the original set can be found in
Appendix A of the enclosed document.
The original MicroNotes
(if- you do not have them) can still be obtained by wri ting to
the OEM Technical Support Group at:
OEM Micros Technical Support Group
Digital Equipment Corporation
2 Iron Way MR03-3/G20
Marlboro, MA
01752
Attn: Cindy Dorval
Be sure to ask for the original MicroNotes.
If there is someone you know that would like to be added to the
MicroNote Distribution List have them fill out the enclosed
MicroNote Reservation Form and return it to the address listed
above.
The group would appreciate any feedback or suggestions on future
MicroNotes these comments can also directed to the above
address.

Sincerely,

OEM Micros Technical Support Group

DIGITAL EQUIPMENT CORPORATION, TWO IRON WAY, BOX 1003, MARLBORO, MASSACHUSETIS, 01752
(617) 467·5111

Digital Equipment Corporation
.
Two Iron Way
Box 1003
Marlboro, Massachusetts 01752-9103
617.467.5111

Your name is on our mailing list. Enclosed is an updated set
of MicroNotes which consists of the twenty-one previously
published documents plus
twenty
NEW
MicroNotes.
The
information contained in this set relates to some of the
latest component and small system products from Digital.
If someone would like to be added
to
the
MicroNote
Distribution List, have them fill out the enclosed MicroNote
Reservation Form and return it to the address listed below;
attention Cindy Dorval.
This form can also be used to make
address corrections, noting the date your location changed.
The group would appreciate any feedback or suggestions for
future MicroNotes. These comments can also be directed to the
address below.
Thank you for your continuing interest.
OEM Technical Support Group
Digital Equipment Corporation
2 Iron Way (MR03-3/G20)
Marlboro, MA. 01752-9103

MicroNote Reservation Form
_______

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

_ _ _ _ _ _I _ _ _ _ _ _ - - - - - - - - - - - - - - _ _ _ _ _ _ _ _ _

Please fill out this form and return it to:
OEM Micros Technical Support Group
Digital Equipment Corporation
2 Iron Way MR03-3/G20
Marlboro, MA 0172
Attn: Cindy Dorval
This will add you to the
MicroNote
Di~tribution
List.
MicroNotes are short technical articles written about Digital's
component level products.
Product
highlights,
technical
descriptions, technical hints-and-kinks not found in the regular
documentation, and recent product changes and announcements are
discussed in the MicroNotes.
Name:
Company:
Title:
Address:
City:
Zip:

State:

Questionnaire
1.

I am:
o
o
o
o

an OEM
a Distributor
an End-User
Other

2.
The Industry I Service
Instrumentation, Education):

is

(e.g.

Medical,

3.
The Application(s)
within that Industry is/are
machine control, IC testers, general purpose computing):

4.

I'd like future MicroNotes to Discuss:

Control,

(e.g.

TABLE OF CONTENTS

uNOTE NO.

TITLE

DATE

PAGE NO.

001

MUL, DIV, & ASH Instruction for the
FALCON and the FALCON-PLUS

13-Apr-82

1

002

Block Mode DMA

01-Jun-83

5

003

Compatible Bootstrap for the LSI-11/73

28-Nov-83

25

004

LSI-11/73 Upgrade Paths

28-Nov-83

27

005

Q22 Compatible Options

23-Apr-84

33

006

Differences Between the LSI-ll/73
and LSI-11/23

23-Apr-84

39

007

User Defined Memory Maps for the FALCON
and the FALCON-PLUS

01-May-84

47

008

Memory Management and the LSI-l1/73

22-Jun-84

61

009

Cache Concepts and the LSI-l1/73

02-Jul-84

73

010

MicroVAX I/O Programming

27-Jul-84

79

011

LSI-11/73 Advanced Memory Management

04-0ct-84

85

012

OMA on the Q-bus

09-0ct-84

97

013

Run-time System Performance Evaluation
Using MicroPower/Pascal V 1.5

09-0ct-84

101

014

Using Fortran Routines In A
VAXELN/pascal Environment

16-0ct-84

107

015

Q-bus Hardware Bootstrap

16-0ct-84

111

016

KXTI1-CA Software Development Tools

16-0ct-84

115

017

LSI-11/23 ECO History

19-Nov-84

123

018

Programming the KXTII-CA

28-Dec-84

131

019

Disabling RAM on the MXV11-iBF

10-Jan-85

155

I

DM.~

Controller

uNOTE NO.

DATE

TITLE

PAGE NO.

020

Differences between the Mxv11-A
and MXV11-B

10-Jan-85

159

021

Floating Point Consideration
on MicroVAX I

10-Jan-85

161

022

Differences Between the MicroVAX I and
MicroVAX II CPUs

28-Apr-85

163

023

MicroVAX I to MicroVAX II Upgrade Issues

28-Apr-85

177

024

MicroVAX Instruction Set Differences

28-Apr-85

183

025

FPJ11-AA Compatibility with the
LSI-11/73 (KDJ11-A)

28-Jun-85

195

026

The MicroVAX Multicomputing Capability

28-Jun-85

197

027

Using Messages with VAXELN

28-Jun-85

211

028

MSV11-Q/M/J Memory Comparisons

28-Jun-85

217

029

Q-bus Expansion Concepts

28-Jun-85

221

030

The Private Memory Interconnect between
the KDJ11-B and the MSV11-J

28-Jun-85

227

031

MSV11-QA Revision Differences

28-Jun-85

237

032

KXT11-C Parallel I/O Programming

28-Jun-85

247

033

System Configuration of DL-type Devices

28-Jun-85

289

034

Programming the KXT11-C Multiprotocal SLU

19-Jul-85

303

035

Backplane Expansion/Termination

19-Jul-85

327

036

MicroVMS Revealed

19-Jul-85

335

037

In Search of NanoVMS

19-Jul-85

361

038

DECnet Downline Loading

26-Jul-85

369

039

Differences between KDJ11-A and KDJ11-B

08-Aug-85

379

040

FPJ11 Theory of Operation

17-Sep-85

385

041

Device Ordering Chart for Q-bus Systems

17-Sep-85

389

II

APPENDIX A
ORIGINAL MICRONOTES - TABLE OF CONTENTS

A1

APPENDIX B
SUBJECT INDEX

B1

III

·I

uNOTE # 001

Title: MUL,DIV and ASH Instruction for the FALCON
and the FALCON-PLUS

Date: 13-APR-82

Originator: Charlie Giorgetti

Page 1 of 4

There is no hardware support for the EIS, FIS, or FPP instruction sets.
For FALCON SBC-ll/21 applications that need the ability to perform the
EIS instructions MUL, DIV, and ASH, equivalent software routines can be
substituted. These callable routines do not do any form of error
checking.
A user should be aWarE! that extensive use of these software
routines for hardware instructi()ns will have
impact
on
system
performance. These routines can bE! incorporated into an application and
called as a subroutine. The calling sequence for the subroutines can be
set-up in a macro. The followin9 is a list of each of the subroutines
and the macros that are used to set-up and call the software MUL, DIV,
and ASH routines.

1

uNOTE # 001
Page 2 of 4
The following macro and subroutine can be
instruction in software:
• MACRO

SMUL

used

to

perform

the

MUL

A,B,HI,LO

MOV
MOV
JSR
MOV

A,-(SP)
B,-(SP)
PC,$MUL
(SP)+,HI

MOV

(SP)+,LO

Push a multiplier onto the stack
Push the other multiplier as well
Call the MUL subroutine
Get the most significant part of
the result
Get the least significant part of
the result

.ENDM
$MUL: : MOV
MOV
MOV
MOV
CLR
10$: ROR
ROR
BCC
ADD
CLC
20$: DEC
BNE
TST
MOV
MOV
MOV
MOV
RTS

RO,-(SP)
R1,-(SP)
10(SP),R1
#21,-(SP)
RO
RO
Rl
20$
10(SP),RO

Save some work registers
Obtain the value of A from the stack
Initialize the shift counter
; Initialize the high 16-bit accumulator
Perform multiplication

(SP)
10$
(SP)+
R1,10(SP)
RO,6(SP)
(SP)+,Rl
(SP)+,RO
PC

Bump the shift counter
Not done ?
Romove the counter from the stack
Save the low 16-bit value on the stack
Save the high 16-bit value on the stack
Restore the work registers
Return

2

uNOTE # 001
page 3 of 4
The following macro and subroutine can be
instruction in software:

used

to

perform

the

DIVSOR,DIVHI,DIVLO,REM,QUO

.MACRO

SDIV

MOV
MOV
MOV
JSR
MOV
MOV

DIVSOR,-(SP);
DIVHI ,-( SP) i
DIVLO ;-( SP) i
PC,$DIV
;
(SP)+,REM
(SP)+,QUO

Push the divisor onto the stack
Push the upper 16-bits of the dividend
Push the lower 16-bits of the dividend
Call the DIV subroutine
Get the remainder
Get the quotient

.ENDM
$DIV:: MOV
MOV
MOV
MOV
MOV
MOV
MOV
CLR
MOV
1$: ASL
ROL
ROL
CMP
BLO
SUB
I~C

2$: DEC
BNE
TST
MOV
MOV
MOV
MOV
MOV
MOV
MOV
RTS

DIV

.RS ,-(SP)
R4,-(SP)
R3,-(SP)
RO,-(SP)
14.(SP),R3
12.(SP),R4
10. (SP) , RS
RO
#32.,-(SP)
RS
R4
RO
RO,R3
2$
R3,RO
RS
(SP)
1$
(SP)+
RO,12.(SP)
RS,14.(SP)
(SP)+,RO
(SP)+,R3
(SP)+,R4
(SP)+,RS
(SP)+,(SP)
PC

; Get some work registers

Get the divisor from the stack
i Get the high 16-bits of the dividend

as well as low 16-bits
i Clear an accumulator

; Shi :Et counte r
Perform the division

Not done ?
; Remove the counter from the stack
Store the remainder on the stack
; store the quotient as well
Restore the work registers

Update the return PC
Return

3

uNOTE .# 001
Page 4 of 4
The following macro and subroutine can be
instruction in software:

used

to

perform

. MACRO

SASH

MOV
MOV
JSR
MOV

COUNT,-(SP) ; Push the shift count
Push what is to be shifted
VAL,-(SP)
Call the ASH subroutine
PC,$ASH
Get the results of the shift
(SP)+,VAL

the

COUNT,VAL

.ENDM
$SASH: : MOV
MOV
MOV
MOV
BIC
BEQ
CMP
BGT
5$: ASL
DEC
BNE
BR
10$: NEG
BIC
11$: ASR
DEC
BNE
20$: MOV
MOV
MOV
MOV
RTS
~

RO,-(SP)
R1,-(SP)
6(SP),RO
8.(SP),R1
#"C<77>,R1
20$
R1,#31.
10$
RO
R1
5$
20$
R1
#"C<77>,R1
RO
R1
11$
RO,8.(SP)
(SP)+,R1
(SP)+,RO
(SP)+,(SP)
PC

Get a couple of work registers
RO - value to be shifted
R1 - direction and shift count
Get out if no shifting
; What direction is the shift
go to the corection direction shift

Store the shifted result on the stack
Restore the work registers
update the return PC
Return

4

ASH

uNOTE # 002

Title: Block Mode DMA

Date: 01-JUN-83

Originator: Scott Tincher and Mike Collins

Page 1 of 20

What is Block Mode DMA?
Block Mode DMA is a method of data transfer which increases throughput
due to the reduced handshaking necessary over the Q-bus.
In order to
implement Block Mode DMA both the master and slave devices must
understand the block Mode protocol.
If either device does not have
Block Mode capability the transfers proceed via standard DATI or DATO
cycles.
Conventional Direct Memory Access on the Q-bus
Under conventional DMA operations, after a DMA device has become bus
master, it begins the data transfers. This is accomplished by gating an
address onto the bus followed by the data being transferred to or from
the memory device.
If more than one transfer is performed by the
temporary bus master, the address portiort of the cycle must be repeated
for each data transfer.
Block Mode Direct Memory Access on the Q-bus
Under block Mode DMA operations an address cycle is followed by multiple
word transfers to sequential addresses. Therefore data throughput is
increased due to the elimination of the address portion of each transfer
after the initial transfer.

5

uNOTE :1 002
Page 2 of 20

There are two types of block Mode transfer, DATBI
(input) and DATBO
(output).
An overview of what occurs during each type of block Mode
transfer is outlined in figures 1 (DATBI, Block Mode input.) and 2
(DATBO, block mode output).
indicates a
In the following discussion the signal prefix T(Transmit)
bus driver input and the signal prefix R(Receive) indicates a bus
receiver output.
DATBI Bus Cycle
Before a DATBI block mode transfer can occur the DMA bus master device
must request control of the bus. This occurs under conventional Q-bus
protocol ..
o REQUEST BUS
The bus master device requests control of the bus
TDMR ..

by

asserting

o GRANT BUS CONTROL
The bus arbitration logic in the CPU asserts the DMA grant
signal TDMGO 0 nsec minimum after TDMR is received and 0 nsec
minimum after RSACK negates (if a DMA device was previous bus
master) .
o ACKNOWLEDGE BUS MASTERSHIP
The DMA bus master device asserts TSACK 0 nsec minimum after
receivin~ ,RDMGI, 0 nsec minimum after the negation of RSYNC and
o nsec mlnlmum after the negation of RRPLY. The DMA bus master
device negates TDMR 0 nsec minimum after the assertion of TSACK.
o TERMINATE GRANT SEQUENCE
The bus arbitration logic in the CPU negates TDMGO 0 nsec
minimum after receiving RSACK. The bus arbitration logic will
also negate TDMGO if RDMR negates or if RSACK fails to assert
within 10 usec ('no SACK timeout').

6

uNOTE # 002
Page 3 of 20
o EXECUTE A BLOCK MODE DATBI

T~ANSFER

o ADDRESS DEVICE MEMORY
a) The address is asserted by the bus master on TADDR<21:00>
along with the negation of TWTBT.
b) The bus master asserts TSYNC
gating the address onto the bus.

150

nsec

minimum

after

o DECODE ADDRESS
The appropriate memory device recognizes
respond to the address on the bus.

that

it

must

o REQUEST DATA
a) The address is removed by the
bus
master
from
TADDR<21:00> 100 nsec minim,um after the assertion of TSYNC.
b) The bus master asserts the first TDIN
after asserting TSYNC.

100

nsec

minimum

c) The bus master asserts TBS7 50 nsec maximum after
asserting TDIN for the first time. TBS7 remains asserted
until 50 nsec maximum after the assertion of TDIN for the
last time.
In each case, TBS7 can be asserted or negated as
soon as the conditions for asserting TDIN are met.
The assertion of TBS7 indicates the bus master is requesting
another read cycle after the current read cycle.
o SEND DATA
a) The bus slave asserts TRPLY 0 nsec m~n~mum (8000
maximum to avoid a bus timeout) after receiving RDIN.

nsec

b) The bus slave asserts TREF concurrent with TRPLY if,
and
only if, it is a block mode device which can support another
RDIN after the current RDIN.
NOTE
Block mode
boundaries

transfers

7

must

not

cross

16

word

uNOTE # 002
Page 4 of 20

c) The bus slave gates TDATA<15:00> onto the bus 0 nsec
minimum after receiving RDIN and 125 nsec maximum after the
assertion of TRPLY.
o TERMINATE INPUT TRANSFER
a) The bus master receives stable RDATA<15:00> from 200 nsec
maximum after recelvlng RRPLY until 20 nsec minimum after
the negation of RDIN.
(The 20 nsec minimum represents total
minimum
receiver
delays
for RDIN at the slave and
RDATA<15:00> at the master.)
b) The bus master
receiving RRPLY.

negates

TDIN

200

nsec

minimum

after

0

nsec

minimum

after

o OPERATION COMPLETED
a)
The bus slave negates TRPLY
receiving the negation of RDIN.

b) If RBS7 and TREF are both asserted when TRPLY negates,
the bus slave prepares for another DIN cycle.
RBS7 is
stable from 125 nsec after RDIN is received until 150 nsec
after TRPLY negates.
c) If TBS7 and RREF were both asserted when TDIN neg~t~d,
the bus master asserts TDIN 150 nsec minimum after recelvlng
the negation of RRPLY and continues with timing relationship
'SEND DATA' above. RREF is stable from 75 nsec after RRPLY
asserts until 20 nsee minimum after TDIN negates.
(The 0
nsee mlnlmum represents total minimum receiver delays for
RDIN at the slave and RREF at the master.)
NOTE
The bus master must limit itself to not more than
eight transfers unless it monitors RDMR.
If it
monitors RDMR, it may perform up to 16 transfers as
long as RDMR is not asserted at the end of the
seventh transfer.

8

uNOTE # 002
Page 5 of 20

o TERMINATE BUS CYCLE
a) Ie RBS? and TREF were not both asserted when TRPLY
negated,
the bus slave removes TDATA<15:00> from the bus 0
nsec minimum and 100 nsec maximum after negating TRPLY.
b) If TBS? and RREF were not both asserted when TDIN negated
the
bus master negates TSYNC 250 nsec minimum after
receiving the last assertion of RRPLY and 0 nsec minimum
after the negation of that RRPLY.
o RELEASE THE BUS
a) The DMA bus master negates TSACK 0 nsec after negation of
the last RRPLY.
b) The DMA bus master negates TSYNC 300 nsec
it negates TSACK.

maximum

after

c) The DMA bus master must remove RDATA<15:00>,
TBS?, and
TWTBT from the bus 100 nsec maximum after clearing TSYNC.
o RESUME PROCESSOR OPERATION The bus arbitration logic in the CPU
enables processor-generated TSYNC or will issue another bus
grant (TDMGO) if RDMR is asserted.

9

uNOTE # 002
Page 6 of 20

Figure 1 - DATSI CYCLE
MEMORY

I/O DEVICE

PROCESSOR

Request Bus

5

Assert TDMR

Grant Bus Control <

. Near end of the current bus
cycle (RRPLY is negated) assert
TDMGO and inhibit new processor
generated TSYNC for the duration

ope~:

of the DMA

I

Acknowledge Bus Mastership
· Receive RDMGO
· Wait for negation of RSYNC and RRPLY
· Assert TSACK
Negate TDMR

V

Terminate Grant Sequence

DMA

(DATSI) Data Transfer

Address Device Memory
· Assert address on TADDR<21:00>
· Assert TSYNC
· Negate TWTBT ~

~>

Decode Address
. Store "Device
Selected" operation

10

uNOTE # 002
Page 7 of 20

Figure 1 - DATSI CYCLE (continued)
I/O DEVICE

PROCESSOR
r--->

MEMORY

Request Data
· Remove address from TADDR<21:00>
· Assert TDIN
· Assert TBS7 (request for an
additional DIN cycle after
the curre!nt one

L _____ >

Send Data

· Data on TDATA<15:00>
· Assert TRPLY
· Assert TREF (to
indicates block
mode capability)
Terminate' Input <--------'1
Transfer
· Accept data and respond
by nega,ting TDIN

L ______

> Operation Completed
. Negate TRPLY
1

yes

are
~----------------------~RBS7 & TREF
Asserted
?

,------'

I

V

11

no

uNOTE # 002
Page 8 of 20
Figure 1 - DATBl CYCLE (continued)
I/O DEVICE

PROCESSOR

Terminate Bus Cycle
and Release the Bus

I

· Negate TSACK
· Negate TSYNC
· Remove TDAL, TBS?, and,
TWTBT from the Bus

V

Resume Processor Operation
. Enable processor generated TSYNC or
issue another grant if RDMR is asserted

12

MEMORY

uNOTE #002
Page 9 of 20

T

R DMG

....._--,-""""

T SAO:

T/R D.AL
__________- J
R/T
100 ns

\

T O:N

:15

'
I
~ ~-.~\ \\\)\\~
~

RE:

"-----'r

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

\

ns ::tax

,.,. 35_7_ _

10 \ \ \ \ " \ \ \ \ \ \ \ \\\\\S\\S\\\\\\

~iminq at slave device.
- • bus driver input
~ • Bus rece~ver ou:~~~

DA,7SI

13

uNOTE #002
Page 10 of 20

THIS PAGE INTENTIONALLY LEFT BLANK

14

uNOTE #002
page 11 of 20

'!' DATA

R ADDR

ns :nax ____ 1

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

R SYNC

R

D!~

\

t

/

'L

!

\

/

R 857

\

slave dev~ce.
7 • bus driver in~ut
~ • Sus rece~ver OU~?~:
~~:n~ng

a~

D ATE

15

uNOTE #002
page 12 of 20

THIS PAGE INTENTIONALLY LEFT BLANK

16

uNOTE # 002
Page 13 of 20

DATBO Bus Cycle
DATBO Bus cycles Before a block mode transfer can occur the DMA bus
master device must request control of the bus. This occurs under
conventional Q-bus protocol.
o REQUEST BUS The bus master device requests control of the bus by
asserting TDMR.
o GRANT BUS CONTROL The bus arbItration logic in the CPU asserts
the DMA grant signal TDMGO 0 nsec minimum after RDMR is received
and 0 nsec minimum after TSACK negates (if a DMA device was
previous bus master).
o ACKNOWLEDGE BUS MASTERSHIP The DMA bus master device asserts
TSACK 0 nsec minimum after receiving RDMSI, 0 nsec minimum after
the negation of RSYNC and 0 nsec minimum after the negation of
RRPLY.,
The DMA bus master device negates TDMR 0 nsec minimum
after the assertion of TSACK.
o TERMINATE GRANT SEQUENCE The bus arbitration logic in the CPU
negates TDMGO 0 nsec minimum after receiving RSACK. The bus
arbitration logic will also ne9ate TDMGO if RDMR negates or if
RSACK fails to assert within 10 usec ('no SACK timeout').
o EXECUTE A BLOCK MODE DATBO TRANSFER
o ADDRESS DEVICE MEMORY
a) The address is asserted by the bus master on TADDR<21:00>
along wi th the assertion of T'WTBT.
b) The bus master asserts TSYNC
gating the address onto the bus.

150

nsec

minimum

after

o DECODE ADDRESS The appropriate memory device recognizes that
it must respond to the address on the bus.
o SEND DATA
a) The bus master gates TDATA<15:00> along with
nsee minimum after the assertion of TSYNC.
negated.
b) The bus master asserts the first TDOUT 100
after gating TDATA<15,: 00>.
NOTE
During DATBO cycles TBS7 is undefined

17

TWTBT 100
TWTBT is

nsec

minimum

uNOTE # 002
Page 14 of 20
o RECEIVE DATA
a) The bus slave receives stable data on RDATA<15:00> from
25 nsec minimum before receiving RDOUT until 25 nsec minimum
after receiving t~e negation of RDOUT.
b) The bus slave
receiving RDOUT.

asserts

TRPLY

0

nsec

minimum

after

c) The bus slave asserts TREF concurrent with TRPLY if,
and
only if, it is a block mode device which can support another
RDOUT after the current RDOUT.
NOTE
Blockmode transfers
boundaries

must

not

cross

16

o TERMINATE OUTPUT TRANSFER The bus master negates
nsec minimum after receiving RRPLY.

word
TDOUT

150

o OPERATION COMPLETED
a)
The bus slave negates TRPLY
receiving the negation of RDOUT.

0

nsec

minimum

after

b) If RREF was asserted when TDOUT negated and if the bus
master wants to transfer another word, the bus master gates
the new data on TDATA<15:00> 100 nsec minimum after negating
TDOUT.
RREF is stable from 75 nsec maximum afterRRPLY
asserts until 20 nsec minimum after RDOUT negates.
(The 20
nsee minimum represents minimum receiver delays for RDOUT at
the slave and RREF at the master).
c) The bus master asserts TDOUT 100 nsec minimum after
gating new data on TDATA<15:00> and 150 nsec minimum after
receiving the negation of RRPLY.
The cycle continues with
the timing relationship in 'RECEIVE DATA' above.
NOTE
The bus master must limit itself to not more than
eight transfers unless it monitors RDMR.
If it
monitors RDMR, it may perform up to 16 transfers, as
long as RDMR is not asserted at the end of the
seventh transfer.
o TERMINATE BUS CYCLE
a). If RREF was not asserted when RRPLY negated or if the bus
master has no additional data to transfer, the bus master
removes data on TDATA<15:00> from the bus 100 nsec minimum
after negating TDOUT.

18

uNOTE # 002
Page 15 of 20
b) If RREF was not asserted when TDOUT negated the bus
master negates TSYNC 275 nsec minimum after receiving the
last RRPLY and 0 nsec minimum after the the negation of the
last RRPLY.
o RELEASE THE BUS
a) The DMA bus master negates TSACK 0 nsec after negation of
the last RRPLY.
b) The DMA bus master negate!s TSYNC 300 nsec
it negates TSACK.

maximum

after

c) The DMA bus master must remove TDATA,
TBS7,
and
from the bus 100 nsec maximum after clearing TSYNC.

TWTBT

o RESUME PROCESSOR OPERATION The! bus arbitration logic in the CPU
enables processor-generated TSYNC or will issue another bus
grant (TDMGO) if RDMR is asserted.

19

uNOTE # 002
Page 16 of 20
Figure 2 - DATBO CYCLE
I/O DEVICE

PROCESSOR

MEMORY

Request Bus
. Assert TDMR
Grant Bus Control
. Near the end of the current bus
cycle (RRPLY is negated) assert
TDMGO and inhibit new processor
generated TSYNC for the duration
of the DMA operation.

~>
I

Acknowledge Bus Mastership
· Receive RDMG
· Wait for negation of RSYNC
and RRPLY
· Assert TSACK
Negate TDMR

V

Terminate Grant Sequence
. Negate TDMGO and wait for DMA
operation to be completed.

~I--------_>

Execute A Block Mode DMA
(DATBO) Data Transfer

Address Memory
· Assert Address on TADDR<21:00>
· Assert TWTBT
· Assert TSYNC ~

L->

Decode Address

. Address match
selects device

20

uNOTE i 002
Page 17 of 20
Figure 2 - DATBO CYCLE (continued)
PROCESSOR

I/O DEVICE

MEMORY

r----> Send Da ta
· Assert TDATA <15:00>
· Negate TWTBT
· Assert TDOUT ~

L>

Receive Data

· Accept data and
RWTBT
• Assert TRPLY
• Assert TREF
(Indicates block
mO
Operation Completed
. Negate TRPLY

I
yes

Does Master
Wish to Transfer
More Data ?

-

I

<

Terminate Bus Cycle and

yes

is RREF
Asserted ?
no

<------~

Release the Bus

,.

. Negate TSACK
. Negate TSYNC
Remove TDAL, TDAL,TBS7, and TWTBT
from the Bus

Resume Processor Operation
. Enable processor generated TSYNC
(processor is bus master) or issue
another grant if RDMR is asserted

21

uNOTE #002
Page 18 of 20

THIS PAGE INTENTIONALLY LEFT BLANK

22

uNOTE #002
Page 19 of 20

::::~~~-.r-'~-------------------------------------------rc~~~~~~~
~~~~~----------.---------------------------------\

TD~

~ :~3 ~~-~-~~~7~A---~X~__-_:_A_T_A_ _~(~~~_ _

R/T

T

_

__

T SACK

------------ ~5JnS~'1~J~O~ns~----·------------~--------------r_tt::J
SYNC \'..\...\.....____-+_m.:.__
"
",,-n ~OOns
H\(,:

--.J1oons)

~
-----~r__-~~

JOt~

\

)15~. ~~ I -,-----

R R?:'Y

-t---__-t___•

?-':":.? _ _ _ _ _ _

/

f

\
' -_ _ _-

!

\L-__________________-

_ _ _ _ _ _ _1

T fITET

'---~\\~._________
1

~------------_t----------~----.

~

\loon'l

/

~~~ng

at master =eVl:e.
T • Sus driver in;:u": .
R a Bus receiver out;:u~

23

CArBO

uNOTE i002
Page 20 of 20

R

~R

-

R SYNC

AJ:)OA

X

X

R DATA

R DATA

A
\

!

R DOur

-

T RPLY
.....I. REF

- L

R

-/

WTB~r

"

:""NDEFIm::J

R aS1

\

':'illlinq at slave devic:: ••
T n Bus driver input
R n Bus rec::eiver output

DATIO

24

uNOTE #003

Title: Compatible Bootstraps for the LSI-11/73

Date: 28-NOV-83

Originator: Mike Collins

Page 1 of 2

The LSI-l1/73 (KDJ11-AA) is a high performance CPU for the Q-Bus.
It is
a CPU only, which means that there is no boot capability on the module
itself. Therefore a boot module must be selected to work with the
LSI-11/73.
This uNOTE will discuss the bootstrap modules which can be used with the
11/73.
There are 4 possible modules which can be used for bootstrap.
They are : MXV11-BF w/MXV11-B2 boot ROMs
MRV11-D w/MXV11-B2 boot ROMs
MXV11-AA or -AC w/MXV11-A2 boot ROMs
BDV11
For an LSI-l1/73 based system to be Field Serviceable the bootstrap code
must execute a cache memory diagnostic on power-up.
The only boot code
which satisfies this requirement is found in the MXV11-B2 boot ROMs.
Therefore an LSI-11/73 based, Field Serviceable system must use either
the MXV11-BF w/MXVII-B2 ROMs or the MRVII-D w/MXVII-B2 ROMs.
NOTE
The MXVII-B2 ROMs will not work on the MXVII-A module.
MXVII-BF or MRVII-D w/MXVII-B2 ROft1:s
The Mxvl1-BF w/MXVI1-B2 ROMs is the preferred choice since this module
has 2 asynchronous serial lines as well as 128Kb of dynamic RAM in
addition to the boot capability. However, if your application does not
need the extra serial lines and RAM, an alternate choice would be the
MRV11-D w/MXV11-B2 ROMs.
The MXVI1-B2 ROMs will boot the following devices :
RL01 / RL02 (DL)
RX01 / RX02 (DX,DY)
TU58 (DD)
TSV05 (MS)
MSCP type Devices e.g. RD51, RXSO (DU)
DECnet via DPVll, DLV11-E, DLV11-F, DUVl1

25

uNOTE # 003
Page 2 of 2
NOTE
The MXV11-BF is not supported by RSTS due to its
non-parity memory.
An alternative configuration would
be to use the MRV11-D with the MXV11-B2 boot ROMs, and a
DLV11-J or other DLV11 serial line device.
The remaining 2 boot modules do NOT have the necessary cache
diagnostic code to make an 11/73 based system Field Serviceable.

memory

Below is a list of all of
remaining boot modules.

the

the

KNOWN

WORKING

bootstraps

for

MXV11-A w/MXV11-A2 ROMs
working bootstraps

RLOl
RX01
TUS8
TUS8

/ RL02
/ RX02
conventional boot
standalone boot
WARNING

If the MXV11-A is used in a 22 bit system the
RAM must be disabled. Refer to uNOTE #106.

on-board

BDV11
Working bootstraps

RL01 /
RX02
RKOS

RL02

WARNING
Disable the processor and memory tests since an odd
address trap does occur in each of them.
See NOTE
below.
To disable the CPU test,
set swit~h E1S-1 to
OFF.
To disable the memory test, set switch E1S-2 to
OFF.
(Refer to the Microcomputer
and
Interfaces
Handbook for complete configuration information.)
The 11/73 has an on-board Line Time Clock Register,
therefore the BDV11 BEVNT switch E21-S should be set to
the OPEN position. This disables software control of
the BEVNT signal via the BDV11 LTC register and allows
software control of this signal via the 11/73 LTC
register.
If the BDV11 is used in a 22 bit system, it must be CS
REV E or later or ECO M8012-MLOOOS must be installed.
NOTE
ODD ADDRESS TRAPS.
The 11/23 ignores an odd address
reference whereas the KDJ11-A will trap to address 4.

26

2

r=

uNOTE 1004

Title: LSI-11/73 upgrade Paths

Date: 28-NOV-83

Originator: Mike Collins

Page 1 of 6

With the announcement of the KDJ11-A cpu module, there will be numerous
questions regarding configuring the module into a current system. The
purpose of this MicroNote is to address all possible configuration
upgrade paths (within reason).
Generally a KDJ11-A will be installed as an upgrade to
from components or DEC packaged system.

a

system

built

In the case of a component upgrade it is assumed the processor is a
KDF11-A and the boot mechanism is an MXV11-A with the MXV11-A2 Boot
ROMs.
System upgrades fall into 2 categories:
1. KDF11-A based systems and
2. KDF11-B based systems (11/23+ and Micro/PDP-11)
There are 3 issues which must be addressed when
upgrade.
They are:
1. The Boot mechanism
2. 18 or 22 bit system
3. Single or multiple box system

considering

a

KDJ11-A

NOTE
1. In the following upgrade scenarios, the systems have
been labeled as being Field Serviceable or not. A
system which is Field Serviceable has a bootstrap which
meets Field Service requirements. The requirement is
that the bootstrap must execute an 11/73 cache memory
diagnostic on power-up. There is no guarantee that the
overall system will be Field Serviceable or that it will
be FCC compliant.
2. Systems using cpu's other
KDF11-B (i.e.
11/03 systems)
upgrade.

than the KDF11-A or
are not considered for

CAUTION:
It is recommended that the AC and DC loading for the final
configuration be checked for conformance with the Q-BuS loading rules.

27

uNOTE # 004
Page 2 of 6
It is also recommended to check for.overloading on the +5 Volt
volt Power Supplies.

and

+12.

For each system upgrade the following parameters are listed for both the
'Current' system and the 'Upgraded' system:
1.
2.
3.
4.

CPU
Boot Mechanism
System Size
Number of Boxes
5. Field Serviceable or not
6. Special Conditions

COMPONENT UPGRADE PATHS:
1. Current System
KDF11-A
MXV11-A
18 Bit System
1 Box

Upgrade 1
KDJ11-A
MXV11-B/MRV11-D with MXV11-B2 Boot ROMs
18 Bit System
1 Box
Field Serviceable
Upgrade 2
KDJ11-A
MXV11-A
18 Bit System
1 Box
NOT Field Serviceable

2. Current System
KDF11-A
MXV11-A
18 Bit System
More than 1 box
3. Current System

KDF11-A
MXV11-A (Memory Disabled)
22 Bit System
1 Box

Upgrade
See upgrades for category #1

upgrade
See upgrades for category #1

28

uNOTE # 004
Page 3 of 6
UP9 rade

4. Current System

Not currently configureable with
KDF11-A
DEC equipment.
MXV11-A (Memory Disabled)
22 Bit System
More than 1 box
This system is not currently configureable with DEC equipment.
PDP 11/23A SYSTEM UPGRADE PATHS:
5. Current System

UP9rade 1

KDF11-A
BDV11
18 Bit System
1 Box

KD~Jl1-A

MXV11-B/MRV11-D with MXV11-B2 Boot ROMs
18 Bit System
1 130x

Field Serviceable
Upc;rade 2
KD,J11-A
BDV11
18 Bit System
1 160x

NOT Field Serviceable
Disable the Processor and Memory tests
and also the BEVNT register on the
BDV11.
Uptgrade 3
KDIJ11-A
MXV11-A (with MXV11-A2 boot ROMs)
18 Bit System
1 :Box System
NOT Field Serviceable
Check AC loading since termination was
removed when the BDV11 was removed from
th!e system.
6. Current System

UP'9rade 1
KD,J11-A
MXV11-B/MRV11-D with MXV11-B2 Boot ROMs
18 Bit System
More than 1 box
Field Serviceable
Use Bcv1A and BCV1B expansion cables.

KDF11-A
BDV11
18 Bit System
More than 1 Box

29

uNOTE # 004
:I?age 4 of 6
upgrade 2
KDJ11-A
BDV11
18 Bit System
More than 1 Box
NOT Field Serviceable
Disable the Processor and Memory tests
and also the BEVNT register on the
BDV11.
Use BCV1B cable set between 1st and 2nd
box and the BCV1A cable set between the
2nd and 3rd box. Note: If in a 3 box
system the expansion cable set lengths
must differ by 4 ft.
Upgrade 3
KDJ11-A
MXV11-A (with MXV11-A2 boot ROMs)
18 Bit System
More than 1 Box
NOT Field Serviceable
Use BCV1A and BCV1B expansion cables.
7. Current System
KDF11-A
BDV11
22 Bit System
1 Box
Systems with this configuration were never shipped by DEC.
PDP 11/23 PLUS SYSTEM UPGRADE PATHS:
8. Current System
KDF11-B
Boot is on CPU
22 Bit System
1 Box System

upgrade 1
KDJ11-A
MXV11-B/MRV11-D with MXV11-B2 Boot ROMs
22 Bit System
1 Box
Field Serviceable
Upgrade 2
KDJ11-A
MXV11-A (with MXV11-A2 boot ROMs)
22 Bit System
1 Box
NOT Field Serviceable
Must disable RAM on MXV11-A.

30

uNOTE # 004
Page 5 of 6
Upgrade 3
KDJII-A
BDVl1
22 Bit System
1 Box System
NOT Field Serviceable
Must have BDV11 ECO M8012-MLOOS
installed. Disable the Processor and
Memory tests and also the BEVNT register
on the BDV11.
9. ·Current System

Upgrade 1

KDFI1-B
Boot is on CPU
22 Bit System
More than 1 Box

Not currently configureable with
DEC equipment.

Upgrade 2
Not currently configureable with
DEC equipment.
upgrade 3
Not currently configureable with
DEC equipment.
MICRO/PDP-11 SYSTEM UPGRADE PATHS:
10. Current System

upgrade

Micro/PDP-11
KDF11-BE
Boot is on CPU
22 Bit System
1 Box system

Same as 11/23+ rules, see category
#8, Upgrade 1. upgrades 2 and
3 are not recommended since the
MXV11-A and BDV11 cannot boot the
5 1/4" media in the Micro/PDP-II.

11. Current System

Upgrade
Same as 11/23+ rules, see upgrades
for category #9.

Micro/PDP-11
KDF11-BE
Boot is on CPU
22 Bit System
More than 1 box

31

uNOTE # 004
Page 6 of 6
NOTE
It is not currently possible to expand out
Micro/PDP-11 while maintaining FCC compliance.

of

the

11/23 PLUS and Micro/PDP-11 system upgrades will require
an EXTRA backplane slot to accomodate the additional
boot module (i.e. MXV11-A,-B or BDV11).
11/23-S SYSTEM UPGRADE SOLUTIONS:
12. Current System
KDF11-BA
Boot is on CPU
18 Bit System
1 Box system
13. Current System
KDF11-BA
Boot is on CPU
18 Bit system
More than 1 box

upgrade
See upgrades for category #5.

Upgrade
See upgrades for category #6.

NOTE
It is not currently possible to expand
11/23-8 while maintainin9 FCC compliance.

32

out

of

the

uNOTE # 005

Title: Q22 Compatible Options

Date: 23-Apr-84

Originator: Charlie Giorgetti

page 1 of 6

This is a list of Q22 compatible options. A Q22 compatible option is
defined as a Q-bus option that will work without restriction in an
extended Q-bus system, that is a 22-bit Q-bus system.
This list also
includes options that are not compatible in Q22 systems and the reason
for the restriction.
The requirements for a device to be Q22 compatible are the following:
1. Processors, memories, and OM. devices must all be capable of
addressing.
2. Devices must use backplane pins BC1, BD1, BEl,
DEl, DF1, for BDAL18-21 only.

BF1

and

DC1,

22-bi t
001,

Processors, memories, or DMA devices which are not capable of 22-bit
may generate or decode erroneous addresses if they are used
ln
systems
which
implement
22-bit
addressing.
Memory
and
memory-addressing devices which implement only 16 or 18-bit addressing
may be used in a 22-bit backplane, but the size of the system memory
must be restricted to the address range of those devices (64 KB for
systems with 16-bit devices and 256 KB for systems with an lS-bit
devices).
~ddressing

Any device which uses backplane pins BC1, BD1, BEl, BF1 or DC1, 001,
DEl, OF!, for purposes other than BDAL18-21 is electrically incompatible
with the 22-bit bus and may not be used without modification.
NOTE
Eighteen or sixteen bit DMA devices can potenitially work in
Q22 systems by buffering I/O in the 18- or 16-bit address
space.
I.

Fully Compatible Options

Options in this category meet both of the requirements
and may be used in any Q-bus configuration.
A. Processors
KD32-A

M7135/M7136

MicroVAX I CPU Module

33

mentioned

above

uNOTE # 005
Page 2 of 6
KDFll-A

M8186

LSI-ll/23 CPU
(Etch Rev. C or later)

KDFll-B

M8l89

LSI-l1/23B CPU

KDJll-A

M8l92

LSI-l1/73 CPU

KDJll-B

M8l90

MicroPDP-ll/73 CPU

KXTll-C

M8377

Q-bus Perpherial I/O Processor

KMV11-A

M7500

Q-bus Perpherial Communication Processor

B. Backplanes/Boxes
H9270-Q

4 X 4 Q22/Q22 Backplane

H928l-QA
H9281-QB
H928l-QC

2 X 4 Q22 Dual-height Backplane
2 X 8 Q22 Dual-height Backplane
2 X 12 Q22 Dual-height Backplane

H9275

4 X 9 Q22/Q22 Backplane

BA11-S

H9276

4 X 9 Q22/CD Backplane

Micro/PDP-ll

H9278

4 X 3 Q22/CD and 4 X 5 Q22/Q22 Backplane

C. Memory
MCVll-D

M8631

CMOS Non-volatile Memory

MSV11-L

M8059

MOS Memory (either 128 KB or 256 KB)

MSVll-P

M8067

MOS Memory (either 256 KB or 512 KB)

MSVll-Q

M7551

MOS Memory ( 1 MB)

MXVll-B

M7195

Multifunction Module

MRVll-D

M8578

PROM/ROM Module

AAVll-C

A6006

D/A Converter

ADVll-C

ABOOO

A/D Converter

AXVll-C

A0026

D/A and A/D Combination Converter

BDVll

MB012

Bootstrap, Terminator, Diagnostic
(CS Rev. E or later, ECO M8012-ML005
installed)

D. options

34

uNOTE # 005
Page 3 of 6
DEQNA

M7504

Ethernet Controller

DLVll

M7940

Asynchronous Serial Line Interface

DLVll-E

M80l7

Asynchronous Serial Line Interface

DLVll-F

M8028

Asynchronous Serial Line Interface

DLVll-J

M8043

Four Asynchronous Serial Line Interfaces
(CS Rev. E or later, ECO M8043-MR002
installed)

DHVll

M3l04

8-line Asynchrono~s EIA Multiplexer

DMVll-AD

M8053-MA

Synchronous Communications Interface

DMVll-AF

M8064-MA

Synchronous Communications Interface

DPVll

M8020

programmable Synchronous EIA Line

DRVll

M794l

32 line Parallel Interface

DRVll-J

M8049

64 line Parallel Interface

DRVll-w

M765l

General Purpose DMA Interface (dual)

DUVll

M795l

programmable Synchronous EIA Line

DZQll

M3l06

4-line Asynchronous EIA Multiplexer (dual)

DZVll

M7957

4-line Asynchronous EIA Multiplexer (quad)

FPFll

M8l88

Floating Point Processor

IBV11-A

M7954

IEEE Instrument Bus Interface

IEQll

M8634

DMA IE:EE Instrument Bus Interface

KLESI-QA

M7740

LESI Bus Adaptor (RC25 Interface)

KPVll-A

M80l6

Power-fail and LTC Generator
(KPV11-B and -C are not compatible)

KWVll-C

A4002

Programmable Real-time Clock

LAVll

M7949

LA180 Line Printer Interface

LPVll

M8027

LA180/LP05 Printer Interface

RLV12

M806l

RL01/2 Controller

RQDXl

M8639

Controller for 5.25" Floppy and Winchester

35

uNOTE # 005
Page 4 of .6
RXVll

M7946

RXOl Floppy Disk Interface

TQK25

M7605

Streaming Cartridge Tape Controller

TSv05

M7l96

Magnetic Tape Controller

E. Bus Cable-Cards

II.

M9404

Cable Connector

M9404-YA

Cable Connector with 240-0hm Terminators

M9405

Cable Connector

M9405-YA

Cable Connector with l20-0hm Terminators

Restricted Compatibility Options

Options in this category do not meet one or both of the requirements for
use in a 22-bit system. These options are incompatible with some ~r all
22-bit systems.
A. Processors
KDFll-A

M8l86

LSI-ll/23 CPU
(Prior to etch rev. C, l8-bit addressing only,
and use of BC1,BD1,BE1,BFl for purposes other'
than BDAL18-2l)

KDll-HA

M7270

LSI-ll/2 CPU
(16-bit addressing only, and use of BC1,BD1,
BE1,BFl for purposes other than BDAL18-2l)

KDll-F

M7264

LSI-ll CPU
(16-bit addressing only, and use of DC1,DB1,
DE1,DFl for purposes other than BDAL18-2l)

KXTll-A

M8063

SBC-ll/2l CPU
(16-bit addressing only)

B. Backplanes/Boxes
6 X 9 Backplane
(18-bit addressing only)

DDVll-B
BAll-M

H9270

4 X 4 Backplane
(18-bit addressing only)

BAll-N

H9273-A

4 X~9 Backplane
(18-bit addressing only)

36

uNOTE # 005
Page 5 of 6
BAll-VA

H92S1-A,B,C

VT103

2 X n Dual-height Backplane n - 4, S, and 12
BAll-VA used the H92S1-A
(lS-bit addressing only)
4 X 4 Backplane (part number: 54-1400S)
(18-bit addressing only)

C. Memories
MMV11-A

G653

S KB Core Memory
(16-bit addressing only, Q-bus required on C/D
backplane connectors)

MRV11-AA

M7942

ROM Module
(16-bit addressing only)

MRV11-BA

MS021

UV PROM--RAM
(16-bit addressing only)

MRV11-C

MS04S

PROM/ROt1 Modul e
(lS-bit addressing only)

MSV11-B

M7944

S KB bus refreshed RAM
(16-bit addressing only)

MSV11-C

M7955

32 KB Rl\M
(lS-bit addressing only)

MSV11-D,E MS044/MS045

S KB, 16 KB, 32 KB, 64 KB RAM
(lS-bit addressing only)

MS047

Multifunction Module
(lS-bit addressing only on memory, the memory
can be disabled)

AAV11

A6001

D/A Converter
(Use of BC1 for purposes other than BDAL1S)

ADV11

A012

A/D Converter
(Use of BC1 for purposes other than BDAL1S)

BDV11

MS012

Bootstrap/Terminator
(CS Revision E or earlier lS bits only)

DLV11-J

MS043

Serial Line Interface
(CS Rev. E or earlier incompatible with
KDF11-A and KDF11-B)

DRV11-B

M7950

General Purpose DMA Interface (quad)
(lS-bit DMA only)

MXV11-A
D. Options

37

uNO'!'E # 005
page 6 of 6
KPVll-B,C M80l6-YB,YC

Power-fail/line-time clock/terminator
(Termination for l8-bits only)

KUVll

MS01S

writable Control Store
(For use with KDll-F processor only)

KWVll-A

M7952

Programmable real-time clock
(Use of BCl for purposes other than BDAL18)

REVll

M9400

Terminator, DMA refresh, bootstrap
(Bootstrap for use with KDll-F and KDll-HA
processors only.
Termination for l8-bits only.
DMA refresh may be used in any system.)

RKVll-D

M7269

RK05 Controller Interface
(l6-bit DMA only)

RLVll

M80l3
M80l4

RL01,2 Controller
(18-bit DMA only, use of BCl and BDl for
purposes other than BDALl8 and BDALl9)

RXV2l

M8029

RX02 Floppy Disk Interface
(lS-bit DMA only)

TEVll

M9400-YB

l20-0hm Bus Terminator
(Termination for l8-bits only)

VSVll

M7064

Graphics Display
(lS-bit DMA only)

E. Bus Cable-Cards
M9400-YD

Cable Connector
(lS-bit bus only)

M9400-YE

Cable Connector with 240-0hm Terminators
(18-bit bus only)

M940l

Cable Connector
(lS-bit bus only)

38

uNOTE #006

Differences Between
the LSI-11/73 and LSI-11/23

Title:

Originator: Mike Collins

Date: 23-APR-84
Page 1 of 8

This uNOTE identifies and discusses the differences between
the
LSI-11/23
(KDF11-AA) and the LSI-11/73 (KDJ11-AA). The following table
lists these differences.
Following the table are individual discussions
on these differences.
Some of these differences are discussed from the point
11/23 to 11/73 upgrade.
Table 1

of

view

of

LSI-11/73 versus LSI-11/23

FEATURE

11/73

Odd Address Traps

Yes

Micro ODT

22 Bit

Illegal Halt
Processor Modes
I & D Space

18 Bit
Traps to 10

3

2

2

Floating Point Inst. Set

No

Traps to 4

Yes

General Purpose Reg Sets

11/23

Standard

No
1
Option

Line Time Clock Reg.

Yes

No

On-board Cache Memory

Yes

No

Pipelined Processing

Yes

No

UBMap Signal on the Q-bus

Not Available

Available

Additional Instructions
Available

CSM, TSTSET,
WRTLCK

Not
Available
cont'd

39

an

uNOTE # 006
Page 2 of 8
Table 1 cont'd

LSI-11/73 versus LSI-11/23
11/73

FEATURE

11/23

CPU Error Register
Memory System Error Reg
Cache Control Reg
Hit/Miss Reg
Program Interrupt Req Reg
Line Time Clock Reg
Maintenance Reg

Additional CPU Registers

Not
Available

A discussion of processor speed can
be found in the respective user guides

Processor Speed

User Guide Part #
EK-KDJ1A-UG

User Guide Part #
EK-KDF11-UG

ODD ADDRESS TRAPS
The 11/73 processor will trap to 4 when it encounters an odd address
reference.
i.e.
whenever an address begins on an odd byte boundary
(least significant bit - 1). The 11/23 ignores odd address references
and simply treats the LSB as a zero, effectively 'forcing' all addresses
to begin on even byte boundaries.
Odd address traps do not occur
freque~tly,
however it is possible for code to run on an 11/23 and NOT
run on an 11/73 because of them.
Fixes for these errors
are
straightforward.
MICRO ODT (Octal Debugging Technique)
Both the 11/23 and the 11/73 implement ODT in their microcode.
The
11/23 can use ODT to examine main memory locations from 0 to 256 Kbytes,
but no further.
On the other hand, the 11/73 ODT can examine the full 4
Mbyte range of main memory. When accessing addresses in the I/O page
with an 11/73, a full 22 bit address must be specified.
Example: To look at the first instruction of the bootstrap code with
an 11/73 it is necessary to type:
@17773000/
or @7777777777773000/
NOT @773000/

This is NOT enough because only
18 bits have been specified.

40

uNOTE # 006
Page 3 of 8
ILLEGAL HALT
The 11/23 and the 11/73 respond differently when detecting a halt
instruction in user or supervisor mode.
The 11/23 traps to address 10
whereas the 11/73 traps to address 4. The 11/73 also sets the Illegal
Halt Bit in the CPU ERROR Register to indicate an Illegal Halt occurred.
PROCESSOR MODES
The 11/23 has two processor modes, KERNEL and USER.
KERNEL, SUPERVISOR and USER.

The 11/73 has three

I and D SPACE
The concept of I and D space is used in mapping information into
separate physical memory segments, depending on whether the information
is considered instructions (I) or data (D). The use of I
and D space
allows programs to exist in two virtual segments and effectively doubles
the address available to the user from 64 Kbytes to 128 Kbytes.
The 11/73 has the capability for I and D space whereas the 11/23 does
not.
To implement this feature, many more PAR/PDR pairs are necessary.
The 11/73 has 48 PAR/PDR pairs, the 11/23 has only 16 PAR/PDR pairs.
GENERAL PURPOSE REGISTER SETS
The 11/23 and all previous LSI-11 processors have 1 set of general
purpose registers,
RO thru R7.
Some of these are used for special
purposes.
R7 is used as the progri~m counter and R6 is used as the stack
pointer.
Internal to the 11/23 are 2 registers used for stack pointers,
one for each processor mode).
There are 5 additional registers RO thru
RS.
The 11/73 has two sets of general purpose registers, listed in the table
below. Only eight are visible to the user at any given time.
There are
two groups of six registers (RO thru RS and RO' thru RS').
The group
currently being used is selected by bit 11 in the Processor Status Word
(PSW).
Only one stack pointer is visible to the user at anyone time
and is determined by bits 14 and 15 in the PSW.
Designation
RO
RO'
R1
R1'
R2
R2'
R3
R3'

Register Number

o

1
2
3
4
5

R4
RS
KS]?
PC

6

7

R4'
RS'
SSP

KSP - Kernel Stack Pointer
SSP - Supervisor Stack Pointer
USP = User Stack Pointer

41

USP

uNOTE # 006
Page 4 of 8
FLOATING POINT INSTRUCTION SET
Both the 11/23 and the 11/73 use the FP11 Floating Point Instruction
Set.,
The FP11 Instruction Set is an option for the 11/23 (choice of
either the KEF11 chip or the FPF11 floating point accelerator).
The
FP11 instruction set is part of the J11 microprocessor microcode and is
therefore a standard feature of the 11/73.
LINE TIME CLOCK REGISTER
The original dual height 11/23 CPU does not have an LTC (Line Time
Clock)
register on the board.
In 11/23 based systems the BDV11 boot
module contains the LTC reg.
In order to enable or disable LTC
interrupts under software control, the 11/23 must write to this register
over the Q-bus.

11/23

LTC
REG

1

7 546

Q-bus

The 11/73 has an LTC register on the CPU board.
This means that
whenever the 11/73 wants to enable or disable LTC interrupts under
software control it writes to this on-board register.
The address of
the LTC register (location 177546) is 'trapped' on the board and NEVER
goes out onto the Q-bus. When the 11/73 is used in a system with a
BDV11,
it is recommended that software control over the LTC interrupts
be disabled on the BDV11 (see uNOTE #114).

11/73
177546

I
Q-bus
ON-BOARD CACHE MEMORY
Cache memory systems are designed

42

to

increase

CPU

performance.

The

uNOTE # 006
Page 5 of 8
cache maintains copies of portions of main memory in very high-speed RAM
and thus reduces access times significantly.
The 11/73 is the first Q-bus processor to implement a cache memory
system.
The cache is automatically enabled on power-up and its
operation is transparent to software.
However software can enable or
disable the cache by writing to the Cache Control Register (CCR).
When the cache is enabled, any information fetched from main memory will
be
'cached'
i.e.
placed in the high-speed RAM.
Information fetched
from an I/O device will NOT be 'cached' (i.e.
information fetched from
an address in the I/O page).
CAUTION:
Digital Equipment Corporation does not support a system which
uses shared or dual-ported memory on the Q-bus.
However there are
applications and non-DEC add-on hardware which do
support
such
configurations.
Consider the following:
The system below uses an 11/73, has a certain amount of main memory as
well as dual-ported memory.
The cache is enabled and the following
sequence of events occur:
1.
The 11/73 reads a word
address A which contains
'cached'.

from the dual-ported RAM
the value X.
The value

EXTERNAL
DEVICE

11/73
A: X
A: X

at
is

O THEN GO TO 235
970 LET Y-B
975 LET C1$-SEG$(01$,Y,Y)
980 IF C1$-"A" THEN LET A1-1
985 IF C1$-"*" THEN LET A1-0
990 LET C2$-SEG$(02$,Y,Y)
995 IF C2$-"A" THEN LET A2-1
1000 IF C2$-"*" THEN LET A2-0
1005 LET C3$-SEG$(03$,Y,Y)
1010 IF C3$-"A" THEN LET A3-1
1015 IF C3$-"*" THEN LET A3-0
1020 LET C4$-SEG$(04$,Y,Y)
1025 IF C4$-"A" THEN LET A4-1
1030 IF C4$-"*" THEN LET A4-0
1035 LET C5$=SEG$(05$,Y,Y)
1040 IF C5$-"A" THEN LET A5-1
1045 IF C5$-"*" THEN LET A5-0
1050 LET C6$=SEG$(06$,Y,Y)
1055 IF C6$-"A" THEN LET A6-1
1060 IF C6$_n*n THEN LET A6-0
1065 LET C7$-SEG$(07$,Y,Y)
1070 IF C7$-nAn THEN LET A7-1
1075 IF C7$_n*n THEN LET A7-0
lOBO LET CB$-SEG$(OB$,Y,Y)
lOBS IF CB$_nA n THEN LET FB-1
1090 IF CB$_n*n THEN LET FB-O
1095 LET 09-(A1*1)+(A2*2)+(A3*4)+(A4*B)
1100 LET P9-(A5*1)+(A6*2)+(A7*4)+(FB*B)
1105 LET 09-15-09 \ LET P9-15-P9
1110 IF P9<10 THEN LET T1-0
1115 IF P9<10 THEN GO TO 1155
1120 IF P9-10 THEN LET P9$_nAn
1125 IF P9-11 THEN LET P9$_nBn
1130 IF P9-12 THEN LET P9$-nC n
1135 IF P9-13 THEN LET P9$_nDn
1140 IF P9-14 THEN LET P9$-nEn
1145 IF P9-15 THEN LET P9$-nFn
1150 LET T1-1
1155 IF 09<10 THEN LET TO-O
1160 IF 09<10 THEN GO TO 1200
1165 IF 09-10 THEN LET 09$-nAn

5B

uNOTE i 007
Page 13 of 13
1170
1175
1180
1185
1190
1195
1200
1205
1210
1215
1220
1225
1230
1235
1240
1250
1255
1260
1265
1270
1275
1280
1285
1290
1295
1300
1305
1310
1315
1320
1330
1335
1340
1345

IF 09-11 THEN LET 09$-nBn
IF 09-12 THEN LET 09$-nC n
IF 09-13 THEN LET 09$-"0"
IF 09-14 THEN LET 09$-nEn
IF 09-15 THEN LET 09$-"F"
LET TO-1
IF T1=0 THEN GO TO 1215
IF TO=O THEN GO TO 1240
GO TO 1230
IF TO-1 THEN GO TO 1255
PRINT i4,STR$(P9);STR$(09);L1$
GO TO 1260
PRINT i4,P9$;09$;L1$
GO TO 1260
PRINT i4,P9$;STR$(09);L1$
GO TO 1260
PRINT i4,STR$(P9);09$;L1$
I,ET Y-Y-1
IF Y>O THEN GO TO 975
PRINT i4,Z$
LET Y1-Y1+1
IF Yl-2 THEN LET Sl$-n$A200,"
IF Yl-3 THEN LET Sl$-"$A300,"
IF Y1=4 THEN LET Sl$-n$A400,"
IF Y1=5 THEN LET Sl$-"$A500,"
IF Yl-6 THEN LET Sl$-"$A600,"
PRINT i4,Z$
IF Y1=7 THEN GO TO 1320
IF E1=0 THEN GO TO 91
PRINT i4,H2$
CLOSE
GO TO 1345
PRINT "INPUT LINE IN ERROR"
END

59

60

uNOTE # 008

Title: Memory Management and the LSI-11/73

Date: 22-Jun-84

Originator: Dave Smith

Page 1 of 11

This micronote explains memory management as it applies to
the
LSI-11/73.
It includes descriptions of what memory management is, what
it does, and how it works.
Simply stated, memory management is a method of mappi~g virtual
addresses to physical addresses. The virtual address space 1S the view
of memory as seen by a process running. The physical address space is
the actual physical memory as seen by the entire system. Since ALL
memory references must be mapped, this translation is done in hardware
by using a Memory Management Unit (MMU). Various schemes (dependent
upon the architecture) have been df~veloped to accomplish this, but most
memory management systems provide the following services:
1) Protection
2) Relocation
3) Segmentation
The first two are of great importance in a multiprogramming system since
memory management provides the mf~chanism for assigning memory areas to
user programs and for preventing users from accessing areas that have
been assigned to other users.
This protects the operating system
executive as well as users from accidental or willful memory accesses
outside of a user's assigned memory. Relocation is also important in a
multiprogramming environment since the executive must be able to
relocate the user's program to a free area in physical memory.
The LSI-11/73 Memory Management Unit provides the hardware for complete
memory management by providing all of the above services.
It is
software compatible with the largl~r UNIBUS PDP-11s and other Q-bus
processors.
Since the LSI-11/73 has the PDP-11 architecture and a
16-bit program counter, all 16-bit addresses access a 64Kb virtual
address space. On the LSI-11/73 this addressing limitation can be eased
by using separate sets of memory management registers for instructions
(I-space) and for data (D-space).
By utilizing separate I- and Dspace, the address space can be segmented into two 64Kb segments,
effectively doubling the virtual address space. The LSI-11/73 and the
Q-bus allow 4 Mb of memory to be rl~ferenced. The MMU is necessary to
provide the mapping from the 64Kb virtual address space to the 4 Mb
physical address space.

61

uNOTE # OOS
Page 2 of 11
When the MMU is activated, a 16-bit virtual address is mapped to an
lS-bit or 22-bit physical address.
Th~ MMU uses registers known as
Active Page Registers (APRs). An APR consists of two 16-bit registers
which are called the Page Address Register (PAR) and the Page Descriptor
Register (PDR).
PARs are used in the actual address translation while
PDRs contain access and other information.
Since the LSI-11/73 is
functionally equivalent to the PDP-11/70, it can operate in one of three
modes:
Kernel,
Supervisor, or User and it can use 1- and D- space.
This means that the MMU must provide separate sets of registers for each
mode and within each mode,
sets of registers for I-space and for
D-space. A set of registers consists of eight pairs of PDRs and PARs.
Thus the LSI-11/73 MMU has a total of three sets of 32 16-bit registers.
Mapping is always done in pages of 8Kb (4K words) in length or less.
In
order to map the largest possible virtual address space (64 Kb), the
address space is divided into eight pages of 8Kb each. One APR is used
fo[, each of the eight pages, numbered 0 to 7. The uppermost page in
physical memory is called the I/O page and is usually mapped by a Kernel
Mode APR since it is a privileged area.
PHYSICAL
ADDRESS
SPACE

4 Mb
I/O page

USER MODE

>

<-----

page 7

KERNEL MODE

APRs

APRs

PAR7

PAR7

PAR6

PAR6

PARS

~

>

PARS

PAR4

PAR4

PAR3

PAR3

<-----

PAR2
PAR1
PARO

>

PAR2
PAR1

<

o

62

PARO

uNOTE # 008
Page 3 of 11
The Page Address Register consists solely of the Page Address Field
(PAF).
If 22-bit addressing is enabled, then all 16 bits of the PAR are
used as the PAF.
If only 18-bit addressing is desired then the 12 lower
order bits are the PAF and the 4 higher order bits are unused.
It may
be thought of as a base register containing a base address or as a
relocation register containing a relocation constant.
PAGE ADDRESS REGISTER

(PAR)

o

15

[+--+-;~GE+AD;RE;;-;IE~~~PA;-)-+--+--+--+--+J
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
The Page Descriptor Register contains
length, and expansion direction:

information

about

access,

PAGE DESCRIPTOR REGISTER (PDR)
15 14

08 07 06 05 04 03 02 01 00
+--+--+--+--+--+

Be PAGE LENGTH FIELD I 01
~
+--+--+--+--+--+
PDR <15>

BC

wi 01 olEol

A~~

(Bypass Cache)

Set if memory accessing is wished to be
without utilizing the cache. Useful with
dual-ported memories.
PDR <08:14>

PLF

(Page Length Field)

Specifies the authorized length of the page
in 32 word (or 64 byte) groups.

o

<-->

.

177 (8) <-->

63

32 word page
4096 word page

page

uNOTE # 008
Page 4 of 11
PDR <06>

W

(Written Into)

Useful in determining whether or not a page can
simply be erased or must be saved to be brought
back into memory.

PDR <03>

PDR <01:02>

Page has NOT been written into
Page has been written into

0
1

<->
<->

ED

(Expansion Direction)

0

<->

1

<->

ACF

(Access Control Field)

00
01
10
11

<->
<->
<->
<->

Expands to higher addresses
(Normally used)
Expands to lower address-es
(Can be used for stack segments)

Nonresident
Resident - Read Only
Not Used
Resident - Read/Write

The 16-bit virtual address is divided into three fields:
VIRTUAL ADDRESS (VA)
13 12

15

APF

o

6 5

DIB

BN

<------DISPLACEMENT FIELD (DF)---->
o APF or Active Page Field
These three bits determine which of the eight
APRs are selected.
o BN or Block Number
The PAF determines an 8 Kb page in memory.
The BN is that offset that is added to the base
of ,the page determined by the PAF to obtain the
block within the page to map.

64

uNOTE # 008
Page 5 of 11
o DIB or Displacement In the Block
Tells exactly which one of the 32 words is being
mapped to. The low order 6 bits (DIB) are never
relocated.
The BN and DIB fields are collectively referred to as the
Displacement Field (OF).
If the MMU is not activated then 16-bit virtual addresses are also
16-bit physical addresses and linearly map the 64Kb address space. When
the MMU is activated the 16-bit virtual address (VA)
is no longer
interpreted as a physical address Instead, the physical address (PA) is
constructed using the VA and the PAF (Page Address Field) of the
selected PAR.
The translation of virtual addresses to
accomplished as follows:

22-bit

physical

addresses

1) A set of registers is selected. This is determined by
the space being referenced (Instructions or Data) and by
the mode bits of the Processor status Word (PSW <15:14».

2) The APF field of the virtual address determines which of the
eight pairs in the selected set will be used for the mapping.
3) The PAF of the selected register pair contains the starting
address of the currently active page as a block number.
4) The block number from the virtual address and the block number
from the PAF are added together. The block number from the PAF
is shifted left by six bits in order to perform this addition.
The result is the actual physical block number (bits <21:06>
of the physical address).
5) The DIB of the virtual address is carried along unchanged as
bits <05:00> of the translated address.

65

is

uNOTE # 008
Page 6 of 11
VIRTUAL TO PHYSICAL ADDRESS TRANSLATION
16-BIT VIRTUAL ADDRESS

o

15
[

+-+I+-+-+-+-+-+I+-+-+-+--+]
APF
BN
DIB
+-r--+
+-+-+ +-+-+
+-+_.+-+ +

Selects
APR

PAGE ADDRESS REGISTER

o

15

+--+--+--+--+-+-+-+--+-+-+-+-+-+-+]
[

+--+--+--+--+--+--+~+-+-+-+-:+-+--+<--+--------~

21
[

6

+--+--+-+-+-+-+
+-+-+-+-+-+-+]
BLOCK NUMBER IN PHYSICAL MEMORY
+--+--+--+-+--+--+--+--+--+-+-+-+-+-+

<----------------

22-BIT PHYSICAL ADDRESS (PA)

66

o

5

DIB
[
. +--+-+--+-+
+--+~+--+

+]

------------------------>

uNOTE # 008
Page 7 of 11
There are four memory management registers that are used for memory
fault recovery and abort and status information as well as control of
the MMU.
They are called MMRO, MMR1, MMR2, and MMR3.
Memory Management Register 0 (MMRO)
register.

is

the

main

control

and

status

MEMORY MANAGEMEN'T REGISTER 0 (MMRO)
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

1 1 1 1 01 01 01 01
MMRO <15>

o~:

1 1

:=:IJ

NONRESIDENT ABORT
Set if an attempt is made to access a page
with an ACF of 0 or 2 or if the PSW indicates
mode 2.

MMRO <14>

PAGE LENGTH ABORT
Set if an attempt is made to access a location
whose block numbE!r is outside the area authorized
by the PLF of the PDR for that page.

MMRO <13>

READ ONLY ABORT
Set if an attempt is made to write to a page with
an ACF of 1 (Read Only).

MMRO <06:05>

PROCESSOR MODE
Copy of the PSW <15:14> when abort occurred.

MMRO <04>

PAGE SPACE
1

o

MMRO <03:01>

<->
<->

I)-space
I-space

PAGE NUMBER
page Number of page causing the abort.
Copy of APF of virtual address.

67

uNOTE ~~ 008
Page 8 of 11
ENABLE RELOCATION

MMRO <00>

1

<->

o

<->

ALL addresses are relocated
(MMU activated)
NO addresses are relocated
(MMU disabled)

Memory Management Register 1 (MMR1) is called the Instruction Backup
Register.
It records any autoincrement or autodecrement of any general
purpose register. The lower byte is used for source operands and the
destination
operand
may be in either byte, dependent upon the
instruction.
MEMORY MANAGEMENT REGISTER 1 (MMR1)
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
+--+-+-+--r--+-+--r--+-+--+-+--r--+--+]
[

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

MMR1 <15:11>

AMOUNT CHANGED (2's complement)

MMR1 <10:08>

REGISTER NUMBER

MMR1 <07:03>

AMOUNT CHANGED (2's complement)

MMR1 <02:01>

REGISTER NUMBER

Memory Management Register 2 (MMR2) is known as the Last Virtual program
Counter.
It is loaded with the value of the program Counter at the
beginning of each instruction fetch and is used in instruction fault
recovery_

68

uNOTE # 008
Page 9 of 11
Memory Management Register 3 (MMlt3) is used to select 1S-bit or 22-bit
address mapping and is used to onable/disable the data space for any of
the processor modes.
MEMORY

MANAGEMl~NT

REGI STER 3 (MMR3)

:=:J

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

/ 0/ 0/ 0/ 01 0/ 0/ 0/ 0/ 0/ 0/
MMR3 <05>

1 1 1

UNINTERPRETED
May be set or cleared but is not interpreted.

MMR3 <04>

ENABLE 22-BIT
1

o

MMR3 <03>

o

MMR3 <01>

MMR3 <00>

Mapping is to 22-bit space.
Mapping is to 1S-bit space.

<->
<->

ENABLE CSM (Call Supervisor Mode) INSTRUCTION
1

MMR3 <02>

]~PPING

CSM is recognized.
CSM is ·not recognized.

<->
<->

KERNEL DATA
1

<->

o

<->

SPJ~CE

Enable data space mapping in
Kernel Mode
Disable data space mapping in
Kernel Mode

SUPERVISOR DAT.A SPACE
1

<->

0

<->

Enable data space mapping in
Supervisor Mode
Disable data space mapping in
Supervisor Mode

USER DATA SPACE
1

<->

0

<->

69

Enable data space mapping in
User Mode
Disable data space mapping in
User Mode

uNOTE # 008
Page 10 of 11

Summary:
The LSI-11/73 Memory Management unit provides a powerful,
general
purpose tool for memory management~
It can be used to expand memory in
a simple way and it can be used in a multiprogramming system to provide
all the services necessary for an efficient and secure environment.
The following is a simple MACRO-11 program which illustrates the method
of setting up the registers and performing some mappings.
It writes a
known value to an unmapped location and sets up the MMU registers and
turns on the unit.
It then writes another known value to the same
virtual address which is now mapped. Then it turns the MMU off.
At
this point the two known valuas are in different memory locations .
. TITLE

MMU

;

;
;

Program to demonstrate setting up MMU registers
and to illustrate the mapping that takes place

;

PSW
MMRO
PDRO
PARO
PAR1
PAR7

=

=-

-

-=-

177776
177572
172300
172340
172342
172356

Processor status Word
Memory Management Register 0
Page Descriptor Register 0
Page Address Register 0
Page Address Register 1
Page Address Register 7

; INSURE THAT MMU IS NOT ACTIVATED
START:: CLR

@#MMRO

CLEAR MMRO

; STORE A KNOWN VALUE (152152) IN UNMAPPED LOCATION 20000
MOV

#152152,@#20000

SET PSW TO KERNEL MODE
BIC

#140000,@#PSW

; SET THE PARS SO THAT EACH PAGE MAPS TO ITSELF

LOOPl:

MOV
MOV
CLR

#PARO,R5
#10,R4
R3

MOV

R3, ( R5 ) +

ADD
SOB

#200,R3
R4,LOOPl

i

SET UP PAR POINTER
SET UP PAR COUNTER
SET UP PAR OFFSET VALUE
SET EACH RELOCATION CONSTANT TO
MAP TO ITSELF
UPDATE OFFSET
DO ALL OF THEM

70

uNOTE # 008
Page 11 of 11
;

SET PAR1 TO MAP PAGE 1 TO PAGE 2
MOV

#400,@#PAR1

SET PAR7 TO MAP THE I/O PAGE TO THE TOP OF MEMORY
MOV

#7600,@#PAR7

172356 POINTS TO 760000

SET UP THE PDRS
;

; 77406 (8) - 0 111 111 100 000 110 (2)

,.

RESIDENT - READ/WRITE
UPWARD EXPANDING
NOT WRITTEN INTO
8KB PAGE SIZE
DON'T BYPASS CACHE

;
;
;
;
;

LOOP2:

MOV
MOV

#PDRO,R5
#10,R4

SET UP PDR POINTER
SET UP PDR COUNTER

MOV
SOB

#77406,(R5)+
R4,LOOP2

SET EACH PDR
DO THEM ALL

; ENABLE THE MMU
INC

@#MMRO

; SET BIT 0 OF MMRO

; WRITE A VALUE TO LOCATION 20000. THIS SHOULD BE MAPPED.
MOV

#107010,@#20000; WRITE 107010 TO MAPPED 2000

DISABLE THE MMU
DEC

@#MMRO

; CLEAR BIT 0 OF MMRO

; AT THIS POINT IN THE PROGRAM, ;E:XAMINING PHYSICAL
ADDRESS 20000 SHOWS THE VALUE OF 152152 WHICH WAS PLACED THERE
; ADDRESS 40000 (WHICH 20000 MAPPED TO) HOLDS THE VALUE 107010
HALT
.END

START

71

72

uNOTE # 009

Title: Cache Concepts and the LSI-ll/73

Date: 02-JUL-84

Originator: Charlie Giorgetti

Page 1 of 6

The goal is to introduce the concept of cache and its particular
implementation on the LSI-ll/73 (KDJll-A).
This is not a detailed
discussion of the different cache organizations and their impact on
system performance.
What Is A Cache ?
The purpose of having a cache is to simulate a system having a large
amount of moderately fast memory. To do this the cache system relies on
a small amount of very fast, easily' accessed memory (the cache), a
larger amount of slower, less expensive memory (the backing store), and
the statistics of program behavior.
The goal is to store some of the data and its associated addresses in
the cache and all of the data at its usual addresses (including the
currently cached data) in the backing store. If it can be arranged that
most of the time when the proces.sor needs dat, it is located in fast
memory, then the program will execute more quickly, slowing down only
occasionally for main memory operations.. The placement of data in the
cache should not be a concern to the programmer but is a consequence of
how the cache functions.
Figure 1 is an example of a memory organization showing a cache with
backing store.
If the data needed by the microprocessor (uP) can be
found in the cache then it is accessed much faster due to the local data
path and faster cache memory than by having to access the backing store
on the slower system bus.

c::J
uP

<

CPU Internal Buses C]yrstem
>
Bus
Interface

System Bus
For Memory and I/O Options

<

>

<

Fast Path
to Cache

System Memory
(Backing Store)
Cache

Figure 1 - An Example Memory System with Cache

73

uNOTE # 009
Page 2 of 6
cache memory system can only work if it can successfully predict most
of the time what memory locations the program will require. If a
program accessed data from memory in a completely random fashion, it
would be impossible to predict what data would be needed next. If this
was the case a cache would operate no better then a conventional memory
system.

A

Pr()grams rarely generate random addresses. In many cases the subsequent
memory address referenced is often very near the current address
accessed. This is the principle of program locality. The next address
generated is in the neighborhood of the current address. This behavior
helps makes cache systems feasible.
concept of program locality is not always adhered to, but is a
statement of how many programs behave. Many programs execute code in a
linear fashion or in loops with predictable results in next address
generation.
Jumps and context switching give the appearance of random
address generation. The ability to determine what word a program will
reference next is never completely successful and therefore the correct
"guesses" are a statistical measure of the size and organization of the
cache, and the behavior of the program being executed.
Th~!

The measure of a cache performance is a statistical evaluation of the
number of memory references found versus not found in cache. When
memory is referenced and the address is found in the cache this is known
as a hit.
When it is not it is termed a miss. Cache performance is
usually stated in terms of the hit ratio or the miss ratio where these
are defined as:

Hit Ratio

Miss Ratio

=

=

Number of Cache Hits
Total Number of Memory References

I

-

Hit Ratio

The LSI-11/73 Cache

Impl~mentation

cache organization chosen must be one that can be implemented within
the physical and cost constraints of the design.

ThE~

ThE~ LSI-11/73 implements a direct map cache.
A direct map
organization
has a single unique cache location for a given address and this is where
thE! associated data from backing store are maintained.
This means an
access to cache requires one address comparison to determine if there is
a hit. The significance of this is that a small amount of circuitry is

74

uNOTE # 009
Page 3 of 6
required to perform the comparison operation. The LSI-11/73 has an 8
KByte cache. This means that therle are 4096 unique address locations
each of which stores two bytes of information.
The cache not only maintains the d.ata from backing store but it also
includes other information that is needed to determine if its content is
valid. These are parity detection and valid entry checking.
The
following diagram shows the logical layout of the cache and what each
field and its associated address in the cache is used for.
Binary Cache
Entry Address

P

v

P1

PO

B1

BO

000000000000
000000000001
000000000010

111111111101
111111111110
111111111111
Figure 2

~

LSI-11/73 Cache Layout

The Cache Entry Address is the address of one of 4096 entries within the
cache.
This value has a one-to-one relationship with a field in each
address that is generated by the processor (described in the next
section on how the physical address accesses cache).
Each field has the following meaning:
Tag (TAG) - This nine bit field contains information that is
compared to the address label, described in the next section on
how the physical address accesses cache.
When the physical
address is generated, the address label is compared to the tag
field.
If there is a match it can be considered a hit provided
that there is entry validation and no parity errors.
Cache Data (BO and B1) - These two bytes
stored in cache.

75

are

the

actual

data

uNOTE # 009
Page 4 of 6
Valid Bit (V) in BO and B1 is
bit is set when
which occurs as

The valid bit indicates whether the information
usable as data if a cache hit occurs. The valid
the entry is allocated during a cache update
a result of a miss.

Tag Parity Bit - (P) - Even
stored in the tag field.

parity

calculated

for

the

value

parity Bits (PO and P1) - pO is even parity calculated for the
data byte BO and P1 is odd parity calculated for the data byte
B1.
When the processor generates a physical address,
the on-board cache
control logic must determine if there is a hit by looking at the unique
location in cache. To determine what location to check,
the cache
control logic considers each address generated as being made up of three
unique parts. The following are the three fields of a 22-bit address
(in an unmapped or lS-bit environment the label field is six or four
bits less respectfully):
21 20 19 18 17 16 15 14 13

1<

LABEL

-------->1

12 11 10 09 OS 07 06 05 04 03 02 01

1<-------------

INDEX

----------->1

00

BYTE,
SELEC~

Figure 2 - Components of a 22-bit Address For Cache Address Selection
Each field has the following meaning:
Index - This twelve bit field determines which one of the 4096
cache data entries to compare with for a cache hit. The index
field is the displacement into the cache and corresponds to the
Cache Entry Address.
Label - Once the location in the cache is selected, the nine bit
label field is compared to the tag field stored in the cache
entry under consideration.
If the address label and the tag
field match, the valid bit is set, and there is no parity error,
then a hit has occurred.
Byte Select Bit - This bit determines if the reference is on an
odd or even byte boundary. All Q-bus reads are word only so
this bit has no effect on a cache read. Q-bus writes can access
either words or bytes.
If there is a word write the cache will
be updated if there is a hit.
If there is a miss a new cache
entry will be made.
If there is a byte write, the cache will
only be updated if there is a hit. A miss will not create a new
entry on a byte write.

76

uNOTE # 009
Page 5 of 6
The LSI-ll/73 direct map cache mu:;t update the backing store on a memory
write.
The LSI-ll/73 uses the write through method.
With this
technique, writes to backing store occurs concurrently with cache
writes.
The result is that the backing store always contains the same
data as the cache.
Features Of The LSI-ll/73 Cache
The LSI-l1/73 direct map cache has a number of features that assist in
the performance of the overall system in addition to the speed
enhancement as a result of faster memory access. These features consist
of the following:
o
o
o
o
o

Q-bus OMA monitoring
I/O page reference monitoring
Memory management control of cache access
Program control of cache parameters
Statistical monitoring of cache performance

The LSI-ll/73 cache control logic monitors the Q-bus during OMA
transactions.
When an address that has its data stored in cache is
accessed during OMA, the cache a:nd backing store contents might no
longer be the same.
This is an unacceptable situation. The cache
control logic invalidates a cache entry if the address is used during
OMA.
This also includes addresses used during Q-bus Block Mode OMA
transfers.
Memory referen 7es to the I/O page are not cached since that data is
volatile, meanlng its contents can change without a Q-bus access. Since
the cache could end up with stale data, I/O references are not cached.
There are situations for which using the cache to store information for
faster access is not desirable. An example is a device that resides in
the I/O page, and is true in other instances as well. One situation is
a device that does not reside in the I/O page but can change its
contents without a bus reference, such as dual ported memory.
Another situation is partitioning and tuning an application
for
instruction code execution versus data being manipulated.
In this case
the instruction stream may execute many times over for different data
values.
Speed enhancement can be obtained if the instructions are
cached while the data is not cached. By forcing the data never to be
cached it cannot replace instructions in the cache.
The memory management unit (MMU) of the LSI-l1/73 can assist in this
situation.
Pages of memory allocated for data can be marked to bypass
the cache and therefore not effect instructions that loop many times.
The cache and the MMU work together to achieve the goal of increased
system performance.
The dynamics of cache operation are under program control through use of
the Cache Control Register (CCR), an LSI-ll/73 on-board register. This

77

uNOTE # 009
Page 6 of 6
register can "turn" the cache on or off, force cache parity errors for
diagnostic testing, and invalidate all cache entries. The details of
the CCR are described in the KDJll-A CPU Module User's Guide (part
number EK-KDJ1A-UG-001).
During system design or at run-time the performance enhancements
provided by the cache system can be monitored under program control.
This is accomplished by using another LSI-ll/73 on-board register the
Hit/Miss Register (H~R).
This register tracks the last six memory
references and indicates if a hit or miss took place.
The details of
the HMR are also described in the KDJll-A CPU Module User's Guide.
Summary
Caches are a mechanism that can help improve overall system performance.
The dynamics of a given cache are dictated by the organization and the
behavior of the programs running on the machine. The LSI-ll/73 cache is
designed to be flexible in its use,
simple in implementation, and
enhance application performance.
More detailed discussions on how caches work
and
other
cache
organizations can be found in computer architecture texts that have a
discussion of memory hierarchy.

78

uNOTE

* 010

Title: MicroVAX I/O Programming

Date: 27-JUL-84

Originator: Peter Jonhson

Page 1 of 5

The Qbus MicroVax implements the full Vax memory management, so virtual
addresses are translated to physical addresses - just as they are for
the Vax minicomputers. When memory management is enabled,
system and
process space virtual addresses ,are translated into physical addresses
and sent onto the Qbus. Normally,
the programmmer need not concern
himself with this translation ,as this is completely handled by the
operating system; however, when accessing locations in the I/O space
directly the programmer must concern himself with the mapping since
specific information must be supplied by the programmer to MicroVMS in
order for it to successfully map the user's virtual addresses into the
I/O space. The process of mapping a virtual address to a physical
address must start by determining the physical address that you wish to
access.
In our case this means that we must calculate a Qbus MicroVax
physical address given that we know the address that the Qbus board is
configured to.
In order to do this we must know a few key facts about
the Qbus MicroVax architecture.

1) The Qbus MicroVax I/O space begins at physical 20000000 (hex)
2) The I/O space of a Qbus MicroVax is largely empty containing
only Q22 bus I/O space which is SK bytes long

Given these two pieces of information we now know that the I/O space for
the Qbus MicroVax starts at physical 20000000 (hex) and extends to
20001FFF (hex). This I/O space directly corresponds to the configurable
addresses on Qbus option boards 160000-177777 (oct).
In order to
convert any Qbus option address to a Qbus MicroVax address one simply
subtracts 160000 from the boards configured address to get its offset
into the I/O space and then add this value to the base of the Qbus
MicroVax I/O space. For example, let us consider a board which has been
configured to-166540.
In order to calculate its equivalent Qbus
MicroVax address we would do the following:

79

uNOTE # 010
Page 2 of 5

1) Subtract. off the I/O base address for this board (160000)
166540 (oct)
160000 (oct)
6540 (oct) -->

060 (hex)

2) Add the board's address offset to the Qbus MicroVax I/O space
base address
+

20000000 (hex)
060 (hex)
20000060 (hex)

This addition results in the physical address on the Qbus MicroVax
system that this board would answer to.
Now we have calculated the physical address for the board in the Qbus
MicroVax environment.
This value, however, is in the raw state and is
still not usable by the uVMS software to perform virtual to physical
address translation.
In order for this address to be useful to the
software it must now be converted from a physical address to a page
frame number.
The page is the basic unit of memory mapping and
protection. A page is 512 contiguous byte locations.
A page frame
number (PFN)
is the address of the first byte of a page in physical
memory. This means that the lsb ofa PFN has the resolution of 1 page
or 512 bytes.
It is a simple matter now to convert a physical address
to a PFN. Since the lsb of a PFN is 1 page to convert a physical
address to PFN just shift right the physical address 9 bits, i.e.
shift
off the 9 least significant bits.
physcial 20000060 (hex)

shift right 9 --> PFN 100006 (hex)

The PFN value which we have calculated is sufficient to allow the system
to map a physcial page of addresses into your virtual address space.
The address of the Qbus option resides somewhere in the page which we
have mapped.
It is the responsibility of the programmer to correctly
offset from the beginning of the page in order to access the board i.e.
the programmer _must displace from the base of the mapped page with the
correct virtual address offset.
To determine the offset from the
beginning of the mapped page look to bits 0-9 of the configured address
of the Qbus option board - this is the offset.
In our example the
offset would be:

80

uNOTE # 010
page 3 of 5

166540 (oct)

I I

\ I

I

540

bits 9-0 are the offset

This offset would be used by thE! programmer to access the device
registers on the board. Failure to use the offset will usually result
in an attempt to access non-esxistE!nt locations (analagous to memory
time-outs) which will result in an access violation error being returned
to the user. A sample program follows which illustrates the principles
which have been discussed.
It uses the same board address discussed
earlier so that one can see the code needed to acutally implement the
previous example.

The following program illustrates, in a raw fashion, how one might
actually access the I/O space with software.
It is not meant to
illustrate good or recommended pro9ramming practice but rather to show
the mechanics of accessing the I/O space of a Qbus on MicroVax I.

81

uNOTE # 010
Page 4 of 5

iThis program will allow a user with suitable privilege to access
idevice registers in the I/O space of a uVax. This example shows
icode which is used to extract data from a DRV11 - a general purpose
iparallel interface which resides in I/O space. It is sufficiently
igeneral to allow the concept to be used in other situations where
iaccess to the I/O space from a user process is desireable.
iThis portion of the program is responsible for creating the
ivirtual to physical mapping required to access registers in
ithe I/O space. For this example the device registers are assumed to
istart at 166540. In order for virtual to physical mapping to occur
ithe user must calculate the physcial page frame that the device
iregisters overlap into. (See accompanying text for how to do this)

iCreate and map section directive does the actual work of mapping.
iln order for this system service to work correctly the
iuse must have PFNMAP privilege
.entry

start,A m<>

$crmpsc s inadr .-maprange, retadr - actadr, -

ilnput virtual address range
iVirtual address range acutally
imapped
iNon zero required for page frame
pagcnt • #1, isection
flags -#, iActual page frame of I/O space
vbn - pfn number
ipage which contains device registers
blbs

rO,continue

icheck the return status of create
iand map - if successful branch

pushl
calls

rO
#l,g"'lib$stop

iput status onto stack
itell him what happened and
istop program

82

uNOTE # 010
Page 5 of 5

iAt this point one page of virtual addresses in the user's process
ispace is now mapped into one page of the I/O space. Now the user
ican access device registers by using move instructions.
i •••••• ** Please note that only certain instructions are allowed when
idoing physical I/O to the bus. For example a MOVL instruction is
iNOT legal to the I/O space.
continue:
movl

actadr, r6

;Get starting virtual address from

addl

# . . x160, r6

;system service and put into R6
;Add the displacement into this page
ito access the device registers

iAccess data from the parallel interface
tstb
bgew
movw

(r6)
10$
4(r6), data in buffer

10$:
$exit s code ;; #1

;Test for data transfer request
;If no data exit
;Data is present - store it

;exit gracefully

;data for program •••.•.
maprange:

.long
.long

"'x4.00
"'x800

control status
data in-buffer

.word
.word

o

actadr:

.blkl

2

.long

"'x100006

.end

o

start

83

;holds returned virtual
; address range
;actual pfn of I/O page to
;be mapped

84

uNOTE # 011

Title: LSI-11/73 ADVANCED MEMORY MANAGEMENT

Date: 04-Sep-S4

Originator: Art Bigler

Page 1 of 11

This micronote examines the advanced memory
management
features
available on the DCJ11 based LSI-11/73 series processors (KDJ11-A,
KDJ11-B).
These features include the
standard
virtual
address
relocation within the physical address space and the kernel and user
execution modes, all of which are currently available as options on the
mid-range LSI-11/23 (KDF11-A, KDF11-B) processors.
In addition to these
features, the DCJ11 based processors also provide instruction and data
space (I/O space) memory management and the supervisor execution mode.
The following discussion is intended to further clarify these features.
For information pertaining to address relocation the reader is referred
to micronote OOS, MEMORY MANAGEMENT AND THE LSI-11/73.
1.0

INSTRUCTION/DATA SPACE M:EMORY MANAGEMENT

I/O space memory management is utilized in the DCJ11 based processors IN
ADDITION TO the relocation of virtual addresses within the physical
address space. This provides the ability to place multiple program
images in physical memory while at the same time providing an increased
virtual address space of 128 kb OI' 64 kw by mapping instructions and
data to separate areas of physical memory. The means by which I/O space
memory management is attained involves both hardware and software as
described in the following paragraphs.
I/O SPACE HARDWARE

1.1

The hardware required to implement: I/O space addressing is integrated
into the memory management uni.t and is standard on all DCJ11 based
processors. This includes the following:
1.

Eight (8) additional active page registers (APR'S)
per
execution mode (more about execution modes later). These APR's
are used to map to the data space when I/O space memory
management is enabled.

1.

Additional control and status bits in memory management
registers 0 and 3 (MMRO, MMR3) which are used to control the
enabling and disabling of data space addressing.
INSTRUCTION
SPACE ADDRESSING IS ALWAYS ENABLED.

85

uNOTE # 011
Page 2: of 11
1.1.1

ACTIVE PAGE REGISTERS

The hardware provides a total of sixteen (16) APR's per execution mode,
eight (8) instruction space registers and eight (8) data space registers.
THE APR's are further divided into page descriptor registers (POR'S)
and
page address registers
(PAR's) as described in micronote 008.
The
physical addresses for these registers are contained in the I/O page and
are as follows:

MODE

-

.

-

KERNEL
I
SPACE

PAR's

POR's

PAGE

17772340

17772300

0

17772342

17772302

1

17772344

17772304

2

17772346

17772306

3

17772350

17772310

4

17772352

17772312

5

17772354

17772314

6

17772356

17772316

7

17772360

17772320

0

17772362

17772322

1

17772364

17772324

2

17772366

17772326

3

17772370

17772330

4

17772372

17772332

5

17772374

17772334

6

17772376

17772336

7

I-

I-

KERNEL
I-

0

SPACE
f-

I-

-

TABLE 1a
KERNEL MODE APR'S

86

uNOTE # 011
Page 3 of 11

MODE

-

-

SPVSR
I
SPACE

-

I-

SPVSR
D
SPACE

PAR's

PDR's

PAGE

17772240

17772200

0

17772242

17772202

1

17772244

17772204

2

17772246

17772206

3

17772250

17772210

4

17772252

17772212

5

17772254

17772214

6

17772256

17772216

7

17772260

17772220

0

17772262

17772222

1

17772264

17772224

2

17772266

17772226

3

17772270

17772230

4

17772272

17772232

5

17772274

17772234

6

17772276

17772236

7

I-

I-

TABLE 1b
SUPERVISOR MODE APR'S

87

uNOTE # 011
Page 4 of 11

MODE

POR's

PAR's

PAGE

17777640

17777600

0

17777642

17777602

1

17777644

17777604

2

17777646

17777606

3

17777650

17777610

4

17777652

17777612

5

17777654

17777614

6

17777656

17777616

7

17777660

17777620

0

17777662

17777622

1

17777664

17777624

2

17777666

17777626

3

-17777670

17777630

4

17777672

17777632

5

17777674

17777634

6

17777676

17777636

7

~

~

~

~

USER
I
SPACE

~

~

~

~

~

USER
~

0

SPACE
~

~

~

TABLE 1c
USER MODE APR'S

1.1.2

MEMORY MANAGEMENT REGISTER 0

Memory management register 0 (MMRO) contains control
and
status
information for the memory management unit (MMU). This register is
discussed complete~y in micronote 008, to which the reader is again
refferred for information on those functions which are not directly
applicable to I/O space and supervisor mode.
MMRO contains three (3) status bits which are used in the implementation
of I/O space memory addressing. These bits, 04 through 06, yield MMU
status information whenever a MMU abort occurs and are used
in

88

uNOTE • all
page 5 of 11
conjunction with MMRO bits 01 t:hrough 03 and 13 through 15 to provide
complete execution mode and I/O spcLce status for the page causing the
abort. See figure 1.
Bit 04, the page address space status bit,
associated with the aborted page and
instruction space page and a one (1) for a
space addressing is enabled. If I/O space
bit always reflects a zero (0).

indicates the address space
is equal to a zero (0) for an
data space page whenever I/O
addressing is not enabled this

Bits 05 and 06, the processor mode status bits, indicate the processor
execution mode associated with 1:he page causing the abort. These bits
are coded as follows:
BIT
06 05

EXECUTION MODE

o

0

KERNEL

o

1

SUPERVISOR

1

0

ILLEGAL (causes an abort with bit 15 set)

1

1

USER

For more information on MMU aborts see micronote 008.

89

uNOTE # 011
Page 6 of 11
MMRO
1
5

1
4

1

3

1
2

1
1

1

o

ADDRESS: 17777572

o
9

o

8

o

7

o

6

o
5

o
4

o

o

3

2

o

1

o
o

READ-ONLY
ACCESS VrOLATION

~--ABORT

~-------ABORT
~-----------ABORT

PAGE LENGTH ERROR
NON-RESIDENT

PAGE
ENABLE
ADDRESS
RELOCATION
SPACE (I/D)

BIT #

DESCRIPTION

<15>
<14>
<13>
<12:07> <06:05> <04>
<03:01> <00>

ABORT READ-ONLY ACCESS VIOLATION (R ONLY)
ABORT PAGE LENGTH ERROR (R ONLY)
ABORT NON-RESIDENT (R ONLY)
NOT USED (R ONLY)
PAGE MODE (R ONLY)
PAGE ADDRESS SPACE (I/D) (R ONLY)
PAGE NUMBER (R ONLY)
ENABLE RELOCATION (R/W)
FIGURE 1
MEMORY MANAGEMENT REGISTER 0 (MMRO)

MEMORY MANAGEMENT REGISTER 3
Memory management register 3 (MMR3)
contains control
and
status
information for data space addressing, 22 bit mapping, and the call to
supervisor mode
(CSM)
instruction.
This register,
once again,
is
discussed in detail in micronote 008.
MMR3 contains three (3) control bits which are used in the implementation
of I/D space addressing.
These bits, 00 through 02, individually enable
data space addressing for each of the execution modes.
Bit 00 enables
data space addres$ing for the USER mode, bit 01 enables it for SUPERVISOR
mode, and bit 02 enables it for KERNEL mode.
The desired bits are set to
a one
(1) whenever data space addressing is desired.
MMR3 is cleared
during power-up,
console restart,
and the execution of the RESET
instruction.
See figure 2.

90

uNOTE # 011
Page 7 of 11
ADDRESS: 17772516

MMR3 REGISTER
1
5
0

I

1
4

1
3

1
2

1
1

1

0

0

9

0
8

0

0

0

0

0

0

0

0
7

0
6

0
5

0
4

0
3

0
2

0
1

0
0

UNINTERPRETED------------~

ENABLE 22 BIT
ENABLE CSM

MAPPIN~------~

INSTRUCTION-------~

KERNEL------------------------------~

SUPERVISOR------------------------------~
USER--------------------------------------~-~

BIT #

DESCRIPTION

<15:06> <05>
<04>
<03>
<02>
<01>
<00>

NOT USED (R ONLY)
UNINTERPRETED (R/W)
ENABLE 22 BIT MAPPING (R/W)
ENABLE CSM INSTRUCTION (R/W)
KERNEL DATA SPACE (R/W)
SUPERVISOR "DATA SPACE (R/W)
USER DATA SPACE (R/W)
FIGURE 2
MEMORY MANAGEMENT REGISTER 3

I/O SPACE ADDRESS MAPPING

1.1.4

When I/O space addressing has been enabled the MMU hardware performs the
address mapping (IN ADDITION TO ADDRESS RELOCATION WHICH IS PERFORMED
USING THE APPROPRIATE SET OF APR'S) as follows:

1.
2.

The ~urrent instruction is ALWAYS fetched from the
. space.
The operands are mapped according to table 2.

91

instruction

uNOTE # 011
Page 8 of 11

OPERAND
ADDRESSING
MODE

REGISTER
USED

TYPE
OF
ADDRESSING

I OR D
SPACE
USED

000

ANY

REGISTER

I

001

ANY

REGISTER
DEFERRED

D

010

0 THROUGH 6

AUTOINCREMENT

D

7

IMMEDIATE

I

0 THROUGH 6

AUTOINCREMENT
DEFERRED

D (A)
D (D)

7

ABSOLUTE

I (A)
D (D)

0 THROUGH 6

AUTODECREMENT

D

7

DO NOT USE 11

0 THROUGH 6

AUTODECREMENT
DEFERRED

7

DO NOT USE 11

110

ANY

INDEX

I ( A)
D (D)

111

ANY

INDEX
DEFERRED

I (A)
D (A)
D (D)

011

100

101

D (A)
D (D)

(A) - INDIRECT OR INDEX ADDRESS
(D) =- DATA
TABLE 2
OPERAND ADDRESSING WITH DATA SPACE ENABLED

All address mapping is performed using the I space APR's when data
addressing is not enabled.

space

The most difficult example showing data space
deferred type of addressing.

index

92

addressing

is

the

uNOTE # 011
Page 9 of 11
CLR

@1000(R3)

1.

The instruction
location pc.

is

fetched

2.

The base address 1000 is fetched from the instruction space at
location PC+2.
The index in R3 is added to the base address
forming the address of the indirect address.

3.

The indirect address is fetched from the data space
address calculated in step 2.

4.

The data is fetched from
calculated in step 3.

data

the

instruction

space

using

space

using

at

the

the

address

At the present time I/O space addressing is supported by two (2)
supplied operating systems, RSX-llM-PLUS and ULTRIX-l1.

Digital

1.2

the

from

I/O SPACE SOFTWARE

RSX-11M-PLUS provides linking of tasks which utilize I/O space addressing
via the task builder (TKB) utility. Those programs which include the
data PSECTs in their object files may be task built using the /ID switch.
It should be noted that the task may not make use of the entire 32kw data
space because RSX-llM-PLUS requires that the stack and the task header be
placed in data space.
Other restrictions may apply, consult the task
builder manual for further information.
When using I/O space with other operating systems or in standalone
programs,
the user must do all the mapping within the program. This
implies that the mapping of the operating system must be attended to by
the user program if operating system features are to be utilized.
To make use of data space addressing the program must:
1.

Separate the instruction space from the data space.
(ie.
create different regions in memory for instructions and data)

2.

Load the instruction space and data
appropriate relocation information.

3.

Enable I/O space mapping by setting the MMR3 bit associated
with the execution mode under which the program will run.

The following

~estrictions

space

APR's

with

the

apply to I/O space programs:

1.

The instruction space can only contain instructions,
operands,
absolute addresses, and index words.
reflected in table 2.

immediate
This is

2.

The stack page must be mapped into both

and

93

instruction

data

uNOTE # 011
Page 10 of 11
space if the
off the stack.

MARK instruction is used because it is executed

3.

Instruction space-only pages
cannot
contain
subroutine
parameters which are data. This precludes the mapping of any
pages containing standard PDP-11 calling sequences entirely
into an instruction space page.

4.

The trap catcher technique of putting .+2 in the trap vector
followed by a halt must be mapped into both instruction and
data space.

For further information on I/O space addressing under
ULTRIX-11 consult the appropriate documentation set.

2.0

RSX-11M-PLUS

and

SUPERVISOR MODE

'The DCJ11 based processors provide three (3) execution modes:
KERNEL,
SUPERVISOR, and USER.
They provide for various forms of memory and
processor protection and permit additional features to be implemented in
:multiprogramming environments.
Each mode has its own set of mapping
registers.
KERNEL mode is the most privileged of the modes, allowing the execution
of any instruction and the modification of any area in memory including
the I/O page.
USER mode prohibits the execution of privileged instructions such as HALT
and RESET and the modification of areas in memory that the KERNEL program
does not provide access to.
SUPERVISOR mode has the same privileges as USER mode with its awn set of
mapping
registers,
thus
providing
another level of protection.
SUPERVISOR mode is intended for use in the mapping and execution of
programs to be shared by users while still providing protection from
them. Examples of this are command line processors which are required
for use by all users on a system, while necessitating write protection
from them.
The execution mode is controlled by the state of bits 14 and 15 in the
processor status word (PSW). These bits are changed by the execution of
traps and interrupts, pushing and popping of old PSW's to and from the
stack, and, when in KERNEL mode, the direct manipulation by the program.
Bits 12 and 13 re(lect the execution mode which existed prior to the
event which placed the processor in the current mode. See figure 3.

94

uNOTE 41: 011
Page 11 of 11
The current and previous mode PSW bits are coded as follows:
BIT
15 14
13 12
0
0
1
1

EXECU~rION

0
1
0
1

MODE

KERNE1~

SUPERVISOR
ILLEG1~L

USER

PROCESSOR STATUS WORD (PSW)
1
5

1
4

1
3

1
2

1
1

1
0

0
9

CURRENT PREVIOUS
MODE
MODE
GPR
GROUP
BIT

0
7

0
6

0
5

0
4

PRIORITY
LEVEL
SUSPENDED
INFORMATION

-

TRACE
BIT

CURRENT MODE (R/W)
PREVIOUS MODE (R/W)
GENERAL PURPOSE REGISTER SET (R/W)
NOT USED (R ONLY)
SUSPENDED INFORMATION (R/W)
PROCESSOR PRIORITY LEVEL (R/W)
TRACE BIT (R/W)
NEGATIVE CONDITION CODE (R/W)
ZERO CONDITION CODE (R/W)
OVERFLOW COND:ITION CODE (R/W)
CARRY CONDITION CODE (R/W)
:rIGURE 3
PROCESSOR STATUS WORD

95

0
3

0
2

0
1

CONDITION
CODES

DESCRIPTION

41:

<15: 14>
<13:12>
<11>
<10:09>
<08>
<07:05>
<04>
<03>
<02>
<01>
<00>

0
8

ADDRESS: 17777776
0
0

96

uNOTE

Title:

DMA on The Q-bus

Originator:

* 012

Date: 06-SEP-84

Jack Toto

Page 1 of 4

This Micronote explains the various, types of DMA on
Cycle Mode, Burst Mode and Block Mode.

the

Q-bus;

Single

SINGLE CYCLE MODE:
Single cycle mode DMA like all DMA on ~he Q-bus requires that the DMA
device gain control of the bus through an arbitration cycle. During the
arbitration cycle the DMA device be!comes bus master by first asserting a
DMA request (BDMR).
When the arbiter acknowledges this request it
issues a DMA grant (BDMGO).
In the' event that there is more than one
DMA device in the backplane the grant signal is daisy chained from
device to device.
Eventually the device that issued the DMA request
will latch the grant signal and take control of the bus, and proceed
with the DMA transfer.
Once becoming bus master the device asserts BSACK and is allowed to do
one word tranfer to or from memoI'y, during which time the CPU is idle.
Certain processors such as the KCJ1.1-B have a cache memory with dual tag
store which allows it to process dSlta while DMA transfers are occurring.
Regardless of which processor type is used only one transfer is allowed
in single cycle mode.
If the device must perform additional transfers,
it must go through the bus arbitration cycle again.

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

SACK
BDAL

ADRS/DATA

ADRS/DATA
1

2

In single cycle mode, the theoretic:al transfer rate across the Q-bus is
1.66 Mbytes/sec (833Kw/sec) A dE!vice such as the DRVll-B or the newer
22-bit compattble DRV11-W can trane;fer data at a rate of 250KW/sec while
in single cycle mode.

97

uNOTE # 012
Page 2 of 4
BURST MODE:
Burst mode DMA can be performed by certain devices such as the DRV11-B.
Once the DMA controller becomes bus master (through the arbitration
routine described in the single cycle section and it has asserted BSACK,
the DMA tranfers can begin.
Each data word that is transfered is
accompanied by an address that the data word is targeted for.
In burst
mode loading an octal value into the 16 bit word count register (WCR)
allows for that number of words (64Kb max) to be transfered under one
sack.
This differs from single mode, in that the word count register
can be loaded with the same value, but each single word transfer will
require a new arbitraion cycle, i.e in order to transfer 64Kb of data it
would require 65,536 arbitration cycles.

SACK
BDAL

--~IADRS/DATA

ADRS/DATA ADRS/DATA .........••.....

(N)~I----

N :- word count;

The theoretical transfer rate across the Q-bus in burst mode remains at
1.66 Mbytes/sec, however a device such as the DRV11-B operating in burst
mode can transfer data at a rate twice that of a DRV11-B operating in
single mode,
or 500Kw/sec.
In burst mode the DMA bus master maintains
control of the bus until it has transferred all of the required data.
Burst mode has the advantage of moving large blocks of memory across the
bus with no delay. The caution here is that no other device
(including
the CPU) has access to the bus during that time. This can have severe
impact on system performance.
DMA COMPROMISE:

Since Single Cycle Mode requires a rearbitration for every data transfer
and Burst Mode can adverseley impact system performance in some cases
DIGITAL EQUIPMENT CORP. has made some compromises with certain DMA
controllers.
Most DIGITAL devices will do a limited Burst Mode
operation. Thes~controllers (for example the RXV21 and RLV12)
are

98

uNOTE # 012
Pag·e 3 of 4
~llowed

up to do four words of data tranfer.
Each word of transfer is
preceeded on the bus by an address that the data word is targeted for.
This allows data to move across the bus with a minimum of rearbitraton.
However, when a group of four t,ransfers is finished,
the DMA devices
must again go through the arbitration cycle in order to allow other
devices the opportunity to use the bus.
If no other bus requests are
pending at a higher priority, then bus mastership will be returned to
the device for the next set of data transfers.

SACK

____----Ir

BDAL

--------1' ADRS/DATA

P..DRS/DATA ARDS/DATA ADRS/DATA ....
' --1 2 3
4

BLOCK MODE:
For increased throughput, Block Mode DMA may be implemented on a device
for use with memories that support this type of transfer. Block Mode
DMA devices are only block mode when operating. They may not operate as
a Single or Burst Mode device. They may, however, appear to operate
dike a single mode device if they are only doing a single word transfer,
and they will always look like a Single Cycle Mode DMA device when used
with non-Block Mode memory.
Once a Block Mode device has arbitrated for the bus, the starting memory
address is asserted,
then data for that address, followed by data for
consecuetive addresses. By eliminating the assertion of the address for
each data word,
the transfer ratE~ is almost doubled.
The DMA device
should monitor the BDMR line.
If thE~ line is not asserted after the
seventh transfer than the device can continue. This allows a maximum of
16 data transfers for one abitration cylce.
If the BDMR line is not
monitored by the DMA device than a maximum data tranfer of 8 words is
allowed after completing one bus arbitration cycle.
Block Mode DMA
transactions can be described as two types, a DATBI (block mode data in)
and DATBO (block mode data out). Both of these cycles are explained in
depth in Micronote #002.
When reading the appropriate micronote
special attention should be paid to the use of BREF and BBS7 signals
when performi~g a DATBO.

99

uNOTI~ # 012
:~age 4 of 4

BOAL----l AORS/OATA/ ......... DEPENDS ON STATE OF BOMR L-_
(1)
* (7)
(16)

I

BDMR~---------------------*-----------------------/\/\/
Block Mode devices such as the DEQNA, RQOXl and the MSV11-P memories can
transfer data across the bus at rates that approach twice that of OMA
devices in Burst Mode. The actual rate is dependent upon the device
itself.
The technical manuals for each of these devices should be
checked for actual performance figures.

100

uNOTE

* 013

Title: Run-time System Performance Evaluation
Using MicroPower/Pascal V 1.5

Date: 09-0ct-84

Originator: Herbert Maehner

Page 1 of 5

In real-time programming, the performance of the run-time system and the
compiler together govern the overall power of the application. The
performance of the MicroPower/Pascal compiler has been extensively
discussed by R.Billig/R.Cronk [1].
The performance of the run-time executive of MicroPower/pascal is
measured in this MicroNote using different LSI-11 CPU-boards and the
KXT11-CA I/O processor.
Data was obtained using Micropower/Pascal
version 1.5.
Test Conditions
Results obtained through a lab experiment are only as precise as the
test environment and may only be referenced giving the exact test
conditions.
The goal was to measure the elapsed time of a given primitive execution
on the Pascal process level, i.e. how long it takes to call/execute a
kernel primitive from a Pascal program.
Generally, the following procedure was used to obtain the elapsed time,
where in some cases more than one output bit has been used to obtain the
desired pulse-width.
WHILE Condition - TRUE DO
BEGIN
out_port.bitO := TRUE;
{ here call/execute given primitive }
Out port.bitO :- FALSE;
END; The whole test was done in a loop as long as the condition was true.
Here, Condit~n is a boolean variable, which is set FALSE by a high
priorty process waiting on a terminal input (READLN).
The Outport.bitO is bitO of a parallel device.

101

The parallel device

was

uNOTE # 013
Pac.;re 2 of 5
either
devi~e

a DRV11 (using LSI 11/23 and LSI 11/73) or the on-board parallel
(using the FALCON plus SBC 11/21 and KXTI1-CA).

The bitO pulse is used as the input to an oscilloscope which has the
capabilities to measure and display time differences and frequencies.
The elapsed time required to execute the various primitives was
obtained.
In addition to the primitive requests some math-functions
times were obtained.
The results are shown in Table 1 at the of this
MicroNote.
Interrupt-Test Conditions
A pascal-program with an embedded interrupt service routine needs DRIVER
privileges in a mapped environment. The test program either connects to
a "normal" ISR or to a prio7 ISR.
The program executed a simple loop
like:
WHILE TRUE DO
BEGIN
Out port.Bit1 := TRUE;
Out-port.Bit1 :- FALSE;
ENDiThe Outport is the parallel device of the type mentioned above.
This is
used to monitor process execution behavior.
Testing the interrupt
response time, we used a square wave generator which triggered an
interrupt on that parallel device.
The ISR was coded as
.ENABL
. MCALL
.MCALL

GBL
MACDF$,PURE$
IMPUR$

Enable global symbols
Set-up pure/impure area

.GLOBL

lNPORT,OUTPRT

port A,B of PPl

MACDF$
PURE$

MACDF$ must be called before the
two assembly directives

. DSABL AMA
PPIINT: :
BlSB
MOVB
MOVB
BICa
RTS
RTS
TEMP:

#l,@#OUTPRT
@#INPORT,@#Temp
@#INPORT,@#Temp
#l,@#OUTPRT
PC

R4

IMPUR$
.WORD 0
.END

set bit 0 output port
dummy read
dummy read
set bit 0 output port
normal lSR return
prio 7 lSR return
reserve one word

102

1];

ISR time
measured

uNOTE # 013
Page 3 of 5
Depending upon the ISR-type either the RTS PC or the RTS R4 must be used
to exit the ISR. The first MACRO-statement within the ISR signaled bitO
of the parallel port. The resultinq interrupt dispatch time was defined
as the pulse width given by the square wave generator edge and the
signaled output port. This includes the hardware ISR dispatch time as
well.
The ISR execution time was given by the pulse width indicated
within ISR source above. Again, all pulses were measured using an
oscilloscope.
The maximum interrupt rate was determined by increasing
the square frequency (whi.ch in turn increases the outpt square wave of
the ISR) until the system lost interrupts.
Using CONNECT SEMAPHORE the interrupt performance
was
similarly
measured.
In this case only a dynamic process was waiting on the
semaphore to be signaled. The results are shown in table 2.

References
1. Rich Billig and Randy Cronk,. A System/Architecture Approach to
Microcomputer Benchmarking, DIGITAL Equipment Corporation,
Sept. 1982, EZ-12053-03/82
2. MicroPower/Pascal Newsletter, Volume 1, No.1, March 1984, p. 23,
DIGITAL Equipment Corporation, Order Number AV-B067A-TK

103

uNOTE # 013
Page 4 of 5

LSI-11/23
w/o FPU
m
u

LSI-11/23
w/ FPU
m
u

LSI-11/73
u
m

SBC
11/21+

Process
creation
deletion

3.1
2.4

5.48
4.19

3.56 5.93
2.55 4.35

1.84 2.64
1.14 1.92

3.96
2.96

2.71
2.06

Schedule +
context Switch

0.56 0.97

0.82 1.27

0.38 0.57

0.69

0.49

0.55 0.96
0.50 0.93

0.55 0.99
0.51 0.95

0.27 0.42
0.25 0.39

0.67
0.63

0.47
0.43

0.61 1.05
0.58 1.01

0.61 1.05
0.58 1.02

0.29 0.43
0.28 0.42

0.72
0.70

0.51
0.49

0.73 1.20
0.71 1.17

0.73 1.18
0.71 1.15

0.36 0.50
0.35 0.49

0.88
0.86

0.62
0.60

0.35 0.64
0.61 0.93
0.36 0.65

0.35 0.65
0.61 0.94
0.36 0.66

0.16 0.25
0.27 0.37
0.17 0.29

0.44
0.75
0.44

0.30
0.52
0.30

0.42 0.84

0.42 0.85

0.20 0.33

0.50

0.35

1.17 2.18
1.46 2.50

1.18 2.20
1.46 2.51

0.59 0.89
0.73 1.11

1.45
1.79

1.01
1.24

1.26 2.28
1.59 2.64
3.09 4.32

1.26 2.31
1.59 2.67
3.09 4.35

0.67 0.96
0.84 1.14
1.74 2.11

1.54
1.94
3.78

1.08
1.35
2.63

Operation

Ring buffer
1 cnaracter
get
put
2 characters
get
put
4 characters
get
put
Signal Semaphr
by descriptor
by name
fast named
Get status
Send + Receive
(by value)
- 1 Byte
- 34 Bytes
Send + Receive
(by reference)
- 10 Bytes
- 100 Bytes
- 500 Bytes

KXT11
-CA

I

TAN

6.84 7.74

1.64 1.68

0.35 0.36

9.00

6.24

SIN

5.13 5.82

1.75 1.78

0.33 0.34

6.80

4.69

COS

6.19 7.00

1.94 1.98

0.39 0.39

8.15

5.64

5.04 5.69

1.45 1.48

0.32 0.33

6.55

4.59

5.34 6.01

1.27 1.31

0.28 0.29

6.95

4.86

EXP

LN

-

Table 1: Micropower/Pascal V1.5 Runtime System

104

(millisE~c)

uNOTE # 013
Page 5 of 5
Notes for Table 1
o
o
o
o

u - without MMU and m - with MMU
FPU = with floating point unit (KEF11)
Send/Receive without context-switch
SBC-ll/21+ using on-board memory only

Operation

LSI-l1/23
m
u

LSI-11/73
m
u

Interrupt dispatchtime (usec)

62

91

42

ISR execution
time (usec)

20

23

Maximal interruptfrequency (kHz)

7.0

sac
11/21+

KXT11
-CA

ISR:

5.1

54
13.4

12.9 10.9

81

61

21

16

4.8

7.5

32

28

21

16

12.8

16.5

PRI07 ISR:
Interrupt dispatchtime (usec)

28.5

60

ISR execution
time (usec)

20

24

Maximal interruptfrequency (kHz)

17.8

9.3

22

38
13.4

26

16

CONNECT SEMAPHORE: (one process waiting on that semaphore)
Interrupt dispatch +
context-switch time
(msec)

0.88 1.36

0.49 0.63

1.15

0.82

Maximal interruptfrequency (kHz)

0.67 0.39

1.20 0.83

0.41

0.75

Table 2: Interrupt Performance
Note for Table 2
Additionally, the system had to service the clock interrupt
at
rate of 50 Hz without the clock driver implemented, i.e.
the interrupt dispatcher discarded the interrupt. The clock
interrupt was enabled because realistically most systems have
the clock enabled.

a

105

106

uNOTE # 014

Title:

Using Fortran Routines In A
VAXELN-Pascal Environment

Originator:

Herbert F. Maehner

This Micronote discusses the VAXELN interface to
following topics are covered are discussed:
1.

Date: 16-0ct-84
Page 1 of 4

VAX-11

Fortran.

The

The VAX-11 Procedure Calling Standard

2. Establishing a COMMON-datal area between a
and Fortran routines

VAXELN

program

VAXELN Procedure Ccllling Standard
VAXELN Pascal (EPascal) does conf:orm to the VAX Procedure Calling
Standard.
The standard allows for three methods of parameter passing :
value, reference, and descriptor, and requires that values be no longer
than a longword.
EPascal does not explicitly support descriptors as
parameters, and other languages may not treat conformant parameters as
EPascal does, but EPascal does nothing to violate the calling standard.
All routines can be described according to the conventions described in
the summary of run-time library E~ntry points [1]. There are principle
differences in passing parameters in Pascal and Fortran:
In pascal, you may pass parameters as

- values, e.g PROCEDURE pass_it (What: INTEGER);
i.e. the value of the parameter will be copied into the
procedure's stack frame with no implications for the source
variable. This is termed pass by value.
or as
- variable, e.g. PROCEDURE pass_it (VAR What: INTEGER);
i.e. the parameter will be rE~ferenced through its address.
An assignment to the parameter within the procedure will
directly~ffect the source variable.
This is termed pass by
reference.

107

uNOTE # 014
Page 2 of 4
In Fortran, you pass parameters as
- values, e.g. SUBROUTINE passit( What)
INTEGER*4 What
i.e. with no implications for the source.
It uses a common
data area to pass variables to the main program. The main
difference to Pascal is, that Fortran use~ pass by reference,
although it is actually a value.
Calling a Fortran routine with parameter passing from a
Pascal
environment, you have to declare the parameters as VAR parameters in
Pascal ( Figure 1 and Figure 2).
COMMON Data Area
As mentioned before, Fortran uses a COMMON data area to pass variables
from procedures to the main part of the program.
In VAX-11 Pascal the
[COMMON] attribute enables the linker to establish the common data
section. VAXELN- Pascal has no such attribute and wouldn't overlay data
sections for common areas. To overcome this restriction you must use
the [EXTERNAL] attribute in VAXELN-Pascal to declare the prospective
data as externally declared and use a MACRO-32 declaration to assign the
Fortran common part to the "global" data area (Figure 3).

References:
1. VMS RUN TIME LIBRARY USER'S GUIDE (Summary of Run Time
Library Entry Points)
2. VAXELN Encyclopedia, Procedures and Functions,
3. VMS MACRO Language Reference Manual

108

uNOTE # 014
Page 3 of 4

MODULE Fortran_TO_pascal;
{ This module is a simple example on, how to use Fortran
routines in VAXELN. }
CONST
Max - 50;
TYPE
Array_type - ARRAY[l .. Max] OF INTEGER;
VAR
AA: [EXTERNAL] Array_type;
PROCEDURE Valaccess (VAR What:INTEGER); EXTERNAL;
FUNCTION Double_it (VAR What: INTEGER):INTEGER; EXTERNAL;
PROGRAM FORTEST(INPUT,OUTPUT);
VAR
what,I,J,K:
INTEGER;
Twenty: [READONLY] INTEGER:-20;
BEGIN
WRITELN('Program start ');
FOR I:-1 TO Max DO AA[I] :== 0; { initialize array}
valaccess(Twenty);
call Fortran routine Valaccess }
FOR I:-21 TO Max DO
BEGIN
What :- I;
{ use Fortran Function to
AA [ I] : - Doubl e i. t (Wha t ) ;
double array value }
END;
{ formated output to screen

}

: - 1;
FOR I:-1 TO 10 DO
BEGIN
FOR J:-l TO 5 DO
BEGIN
WRITE(AA[K):4,'
');
K :- K+1
END;
WRITELN;
END;END;
END; { Bend of module Fortran_to_pascal }
K

Figure 1 : VAXELN main pl:ogram module

109

uNOTE i 014
Page 4 of 4

C

C Fortran SUBROUTINE TO SET THE INDEXED ARRAY VALUE
C THE MAXIMAL INDEX IS PASSED AS A PARAMETER
C

SUBROUTINE VALACCESS(WHAT)
IMPLICIT INTEGER*4 (A-Z)
C

COMMON

/XX$AA/ AA(SO)

C
C

10

DO 10 I-1,What
AA(I) - What-I
CONTINUE

C

RETURN
C

END
C
C
C

C INTEGER FUNCTION TO DOUBLE THE VALUE PASSED AS A PARAMETER
C

INTEGER FUNCTION DOUBLE IT(WHAT)
IMPLICIT INTEGER*4 (A-Z)
DOUBLE IT - WHAT + WHAT
RETURN
C

END
Figure 2: External Fortran routines used

; definition file for common array AA to be accessed by Fortran
subroutine VALACCESS
the P-section name XX$AA must be the same as the one used in the
Fortran routine

AA::

.TITLE COMDAT
.PSECT XX$AA,LONG,PIC,USR,OVR,REL,GBL,SHR,NOEXE,RD,WRT,NOVEC
• LONG 50
.END

Figure 3: MACRO definition module to define the common array

110

uNOTE # 015

Title: Q-Bus Hardware Bootstraps

Date: I6-0ct-84

Originator: Dave Smith

Page 1 of 4

The purpose of this micronote is to provide a comprehensive
Q-Bus hardware bootstraps and the devices they support.

list

of

The tables on the next two pages are organized as follows.
There is a
row for each of the currently supported bootable devices. There is a
column for each hardware bootstrap. The columns span both pages.
In
the heading for each bootstrap w'ill be found any ordering information
and/or references to notes which follow the tables.
When two order
numbers are given, both must be ordered since the boot code is divided
into high byte and low byte ROMs.
The bootstrap devices listed are:

BOOT
DEVICE

DESCRIPTION

BDV11

Bus Terminator, Bootstrap & Diagnostic ROM
used primarily with older LSI-1I configurations

MXV11-A2

Bootstrap ROM set designed for MXV11-A board

MXVI1-B2

Bootstrap ROM set designed for MXV11-BF & MRV1I-D

KDF11-BA

Bootstrap ROM on board PDP-11/23+ systems

KDF11-BE

Bootstrap ROM on board MicroPDP-11/23 systems

KDF11-BF

New Bootstrap ROM for PDP-I1/23+ and MicroPDP-II/23

KXT11-A2

Bootstrap ROM on board Falcon

KXTI1-A5

Bootstrap ROM on board Falcon-Plus

KDJll-S

Bootstrap ROM on board MicroPDP-11/73 CPU

uVAX I

Bootstrap ROM on board MicroVAX I CPU

111

uNOTE it 015
Page 2 of 4

BOOTSTRAP DEVICE SUPPORT
DEVICE

BDV11

MXV11-A2

Rev A

MXV11-B2

KDF11-BA

KDF11-BE

see Note 2

part no
23-339E2
23-340E2

part no.
23-1s7E4
23-1s8E4

see Note 1
RX01

X

X

X

X

X

RX02

X

X

X

X

X

TUs8

see Note 1

X

X

X

X

X

X

X

X

RL01/2

X

MRV11-C

X

X

MRV11-D
RKOs

X

X

RXsO

X

X

RDs1

X

X

RDs2
TSVOs

X

TK2s
RC2s
DEONA
DLV11-E

X

X

X

DLV11-F

X

X

X

DUVl1

X

X

X

DPV11

X

112

uNOTE # 015
page 3 of 4

BOOTSTRAP DEVICE SUPPORT
DEVICE

KDF11-BF

KXT11-A2

KXT11-AS

KDJ11-B

uVAX I

available available
on CPU
on CPU
board only board only

part no
23-183E4
23-184E4
RX01

X

X

X

X

Rx02

X

X

X

X

TUSS

X

X

X

X

RL01/2

X

X

X

MRV11-C
X

MRV11-D
RKOS

X

RXSO

X

X

X

X

RDS1

X

X

X

X

RDS2

X

X

X

TSVOS

X

TK2S

X

RC2S

X

DEQNA

X

X
See note 3 See note 3
X

DLV11-E

X

DLV11-F

X

DUV11

X

DPV11

113

X

uNOTE # 015
page 4 of 4

NOTES:
(1)

The information in the BDVII column refers to the Rev A
chips. There were also Rev 0 chips and an additional TU58
chip that can be added to the board:
Rev 0:
Part numbers 23-010E2, 23-011E2
Does NOT support:
DLVII-F, RX02 as bootable devices
TU58 ROM:
Part number 23-126F3
Inserted into socket XE40. Other ROM must be
Rev A. Allows use of the TU58 DEC tape II as
a bootable device.

(2)

The MXVII-B2 Bootstrap ROMs can be used with the MXV11-BF
multifunction module as well as the MRV11-D ROM module.
It will not work with the MXVI1-A module.

(3)

The RC25 adapter board must be configured at the the DEC
standard base address for the first MSCP controller
(772150). Other MSCP controllers may also reside but
may not be booted.

114

uNOTE # 016

Date: 16-0CT-84

KXT11-CA Software Development Tools

Title:

Page 1 of 8

Originator: Scott Tincher

The KXT11-CA is a single board computer (SSC) which executes the PDP-11
instruction set.
It may be utilized as a stand-alone SSC or interfaced
to the Q-bus as a peripheral processor or as an intelligent I/O
processor
(lOP). This article will describe the software tools
available to develop applications in either the stand-alone mode or the
lOP mode.
The KXT11-CA features:
o

T11 Microprocessor
instruction set

o

32K bytes of on-board static RAM

o

Two 28-pin sockets for up to 16K
additional RAM or 32K bytes of ROM

o

Three serial line units:
o
o
o

which

implements the PDP-11

bytes

of

One asynchronous DL compatible line (RS232)
One synch/asynch line with modem control
(RS449)
One synch/asynch with data and timing only
(RS449)
.

o

20 programmable parallel I/O lines

o

Three 16-bit programmable interval timers

o

2-channel DMA controller

o

Q-bus interface

o

Four diagnostic LEDs

The Q-bus interface of the KXTI1-CA allows up to 14 KXT11-CAs to be
added to a traditional Q-bus system. AS a slave device the KXT11-CA
offloads the arbiter CPU's processing activities by providing real-time
I/O data buffering, preprocessing, and high speed communications.

115

uNOTE i 016
Page 2. of 8
ThE! KXT11-CA is especially suited for applications with critical
interrupt latency requirements or applications that must service a high
frequency of interrupts.
The KXT11-CA may also be used as a
computational engine in applications where it is possible to partition
the application to run in parallel.
The

software
development environment for systems which utilize
is slightly different from that of the traditional Q-bus
The system programmer must develop application programs for
each KXT11-CA in the system in addition to the application code which
runs on the arbiter cpu.
Different software application tools are
available for the arbiter and "onboard" environments.
(When used in
stand-alone mode only the onboard environment need be considered.)
KX1~11-CAs
sysltem~

THE ARBITER ENVIRONMENT
The- arbiter
systems:

system

may

run

o

MicroPower/Pascal

o

RT-11

o

RSX-11M

o

RSX-11M-PLUS

under

any

of

the following operating

Each of these operating systems offers a device handler for the
two-port RAM of the KXT11-CA as well as a utility for loading
application
programs
across
the Q-bus into the KXT11-CA.
A
MicroPower/Pascal application may be coded in Pascal and MACRO-ll.
RT-ll and RSX-ll applications will be coded in MACRO-ll or a high level
language,
such as FORTRAN, which is capable of issuing programmed
requests {RT-ll) or QIO directives (RSX-ll).
USING A MICROPOWER/PASCAL ARBITER SYSTEM
If the arbiter system controlling the application is running in a
MicroPower/pascal environment there are KXTll-CA specific functions
available to aid in program development.
The first component is the KX
device handler.
This handler provides the arbiter-side interface to
the two-port RAM of the KXTll-CA.
The KX handler supports up to 14
KXTll-CAs on the Q-bus.
Two functions are supplied which simplify the
interface between the application program and the KX handler.
These
functions are:
o

KX write data:
Transfer data from an arbiter
butfer
to a KXTll-CA process and return a
completion-status value.

116

uNOTE # 016
page 3 of 8
o

KX read data:
Transfer
proc~ss
to an arbiter
completion-status value.

data from a KXTII-CA
buffer and return a

Micropower/pascal
also
provides
a
function which transfers a
MicroPower/Pascal
.MIM file from the arbiter to a KXT11-CA.
This
function,
KXT LOAD, reads a .MIM file from the arbiter and initiates a
DMA transfer using the DTC of the KXT11-CA to transfer the file to the
KXT11-CA's local memory.
This procedure may be called at any time by
the arbiter's application program - not necessarily at system startup
time.
MicroPower/pascal also supplies the symbolic debugger PASDBG.
supplies the following features:
o

A set of debugger commands and qualifiers that
allow for control of an executing program.

o

Access to the symbol table generated by the
Pascal
compiler,
providing symbolic (Pascal
language) referencing and variable access.

o

Access
to
structures.

o

Control of an application system not configured
for terminal I/O.

o

A method
error.

o

A method for loading a program on the application
system
while
PASDBG is running on a host
computer.

process

for

user

control

control

variables

PASDBG

and

after an execution

USING AN RT-11 OR RSX-11 ARBITER SYSTEM
If the arbiter system controlling the application is running in a RT-11
or RSX-11 environment there are tool kits available to aid in program
development.
They are the KXTII-C/RT-11 Peripheral Processor Tool Kit
(QJV51) and the KXT11-C/RSX-11 Peripheral Processor Tool Kit (QJV52).
There are two major components in each of these tool kits.
the KX device handler and the KUI utility program.

They are

The KX device handler manipulates the two-port RAM of the KXT11-CA so
that it appears to be a standard Q-bus I/O device. The KUI utility
program allows programs to be load~ed into a peripheral processor from
the arbiter, performs debugging operations, starts execution of KXT11-C
programs, and initiates KXT11-CA self tests.

117

UNOTE # 016
Page 4 of 8

The KX handler supplied with the RT-11 tool kit supports up to four
KXT11-CAs where each KXT11-CA appears as two logical units.
More than
four KXT11-CAs may be supported by editing, renaming, and rf~building
the KX handler.
The following
handler:

RT-11

programmed

requests

are

supported

o

.OPEN
associates a user-specified
number
with
a logical unit number
KXT11-CA.

o

.CLOSE
frees a previously opened channel for
use with another device or file.

o

. READ
processor
.READC)

o

.WRITE - transfers data from an arbiter buffer to
a
peripheral
processor.
(.WRITE,
.WRITEW,
. WRITEC) .

by

the KX

channel
of the

transfers
data from a peripheral
to an arbiter buffer.
(.READ, .READW,

The KX handler supplied with the RSX-11 tool kit supports up to 14
KXT11-CAs.
The KX handler assigns a unit number for each data channel
in each KXT11-CA two-port RAM. This handler supplies the following
RSX-11 I/O requests:
o

IO.RVB
Read a virtual block of data from the
device unit unit specified in the macro call.

o

IO.WVB
write a virtual
physical device unit.

o

IO.ATT - Attach a physical device to the control
of the task which issued the request.

o

IO.DET
Detach a physical device from the
control of the task which issued the request.

block

of data to a

Included in the RT-11 and RSX-11 tool kits is the KUI (KXT11-CA User
Interface) utility program.
The KUI program has several commands which
supply the following functions:
o

@ - Process commands from the specified indirect
command file.

o

CLOSE
command.

Close

the

file

118

specified

in the LOG

uNOTE # 016
Page 5 of 8
start

a

program

on

the

specified

o

EXECUTE
KXT11-CA.

o

EXIT
Exit the
operating system.

o

LOAD
Load a program from the arbiter's mass
storage to arbiter memory. Then perform a DMA
operation to transfer the image to the specified
peripheral prQcessor's memory. KUI under RT-11
supports the transfer of .SAV, .LDA, and .MIM
files.
KUI under RSX-11 supports the transfer of
.TSK and .MIM files.

o

LOG
Record all commands, status information,
and messages during this terminal session in the
specified file.
The CLOSE command terminates the
logging session.

o

ODT
Executes the octal debugging tool (ODT).
This tool allows the arbiter system to examine
and modify the contents of registers and memory
local to a KXT11-CA.
ODT may also be used to
start or halt a program.

o

REINIT
Reinitialize the specified peripheral
processor and reboot it's application.

o

RESUME
Causes a
continue execution.

o

SELFTEST
Causes one or more
diagnostic programs to execute.

o

SET
Specifies a peripheral processor as the
target for subsequent commands.

o

SHOW
Displays information about the state of
the peripheral processor.

o

SUSPEND
Used in an indirect command file to
halt execution of the file.
The RESUME command
can return control to the command file.

o

TRAP
performs a trap emulation so that a trap
handling routine can be tested.

KUI utility and return to the

SUSPENDed

119

command
of

file to
several

uNOTft~

# 016
Page 6 of 8

THE ONBOARD PROGRAMMING ENVIRONMENT
The KXTll-CA may be programmed in ei ther MACRO-l1 or MicroPOWEtr/Pascal.
MicroPower/Pascal provides the ability to program the onboard devices
in a high-level language, pascal.
In particular Micropower/pascal
provides the following device handlers:
o

DO:
This handler supports the TU58 tape drive.
It allows the TU58 to be interfaced to any of the
asynchronous I/O channels.

o

KK:
This handler manipulates the two-port RAM
from the KXTll-CA side in the KX/KK protocol.
This protocol allows the KK handler to pass
variable length messages to the arbiter system by
emulating a traditional Q-bus slave device. Two
functions
are
supplied
which simplify the
interface between the user's application code
and the KK handler. These functions are:

o

o

0

KK read data: transfer data from the arbiter
return
to
a
KXTll-CA
buffer
and
a
completion-status value.

0

KK write data: transfer data from a KXTll-CA
burfer
to
return a
the
arbiter
and
completion-status value.

QD:
This handler supports the two-channel DMA
transfer
controller (DTC).
The QD handler
enables the DTC to move data from source to
destination without the aid of the cpu. One
location, source or destination, must be local to
the KXTll-CA. The QD handler may be used for the
following functions:
0

Transfer data to and from Q-bus memory.

0

Transfer data to and from local memory.

0

Search for data.

0

Transfer to and from local I/O devices.

0

Access the Q-bus I/O page.

0

Assure access to a DMA Channel.

XL:
Supports asynchronous communications on the
three serial ports of the KXT11-CA. The first
port is a standard DL device. The second port is
channel A of the multiprotocol chip.
This

120

*

uNOTE
016
Page 7 of 8
channel is supported \{ith full modem controls.
The third port is channel B of the multiprotocol
chip.
This channel is supported as though it
were a standard OL devicE~.
All three channels
may be operated simultaneously.
o

XS:
Supports synchronous operation of channel A
of the multiprotocol chip. The handler provides
the
following
bit-()riented
communication
procedures:
o

Synchronization

(Flag detection)

o

Transparency

o

Invalid frame detection

o

Frame abortion detection

o

Frame
check
checking/calculation

(Bit stuffing)

sequence

(rcs)

The

handler can be used by user-written software as
component in performing bit-oriented protocols
such as X.25, HOLC, SOLC, and others.

a

o

YK: Supports the parallel I/O port and the three
counter-timers.
The
handler provides the
functions of read, write, pattern recognition,
OMA
read,
OMA
write,
counter-timer
set,
counter-timer
read, and counter-timer clear.
Typical parallel port operations are:
o

Transferring a series of bytes or words
through a port with handshake protocol.

o

Setting or reading the bits of external state
lines.

o

Generating a time base to software.

o

Generating a waveform for external output.

o

Counting pulses from an external input.

These Micropower/Pascal device handlers do not support all of the
functions of ehe onboard devices of the KXT11-CA. For this reason, or
because of preference, the application code for the KXT11-CA may also
be written in MACRO-11.

121

uNOTE # 016
:f?age 8 of 8
RELATED DOCUMENTS
For further
information pertaining to the KXT11-CA and it's software
dE!velopment tools please reference the following materials:
KXT11-CA Single-Board Computer User's Guide

EK-KXTCA-UG

KXT11-C Peripheral Processor Software User's Guide

AA-Y61SA-TK

122

uNOTE # 017

Title: LSI 11/23 ECO History

Date: 19-NOV-84

Originator: Bob Hessinger

Page 1 of 8

This micronote documents the ECO and etch revision history of the
KOF11-A (LSI 11/23) module. A quick verify has been included so that
the status of a module may be determined by a visual check.
For the M8186, the revision identifier is a two field alphanumeric
designation stamped on the reverse side of the module handle. The first
field indicates the etch revision.
The second field indicates the'
modifications to this etch.
Hardware revision notation :
A 0

Identifies etch level

Identifies modifications

The M8186 began as hardware revision "AO", as shown above.
That is,
etch revision "A" with no modifications or rework. As ECO's were
released calling for rework, the hardware revision level was updated to
"A1", then "A2", etc. Periodically new etch revisions were released,
incorporating previous modifications.
When these occurred the etch
revision field was updated from "A" to "C", and later from "e" to "0".
For the M8186, no etch revision "B" was released.

123

uNOTE # 017
Page 2 of S
The hardware revision history of the MS1S6 is shown below:
Release

AO

Rework
ECO #1

A1

Rework
ECO #2

A2

NOTE: All modules
shipped are at
rev A3 or greater

Rework
ECO #3

A3

NOTE : New etch
rev C created. No
rev B boards were
built

Relayout
ECO #4

I

I
I

co
A4

Rework
ECO #5

I
I
A6
I
A6
I
.A7
I
.AS
AS

Rework
ECO #6
Rework
ECO #7
Rework
ECO #S
Rework
ECO #9
Rework and
Relayout
ECO #10

AS

Rework
ECO #11

124

NOTE: Rev C layout
incorporates changes
for ECO #5

CO

I
I
C2
I
C2
I
C3
I
C4
C1

C4

NOTE: This was a
documentation change
only

-

DO

DO

NOTE: This was a
documentation
change only

uNOTE # 017
Page 3 of 8
,Jumper Functions on Etch Revision "A", "C" and "D" Modules
Jumper

Description

Function

Shipped

W1

Master Clock

In - Enabled, do not remove

In

W2,W3

DEC Reserved

Factory configured, do not
change (see note 1 )

W2-0ut
W3-In

W4

BEVENT

Out - Enabled

In

W5,W6

Power-up Mode

Mode
0 - PC-24,PS-26
1 - Console ODT
2 - Bootstrap
3 - Reserved

W5
Out
In
Out
In

W6
Out
Out
In
In

Mode 1
W5-In
W6-0ut

W7

Halt/Trap
Option

In - Trap to 10 on Halt
Out - Enter Console ODT
on Halt

Out

W8

Bootstrap
Address

In - Boot to 17773000
Out - Bootstrap address
specified by jumpers W9-W15

In

W9-W1S correspond to address
bits 9-15 respectively.
In - logic 1, Out - logic 0

In

Factory configured, do not
change

In

Factory configured, do not
change

In

Use r Bo,otstrap
Address

W9-W15

W16,W17

DEC Reserved
Etch A only

W18
W19

DEC Reserved
wake-up Circuit

Out - enabled
This jumper is a red wire
across diode D1

In

Out - enabled
This jumper is a red wire
across diode D1

In

Etch C and D only
w18

note 1

Wake-up Circuit

W3 on etch A modules consists of a jumper from E2 pin 5 to
E2 pin 15.

125

uNOTE # 017
Page 4 of 8

W18
01

(W19 - see text)

W17 W1
W16
i

W15
W14
W13
W12
W11
W10
W9
W8
W6
W7
w6
w5

I

I
W2 -

W4 -

I
KOF11-A REV A Jumper Layout

126

uNOTE # 017
Page 5 of 8

01(W18 - see text)

W1-

W15
W14
W13
W12
W11
W10
W9
W8
W6
W7

W4 -

W3

w6

W5

W16
W17

KOF11-A REV C Jumper Layout

127

W2

uNOTE # 017
Page 6 of 8

W18 ·1

Wl - -

W15
W14
W13
W12
Wll

W10
w9
w8
w6
W7
w6

W4 -

wS

W3
W2

W16
W17

KDF11-A REV D Jumper Layout

128

uNOTE # 017
page 7 of 8
The following table details the ECOI'S issued since the M8186 began to
ship to the field.
These ECO's are coded "M8186-MLOXX", where "XX" is
the ECO number shown below :
ECO #
04

Problem

Quick Verify

Too many wires and etch cuts, new etch
needed. Note that the jumper locations

Module handle will be
stamped "Cn" where n

change for etch Revision C.
Note also that etch A boards bring only
18 bits of addressing from the MMU to the
Q-BUS, while etch C boards bring all 22
bits of addressing from the MMU to the
Q-BUS.

indicates
modifications.

05

I/O page addressing scheme differs from
LSI-11/2 processor.

Check for etch cut
to E7 pins 16 and 18
(rev A boards only)

06

The internal wake-up circuit defeats the
power sequencing provided by standard
DEC power supplies.

Red jumper wire is
installed in parallel
with 01.

07

CTL/DAT hybrid (57-00000-00) and MMU IC
(21-15542-00) were not compatible with
KEFI1-AA floating point option. The FP
registers in the MMU were inaccessible,
and the CTL/DAT data path caused
intermittent errors in floating point
instructions.

CTL/DAT should be
57-00000-01 or higher
and,MMU should be
21-15542-01 or higher
for floating point
compatibility.
Coordinate with ECO
M8186-ML009

08

MMU (21-15542-01) was in.cluded as part of
the M8186 module. This documentation
change removes the MMU and makes it an
option which is ordered separately.

Some modules mayor
not have MMUs,
depending on the
options ordered.

129

uNOTE # 017
Page 8 lof 8
ECO :i

09

Problem

Quick Verify

1) No jumper table in print set (doc only)
2) Crystal oscillator may short to adjacent
components

3) Possibility of worst case MMU timing
violations. Chang~ configuration
of W2 and W3 to adjust timing. This
ECO must be installed :
A) When ECO m8186-ML007 is installed
B) When the KEF11 or FPF11 is installed
C) When one of the F-11 chips is replaced
D) Whenever unexplained system crashes
occur

1) Table added
2) Manufacturing
includes nylon
spacer
3) Module will have
W2 removed and W3
in. On rev A
modules w3 is a
wire from E2 pin
5 to E2' pin 15.

10

1) Heavily loaded systems lock up during
worst case timing between DMA and
interrupt arbitration. Symptoms
usually occur with DMA options not
manufactured by DEC.
2) Too many wires and etch cuts, new etch
needed. Note W18 now uses jumper posts.

1) Rev A and Rev C
modules will have
wires on E2 pins
2 and 4.
Rework
included in Rev D.
2) Module handle will
be stamped "Dn"
where n indicates
modifications.

11

Documentation updated.

Documentation only.

130

uNOTE

Title:

programming the KXT11-CA DMA controller

Originator: Scott Tincher

41:

018

Date: 28-DEC-84
Page 1 of 24

The KXT11-CA intelligent
I/O
processor
contains
several
user
pr'ogrammable devices. One of these devices is a DMA transfer controller
(DTC). This article will describe the features of the DTC and provide
some programming examples.
This article is intended for use by
individuals interested in programming the DTC using MACRO-11.
DIGITAL
supplies
a
DTC
device
driver
for
those
programmers
using
MicroPower/pascal. A working knowledge of MACRO-11 and of the KXT11-CA
is assumed.
FEATURES/CAPABILITIES
The DTC is addressable by the local T-11 microprocessor as an I/O
device.
It is capable of performing DMA transfers between any of the
following addresses:
1)

A 16-bit local address to a 16-bit local address

2)

A 16-bit local address to a 22-bit global address

3)

A 22-bit global address to a 16-bit local address

4)

A 22-bit global address to a 22-bit global address

5)

To/From channel A of the multiprotocol SLU

6)

To/From the PIO chip

Word, high byte, and low byte transfers are supported
word transfers are supported across the Q-bus.

locally.

Only

The operations of the DTC are controlled by several internal registers.
It was designed with the capabilty of loading these registers directly
from memory thereby minimizing the amount of processor intervention
necessary to perform a DMA transaction. The area of memory where the
parameters for the DTC are stored is referred to as the chain table.
The local microprocessor need only load the address of the chain table
into the DTC a-nd give a "start" command to initiate a DMA transfer.

131

uNOTE # 018
Page 2 of 24
transactions may be initiated locally by the T11 or by the arbiter
If the transfer is initiated by the arbiter the command words and
transfer parameters are placed in the command registers of the two-port
RA~~
file.
The local CPU will then initiate the DMA transaction using
the parameters supplied by the arbiter.

Dru~

cpu.

DTC consists of two identical channels.
DMA transfers may be
interleaved between these two channels or interleaved between the DTC
and the T-11. It is also possible to select a "hog mode" that allows
thE! DMA transfer to run to completion without interruption.
ThE~

The DTC supports three types of operations:
Transfer, Search, and
Transfer-and-Search. As the name implies, Transfer operations move data
from a source to a destination. Search operations read data from a
source and compare the data to the pattern register. A mask register
allows the user to declare "don't care" bits.
The Transfer-and-Search
operation combines the features of the Transfer and Search functions.
In this type of operation data is transferred between a source and
destination until the data transferred meets the match condition
specified in the Channel Mode register.
ThE~ DTC is capable
of performing multiple DMA transactions without
processor
intervention.
This can be accomplished in two ways:
base-to-current reloading or chaining. Base-to-current reloading allows
thE~
DTC to reload a portion of its registers before initiating a DMA
transfer. The reload operation occurs between internal registers so
there are no memory access related delays. This type of operation is
only practical in applications where data is continuously transferred
between the same addresses.
Chaining allows all of the applicable
registers of the DTC to be reloaded from a new chain table.
Therefore
this is a slower but more flexible alternative.

Upc)n completion of a DMA transfer the DTC may perform any combi.nation of
thE!
following
options:
Interrupt the local processor, perform
base-to-current reloading, or perform a chain reload.
It may also
choose to take no action.

DTC REGISTERS
Among the internal registers of the DTC are two chip-level registers,
thE! Master Mode register and the Command register. These registers
control both channels of the DTC. In addition, each channel of the DTC
is controlled by several channel-level registers.
For the sake of
completeness a brief description of these registers will be included
here.
For a detailed description refer to the KXTII-CA Single Board
computer User's Guide (EK-KXTCA-UG-OOl).

132

*

uNOTE
018
Page 3 of 24
CHIP-LEVEL REGISTERS
Master Mode Register
The Master Mode register controls the chip-level interfaces.
to:
-

Enable/disable
Select DTC/CPU
Enable/disable
Enable/disable
Enable/disable

It is used

the DTC
interleaving
asynch operation
countet/timer interrupt request
interrupt save vector

Command Register
The command register is used to issue commands to the DTC channels
as: Reset, Start Chain, etc.

such

CHANNEL-LEVEL REGISTERS
(Each of the following registers is present in each channel of the DTC)
Current Address Registers A and B (CARA, CARB)
CARA and CARB consist of two words, the segment/tag and the offset.
segment/tag is used to indicate:

The

- Address bits <21:16> of the source (or destination)
- If the source (or destination) resides on the a-bus
- Whether the source (or destination) address should be
incremented, decremented, or held constant
- Whether wait states should be included
The offset is used to indicate:
- Address bits <15:00>
Base Address Registers A and B (BA.RA, BARB)
BARA and BARB are identical to CA~A and CARB. They are used to reload
CARA and CARS if base-to-current reloading is selected after a DMA
operation has terminated.

13:3

uNOTE # 018
Page 4 of 24
Current Operation Count Register (COPC)
This 16-bit register is used to specify the number of words (or bytes)
to be transferred during a DMA operation. The maximum word count is
obtained by programming this register with a zero.
Base Operation Count Register (SOPC)
This register is identical to the COPC register. It is used to
the COPC register when base-to-current reloading is selected.

reload

Pattern and Mask Registers
The Pattern and Mask
registers
are
used
during
Search
and
Transfer-and-Search operations.
The contents of the Pattern register
are compared to the read data to generate a "match" condition. The Mask
register is used to generate "don't care" bits. Setting a bit to '1' in
thE! Mask register specifies that the bit always matches.
Status Register
ThE! status register is a 16-bit read-only register which returns the
status of the following fields: Interrupts status, DTC status, Hardware
interface status, and Completion status.
Interrupt vector and Interrupt Save Registers
The Interrupt vector register contains the vector that is output during
an interrupt acknowledge cycle. When an interrupt occurs the contents
of the Interrupt vector register and a part of the Status register are
stored in the Interrupt Save register. This allows a new vector to be
loaded during chaining so that a new DMA operation can be performed
before an interrupt acknowledge cycle occurs.
Channel Mode Register
ThE! Channel Mode register consists of two words, channel mode
channel mode low. Channel mode low is used to indicate:

high

and

- The operation type (transfer, search,
transfer-and-search,bytes,words)
- Whether CARA (or CARS) defines the source (or destination)
- Transfer type (single, hog mode, interleaved)

134

uNOTE # 018
Page 5 of 24
- Completion options (interrupt CPU, base-to-current reload,
chain reload)
Channel mode high is used to:
- indicate match conditions
- mask the hardware requests for DMA operations
- cause the channel to request the bus for a DMA operation
Chain Address Register
The chain address register consists of two words,
the segment/tag and
the offset.
This register is used to point to the reload word, the
first word in a chain table.
The sE~gment/tag is used to indicate:
whether the reload word resides in Q-bus memory
Whether the reload word resides in the Q-bus I/O page
- Address bits <21:16>
The offset is used to indicate:
- Address bits <15:00>

PROGRAMMING THE DTC
programming the DTC consists of three phases: Chip Initialization, Data
Transfer
(or Search), and Termination.
This section will provide a
general description of these phases.
CHIP INITIALIZATION
The Reset instruction is used to place the DTC in a known state.
A
reset will clear the CIE, IP, SIP and WFB bits and set the CA and NAC
bits in the Channel Status registers.
The Master Mode register will
also be cleared.
Before a DMA operation is initiated the local CPU
loads the Master Mode register and the Chain Address register of the
appropriate channel of the DTC. The DTC fetchs any other parameters
that are necessary from a table located in system memory referred to as
the chain t~ble.
This minimizes the amount of CPU intervention
necessary to perform a DMA operation. ·The relationship of the Chain
Address register to the chain table is shown in Figure 1.

135

uNOTE # 018
page 6 of 24
System
Memory
DTC
Channel 0/1

,....------>

Reload Word
DTC
Register
Data

Chain
Address
Reg.

-

- - - - - - - - New Chain Address

Reload Word

~>

DTC
Register
Data

- Figure 1 The first word in the chain table is the reload word. The reload word
is used to specify which registers are to be loaded for the pending DMA
operation. Bits <9:0> of the reload word correspond to the re9isters of
the DTC as shown in figure 2. Bits <15:10> are not used.
Reload Word

I

x

x

Ix Ix Ix Ix I

9

8

7

6

I

5

4

3

Current ARA
I
Current ARB
Current Op-Count - - - - - - - - - - - - - - '
Base ARA ---------------------------~.
Base ARB
Base Op-Count
Pattern and Mask
Interrupt Vector
Channel Mode -------------------------------------------~
Chain Address
Figure 2 -

136

uNOTE i 018
page 7 of 24
Therefore if a bit in the reload word is set then the corresponding
register is to be reloaded from the chain table. Since all of the
registers are not applicable to each DMA operation the chain table may
be of variable length. (i.e. The pattern and mask registers would not
be used in DMA operations that do not search the data.) It is NOT
correct to select a register in the reload word and subsequently load
that register with a dummy argument such as zero.
The following are
examples of the relationship between th~ reload word and the chain
table.
8

9

x

Ix IxIxIxIxI1 I1

7
1
Ii

Current ARA

6

4

5

3

1

2

0

I0 I0 I0 I0 I0 I1 I0

Segment/Tag

Current ARA
Current ARB

Offset
Segment/Tag

Current ARB

Offset

Current Op-Count
Channel Mode High
Channel Mode Low

9

7

8

x I x I xl x J x 1 x 1 1 l

0

1

Current ARA
Current ARA

6

1

5

I0 I0 I0

Segment/Tag
Offset

Current Op-Count
Pattern Register
Mask Register
Channel Mode High
Channel Mode Low
Chain Address Segment/Ta9
Chain Address Offset

137

4

3

2

1

0

1 1

1 0

1 1

I 1

uNOTE # 018
Page 8 of 24
The DTC has been properly initialized once the chain table(s) have been
created and the Master Mode register and Chain Address Register for the
selected channel have been loaded.
DATA TRANSFER
The DTC may perform a DMA operation once it has been properly
initialized.
A DMA operation may be initiated in one of four ways: by
so1:tware request, by hardware request, by loading a set software request
bit: in the Channel Mode register during chaining, or as the result of a
command from the arbiter.
Software Request: The local CPU may initiate a DMA operation by writing
a 'software request' command followed by a 'start chain' command to the
Command register. The 'software request' command sets the software
request bit in the channel's Mode register. If either the SIP (second
interrupt pending) bit or the NAC (no auto-reload or chain) bit is set
in the channel's status register the DMA operation will not begin. The
SIP bit will be cleared when the channel receives an interrupt
acknowledge.
The NAC bit will be cleared when the channel receives a
'start chain' command. The 'start chain' command initiates the DMA
operation after the registers of the selected channel are loaded from
the chain table. The 'start chain' command is ignored if the SIP bit or
the CA (Chain Abort) bit are set in the channel's status register. The
SIP bit was described above. The CA bit is cleared when the channel's
chain address register is reloaded.
Hardware Request: DMA operations may be started by applying a 'low' on
the channel's DREQ input. No details about this type of request will be
provided since they fall beyond the scope of this note.
Starting After Chaining: If the software request bit of the channel's
Mode register is loaded during chaining the channel will perform the DMA
operation at the end of chaining.
Arbiter Request: The arbiter may interrupt the local CPU to request a
DMA operation.
This is accomplished by passing parameters to load the
chain address register of channel 0 via the two-port RAM.
The arbiter
loads register 2 of the TPR with the offset of the chain address
register and register 3 of the TPR with the segment/tag of the chain
address register.
The DMA operation is then initiated by setting the
DMA Loa d bit (b i t 1) in the TPR comma nd reg i s t e r ( reg i s t e r 0 ) .,
Err 0 r
conditions will be returned in TPR register 1.
Information in tAe channel's Mode register determines what type of DMA
operation will be performed. The Channel Mode register consists of two
\iords, Channel Mode High and Channel Mode Low.
Bits <3:0> of the Channel Mode Low register select the type of DMA
operation. These bits determine whether the data should be transferred,

138

*

uNOTE
018
Page 9 of 24
searched, or transferred-and-searched. Bit 4 is the flip bit.
It is
used to determine which set of current address registers (CARA, CARB)
points to the source.
Bits <6:5> determine the transfer type. The types of DTC transfers are:
single transfer, demand dedicated with bus hold, demand dedicated with
bus release, and channel-to-channel demand interleave. Single transfer
is used with devices which transfer data at irregular intervals. A
single DMA transaction will occur e.ach time a 'software request' command
is issued or the DREQ input is asserted. Demand dedicated with bus hold
is a software hog mode. This mode allows the DMA transaction to run to
completion as long as there is a valid op count and the DREQ input is
asserted. If the DREQ input is not asserted no DMA operations will
occur but the channel will retain bus control. Demand dedicated with
bus release is similar to demand dedicated with bus hold in that a DMA
transaction is allowed to run to completion if DREQ is asserted. If
DREQ is not asserted the DTC must rlelease the bus thus allowing other
devices
to
obtain
the
bus.
The
operation
performed by a
channel-to-channel demand interleavle request depends on the state of bit
2 in the Master Mode register. If MM bit 2 is clear then control may be
passed between each channel of the lDTC without the need to release the
bus.
If MM bit 2 is set then the DTC must share the bus with the local
processor. The DTC will release the bus and then re-request it after
every DMA iteration.
Bits <1:0> of the Channel Mode High register are used to determine
type of match control in Search and Transfer-and-Search. operations.
DTC is capable of generating a termination condition based on
Match', 'Word Match', and 'Byte Match'.

the
The
'No

Bit <4> of the Channel Mode High re9ister causes the channel to request
the bus and perform transfers l~hen it is set by a 'Software Request
Command' or a chain reload.
TERMINATION OPTIONS
Bits <15:7> of the Channel Mode Low register control the termination
options. A DTC operbtion may be terminated in a number of ways. If the
Current Operation Count Register gOles to zero then a Terminal Count (TC)
termination is generated. External logic may assert the End Of Process
(EOP) input of the DTC to generate an EOP termination at any time.
In
addition, during a Search or Transfer-and-Search operation a match
condition may occur which generates a MC termination. Bits <15:7> allow
the DTC to perform a chain reload, a base-to-current reload, or to
interrupt the local processor if a Irc, EOP, or MC termination condition
is encountered.
If bits <15:7> are cleared then no special action is
initiated whe& a TC, EOP, or MC condition is encountered.

139

uNOTEI: 018
Page 10 of 24
EXl\MPLES
ThE~ following example programs were developed
on a PDP-11/23+ system
with 256KB of memory using the RT-11 (version 5.1) operating system with
These examples
the KXT11-C Peripheral Processor Software Toolkit.
assume the programmer is familiar with MACRO-II and the KXTII-C
Peripheral Processor Toolkit.

140

uNOTE # 018
Page 11 of 24
.TITLE EXAM1.MAC
; This program transfers data from local KXT11-C addresses to other
local KXT11-C addresses.
This program should be compiled and linked
on the development system and then downloaded into the KXT11-C using
the KXT11-C Software Toolkit.

Once the program has been compiled and

linked use the following KUI commands to execute it and verify its
; successfullness.
;

;
;
;

.KUI
KUI>SET n
KUI>LOAD EXAM1
KUI>ODT

Where n is the appropriate KXT11-C
Use KUI ODT to verify that the destination
addresses are cleared

.

ODT>AC
KUI>EXECUTE
KUI>ODT

Execute EXAM1
Use KUI ODT to verify that the transfer was
success:Eul

.

ODT>AC
KUI>EXIT
SET UP REGISTER ASSIGNMENTS

START:

174470
174454
174446
174442

MASTER MODE REGISTER
COMMAND REGISTER
CHAN 0 CHAIN ADDRESS SEG/TAG FIELD
CHAN 0 CHAIN ADDRESS OFFSET FIELD

MMREG
CMDREG
CASTFO
CAOFO

-

MOVB

#130,MMREG

LOAD MASTER MODE REG TO DISABLE DTC

CLRB

CMDREG

RESET THE DTC

MOV
MOV

#O,CASTFO
#RELOAD,CAOFO

LOAD THE CHAIN ADDRESS REG SEG/TAG
LOAD THE CHAIN ADDRESS REG OFFSET

MOVB

#131,MMREG

LOAD MASTER MODE REG TO ENABLE DTC

MOVB

#102,CMDREG

SET SOFTWARE REQUEST CHANNEL 0

MOVe-

#240,CMDREG

START CHAIN CHANNEL 0

==
==

STAY HERE WHILE THE USER VERIFIES
THAT THE PROGRAM WAS SUCCESSFUL

BR
; CHAIN LOAD REGION
RELOAD:

.WORD

001602

; RELOAD

141

~qORD



.WORD
.WORD

000000
SOURCE

CURRENT ADDRESS REGISTER A SEG/TAG
CURRENT ADDRESS REGISTER A OFFSET


.WORD
.WORD

101400
000000

CURRENT ADDRESS REGISTER B SEG/TAG
CURRENT ADDRESS REGISTER B OFFSET



• WORD

000013. ; CURRENT OPERATION COUNT 

.WORD
.WORD

000000
000040

SOURCE: .WORD

CHANNEL MODE REGISTER HIGH
CHANNEL MODE REGISTER LOW


1,2,3,4,5,6,7,6,5,4,3,2,1

.END START

144

uNOTE i 018
Page 15 of 24

·TITLE EXAM3.MAC
This program transfers data from global Q-bus addresses to local
KXT11-C addresses.
This program should be compiled and linked on
the development system and then downloaded into the KXT11-C using the
KXT11-C Software Toolkit. Once the program has been compiled and
linked use the following commands to execute it and verify its
successfullness.
 600030(8).
These values will be the source for this operation>
@600000/000001

1 Deposit source values

.

@600030/000001
@P

Use the 'P' command to return to the system prompt

.KUI
KUI>SET n
KUI>LOAD EXAM3
KUI>EXECUTE
KUI>ODT

Where n is the appropriate KXT11-C
Use KUI ODT to examine the destination locations to
verify the transfer was successful

;

ODT> .
•.

ODT>"C
KUI>EXIT
SET UP REGISTER ASSIGNMENTS

START:

MASTER MODE REGISTER
COMMAND REGISTER
CHAN 0 CHAIN ADDRESS SEG/TAG FIELD
CHAN 0 CHAIN ADDRESS OFFSET FIELD

MMREG
CMDREG
CASTFO
CAOFO

=

MOVB

i130,MMREG

LOAD MASTER MODE REG TO DISABLE DTC

CLRB

CMDREG

RESET THE DTC

MOV MOV

iO,CASTFO
#RELOAD,CAOFO

LOAD THE CHAIN ADDRESS REG SEG/TAG
LOAD THE CHAIN ADDRESS REG OFFSET

MOVB

#131,MMREG

LOAD MASTER MODE REG TO ENABLE DTC

MOVB

i102,CMDREG

SET SOFTWARE REQUEST CHANNEL 0

MOVB

i240,CMDREG

START CHAIN CHANNEL 0

=
==
==

174470
174454
174446
174442

145

uNOTE # 018
Page 16 of 24

STAY HERE WHILE THE USER VERIFIES
THAT THE PROGRAM WAS SUCCESSFUL

BR
; CHAIN LOAD REGION
RgLOAD:

DESTNT:

.WORD

001602

RELOAD WORD 

.WORD
.WORD

101400
000000

CURRENT ADDRESS REGISTER A
CURRENT ADDRESS REGISTER A

address 600000(8»

.WORD
.WORD

101400
010000

CURRENT ADDRESS REGISTER B
CURRENT ADDRESS REGISTER B

address 610000(8»

. WORD

000013 .

CURRENT OPERATION COUNT 

.WORD
.WORD

000000
000040

CHANNEL MODE REGISTER HIGH
CHANNEL MODE REGISTER LOW


.END START

148

uNOTE # 018
Page 19 of 24
.TITLE EXAMS.MAC
This program demonstrates how chaining is implemented using the
DTC. A local to local transfer will be initiated under program
control.
Then, using the chaining feature of the DTC, a local to
global transfer will be performed followed by a global to global
transfer and finally a global to local transfer.
The following
diagram illustrates these transfers.
KXT11-C Memory

Q-bus-Memory

;

iTransfer #1
Transfer #2

------->

---->

Transfer #4

<-

<

Xfer
#3

This program should be compiled and linked on the development system
and then downloaded into the KXT11-C using the KXT11-C Software
Toolkit. Once the program has been compiled and linked use the
following commands to execute it and verify its successfullness.
 600030(8)
and 6100000(8) --> 610030(8) before executing the program>
.KUI
KUI>SET n
KUI>LOAD EXAMS
KUI>EXECUTE
KUI>ODT
ODT> .
ODT> .
ODT>"C
KUI>EXIT

Where n is the appropriate KXT11-C
Use KUI ODT to verify that the destination contents
are accurate


SET UP REGISTER ASSIGNMENTS
MMREG
CMDREG
CASTFO
CAOFO

=
=
=
=

MASTER MODE REGISTER
COMMAND REGISTER
CHAN 0 CHAIN ADDRESS SEG/TAG FIELD
CHAN 0 CHAIN ADDRESS OFFSET FIELD

174470
174454
174446
174442

149

uNOTE # 018
Page 20 of 24

ST,ART:

MOVB

#130,MMREG

LOAD MASTER MODE REG TO DISABLE DTC

CLRB

CMDREG

RESET THE DTC

MOV
MOV

#O,CASTFO
#LOAD1,CAOFO

LOAD THE CHAIN ADDRESS REG SEG/TAG
LOAD THE CHAIN ADDRESS REG OFFSET

MOVB

#131,MMREG

LOAD MASTER MODE REG TO ENABLE DTC

MOVB

#102,CMDREG

SET SOFTWARE REQUEST CHANNEL 0

MOVB

#240,CMDREG

START CHAIN CHANNEL 0
STAY HERE WHILE THE USER VERIFIES
THAT THE PROGRAM WAS SUCCESSFUL

BR
; CHAIN LOAD REGION
LOAD1

LOAD2

.WORD

001603

RELOAD WORD 

.WORD
.WORD

000000
- AREA2

.WORD
.WORD

101400
000000

CURRENT ADDRESS REGISTER A SEG/TAG
CURRENT ADDRESS REGISTER A OFFSET

CURRENT ADDRESS REGISTER B SEG/TAG
CURRENT ADDRESS REGISTER B OFFSET

CHANNEL MODE REGISTER
CHANNEL MODE REGISTER


LOAD3

.WORD
.WORD

000000
LOAD3

CHAIN ADDRESS REGISTER SEG/TAG
CHAIN ADDRESS REGISTER OFFSET


.WORD

001603

RELOAD WORD 

.WORD
.WORD

101400
010000

.WORD
.WORD

000000
AREA3

CURRENT ADDRESS REGISTER B SEG/TAG
CURRENT ADDRESS REGISTER B OFFSET


.WORD

000013.

CURRENT OPERATION COUNT 

CURRENT ADDRESS REGISTER A SEG/TAG
; CURRENT ADDRESS REGISTER A OFFSET

<610000(8»

151

u.NOTE '# 018
Page 22 of 24
CHANNEL MODE REGISTER HIGH
CHANNEL MODE REGISTER LOW


.WORD
.WORD

000000
000040

AREAl

.WORD

1,2,3,4,5,6,7,6,5,4,3,2,1

,PtoREA2

. BLKW

13 .

AREA3

.BLKW

13.

.END START

152

uNOTE # 018
Page 23 of 24
. TITLE

~

EXAM6. MAC

This program demonstrates how to initiate a DTC operation from the
; arbiter cpu. This program will tranfer a block of data from Q-bus
; memory to KXT11-C memory. All of the information necessary for the
transfer will reside in Q-bus memory (chain table, source data)
This program should be compiled, linked, and run on the arbiter
development system. After the program executes use the following
KUI commands to verify the transfer
.KUI
Where n is the appropriate KXT11-C
KUI>SET n
; KUI>ODT
Examine locations 5000 --> 5030 to verify that
ODT>5000/xxxxxx
,
the data was transfered correctly

.

.

ODT>5030/xxxxxx
ODT>"C
KUI>EXIT
Two-port RAM register definitions
TPRO-160100
TPRl-160102
TPR2-160104
TPR3-160106

START:

;

.MCALL

.EXIT

MOV

#100000,TPR3

place Chain Address Reg Seg/Tag in TPR3

MOV

#LOAD,TPR2

Place Chain Address Reg Offset in TPR2

*

NOTE!!

*

The KXT11-C User's Guide contains an error which instructs the
programmer to place the CA register Seg/Tag in TPR2 and the CA
register Offset in TPR3.
correct as stated above.
BIS

This information is reversed and is

#2,TPRO ; Issue DMA Load cmd to the command register

.EXIT
LOAD

. WORD

001602

RELOAD WORD 
CARA OFFSET

. WORD
.WORD

000000
005000

;CARB SEG/TAG 

.WORD
.WORD

000000
000040

.WORD

1,2,3,4,5,6,7,6,5,4,3,2,1

.END

START

RELATED DOCUMENTS
For further information concerning the KXT11-CA and the DTC please
consult the following sources:
KXT11-CA Single-Board Computer User's Guide
AmZ8016 DMA Transfer Controller User's Guide

EK-KXTCA-UG-OOl
01924C

For further information concerning the KXTI1-CA Peripheral Processor
Software Toolkit please consult:
KXT11-C Peripheral Processor Software User's Guide
KXT11-CA Software Toolkit/RT Reference Manual
KXT11-CA Software Toolkit/RSX Reference Manual

154

AA-Y615A-TK
AA-AU63A-TC
AA-AU64A-TC

uNOTE # 019

Title: Disabling RAM on the MXV11-BF

Date: 10-JAN-85

Originator: Mike Collins

Page 1 of 3

This uNOTE describes how to disable the on-board memory of the MXV11-BF
multifunction module.
There is also a comparison of features between
the MXV11-BF (with RAM disabled) and the combination of the MRV11-D and
DLV11-J modules.
DISABLING RAM ON THE MXV11-BF MODULE

WARNING 1
The procedure outlined below for disabling the RAM
requires
physical
changes
to the circuit board.
Implementing this change will void the warranty of the
MXV11-BF as well as voiding any field service contract
for the board.
The procedure requires cutting one etch and adding one wire.
PROCEDURE (see figure below)
1. The etch cut can be achieved two ways.
Cut and bend up pin 13 of chip E17.
OR
On side 2 of module (the non-component side), cut etch
which connects E17 pin 13 to E26 pin 2.
2. Add wire between E17 pin 13 and E17 pin 14 (+5 volts).
3. The on-board RAM is now disabled.

155

uNOTE # 019
Pag1e 2 of 3
MXV11-BF (M7195)

Pin 1
Pin 14

v
Pin 1
E26

V

-: DO 0
I

E17

COMPARISON OF THE MXV11-BF VERSUS THE COMBINATION OF MRV11-D AND DLV11-J
The following table lists several features common to both the
with the RAM disabled and the MRV11-D / DLV11-J combination.

MXVI1-BF

FEATURE

MXV11-BF w/o RAM

MRV11-D and DLV11-J

RAM

None

None

Boot ROMs

Mxvl1-B2

MXV11-B2

SlGU's

2 DLARTs
4 UARTs
4 baud rates
9 baud rates
No format options
Many format options
(Start, stop bits, parity, # of bits, etc.)

Miscellaneous
features

4 Red LED's
1 Green LED

14 unused ROM/RAM sockets

Cabinet kit

Ctrrrently N/A

Available

+S V

3.4A

2.6A

Heat diss.

16.65W

16W

156

uNOTE # 019
Page 3 of 3
FEATURE

MXV11-BF w/o RAM

MRV11-D and DLV11-J

Slots

1 dual

2 duals

AC loads

2.3

4.0

DC loads

0.5

1.5

+12 V

0.1A

0.25A

When comparing the features on page 2, the MRV11-D/DLV11-J combination
works out better than the MXV11-BF. All of the features on page 3 show
the advantages of the Mxv11-BF.
The MXVI1-BF is the best choice in situations where backplane space and
loading is a primary concern.
In terms of backplane space, if the
number of slots available is limited, the MXV11-BF is preferable since
it takes up one dual slot whereas the MRV11-D/DLV11-J combination
requires two dual slots.
In a large system where AC loading may be a concern, the MXV11-BF also
has an advantage over the MRV11-D/DLV11-J combination. The number of AC
loads the MXV11-BF presents to the bus is fewer than the two board
combination.
The most attractive use for the MxV11-BF is in a minimal yet powerful
two-board system i.e. KDJ11-A and the MXV11-BF. The advantages of such
a system are the size or form factor (only two dual height modules)
128Kb of RAM, 2 serial lines, bootstrap capability and the high
performance 11/73 CPU.

157

158

uNOTE # 020

Title: Differences between the MXV11-A and Mxv11-B

Date: 10-JAN-85

Originator: Dave Smith

Page 1 of 2

This MicroNote illustrates the features to consider when upgrading from
MXV11-AA/-AC to MXV11-BF multifunction boards or when choosing one in a
new configuration.

Mxv11-A

MXV11-BF

o Dual height form factor

o Dual height form factor

o 18-bit compatible only

o 18 or 22-bit compatible

o 2 SLU's (DLV11-J type)

o 2 SLU's (DLARTs)

o

o RAM:

RAM:

8 KB non-parity (MXV11-AA)
32 KB non-parity (MXV11-AC)
o ROM: 2 sockets (24-pin)
(for MXv11-A2 boot ROMS
- cannot use MXV11-B2 ROMS)

128 KB non-parity
o ROM: 2 sockets (28-pin)
(for MXV11-B2 boot ROMS
- cannot use MXV11-A2 ROMS)

Notes:
The MXV11-B2 Boot ROMs are required for an LSI-11/73 based system to be
maintained under a DEC Field ServicE~ contract because these ROMs contain
cache diagnostics.
For a comprehensive list of Bootstraps and device
MicroNote #15, entitled "Q-bus Hardware Bootstraps"

159

support,

refer

to

*

uNOTE
020
Page 2 of 2
Since the ROM sockets on these boards may be used for user-written
application code as well as boot code, it is important to note what is
different on the two boards. Besides the sockets being of different
size, the ROM on the two boards has another difference. The ROM on the
MXV11-BF is window mapped and may be used under application control to
address up to 8 KB.
The MXV11-A ROM is direct mapped and can only
address 256 bytes. Thus, an upgrade would require new ROMs and possible
application recoding.
For more detailed
MicroNote 19.

information

concerning

MXV11-BF

issues,

For more detailed informabion concerning MXV11-A issues,
archived MicroNotes listed in appendix A.

refer

refer
to

to
the

Summary:
When upgrading from the MXV11-A to the MXV11-BF or choosing the MXV11-BF
over the MXV11-A, three important features are obtained:
1) 22-bit compatibility - allows use in large memory systems
(The MXV11-BF memory can only be configured to start in the
lower 512 KB. It does, however, decode all 22 lines of
address which makes it usable in" systems with up to 4 MB.)
2) More memory (although its non-parity feature creates some software
support issues if used with RSX or RSTS)
3) Support for boot ROMs that will boot MSCP devices such as the Rx50
and Ro51 and will provide cache diagnostics for the LSI-11/73.

160

uNOTE # 021

Title: Floating Point Considerations on MicroVAX I

Date: 10-Jan-85

Originator: Christopher DeMers

page 1 of 2

The MicroVAX architecture implements a subset of VAX data types.
Four
that are part of the VAX architecture but not part of the MicroVAX
architecture are the D floating, F floating, G floating and H floating
data types.
Floating point instructions that use these data types are
likewise not part of the architecture.
The MicroVAX I system implements a proper superset
architecture;
that is, MicroVAX I uses the MicroVAX
implements a few items that are not defined as part
architecture.
Even though the architecture specifies
for floating point,
the following data types and
supported in the MicroVAX I microcode:

of the MicroVAX
architecture, but
of the MicroVAX
emulation support
instructions are

- F float
- D-float
- G-float
The F float data type and instructions are standard on the MicroVAX I.
In aQdition,
the user may specify EITHER D float or G float as the
double precision instruction set.
The decision to use D float or
G_float depends on the application.
Both D float and G float are double preclslon floating point data
types/lnstructions.- D float is compatible with the PDP-11 format and is
the double precision floating point default for many of Digital's
compilers including FORTRAN, PLII, BASIC and Pascal.
Therefore, if the
application has been compiled, say, on a VAX-11/780, with the default
(D float)
and is not to be re-compiled before being run on the MicroVAX
I,-then choose the D float option.
The compilers mentioned above have a
switch that allows the generation of G float instructions.
If you wish
to choose the G float option for your MlcroVAX I, the program needs to
be re-compiled with the G float switch set.
If Macro programs use a specific data type such as G float,
then the
MicroVAX I will need to have the G float option unless the program is
modified so that the floating point instructions match the option chosen
for the MicroVAX I.

161

*

uNo'rE
021
Page 2 of 2
Note that even though a program uses one type of double preclslon
floc!ting point and the MicroVAX I has the other as an option, the
program will run. A feature of the MicroVAX architecture is that all
instructions are executed. The floating point instructions not chosen
as a microcode option are emulated in software.
An instruction/data
type mismatch could result in severe performance degradation.
Another reason for choosing one double precision format over another is
the size and accuracy of the data. Both formats are 64 bits long. The
D float range is 2.9E-37 to 1.7E38.
This type gives approximately
sIxteen decimal digits precision. G float "steals" three bits from the
fraction to give the exponent a large~ range.
The G float range is
.S6E-308 to .9E308 and gives approximately fifteen decimal digits
preclslon. The range of the number is increased significantly while
only reducing the precision by one decimal digit.
H float, the only other floating data type in the VAX

architecture, is
bits long with a range of close to 10ESOOO and a precision of
thirty-three decimal digits. H'float is not implemented as part of the
MicroVAX architecture. It is, nowever, emulated in software.
1~8

Data Type Representations

15

7 6

sl

Exponent

o

I Fraction

Fraction
31

16

D Floating

sl

63

o

7 6

15

Exponent

f

15

sJ

Fraction

4 3

Exponent

I Fraction

Fraction

Fraction

Fraction -

Fraction

Fraction

Fraction
48

63

162

o

48

uNOTE it 022

Title: Differences between the z.1licroVAX I and the
MicroVAX II CPUs

Date: 28-APR-85

Originator: Mike Collins

Page 1 of 13

This MicroNote identifies the differences between the MicroVAX I
processor and the MicroVAX II processor. The term 'MicroVAX 630' is
sometimes used in this and other documentation when referring to the CPU
module of the MicroVAX II system. Table 1 below contains a summary of
these differences and following the table are detailed discussions of
each.
Table 1 - MicroVAX II versus the z.1licroVAX I
FEATURE

MicroVAX II

CPU Technology
Memory System
Floating Point
Q-bus I/O Map
Addressable Physical Memory

MicroVAX 78032

Custom VLSI

Local Memory
System

Uses Q-bus Memory

MicroVAX 78132

Microcode

YES

NO

16 MBytes

4 MBytes

256KB or 1MB

On-Board Memory

MicroVAX I

Non~

See Performance Section

Performance
Console Serial Line

YES

YES

Boot & Diagnostic ROMs

YES

YES

1 Quad

Form Factor
Configuration set via
RQDX Contro!ler Type

163

2 Quads

Cabinet Kit

Cabinet Kit &
On-board Switches

RQDX2

RQDX1 or RQDX2

--

uNOTE # 022
page 2 of 13
Table 1 - MicroVAX II versus the MicroVAX I (cont'd)
TOY Clock wi Battery Backup

YES

NO

Multicomputing Hooks

YES

NO

Instruction Set Differences
Power Requirements

See MicroNote #24
+SV - 6.2 Amps
+12V - 0.14 Amps

+SV - 14 Amps
+12V - 0.5 Amps

AC Loads

2.7

2

DC Loads

1

1

240 Ohms

240 Ohms

Termination

The MicroVAX II is both faster and smaller than the MicroVAX I.
Two
major
features
of
the
MicroVAX II are responsible :for these
enhancements: the MicroVAX 78032 microprocessor and the memory system.
CPU TECHNOLOGY
The technologies used to design the two processors are different.
This
is why the MicroVAX II CPU is half the size and three times the speed of
the MicroVAX I.
The MicroVAX I CPU was designed using a custom VLSI chip, several ROMs
and off-the-shelf parts to implement the ALU, memory management unit and
the microcode. In contrast, these same features are implemented in the
MicroVAX 78032 microprocessor. The MicroVAX 78032 is the first VAX on a
chip. Two custom gate arrays were also designed to reduce the size of
the MicroVAX II CPU to one quad module: the Q-bus interface gate array
and the MicroVAX 78032 interface gate array.
MEMORY SYSTEM
The significant difference in performance is due in part to the
different memory systems used by the two processors. The MicroVAX II
memory system uses a high speed interconnect between the MicroVAX 78032
microprocessor and RAM.
The MicroVAX I uses standard Q-bus memories
which are not as-fast but are also less expensive and usable by both the
MicroVAX I and other 16-bit processors (such as the MicroPDP-11). The
MicroVAX I also uses a cache memory scheme.

164

uNOTE # 022
Page 3 of 13

The MicroVAX II CPU communicate!s to memory over a local memory
interconnect.
This was done to increase the performance of the system
in two ways. First, the local memory system provides a fast connection
between the processor and memory (400 nsec read and write cycles).
Second, since memory fetches occur over the local memory system, the
Q-bus is now a dedicated I/O bus. The diagrams below contrast previous
Q-bus processors and the MicroVAX II.
The local memory system allows for 2 expansion memory boards.
section on Addressable Physical Memory)

(See next

Configuration Used by Previous ~-bus Processors:
This approach is used by most Q-bus processors such as the 11/23,
LSI-ll/73 and the MicroVAX I. In this design, the Q-bus bandwidth is
shared by th~ processor and I/d devices when accessing memory.

Processor

.MeDlory

I/O
Device

Q--bus
Figure 1 - Memory Design Used by Previous Q-bus Processors
MicroVAX II Design:
The MicroVAX II uses a local memory system for all memory references,
allowing the Q-bus to be a dedicated I/O bus. The local memory system
is implemented using the C-D intE!rconnect of the backplane and an
over-the-top cable. The memory system has a bandwidth of 10 MBytes/sec
which will support the MicroVAX 78032 microprocessor running at full
speed (approx.
6 MB/sec) with simultaneous Q-bus DMA transfers (3.3
MB/sec) .

165

uNOTE: # 022
Page 4 of 13
10 MBytes/sec

I
Processor
6 MB/sec

<-

I<

Ca bl e
over- th e-.op
T

C-D Interconnect in Backplane

Expansion
Memory
(max. of

I/O
Device

2)

Q-bus (3.3 MBytes/sec)
Q-bus is a dedicated I/O bus
Figure 2 - MicroVAX II Memory Design
FLOATING POINT
The MicroVAX architecture specifies that the floating point instruction
set need not be implemented in the hardware of a MicroVAX processor.
For those processors that fall into this category, there is an emulator
in the software which guarantees that the instructions are still
executable. However the MicroVAX architecture does not restrict a
MicroVAX design from having floating point instructions implemented in
hardware.
This is what was done on the MicroVAX I. The MicroVAX I does have the
F floating and D floating or the F floating and G floating instructions
i~ microcode.
(s~e MicroNote
#21 -"Floating Poi~t Considerations on
MicroVAX Itt)
Th,e Mi c r 0 VAX I Ius e s the Mi c r oVAX 78132 flo at i n g poi n t un i t t 0 i mpl eme n t
floating point instructions. It is a high performance coprocessor for
the MicroVAX 78032 and eliminates the need to emulate floating-point
instructions in software.
Thle MicroVAX 78132 handles the F floating (single precision), D floating
(double-precision) and the G floating (extended range double-precision)
floating point data types and-instructions. The FPU also accelerates
the execution of integer multiply and divide operations.
The H floating instructions are emulated in both the MicroVAX :r and
MicroVAX II.

166

the

uNOTE i 022
Page 5 of 13
Q-bus I/O MAP (SCATTER/GATHER MAP)
The concept of a scatter/gather map has been used on the large UNIBUS
VAXes since the VAX 11/780. ThE~ same concept is used on the MicroVAX
II.
Simply stated, the scatter/ga1:her mechanism maps addresses from one
bus to another bus.
This mapping is necessary because the address
length is not the same for the two buses.
The term 'scatter/gather'
is a description of what operations are
performed through the scatter/gathE~r map. A VAX with mapping enabled is
a virtual machine and manages data in 512-byte pages which may be
discontiguous in physical memor~r. When a DMA write operation occurs,
pages of data may be 'scattered' into physical memory.
During a DMA
read operation from memory to an I/O device, such as a disk, -these pages
of data must be 'gathered' from thl:oughout memory and transferred to the
device.
The MicroVAX I does not requi re a ()-bus I/O map.
Since all I/O devices
and memory share the same bus,
the Q-bus, there is no mismatch in
address lengths and no I/O map is necessary. Reading and writing data
to and from memory in 512 byte pages becomes the responsibility of the
I/O device or the system software.
In the case of the MicroVAX II CPU" the scatter/gather map provides the
mapping mechanism to allow DMA devices on the Q-bus, with a 4 MByte
physical address range, to gain access to all of main memory on the
local memory system, a 16 MByte physical address range.
Figure 3 below illustrates the mapping process.
The high order 13 bits of the Q-bulS address select one of 8192 mapping
registers.
Each register translatf!s an address for a range covering one
page of 512 bytes; thus the mappin<} registers cover the entire Q-bus
address space of 4MB.
The lower 15 bits of the mapping r~gister will have been previously
loaded with the correct information, which when appended to the lower 9
bits of the Q-bus address selects the appropriate byte in main memory.
The high order 15 bits of the physical address select which pag~ in main
memory has the correct address and the low order 9 bits select the byte
within a page.

167

uNOTE # 022

Page 6 of 13
9 8

Q-bus Address

o

13 bits

Q-bus I/O Map
8K Mapping Registers

~----------------------->

Selected Mapping Register
31

15 14

0

15 bits

I

I <------------~
Local Memory

Physical Addr.
in local
memory

24 bits

~------------------->

Figure 3 - Q-bus to Private Memory Mapping Process

168

*

uNOTE
022
Page 7 of 13
ADDRESSABLE PHYSICAL MEMORY
The total amount of addressable physical memory
different because of the memory system designs.

for

each

CPU

is

The MicroVAX I uses standard Q-bus memories for main memory and
therefore has a lower physical addressing limit than the MicroVAX II.
This limit is constrained by the number of address lines on the Q-bus.
There are 22 address lines on the Q-bus, limiting maximum memory to 4
MB.
The MicroVAX II uses a 24 bit address when accessing the local memory
system.
Therefore the maximum amount of addressable memory is 16
MBytes.
When the system is first available, 9 Mbytes will be the maximum because
the 16 MByte total depends on the availability of 1 Mbit RAM parts. The
9 MByte total includes a MicroVAX II CPU (KA630-AA) which includes 1
MByte on-board plus two 4 MByte expansion modules.
The memory module capacities are listed in the table 3 below.
Table 3 - Expansion Memory Options
MEMORY

MEMORY SIZE

FORM FACTOR

MS630-AA

1 Mbyte

Dual

MS630-BA

2 Mbytes

Quad

MS630-BB

4 Mbytes

Quad

PERFORMANCE
The relative performance between thl~ processors is of course application
dependent.
However, as a generi~l rule of thumb, the MicroVAX II CPU
will be approximately 3 times faster than the MicroVAX I.
The results
of standard, compute bound floating point benchmarks indicate that the
MicroVAX II (with the MicroVAX 78132 FPU) will run 4 to 6.6 times faster
than the MicroVAX I.
CONSOLE SERIAL LINE
The MicroVAX II and the MicroVAX I processors both have one dedicated
serial line for the console terminal. There are two differences between
the two serial line units. First, the number of selectable baud rates
is different. The possible baud rates are listed in table 4.

169

uNOTE # 022
Page 8 of 13
Table 4 - Baud Rate Selections
M:icroVAX II

MicroVAX I

300
600
1200
2400
4800
9600
19200
38400

300
1200
9600
19200

Second, the console device connector on the patch panel for the MicroVAX
I is an RS232 25-pin D-subminiature connector~ The connector on the
lVIicroVAX II patch panel is a 9-pin D-subminiature connector.
Because
the connectors are different, different cables will be used to connect
to the console terminal.
FORM FACTOR
All of the features and functions of the MicroVAX II processor are
contained on one quad module. The MicroVAX I processor is made up of
two quad modules, a data path module ('DAP'), and a memory controller
('MeT').
The two modules of the MicroVAX I communicate over the C-D
backplane interconnect and an over-the-top ribbon cable.
BOOT AND DIAGNOSTIC ROMs
Both processors have boot/diagnostic ROMs. The ROMs on the MicroVAX I
are NOT the same as those on the MicroVAX II CPU, therefore there are
differences in their operation.
Both ROMs perform the following functions :
Initialize the machine into a known state.
Perform diagnostic tests.
Allow for the automatic restart or bootstrap of the system following
a processor halt or initial power-up.
Provide bootstrap capability from a variety of devices.
Provide the VAX console command language.
Perform diagnostic tests.
When either machine is powered on, their respective diagnostic tests are
executed.
Microverify is the name given to the diagnostics executed by the
MicroVAX I system. There are three LEDs on the DAP module and a seven
segment display on the patch panel which will isolate the problem to one
of the two CPU modules. Error codes are defined in table 10-1 on page
10-4 of the MicroVAX I Owner's Manual.

170

uNOTE # 022
Page 9 of 13
A similar function is performed by the MicroVAX I I CPU diagnostics.
As
each test is run, a code is displayed on the processor LEDs, the patch
panel and the console terminal. Th1ese codes count down in hexadecimal
from F to O.
There are potentially 16 steps which may be executed,
therefore the MicroVAX 630 has 4 LEDs. The definitions for these codes
may be found in the MicroVAX 630 CPU Module User's Guide
(PIN
CK-KA6 30-UG) .
Power-up modes.
A major difference between the two processors is what occurs at
power-up. The MicroVAX I will ei th,er attempt to do a restart, bootstrap
or halt and enter console mode (the appropriate option is selected via
two switches on the DAP module).
The MicroVAX I I can also be configured to try a restart,
perform a
bootstrap or halt. Before it attempts these options however, it does a
language inquiry. All console messages may be output in one of eleven
different languages; one must be selected. There are options such as
defaulting to English or defaulting to the language which was selected
previously for unassisted bootstrap or always prompting for the language
at power-up. These options are described in the MicroVAX 630 CPU Module
User's Guide.
Bootstrap Devices.
The list of devices which each processor can boot from is slightly
different.
Table 5 lists the supported boot devices for each processor.
The devices are listed in the order by which they are searched by the
processor~

Table 5 - Bootstrap Devices
MicroVAX I I
RODX, KDA50 or
RC25

MicroVAX I
RQDX

TKSO
MRV11-D

MRV11-D

DEONA

DEONA

VAX Console Command Language.
Both processors implement the VAX console command language in their boot
ROMs.
Most of the frequently used commands are implemented by both
machines.
However, there are a few commands which are only implemented
by one or the other. Table 6 lists the commands and indicates which are
available on each processor.

171

uNOTE # 022
Page 10 of 13
Table 6 - VAX Console Commands
COMMAND
BREAK
INITIALIZE
START
CONTINUE
HALT
BOOT
UN JAM
EXAMINE
DEPOSIT
X

FIND
REPEAT
TEST
1 (Comment)
N (Next)
CTRL/U
CTRL/S
CTRL/O
CTRL/O
CTRL/R
CTRL/C

MicroVAX II

MicroVAX I
X
X
X

X
X
X
X
X
X
X
X
X
X
X
X
X
X

X

X
X
X
X
X
X

X
X

X
X
X
X
X
X

X

CONFIGURATION
Both CPUs have a cabinet kit through which certain features are
configured.
However the cabinet kits are different. The cabinet kit
for the MicroVAX I will not work with the MicroVAX II CPU and vice
versa.
In addition to the cabinet kit are eight switches on one of the MicroVAX
I CPU boards used for setting such functions as the recovery action,
break detect enable and the baud rate selection. The cabinet kit for
the MicroVAX I is a set of two cables and a patch panel insert for FCC
system integration.
It performs three functions:
1. Console terminal connector
2. Baud rate rotary switch
3. Two digit LED display

172

uNOTE # 022
Page 11 of 13
The MicroVAX II CPU has no switches or jumpers on the module itself.
All options are set via the patch panel insert of the cabinet kit or an
optional configuration card used in place of the cabinet kit. The patch
panel insert has the following functions
1.
2.
3.
4.
5.
6.

Halt enable switch
Power-Up mode rotary switch
Baud rate rotary switch
Hexadecimal display
Console terminal connector
Batteries for battery backup

For MicroVAX II applications which do not need the cabinet kit, Digital
designed a special configuration card. This card allows the user to
configure the same functions as the cabinet kit but it is much smaller
and requires no cables. The configuration card is 1.5" x 2.5" and plugs
into two connectors on the CPU module. Simple DIP switches are used to
select the appropriate functions.
TIME-OF-YEAR CLOCK WITH BATTERY BACKUP
The MicroVAX I does not have the capability for keeping time after a
system power-down or power fai.lure. Each time the system is brought
back up the time must be reentered manually (This limitation can be
bypassed under MicroVMS for example, but the system time will be
incorrect until set at a later time).
The MicroVAX II has the capabili t~r for a battery backed up
(TOY) clock.
A low-power TOY clock chip was designed
module. After a system power-down the chip keeps track of
time and the system can reboot without needing an operator
time and date.

time-of-year
onto the CPU
the correct
to enter the

During normal operation the system keeps track of time using a 10 msec
interval timer internal to the MicroVAX 78032. When power is lost this
interval timer will stop but the TOY clock chip will continue to
operate. The TOY clock chip has a resolution of 1 second.
The batteries for the time-of-year clock chip are located on
panel insert of the cabinet kit.

the

patch

The battery backup capability is not present if a system is using the
configuration card instead of thE~ cabinet kit in order to configure the
system. However there are pins on the configuration card which can be
used to connect external batteries to provide the same capability. It
is the user's-responsibility to pl:ovide the batteries and cabling for
battery backup when using the configuration card.

173

uNOTE # 022
Page 12 of 13
RQDX CONTROLLER TYPE
Initial MicroVAX I systems use the RQDXl disk controller for
the RX50
floppy disks and the RD51 / RD52 winchester disks.
This controller is
required to be the last module in a system because it does not pass
interrupt acknowledge (lACK) nor the DMA grant (BDMG) signals to options
which come after it in the backplane.
The RQDX2 disk controller was designed to work with and is shipped with
initial MicroVAX II systems.
The RQDX2 will also work with other Q-bus
processors such as the MicroVAX I and MicroPDP-ll/73.
IMPORTANT!
The RQDXl is incompatible with the MicroVAX II CPU therefore
the two should never be configured into the same system.
MULTICOMPUTING HOOKS
The MicroVAX II CPU has been designed to allow a maximum of four
processors to coexist in the same system.
There will always be an
arbiter and up to 3 auxiliaries.
This feature is NOT supported by any
Digital operating system and is not an off-the-shelf multiprocessing
solution.
For more information on the specifics of the multicomputing
feature,
reference MicroNote #26 and the MicroVAX 630 CPU Module User's
Guide.
INSTRUCTION SET DIFFERENCES
The MicroVAX architecture specifies which
instructions
must
be
implemented in the hardware/microcode, all other instructions will then
be emulated in software.
Depending on the particular instruction,
the
emulation is either entirely in software or in software with a hardware
assist. Any specific MicroVAX implementation will meet this minimum
requirement but may choose to include in its microcode some instructions
which would otherwise be emulated. MicroNote #24 contains a table which
lists all of the instructions in the VAX architecture and indicates for
each MicroVAX processor whether or not the instruction is in the
hardware or emulated.
POWER REQUIREMENTS, AC LOADS, DC LOADS AND TERMINATION
Table 7 below summarizes the pertinent information
configure one of these processors into a system.

necessary

Since the MicroV~X II CPU is only one quad module it is not
that
the
amount of current drawn from the +5 volt
substantially less than that required by the MicroVAX I CPU.

174

to

surprising
supply is

uNOTE # 022
page 13 of 13
Table 7 - Specifications
SPECIFICATION

MicroVJ~X

II

MicroVAX I

Power Requirements
+5 volt (amps)
+12 Volt (amps)

6.2
0.14

AC loads

2•

~/

2

DC loads

1.0

1

Termination (ohms)

240

240

I

17!5

14.0
0.5

176

uNOTE # 023

Title: MicroVAX I to MicroVAX II Upgrade Issues

Date: 28-APR-85

Originator: Mike Collins

Page 1 of 5

This MicroNote describes the
MicroVAX I to a MicroVAX II.

hardware

issues

in

upgrading

from

a

The Add-On and Upgrades group within Digital Equipment Corporation
announced a formal upgrade kit at the time of the MicroVAX II
announcement. For more information about this program contact a local
DEC sales representative.
This f1icroNote is intended for those users
who wish understand the issues in an upgrade.
Reference MicroNote #22 for a detailed description of the differences
between the processors of the MicroVAX I and MicroVAX II systems.
Upgrading a MicroVAX I to a MicroVAX II is straightforward because the
two systems share many common components.
First of all the BA23
enclosure is used by both systems, this includes the backplane, power
supply, control panel, and I/O patch panel. The 5 1/4" disk devices
used on a MicroVAX I are also compatible with the MicroVAX II.
Since
I/O devices for both machines are Q-bus devices they are directly
compatible with the new processor. The upgrade process does however
involve replacing the processor, the memory, the 5 1/4" disk controller
and the processor cabinet kit.
Each of these upgrade issues is
addressed in detail.
An upgrade example is shown at the end of this MicroNote.
THE PROCESSOR UPGRADE:
The MicroVAX I CPU is made up of tW() quad modules, the memory controller
('MCT') and the data path ('DAP'). These two modules occupy slots 1 and
2 in the backplane. Both of these modules are replaced with a single
quad module, the MicroVAX II CPU which must be placed in slot 1. The
MicroVAX II CPU module includes 1 MB of memory and the MicroVAX 78132
floating point unit.
Slot 2 previously used by the MicroVAX I is now
available for expansion memory or other options.
THE MEMORY UPGRADE:
The memory system designed for tht~ MicroVAX I l i s unique to that
processor, therefore the Q-bus memories used in the MicroVAX I must be
removed and replaced by the new type.

177

uNOTE # 023
Page 2 of 5
If the MicroVAX I being upgraded has only 1 MB of main memory then the
processor and memory can both be replaced with the MicroVAX II CPU
module. Additional memory may be added to a MicroVAX II CPU if
necessary.
Besides the 1 MB of on-board memory, the MicroVAX II CPU
will support a maximum of 2 memory expansion boards.
These additional
boards must be placed immediately after the processor in slots 2 and 3
of the backplane. The memory modules communicate with the CPU over the
C-D interconnect of the backplane and an over-the-top cable. A cable is
shipped with each memory module.
Figure 1 is an example of how the processor and memory boards are
configured into a system. If the dual height memory expansion module is
used (MS630-AA) it must be placed in the C-D side of the backplane. The
memory modules may be placed in any order in slots 2 and 3~ Table 2
lists the memory expansion options.
WARNING
Both the MicroVAX II CPU and MS630 memory expansion
modules must be placed in backplane slots with the C-D
interconnect. Damage may result if these modules are
placed in backplanes with Q-bus signals on both the A/B
and C/o sides.
Table 2 - MS630 Memory Expansion Modules
MEMORY

MEMORY SIZE

FORM FACTOR

MS630-AA

1 Mbyte

Dual

MS630-BA

2 Mbytes

Quad

MS630-BB

4 Mbytes

Quad

Figure 1 - Processor and Memory Configuration
1

I

MicroVAX II CPU

I

2

I

MS630-B

I
<

3

MS63'0-AA-->

I

I

4

.
8

Additional slots

178

Memory Expansion
Cable

uNOTE # 023
page 3 of S
i

THE RQDX DI SK CONTROLLER UPGRADE:
The RQDX1 S 1/4" disk controller used in MicroVAX I
systems must be
removed and replaced with the HQDX2 controller.
This upgrade is
necessary because the RQDX2 provide:; features not available on the RQDX!
and because the RQDX1 is incompatible with the MicroVAX II.
The RQDX1 does not pass the interrupt acknowledge (lACK) or DMA grant
signal
(DMGO)
to other modules which may be located after it in the
backplane. Therefore it must always be the last module in a system.
This restriction has been removed with the RQDX2, which does pass both
of those signals.
Both RQDX modules are capable of controlling 4 logical units.
However
the RQDX1 can only control a maximum of 2 fixed winchesters (RDSn type
drives). Therefore the largest amount of storage that can be connected
to an RQDX1 would be a combination of 2 RDSn type drives and an RXSO,
which counts as two logical units bf!cause it actually handles two 400KB
floppies.
The RQDX2 also control:; 4 logical units but it knows how to
control any combination of RDs and HXSOs. Therefore the maximum amount
of storage that can be connected to an RQDX2 would be four RDSn type
drives.
The RQDX1 is compatible with RXSO floppies (SOOKB), RDS1 (11MB) and RDS2
(31MB) disk drives.
The RQDX2 is compatible with those drives but is
also capable of controlling RDS3 (71MB) drives.
THE CABINET KIT UPGRADE:
The MicroVAX I cabinet kit is incompatible with the MicroVAX II,
therefore the cabinet kit used in the MicroVAX II, BA23 based system
must be used. The part number is CK-KA630-AB.
Both cabinet kits have one serial line connector in order to communicate
with the VAX console device.
'rhe MicroVAX I cabinet kit uses the
standard 2S-pin, D-subminiature lRS232 connector~
The MicroVAX II
cabinet kit uses a different type of connector.
It is a 9-pin
D-subminiature connector and will therefore require a different cable
from the patch panel to the consl)le device. The appropriate cable is
part number BCCOS.
OPERATING SYSTEM UPGRADE:
Once the hardware has been upgraded it is also necessary to have the
appropriate system software which will support the MicroVAX II.
Table 3
lists the initial versions of MicroVMS, ULTRIX-32m and VAXELN which
support the MicroVAX II.

179

uNOTE # 023
Page 4 of 5
Table 3 - System Software Support
Version with MicroVAX II Support

System Software

V4.1m or later
V1.1 or later
V2.0 or later

MicroVMS
ULTRIX-32m
VAXELN

Many software layered products support the MicroVAX II.
Consult the
appropriate Software Product Description (SPD) to verify if the current
version of the layered product is supported.
UPGRADE EXAMPLE:
Th~! following example illustrates the
changes made to a MicroVAX I
~ystem
to upgrade it to a MicroVAX II system. The diagrams represent
the modules placed in the BA23 backplane.
Both systems have a CPU, 2MB of memory, a DHV11 8-line asynchronous
multiplexer, a DEQNA Ethernet controller and an RQDX 5 1/4" disk
controller.
MicroVAX I System

MicroVAX II System

1

KD32 CPU - MCT

1

2

KD32 CPU - DAP

2

KA630-AA
DEQNA

I MS630-AA

3

MSV11-QA (1MB)

3

RQDX2

4

MSV11-QA (1MB)

4

DHV11

5

DHV11

5

6
7

DEQNA

I

G7272

6

RQDX1

7

8

8

Comments:
The 2 modules of the MicroVAX I CPU and the two quad memory
(MSV11-QAS) were-replaced by the KA630-AA and one MS630-AA.
Th.! DHV11 and DEQNA are compatible with both processors, therefore
were not replaced and remained in the system.

180

boards
they

*

uNOTE
023
Page S of S
The ROOX1 controller is incompatible with the MicroVAX II, therefore it
is replaced with the ROOX2. Any S 1/4" disk (RXSO, ROS1 and ROS2) used
on the MicroVAX I is compatible with the ROOX2 on the MicroVAX II.
The ROOX1 controller must occupy the last slot in a system.
The ROOX2
controller is located before the OHV11 in the upgraded system to
emphasize the point that it is not, required to be the last module in the
system.
The MicroVAX I system required a G7272 grant continuity card in slot 6
in order to make the system work properly. This was not necessary in
the upgraded MicroVAX I I system be'cause there was an empty dual-height
slot next to the MS630-AA memc1ry module. This illustrates the point
that the dual height slot next to an MS630-AA is a valid O-bus slot and
can be occupied by any compatible, dual-height option.
The cabinet kits for the two systems are not shown in the diagrams, but
the one used for the MicroVAX I rnust be replaced by the cabinet ki t for
the MicroVAX II, part number CK-K~.630-AB. The serial line cable from
the patch panel to the terminal must also change. The cable of the
MicroVAX I system must be replaced by a BCC08 cable.

181

182

uNOTE # 024

Title: MicroVAX Instruction set Differences

Date: 28-APR-85

Originator: Mike Collins

Page 1 of 11

The MicroVAX architecture specifies that the full VAX instruction set
need not be implemented in the hardware of a MicroVAX processor. For
those processors that fall into this category, there is a software
emulator which guarantees that the instructions are still executable.
This MicroNote lists all of the instructions of the VAX architecture and
for each MicroVAX processor indicates which instructions are implemented
in hardware/microcode, those that are emulated and those that are
present in a floating point unit.
The instructions are listed in alphabetical order by instruction
mnemonic.
The following designations are used to indicate where an
instruction will be executed.
CPU

Instructions marked with 'CPU' are implemented in the hardware of
the particular MicroVAX processor.

EMA

- Instructions marked with 'EMA' are emulated with microcode assist.

E

- Instructions marked with an 'E' are emulated entirely in software.

Processor specific designations:
MicroVAX II
FPU
- Instructions marked with 'FPU' are implemented in the hardware
only if an external floating point unit is present, otherwise they
are emulated.
MicroVAX I
Hx
- Instructions marked with 'H', 'HF', 'HD' or 'HG' are implemented
in hardware even though the MicroVAX architecture specifies that
these instructions are emulated.
There are two versions of the MicroVAX I, one with F
and
and the pther with F and G floating instructi~ns in
mIcrocode. There are no MicroVAX I processors with all 3 of
these floating point instruction types in the hardware. The
F floating instructions are identified by 'HF', the D floating
by 'Ha' and the G_floating by 'HG'.
-

o floating

183

uNOTE # 024
Page 2 of 11
Reference MicroNote
Mi era VAX I'.

#21,

'Floating

Point

Considerations

on

The following table lists statistics about the
distribution
instructions
based
on where they are executed.
There are
instructions in the VAX instruction set.

of
304

Table 1 - MicroVAX Instruction Distribution
Description

MicroVAX
Architecture

MicroVAX I

MicroVA:K II

Percentage executed
in CPU

57.6

74.3

57.6

Percentage executed
in FPU

N/A

N/A

23.0

Percentage emulated
'wi th microcode assist

8.9

7.3

8.9

Percentage emulated
entirely in software

33.5

18.4

10.5

'rable 2 - Instruction Set Differences
Mnemonic
ACB:B
ACBD
ACBF
ACBG
ACBH
ACB:L
ACBW
ADAWI
ADDB2
ADDB3

Description
Add compare
Add compare
D floating
ACId compare
F floating
ACId compare
G floating
ACId compare
H_floating

MicroVAX
Architecture

and branch byte
and branch

MicroVAXI Mi c roVAXI 1-

CPU
E

CPU
HD

CPU
FPU

and branch

E

HF

FPU

and branch

E

HG

FPU

and branch

E

E

E

CPU

CPU

CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

Add compare and branch
longword
Add compare and branch word
Add aligned word interlocked
Add byte 2-operand
Add byte 3-operand

184

uNOTE # 024
Page 3 of 11
Mnemonic

Description

MicroVAX
Architecture

ADDD2
ADDD3
ADDF2
ADDF3
ADDG2

Add
Add
Add
Add
Add

D floating
D-floating
F-floating
F-floating
G=floating

2-operand
3 operand
2-operand
3-operand
2=operand

E
E
E
E
E

ADDG3
ADDH2
ADDH3
ADDL2
ADDL3

Add
Add
Add
Add
Add

G floating 3 operand
H=floating 2-operand
H floating 3=operand
l~ngword 2-operand
longword 3-operand

E
E

ADDP4
ADDP6
ADDW2
ADDW3
ADWC

Add
Add
Add
Add
Add

packed 4-operand
packed 6-operand
word 2-operand
word 3-operand
with carry

AOBLEQ

Add one and branch on
less or equal
Add one and branch on less
Arithmetic shift longword
Arithmetic shift and
round packed
Arithmetic shift quad

AOBLSS
ASHL
ASHP
ASHQ
BBC
BBCC
BaCCI

Bacs
BBS
BBSC
BBSS
BBSSI

Bec
BCS

Branch on bit
Branch on bit
Branch on bit
interlocked
Branch on bit
Branch on bit

MicroVAXI MicroVAXII
HD
HD
HF
HF
HG

FPU
FPU
FPU
FPU
FPU

HG

FPU

E

E
E

E

CPU
CPU

CPU
CPU

CPU
CPU

E
E

CPU
CPU
CPU

EMA
EMA
CPU
CPU
CPU

EMA
EMA
CPU
CPU
CPU

CPU

CPU

CPU

CPU
CPU
E

CPU
CPU
EMA

CPU
CPU
EMA

CPU

CPU

CPU

clear
clear and clear
clear and clear

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

cl~ar

CPU
CPU

CPU

CPU

CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU

CPU
CPU

CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU

CPU

CPU

and set

set

Branch on bit set and clear
Branch on bit set and set
Branch on bit set and set
interlocked
Branch on carry clear
Branch on carry set

BEQL
Branch on equal
BEQLU (-BEQL) Branch on equal unsigned
Branch on greater or equal
BGEQ
BGEQU (-BCC) -Branch on greater or equal
unsigned
Branch on greater
BGTR

185

E

uNOTE: i 024
Page 4 of 11
MicroVAX
Architecture

Description

Mnemonic

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU

CPU

CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

longword 2-operand
longword 3-operand
processor status

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

word 2-operand
word 3-operand

CPU
CPU

CPU
CPU

CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

less or equal
less or equal

CPU
CPU

CPU
CPU

CPU
CPU

less
on less unsigned
not equal

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU

CPU

CPU

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

CPU

CPU

CPU

BGTRU
BI:CB2
BI:CB3
BICL2
BICL3

Branch on
Bit clear
Bit clear
Bit clear
Bit clear

BICPSW

Bit clear processor status
word
Bit clear word 2-operand
Bit clear word 3-operand
Bit set byte 2-operand
Bit set byte 3-operand

BICW2
BICW3
BISB2
BISB3
BISL2
BISL3
BISPSW
BISW2
BISW3
BITB
BITL
BITW
BI~BC

BI~BS
BI~EQ
BI~EQU

BI~SS
B]~SSU

BNEQ

Bit set
Bit set
Bit set
word
Bit set
Bit set

greater unsigned
byte 2-operand
byte 3-operand
longword 2-operand
longword 3-operand

Bit test byte
Bit test longword
Bit test word
Branch on low bit clear
Branch on low bit set
Branch on
Branch on
unsigned
Branch on
(-BCS) Branch
Branch on

BNEQU (-BNEQ) Branch on not equal unsigned
Bl?T
Break point fault
BUB
Branch with byte displacement
Branch with word displacement
BRW
BSBB
Branch to subroutine with
byte displacement
BSBW
BVC
BVS
C1~LLG
C1~LLS

MicroVAXI MicroVAX.

Branch to ~ubroutine with
word displacement
Branch on overflow clear
Branch-on overflow set
Call with general argument
list
Call with argument list on
stack

186

*

uNOTE
024
Page 5 of 11
Mnemonic
CASEB
CASEL
CASEW
CHME
CHMK

Description

MicroVAX
Architecture

Case byte
Case longword
Case word
Change mode to executive
Change mode to kernel

MicroVAXI MicroVAXII

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CHMS
Change mode to supervisor
CHMU
Change mode to user
CLRB
Clear byte
CLRD (-CLRQ) Clear D floating
CLRF (-CLRL) Clear F=floating

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CLRG (-CLRQ) Clear G floating
CLRH (-CLRO) Clear H-floating
CLRL
Clear longword
CLRO
Clear ocatword
CLRQ
Clear quadword

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

CLRW
CMPB
CMPC3
CMPCS
CMPD

Clear word
Compare byte
Compare character 3-operand
Compare character 5-operand
Compare D_floating

CMPF
CMPG
CMPH
CMPL
CMPP3

Compare
Compare
Compare
Compare
Compare

CMPP4
CMPV
CMPW
CMPZV
CRC

Compare packed 4-operand
Compare field
Compare word
Compare zero-extended field
Calculate cyclic redundancy
check

CVTBD
CVTBF
CVTBG
CVTBH
CVTBL

Convert
Convert
Convert
Convert
Convert

F floating
G-floating
H-floating
longword
packed 3-operand

byte
byte
byte
byte
byte

to
to
to
to
to

0 floating

F-floating
G-floating
H-floating
longword

187

E

E

E

CPU

CPU

CPU

CPU
CPU

CPU
CPU

E
E
E

EMA
HD

CPU
CPU
EMA
EMA
FPU

HF
HG

FPU
FPU

E
E
E

CPU
E

E

CPU
CPU
CPU
E

E
E
E
E

CPU

H

E

E

CPU
EMA

CPU
EMA

EMA
CPU
CPU
CPU
EMA

EMA
CPU
CPU
CPU
EMA

HD
HF
HG

FPU
FPU
FPU

E

E

CPU

CPU

uNOTE # 024

Page 6 of 11
Description

Mnemonic
CV'l'BW
CV'l'DB
CVTDF
CV,]~DH
CV,]~DL

CV,]~DW
CV,]~FB
CV,]~FD

CV,]~FG
CV,]~FH

CVTFL
CVTFW
CVTGB
CVTGF
CVTGH
CVTGL
CVTGW
CV~rHB

CVTHD
CVTHF
CVTHG
CVTHL
CVTHW
CVTLB
CVTLD
cv~rLF

CVTLG
CV~rLH
CV~rLP

CV~rLW

MicroVAX
Architecture

MicroVAXI

CPU

" byte to word
Convert
Convert D floating to byte
Convert D-floating to
F floating
Convert D floating to
H floating
Convert D floating to
longw~rd -

MicroVAXI~

CPU

CPU

E
E

HD
HD

FPU

E

E

E

HD

FPU
FPU
FPU
FPU
FPU

FPU
E

Convert D floating
Convert F-floating
Convert F-floating
D floating
Convert F floating
G floating
Convert F floating
H_floating

to word
to byte
to

E
E

HD
HF
HF

to

E

HG

to

E

E

Convert F floating
longword Convert F floating
convert G-floating
Convert G-floating
F floating
convert G floating
H floating

to

E

HF

FPU

to word
to byte
to

E
E
E

HF
HG
HG

FPU
FPU
FPU

to

E

E

Convert G floating
longword Convert G floating
Convert H-floating
Convert H-floating
D floating
convert H floating
F_floating

to

E

HG

FPU

to word
to byte
to

E

HG

FPU

E

E

E
E

E
E

to

E

E

E

E

E

E

E

E

E

Convert H floating to
G floating
Convert H floating to
longword Convert H floating to word
Convert longword to byte
Convert longword to D_floating
Convert
Convert
Convert
Convert
Convert

longword
longword
longword
longword
longword

to
to
to
to
to

F floating
G-floating
H-floating
packed
word

188

E

E

E

E

E

E

CPU

CPU

E

HD

CPU
FPU

E
E
E

HF
HG

FPU
FPU

E

E

E

EMA

CPU

CPU

EMA
CPU

uNOTE # 024
Page 7 of 11
Mnemonic
CVTPL
CVTPS
CVTPT
CVTRDL
CVTRFL
CVTRGL

Description

MicroVAX
Architecture

Convert packed to longworcl
convert packed to leading
separate
Convert packed to trailin9
Convert rounded D_floatin9
to longword
Convert rounded F_floatinq
to longword

CVTTP
CVTWB

Convert rounded G_floatinq
to longword
Convert rounded H_floatinq
to longword
Convert leading separate
to packed
Convert trailing to packed
Convert word to byte

CVTWD
CVTWF
CVTWG
CVTWH
CVTWL

Convert
Convert
Convert
Convert
Convert

DECB
DECL
DECW
DIVB2
DIVB3

Decrement byte
Decrement longword
Decrement word
Divide byte 2-operand
Divide byte 3-operand

DIVD2
DIVD3
DIVF2
DIVF3
DIVG2

Divide
Divide
Divide
Divide
Divide

D floating
D-floating
F-floating
F-floating
G=floating

DIVG3
DIVH2
DIVH3
DIVL2
DIVL3

Divide
Divide
Divide
Divide
Divide

G floating 3-operand
H=floating 2-operand
H-floating 3-operand
longword 2-operand
longword 3-operand

DIVP
DIVW2
DIVW3
EDITPC

Divide packed
Divlde word 2-operand
Divide word 3-operand
Edit packed to character
string
Extended divide

CVTRHL
CVTSP

EDIV

word
word
word
word
word

to
to
to
to
to

o

floatin9
F-floatin9
G-floatin9
H-floatin9
longword

2-operand
3-operand
2-operand
3-operand
2-operand

189

MicroVAXI MicroVAXII

E

EMA
EMA

EMA
EMA

E
E

EMA
HD

EMA
FPU

E

HF

FPU

E

HG

FPU

E

E

E

E

EMA

EMA

E
CPU

EMA
CPU

EMA
CPU

E
E
E
E
CPU

HD
HF
HG
E
CPU

FPU
FPU
FPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

E
E
E
E
E

HD
HD
HF
HF
HG

FPU
FPU
FPU
FPU
FPU

E
E
E
CPU
CPU

HG
E
E
CPU
CPU

FPU
E
E
CPU
CPU

E
CPU
CPU
E

EMA
CPU
CPU
EMA

EMA
CPU
CPU
EMA

CPU

CPU

CPU

E

E

uNOTE # 024
Page B of 11
Mnemonic

MicroVAX
Architecture

Description

MicroVAXI MicroVAXI!
HD
HF
HG

FPU
FPU
FPU

EMODD
EMODF
EMODG
EMC>DH
EMtJL

Extended
Extended
Extended
Extended
Extended

modulus D floating
modulus F-floating
modulus G-floating
modulus H-floating
multiply -

E

E

CPU

CPU

CPU

EX~~V

Extract field
Extract zero extended field
Find first cIear bit
Find first set bit
Halt (kernel mode only)

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

INCB
INCL
INCW
INDEX
INSQHI

Increment byte
Increment longword
Increment word
Index calculation
Insert at head of queue,
interlocked

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

INSQTI

Insert at tail of queue,
interlocked
Insert into queue
Insert field
Jump
Jump to subroutine

CPU

CPU

CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

Load process context (only
legal on interrupt stack)
Locate character
Match characters
Move complemented byte
Move complemented longword

CPU

CPU

CPU

E

H

E

CPU
CPU

EMA
CPU
CPU

EMA
EMA
CPU
CPU

CPU
CPU

CPU
CPU

CPU
CPU

CPU

CPU
HD
HF

CPU
FPU
FPU

HG

FPU

Ex'rzv

FFC
FFS
HAI,T

INSQUE
INSV
JMP
JSB
LDPCTX
LOCC
MATCHC
MCOMB
MCOML

MNEGB
MNEGD
MNEGF

Move complemented word
Move from processor register
(kernel mode only)
Move negated byte
Move negated D floating
Move negated F=floating

MNEGG
MNEGH
.MNEGL
.MNEGW
:MOV,AB

Move
Move
Move
Move
Move

MCOMW
MFPR

negated
negated
negated
negated
address

G floating
H-floating
longword
word
of byte

190

E
E

E
E

E
E

E
E

CPU
CPU
CPU

E

E

CPU
CPU
CPU

CPU
CPU
CPU

uNOTE # 024
Page 9 of 11
;Mnemonic

Description

"

MOVAD
MOVAF
MOVAG
MOVAH
MOVAL

(-MOVAQ)
(-MOVAL)
(-MOVAQ)
(-MOVAO)
Move

MOVAO
MOVAQ
MOVAW
MOVB
MOVC3

MicroVAX
Architecture

MicroVAXI MicroVAXII

Move address of D floating
Move address of F-floating
Move address of G-floating
Move address of H-floating
address of longword

CPU
CPU
CPU
CPU
CPU

Move
Move
Move
Move
Move

address of ocatword
address of quadword
address of word
byte
character 3-operand

E

E

E

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

MOVCS
MOVD
MOVF
MOVG
MOVH

Move
Move
Move
Move
Move

character 5-operand
D floating
F-floating
G-floating
H:=floating

CPU

CPU
HD
HF
HG

CPU
FPU
FPU
FPU

E

E

MOVL
MOVO
MOVP
MOVPSL

Move longword
Move octaword
Move packed
Move processor status
longword
Move quadword

CPU

CPU

CPU

E
E

E

E

CPU

EMA
CPU

EMA
CPU

CPU

CPU

CPU

E

E

EMA
EMA

EMA
EMA

CPU
CPU

CPU
CPU

CPU
CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU
CPU

CPU
CPU
HD

CPU
CPU
FPU

HD
HF
HF
HG
HG

FPU
FPU
FPU
FPU
FPU

MOVQ
MOVTC
MOVTUC
MOVW
MOVZBL
MOVZBW

Move translated characters
Move translated until
character
Move word
Move zero-extended byte to
longword
Move zero-extended byte to
word

MULB2
MULB3
MULD2

Move zero-extended word to
longword
Move to processor register
(kernel mode only)
Multiply byte 2-operand
Multiply byte 3-operand
Multiply D_floating 2-operand

MULD3
MULF2
MULF3
MULG2
MULG3

Multiply
Multiply
Multiply
Multiply
Multiply

MOVZWL
MTPR

D floating
F-floating
F-floating
G-floating
G:=floating

3-operand
2-operand
3-operand
2-operand
3-operand

191

E
E

E
E

E
E
E

E
E
E

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

uNOTE # 024
Page 1.0 of 11
MicroVAX
Architecture

Description
MULH2
MUI,H3
MUI,L2
MUI,L3
MUI,P

Multiply
Multiply
Multiply
Multiply
Multiply

MUI,w2
MULW3
NOP
POLYD
POLYF
POI,YG
POI,YH
POPR
PROBER
PROBEW
PUSHAB
PUSHAD
PUSHAF
PUSHAG
PUSHAH

H_floating 2-operand
H floating 3-operand
longword 2-operand
longword 3-operand
packed

MicroVAX:r MicroVAXI

E
E

E
E

E

CPU
CPU

CPU
CPU

CPU
CPU

E

EM

EM

Multiply word 2-operand
Multiply word 3-operand
No operation
Evaluate polynomial D floating
Evaluate polynomial F=floating

CPU
CPU
CPU

CPU
CPU
CPU
HD
HF

CPU
CPU
CPU
FPU
FPU

Evaluate polynomial G floating
Evaluate polynomial H=floating
Pop registers
Probe read access
Probe write access

E
E

HG

FPU

Push address of byte
(-PUSHAQ) Push address of
(=PUSHAL) Push address of
(=PUSHAQ) Push address of
(=PUSHAO) Push address of

E

E

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

CPU
F-floating CPU
G-floating CPU
H=floating CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU

CPU

CPU

E

E

E

CPU
CPU
CPU

CPU
CPU
CPU

CPU
CPU
CPU

0 floating CPU

PUSHAL
PUSHAO
PUSHAQ
PUS HAW
PUSHL

Push
Push
Push
Push
Push

PUSHR
REI

Push registers
Return from exception or
interrupt
Remove from head of queue,
interlocked
Remove from tail of queue,
interlocked
Remove from queue

CPU
CPU

CPU
CPU

CPU
CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

Return from procedure
Rotate longword
.
Return from subroutine
Subtract with carry
Scan for character

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

E

H

CPU
CPU
CPU
CPU
EMA

REMQHI
REZVIQTI
REZVIQUE
RE'l~
RO'l~L

RSB
SBWC
SCANC

address of
address of
address of
address of
longword

E
E

E

longword
ocatword
quadword
word

192

uNOTE i 024
Page 11 of 11
Mnemonic

Description

MicroVAX
Architecture

SPANC
SUBB2

Skip character
Subtract one and branch
on greater or equal
Subtract one and branch
on greater
Span characters
Subtract byte 2-operand

SUBB3
SUBD2
SUBD3
SUBF2
SUBF3

Subtract
Subtract
Subtract
Subtract
Subtract

SUBG2
SUBG3
SUBH2
SUBH3
SUBL2

SKPC
SOBGEQ
SOBGTR

MicroVAXI MicroVAXII

E

H

CPU

CPU

EMA
CPU

CPU

CPU

CPU

E

H

CPU

CPU

EMA
CPU

byte 3-operand
D floating 2-operand
D-floating 3-operand
F-floating 2-operand
F=floating 3-operand

CPU

CPU
HD
HD
HF
HF

CPU
FPU
FPU
FPU
FJ?U

Subtract
Subtract
Subtract
Subtract
Subtract

G floating 2-operand
G-floating 3-operand
H=floating 2-operand
H floating 3-operand
longword 2-operand

E
E
E
E

HG
HG

FPU
FPU

SUBL3
SUBP4
SUBP6
SUBW2
SUBW3

Subtract
Subtract
Subtract
Subtract
Subtract

longword 3-operand
packed 4-operand
packed 6-operand
word 2-operand
word 3-operand

SVPCTX
TSTB
TSTD
TSTF
TSTG

Save
mode
Test
Test
Test
Test

TSTH
TSTL
TSTW
XFC
XORB2

Test H floating
Test longword
Test word
Extended function call
Exclusive OR byte 2-operand

XORB3
XORL2
XORL3
XORW2
XORW3

Exclusive
Exclusive
Exclusive
Exclusive
ExcThsive

process context (kernel
only)
byte
D floating
F-floating
G=floating

O~

OR
OR
OR
OR

byte 3-operand
longword 2-operand
longword 3-operand
word 2-operand
word 3-oper'and

193

E
E
E
E

E
E

E
E

CPU

CPU

CPU

CPU
CPU
CPU

CPU
EMA
EMA
CPU
CPU

CPU
EMA
EMA
CPU
CPU

CPU

CPU

CPU

CPU

CPU
HD
HF
HG

CPU
FPU
FPU
FPU

E
E

E
E
E
E

E

E

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

CPU
CPU
CPU
CPU
CPU

194

uNOTE # 025

Title:

FPJ11-AA Compatibility with the
LSI-11/73 (KlDJ11-A)

Date: 28-APR-85

1---'

Originator: Mike Collins

Page 1 of 2

Early LSI-11/73 (KDJ11-A) modules are incompatible with the FPJ11-AA
floating point accelerator.
This MicroNote describes how to identify
those modules which are compatiblf~ and those which are not compatible
with the FPJ11-AA.
The following information refers to two identifying numbers.
the module variation and the module revision.
The module variation number is stamped onto the end of
handles.
It will be 'M8192', 'M8192-YB' or 'M8192-YC'.

They
the

are

plastic

The module revision number can be found on side two of the module
(noncomponent side)
stamped int:o the plastic handle, or written with
indelible ink. This number is updated as the board is ECO'd.
The
designation is a number followed by the module revision.
e.g.
441 C1,
indicates module revision C1.
The first LSI-11/73 module is called a KDJ11-AA and is incompatible with
the FPJ11-AA.
The module variation for the KDJ11-AA is M8192, and the
module revision number is C1.
The KDJ11-AA can be upgraded to be
FPJ11-AA compatible. contact thE~ local DEC office for more information
concerning the upgrade procedure.
Two new options have been created.
The KDJ11-AB is a module which is
fully compatible with the FPJl1-AA.
The module variation for the
KDJ11-AB is M8192-YB, and the module revision number is A1 or A2.
The third option is called a KDJ11-AC and is used for fully compatible
modules which have FPJ11-AAs installed onto the board by Digital.
It
has a module variation of M8192-YC and the module revision number is A1
or A2.
Therefore a KDJ11-AB becomes a KDJ11-AC by simply installing an
FPJ11-AA.

195

uNOTE 41: 025
Page 2 of 2
The following table summarizes the above information and should be
used as a 'quick check' for FPJ11-AA compatibility.
OPTION

MODULE
VARIATION

MODULE
REVISION

KDJ1l-AA

M8192

C1

KDJll-AB

M8192-YB

A1 or A2

KDJ1l-AC

M8192-YC

A1 or A2

FPJ11 COMPATIBLE?
NO (But upgradeable)
YES
YES (FPJll-AA Installed)

L....--.

CAUTION
An FPJ1l-AA installed on a KDJll-AA may APPEAR
but cache errors and parity errors may occur.

to

work

An MXV11-BF must be REV C to be compatible with a
KDJ1l-A with an FPJll-AA (KDJ1l-AC). Earlier versions
of the MXV11-BF are incompatible
with
KDJ11-ACs.
KDJ11-As without FPJ11-AAs are compatible with all
versions of the MXV11-BF.
The MCV11-D is incompatible with KDJ1l-ACs.
KDJll-As
without FPJll-AAs are compatible with all versions of
the MCV1l-D.

196

uNOTE # 026

Title:

The MicroVAX II CPU Multicomputing
Capability

Date: 28-JUN-85
Page 1 of 14

Originator: Mike Collins

The MicroVAX II CPU may be configured as an arbiter CPU or as one of
three auxiliary CPU's.
Therefore it is possible to configure a Q-bus
system with multiple MicroVAX II CPUs.
This 'multicomputing' capability
is the topic of this MicroNote.
Multicomputing Introduction
The multi computing capability is a hardware design feature of the
MicroVAX II.
It allows a maximum of four MicroVAX II CPUs to reside on
the same O-bus.
Figure 1 below is a block diagram which shows how 2 of
a possible 4 CPUs may be configured on the bus. One of the processors
will be the arbiter and the others will be auxiliaries.
NOTE
There is no shared memory between processors,
therefore
this system should not be considered as symmetrical
multiprocessing.
Each processor may use expansion memory modules provided that there are
sufficient O/CO slots in the backplane.
See the configuration section
for more detail on the configuration rules.

I
Arbiter
Processor

I

I
Auxiliary
Processor
#1

[ Memory

Q-bus
Figure 1 - Multicomputirtg Configuration

197

I
Memory

uNOTE # 026
Page 2 of 14
CAUTION
Digital's 32-bit operating systems DO NOT support the
multicomputing feature.
Users who wish to customize
their systems to take advantage of the multicomputing
capability may do so but are responsible for designing
the software system.
The following topics which are pertinent to
will be described in detail:

the

1.

MicroVAX II Memory System

2.

Interprocessor Communications Register

3.

Arbiter/auxiliary Processor Differences

4.

Bootstrapping an Auxiliary Processor

5.

Configuration Rules

mUlticomputing

design

REFERENCES
The MicroVAX 630 CPU
Module
User's
Guide
(PIN
EK-KA630-UG)
and MicroNote #22 have more detailed
information on all aspects of the MicroVAX II CPU and
memory system.
MicroVAX II Memory System
Before describing the details of the multi computing feature
:necessary to understand the memory system of a MicroVAX II.

it

is

'The memory system of the MicroVAX II is unique. Unlike previous Q-bus
processors, the memory modules do not communicate to the CPU over the
Q-bus. Instead, the communication and transfers occur over a dedicated,
closely coupled interconnect.
This design allows for very fast reads
and writes to memory (400 nsec). Not only are the transfers very fast,
but none of this CPU-memory activity appears on the Q-bus. Therefore
the Q-bus is strictly for I/O.
Since memory is not directly on the Q-bus it is necessary to allow DMA
devices on the Q-bus to access memory. This feature is called the Q-bus
I/O map. It is a mechanism which maps Q-bus addresses (22-bit physical
address) to th~ local memory system of a MicroVAX II (24-bit physical
address). This same concept is used on larger UNIBUS based VAXes.
When one. or more auxiliary processors are added to a system, remember
that each has its own local memory system. Therefore it is intended
that they will each operate out of their own memory.
This design is

198

uNOTE # 026
Page 3 of 14
well suited for applications which can be easily partitioned between
multiple processors such that only messages are passed between them.
It would be possible for a process()r to operate out of memory on the
Q-bus but this would be unconvE~ntional from a systems standpoint and
would decrease system performance significantly.
Digital's operating
systems do not support the use of standard Q-bus memories in a MicroVAX
II.
With only one processor on the Q-bus, the system software has complete
control over DMA transfers. The software controls the contents of the
Q-bus map registers. First, it determines whether the register is
enabled and second, if it is enabled, where the DMA transfers are
directed in the local memory system.
In a multiple processor configuration (since each has its own set of
Q-bus I/O map registers) it is now possible for multiple map registers
to respond to a single a-bus addrel;s. It is the responsibility of the
system software running on each processor to cooperate and assure that
one and only one map register will respond to any Q-bus address.
Otherwise multiple memory locations may respond and the results are
indeterminate (i.e. multiple BRPLYs on the Q-bus for a single address).
A similar situation occurs if standard Q-bus memories are added to a
The system software is again responsible for
MicroVAX II system.
assuring that for any address on the Q-bus which is 'shared' by a Q-bus
memory board and a a-bus I/O map register, the map register is disabled
to allow only a Q-bus memory reply.
Q-bus memories would not be added to 'typical' systems.
However there
are some special applications which may req~ire this capability. For
example, a graphics system where the Q-bus memory is the bit map of a
graphics display.
On power-up, the MicroVAX II boot :ROM will check for the presence of
Q-bus memory and clear the valid bits of the corresponding mapping
registers. This will prevent the ,above situation from occurring as long
as the system software does not alter the state of these valid bits at a
later time.
Interprocessor Communications Register
The interprocessor communications register (ICR) is
the
primary
mechanism of the MicroVAX II CPU which enables multiple processors to
cooperate and reside on the same Q-bus. Figure 3 describes the ICR and
the bit definitions.

199

uNOT!= # 026
Page 4 of 14
The ICR provides the following four functions:
1.

Any processor on the bus may interrupt another without using
the Q-bus interrupt lines.
This is done by setting the
appropriate bit in the ICR of the second processor.
The CPU
will then interrupt at IPL 14 (HEX) with an interrupt vector of
204 (HEX).

2.

The ICR also has a bit which controls external access to local
memory via the Q-bus map. When set this bit allows external
devices to access the local memory system.
When reset, this
bit prevents the local memory system from responding to any
Q-bus address references.

3.

If a processor is an auxiliary then the ICR provides a
mechanism which allows it to be halted by other CPUs. This
feature is used at power-up to coordinate the bootstrap
process.

4.

Parity errors are identified when one occurs during accesses to
the MicroVAX II's local memory.

The address for the ICR is located in the Q-bus I/O page address space
and may be accessed by any device which can become Q-bus master. The
ICR is byte-addressable.
Si.nce it is possible to put a maximum of 4 MicroVAX II CPUs on one Q-bus
they each have their own unique ICR. Table 1 lists each processor and
the associated ICR address.
Table 1 - Interprocessor Communication Register Address Assignments
Processor

22-bit Octal Address

32-bit Hexadecimal Address

Arbiter

17 777 500

2000 1F40

Auxiliary #1

17 777 502

2000 1F42

Auxiliary #2

17 777 504

2000 1F44

Auxiliary #3

17 777 506

2000 1F46

200

uNOTE # 026
Page 5 of 14
111 1 1
5 4 321

DMA QPE

I I
I

1
0

000 0 0 0

9

8

7

6

5

4

I I I I I

321

o

0 0 0

0

I I

AUX HLT
OBI IE
LM EAE
OBI RO
Figure 3 - Interprocessor Communications Register
Bit(s) Mnemonic
<15>

Meaning
DMA 022-Bus Address Space Parity Error.
This read-only bit is set if Memory System
Error Register bit <04> (DMA OPE) is set.
The DMA QPE bit indicates that a parity
error occurred when an external device (or
CPU) was accessing the MicroVAX II CPU
local memory.

DMA OPE

Unused.

<14:09>
<08>

Auxiliary Halt. On an auxiliary MicroVAX,
AUX HLT is a read-write bit. When set,
typically by the arbiter CPU, it causes
the on-board CPU to transfer program
control to the Halt Mode ROM Code. On
an 'arbiter MicroVAX II, AUX HLT is a
read-only bit which always reads as zero.
It has no effect on arbiter CPU operation.

AUX HLT

Unused.

<07>
<06>

OBI IE

<05>

LM EAE

Read as zeros.

Read as zero.

Doorbell Interrupt Enable. This bit, when
set, enables interprocessor doorbell
interrupt requests via ICR <00>. When the
on-board CPU is Q22-Bus master, OBI IE
is a read-write bit. When an external
device (or CPU) is bus master, OBI IE
is a read-only bit. OBI IE is cleared
by power up, by the negation of DCOK and
by writes to the Bus Initialize Register.
Local Memory External Ac.cess Enable. This
bit, when set, enables external access to

201

uNOTE # 026
page 6 of 14
local memory (via the Q22-BUS map). When
the on-board CPU is Q22-Bus master, LM EAE
is a read-write bit. When an external
device (or CPU) is bus master, LM EAE is
a read-only bit. LM EAE is cleared by
power up, by the negation of DCOK and
by writes to the Bus Initialize Register.
Unused.

<04:01>
<00>

OBI RQ

Read as zeros.

Doorbell Interrupt Request. If ICR <06>
(OBI IE) is set, writing a "1" to OBI RQ
sets OBI RQ, thus requesting a doorbell
interrupt. If ICR <06> is clear, writing
a "1" to OBI RQ has no effect. Writing a
"0" to OBI RQ has no effect. OBI RQ is
cleared when the CPU grants the doorbell
interrupt request. OBI RQ is held clear
whenever OBI IE is clear.

When a processor is interrupted via its ICR the interrupt vector is 204
(He,). This vector is used when the interrupting device is the arbiter,
auxiliary #1, auxiliary #2, auxiliary #3, or any device which may become
Q-bus master.
Therefore it is the responsibility of the interrupt
service routine to determine which device caused the interrupt since the
same vector is used no matter what device set the OBI RQ bit. This
interrupt occurs at the same interrupt priority level (IPL) as IRQ4 on
the Q-bus.
NOTE
Following such an interrupt, the MicroVAX II sets the
IPL to 14 (Hex). This is different from what happens
after a standard Q-bus interrupt.
When
a
Q-bus
interrupt occurs on IRQ4, the processor raises the IPL
to 17 (Hex) and it is the responsibility of the
interrupt service routine to lower the IPL later on.
Arbiter/Auxiliary Processor Differences
There are several differences between arbiter and auxiliary
It is important to understand these differences when
multiple process~rs into a system.
1.

processors.
configuring

The arbiter MicroVAX II arbitrates bus mastership in accordance
with the Q22-Bus DMA protocol.
The arbitration logic is
disabled on an auxiliary MicroVAX II.

202

uNOTE # 026
Page 7 of 14
2.

Bot.h the arbiter and aux:iliary MicroVAX II
mastership via the Q22-BuS DMA Request protocol.

request

bus

a.

They both assert BDMR on the Q22-Bus.

b.

The arbiter MicroVAX II receives DMGI from its arbitration
logic.
But an auxiliary receives DMGI from its Q22-Bus
BDMGI pin.

c.

Only the auxiliary MicroVAX II actually
the Q22-Bus.

asserts

BSACK

on

3.

The arbiter MicroVAX II asserts the Q22-Bus BINIT signal when
DCOK is negated and when its CPU software writes to its Bus
Initialize Register. An auxiliary MicroVAX II never asserts
Q22-Bus BINIT, but receives BINIT and uses it to initialize the
MicroVAX chip and to clear all internal registers which are
cleared by the negation of DeOK.

4.

The physical address of the Interprocessor
Communication
Register is different for each of the four MicroVAX II
arbiter/auxiliary configurations.

s.

An auxiliary MicroVAX II can be halted by setting bit <08> (AUX
HLT) of its Interprocessor Communication Register.
On an
arbiter MicroVAX II this feature is disabled and AUX HLT is a
read-only bit which always reads as zero.

6.

The CPU halts are controlled by the external connector HLT ENB
input.
However, the external halts which are affected differ
somewhat for the arbiter and auxiliary MicroVAX II modules. If
the HLT ENB signal is assert'ed (low) the a MicroVAX II CPU will
halt and enter the console program if:
a.

The program executes a halt instruction in kernel mode.

b.

The console detects a break character.

c.

Arbiter CPU only - the Q-bus halt line is asserted.

d.

Auxiliary CPU only
the
Register AUX HLT bit is set.

Interprocessor

Communication

If the HLT ENB signal is negated then:
a.

~he halt line and break character are ignored and
the ROM
program responds to a halt instruction by restarting or
rebooting the system.

203

uNOTE # 026
Page 8 of 14
b.

If the MicroVAX CPU is an
responds to the assertion
rebooting.

auxiliary, the ROM program
of the ICR AUX HLT bit by

The state of the HLT ENB bit can be read by
Boot and Diagnostic Register.

software

via

the

7.

field
Each arbiter or auxiliary MicroVAX II module can
interrupt requests from its interval time r, from its console
device, and from its interprocessor doorbell. Only the arbiter
MicroVAX II can field interrupts from Q22-Bus interrupt request
lines IRQ7-4.

8.

The arbiter asserts BIAKO on the Q22-Bus when it responds to a
Q22-Bus interrupt request. An auxiliary asserts BIAKO on the
Q22-Bus when it receives the assertion of BIAKI in order to
pass it through to devices after it.

9.

Although both the arbiter and auxiliary MicroVAX II modules
contain
the same time-of-year clock and battery back-up
circuitry, it is assumed that the auxiliary will be configured
without batteries and that its clock will never actually be
enabled. This configuration will ensure a single time base for
the system.
If an auxiliary needs to set its time-of-year
clock it can do so by referencing the arbiter's clock.

10.

An arbiter processor can bootstrap from a variety of devices
but an auxili~ry will always boot using the ROM bootstrap
protocol. See the following section for a detailed description
of the bootstrap process.
Bootstrapping an Auxiliary Processor

Since there are distinct differences
capabilities of arbiter and auxiliary
bootstrap them differently. An arbiter
conventional manner from one of several
using only one method.

204

between the
operation
and
processors, it is necessary to
processor bootstraps in the
devices but an auxiliary boots

uNOTE # 026
Page 9 of 14
On power-up both processors initialize themselves and perform some self
tests. At this point the primary bootstrap (VMB) begins to execute. An
arbiter processor may bootstrap from anyone of the following devices:
1.

DU type device (RX50, RDxx, RC25 or RAxx)

2.

TK50 tape

3.

ROM

4.

Ethernet (DEQNA)

bootstrap protocol

An auxiliary processor will not attempt to boot from disk, tape or
ethernet.
It will always boot via the ROM bootstrap protocol, which is
described below.
In order to synchronize the bootstrap process, after power-up and
initialization an auxiliary process,or will not boot until it is allowed
to do so by the arbiter. The contrclliing device is not required to be
the arbiter, it could be another auxiliary or DMA device which is bus
master, but it is the most logical point of control.
The following steps summarize the bootstrap procedure for a system
an arbiter and one (or more) auxiliaries:

with

1.

Both types of processors initialize themselves after power-up.

2.

Self-diagnostics execute tC) check out

3.

The arbiter boots from one of
above.

4.

cpu.

the

major

four

sections

device

types

of

the

listed

a.

While the arbiter is booting the auxiliary completes
diagnostics and waits to start its bootstrap process.

its

b.

The auxiliary clears the valid bit in each of its Q-bus map
registers to prevent accidental transfers to or from its
local memory.

c.

The auxiliary loops doing nothing until the AUX HLT bit in
its ICR is cleared. When this bit is finally cleared, the
auxiliary boots via the ROM bootstrap protocol.

Some~here in the system thE! appropriate data structure has been
created to allow the au~(iliary to boot via the ROM bootstrap
protocol. This can be done several ways:

205

uNOTE # 026
Page 10 of 14

5.

a.

The bootstrap code is actually in ROM on an MRV11-D module.

b.

The bootstrap code is loaded into non-volatile RAM.

c.

The arbiter ·CPU loads the bootstrap code into its own local
memory then sets up some Q-bus map registers so that this
data can be seen by the auxiliary CPU over the Q-bus.
This
method is the most flexible since the bootstrap code can be
changed easily.

'When the arbiter is ready and knows auxiliary boot code is
available, it allows the auxiliary CPU to bootstrap by clearing
the AUX HLT bit in its ICR.

ROM Bootstrap Protocol.
To locate a PROM bootstrap, VMB searches the Q22-bus address range from
high to low addresses by page (512 bytes per page) looking for readable
memory.
If the first six longwords of any such page contains a valid
PROM "signature block"
(see figure 4), VMB passes control directly to
the bootstrap code in the PROM, it does not copy the PROM code to local
memory for execution as it does for all other secondary bootstraps.
Note that while defined as an MRV11 PROM or equivalent bootstrap, VMB
does not actually require that the signature block or the bootstrap code
be in PROM.
It could be in ROM, nonvolatile RAM or it could be loaded
into another MicroVAX II's RAM and mapped to the Q22-bus thus enabling
an auxiliary to see it.
RB:
+

0:

+

4:

+

8:

check byte

I

any value

any value

0

18 (hex)

1

0

size of PROM in pages

+ 12:

must be zero

+ 16:

offset into PROM to start execution

+ 20:

sum of previous three longwords
Figure 4:

PROM Bootstrap Memory Format

RB + 0:

This byte must be 18 (hex).

RB + 1:

This byte must be O.

RB + 2:

This byte may be any value.

206

uNOTE # 026
Page 11 of 14
RB + 3:

This byte must be the ones complement of the sum
of the previous three bytes.

RB + 4 :

This byte must be zero.

RB + 5:

This byte must be 1.

RB + 6:

These two bytes may be any value.

RB + 8:

This longword contains the size in pages of
PROM.

RB + 12:

This longword must be zero.

RB + 16:

This longword contains the byte offset into
PROM where execution is to begin.

RB + 20:

This entry is a longword containing the
the previous three longwords.

the

the

sum

of

Configuration Rules
In order to configure multiple Micro,VAX II CPUs onto one bus,
must be addressed:

4

issues

1.

Q-bus slot requirements for the CPU and MS630 memory boards.

2.

Compatible enclosures or boxes.

3.

Bus termination.

4.

Using a POP-11 CPU as the Arbiter.

1. Q-bus slot requirements.
To operate properly both the MicroVJl~X II CPU and all versions of the
MS630 memory modules MUST be insertE!d in Q-bus slots which feature Q-bus
signals on the A/B side and the CO interconnect on the C/O side.
The
MicroVAX II CPU and any expansion mE!mory modules must all be adjacent in
the backplane.
WARNING
The MicroVAX II CPU WILL be damaged if inserted
slot tAhich has Q-bus signals on the C/O side.

207

into

a

uNOTE # 026
Page 12 of 14
2. Compatible enclosures or boxes.
Since O/CD slots are required, there are only
compatible with these modules. They are:

4

enclosures

which

are

a.

BA23 (8 slots total, first 3 are O/CD)

b.

BA123 (12 slots total, first 4 are O/CD)

c.

BA11-S (9 slots total, all 9 are Q/CD)

d.

BA11-N (9 slots total, all 9 are Q/CD) This enclosure is
electrically compatible but since it is older it is only 1S-bit
compatible and has not been tested for FCC compliance in a
system package.
Since the BA11-S is the 22-bit, updated
version, the BA11-N enclosure is not recommended.

3. Bus termination.
Each MicroVAX II processor has 240 ohm termination. When multiple CPUs
are
placed
into one system,
take care to abide by the Q-bus
specification regarding termination and configuring
multiple
box
systems.
REFERENCE
Reference MicroNote #29,
entitled 'Q-bus
Expansion
Concepts' and appendix A of the Microsystems Handbook
(P/N EB-26085-41) for more information concerning Q-bus
configuration rules.
The BA11-S enclosures are best suited for multiple CPUs because they
have backplanes with the Q22/CD configuration in all slots. Therefore
multiple CPUs and expansion memory can be accommodated most easily. The
other potential boxes, the BA23 and BA123, are not as flexible because
they only have 3 and 4 Q22/CD slots respectively.
When using multiple MicroVAX II CPUs in one system the goal should be to
configure each backplane with 120 ohm termination if the number of
backplanes used is one or two.
In the three backplane case, only the
first and third backplanes should have 120 ohm termination.
This
implies that no MicroVAX II CPUs should be configured into the middle
backplane of a three backplane system (three backplanes is the maximum
number allowed for the Q-bus).
'rhe following configurations assume the BA11-S enclosures will be used.
Two CPU System:
A two CPU system is the easiest case to configure.
As mentioned
earlier,
each CPU has 240 ohm termination. With two CPUs in the same

208

uNOTE # 026
Page 13 of 14

backplane, the proper overall termination of 120 ohms is achieved.
The
first CPU has 240 ohms in parallel ~7ith 240 ohms on the second CPU which
is 120 ohms, assuming there is no tE!rmination on the backplane (which is
true for the BA11-S enclosure).
Three CPU System:
A three CPU system should be configured in 2 backplanes to maintain 120
ohm termination in each. The first 2 CPUs should be configured in the
first box which terminates that backplane properly as in the case above.
The third CPU should be· placed in the second backplane. The modules of
the expansion cable set must be terminated differently. The module of
the expansion cable set in the first backplane should add no additional
termination to the system while thE! module in the second backplane
should be terminated with 240 ohms. Therefore the second backplane is
also terminated in 120 ohm (240 on the processor in parallel with 240 on
the expansion module).
Four CPU System:
A four CPU system should also be configured in 2 backplanes. The first
backplane will have 2 CPUs for 120 ohm termination and the second
backplane will also have 2 CPUs fc)r 120 ohm termination.
But the
expansion cable set connecting thE! two backplanes will not be the same
as in the three CPU system. In this case there should be no termination
on either of the expansion modules.
These same basic rules should be followed if the BA23 enclosure is used.
However the configurations beCOmE! more constrained because of the
relatively few number of Q/CD slots.
The configuration also becomes
more complicated because the BA23 has built in termination on the
backplane (termination resistors arE! socketed and therefore removable).
4. Using a PDP-11 CPU as the Arbiter.
The arbi ter can be a Q-bus PDP-11 CE)U as well as a MicroVAX II CPU.
In
this configuration only the 3 auxiliary MicroVAXes could be added to the
system. Although there are tremendous architectural differences between
a PDP-11 and MicroVAX CPU, they both perform the arbiter function on the
Q-bus and therefore such a configuration is possible. Two issues arise
from this 'mixed' configuration.
1.

All Q-bus PDP-11s to-date have their main memory on the Q-bus.
In
order to talk to an auxiliary MicroVAX CPU's local memory, part of
the Q-bus physical address spacE~ must be reserved for mapping to
that local memory.

2.

The PDP-11 processor will not have an interprocessor communication
register because that featurE~ is unique to the MicroVAX II CPU.
Therefore, if it is necessary to have the capability for an
auxiliary CPU to interrupt the arbiter, an additional device must be
added to the system. This device will look like the interprocessor

209

uNOTE i 026
Page 14 of 14
communication register for an arbiter and will convert and ICR
interrupt into a conventional Q-bus interrupt (there
is
no
capability which allows an auxiliary to interrupt the arbiter via
the standard Q-bus interrupt protocol).

210

uNOTE # 027

Title: USING MESSAGES WITH VAXELN

Date: 28-JUN-85

Originator: Christopher DeMers

Page 1 of 5

This Micronote discusses how VP.. XELN uses messages for
inter-job
communication.
Included is an overview of the message architecture,
benchmark data from MicroVAX II configurations and a sample program
illustrating the m~ssage handling technique.
In a VAXELN application, every job(Pascal,C or Macro-32 program)
has a
unique and protected virtual addrE~ss space. Within a single processor,
the kernel separates each job's virtual address space using the VAX
memory management hardware.
Within a network,
each job's virtual
address space is separated by virtue of the fact that the jobs may exist
in the memories of different computer systems.
One of the principal reasons for dividing an application into separate
jobs is to aid the migration and distribution of the jobs within the
network.
In order for the jobs to work together on the
same
application, they must be able to share data, but the only way of moving
data from the memory of one processor to another in a network is by
packaging the data in a message and directing the network hardware to
move the message to the destination memory.
To make the network movement of data between jobs the same as in the
non-network case, messa~e passing is the principal means of inter-job
communication. The kernel provides a number of facilities to make an
efficient and transparent means of communication.
The VAXELN MESSAGE object describes a block of memory that can be moved
from one job's virtual address space to another's.
The block of memory
is called 'message data' and is allocated dynamically by the kernel from
physically contiguous, page-alignE~d blocks of memory. A MESSAGE object
and its associated message data are both created by calling the
CREATE MESSAGE kernel service.
Message data is mapped into a job's PO virtual address space, so it is
potentially accessible to all the processes in the job.
If a message is
sent to a job on the sending job's local node, the kernel unmaps the

211

uNOTE # 027
Page 2 of 5
message data from the sending job's virtual address space and remaps it
into the receiver's space.
Instead of moving the data, page Table
Entries are remapped, resulting in very fast message transmission time.
If a message is sent to a remote node, the kernel again unmaps the
message data, but it remaps it into the appropriate network device
driver job to send the message to the remote system.
The reverse
operations then cause the message data to be remapped in the receiver's
space.
The code necessary to send a message local to a machine or over the
network is identical in both cases.
A port name table parameter
(NAME$LOCAL or NAME$UNIVERSAL) allows the programmer to define local or
remote ports.
The kernel maintains the local name list, while the name
table for network-wide names is maintained by the name server.
Names
known throughout the network are guaranteed to be unique.
Thus, jobs
can initially be executed on one processor and later be segmented to run
on multiple processors without modification of the program.
Datagrams and Circuits
Messages can be used two ways to transmit data:
- One process can obtain the value of a port anywhere in the system
(including other jobs) or in a different system running on a different
Ethernet node.
The process can send the port a message with the SEND
procedure.
This is called the datagram method.
- Any two ports (usually in different jobs) can be bound together to
form a circuit.
In this case, having established the circuit, the
sending process has one port of its own bound to another port, which
usually is in a different job or on a different network node.
The
sender sends the message to its own port, and it is routed automatically
to the other port in the circuit.
Processes can both send to and
receive from a circuit port.
In the datagram method, as well as in the circuit method, a process can
uSle the WAIT procedures to wai t for the receipt of a message on the
specified port.
The datagram method requires no connection sequence as in circuits, but
cannot guarantee that a message is actually received at the destination.
However, it does guarantee that received messages are correct.
At the cost of setting up and handling a circuit connection,
offer several advantages over the basic datagram method:

circuits

- Guaranteed delivery.
The circuit method guarantees that either the
message arrives at the destination port regardless of its location, or
that the sender is notified that the message could not be delivered.

212

uNOTE # 027
Page 3 of 5
- Flow control.
You can prevent a sending process from sending too many
messages to a slower rece1v1ng process.
If a port is connected in a
circuit and is full, the sender is put into the waiting state until the
port is no longer full (you can override this default).
The implicit
waiting performed by the SEND procedure evens the flow of messages
between the transmitting process and the receiving process without
having to explicitly program for the condition.
Furthermore,
circuits
guarantee the sequence of message delivery as no other unconnected port
can send a message to a connected port.
- Segmentation. Message can have any length (datagrams are limited to
approx.
1500 bytes),
and, if the transmission is across the network,
the network services will divide the message into segments of the proper
length,
transmit the segments and reassemble them at the destination
node.
- User interface via Pascal I/O routines.
The OPEN procedure permits
you to 'open' a circuit as if it were a file and to use the I/O routines
such as READ and WRITE to transmit messages.
There is no performance penalty with circuits for messages transmitted
over the same network node and very little over the network.
For full
generality, programs should assume that the sending and receiving jobs
may be distributed on different nodes in a network.
Circuits are the
preferred means of sending message in almost every practical case.
Expedited Messages
An expedited message bypasses the normal flow-control mechanism and can
be sent even if the receiving port already has its maximum number of
messages.
The message is received by the port before any normal data
messages.
The size of an expedited message is limited to a maximum of
16 bytes.
Monitoring Network Integrity
Circuits can be used as a method for monitoring the status of a network
connection.
In addition to the circuit used to send data, another
process could establish a secondslry circuit with a process in a
remote
node.
Neither process sends data, they only WAIT on their respective
ports. When a node fails,
the circuit is broken and the WAIT is
satisfied.
At this point exception handling routines could be invoked
to handle this condition.
This clllows the programmer to separate the
error handling code from the ~essage transmission code.

213

uNOTE # 027
Page 4 of 5
Connecting with VAX/VMS nodes
The VAXELN procedure CONNECT CIRCUIT can be used to request a
with a VAX/VMS program on the same DECnet network.
Instead
port as the destination for the connection, a VMS node and
name
(program name on the VMS node) is used.
The program
node completes the connection by opening the "file" SYS$NET.

connection
of using a
an object
on the VMS

A 'VAX/VMS node may also request a connection by specifying a node name
and port name in the file portion of an OPEN statement. The VAXELN node
complete the connection by issuing an ACCEPT CIRCUIT statement.
Performance Data
MicroVAX II, 5MB memory, connection via circuit
All times in microseconds (us).
Throughput in thousand bytes/second(KB/s).
Delivery
Me ssage Size Create Delete
One Machine
Two Machines
( bytes)
Time
Time Time Throughput Time Throughput
0
5 12
20 48
81 92

131
361
450
481

144
255
274
394

1094
1611
1885
2139

N/A
318
1087
3830

214

4479
5271
8675
27538

N/A
97
236
298

uNOTE # 027
Page 5 of 5
PROGRAM msgsend(INPUT,OUTPUT)i
{++

{ This program connects a circuit to the global name 'msgrecv',
{ sends a message to the receiver and waits for a reply.

{-}

VAR

send port,reply port: PORTi
MESSAGE;
msg data ptr:
"'VARYING STRING(20);
repTy_data_ptr:
"'VARYING=STRING(10);
msg,~eply:

BEGIN
CREATE PORT(send port);
CONNECT CIRCUIT(send port, destination name := 'msgrecv');
CREATE MESSAGE(msg,msg data ptr);
msg data ptr'" := 'messige f~om msgsend';
SEND(msg~send port);
WAIT ANY(send-port);
RECEIVE(reply~reply data ptr,send port);
DELETE(reply);
DISCONNECT CIRCUIT(send port);
END; { progrim msgsend } PROGRAM msgrecv (INPUT,OUTPUT);
{++

{ This module runs a receive program that accepts a circuit,receives
{ a message and sends back a reply.

{-}
VAR
reply_port:
nam:
msg,reply:
msg data ptr:
repl"y_data_ptr:

PORT;
NAME;
MESSAGE;
"'VARYING STRING(20);
"'VARYING=STRING(20);

BEGIN
CREATE PORT(reply port);
CREATE-NAME(nam,'msgrecv',reply port,table :- name$universal);
INITIALIZATION DONE;
ACCEPT CIRCUITTreply port);
WAIT ANY(reply port);
RECEIVE(msg,msg data ptr,reply port);
DELETE(msg);
CREATE MESSAGE(reply, reply data ptr);
reply aata ptr'" := 'reply';
SEND(~eply~reply port);
END; { program msg~ecv }

215

216

uNOTE # 028

Title: MSV11-Q/M/J MEMORY COMPARISONS

Date: 28-JUN-85

Originator:

Page 1 of 3

JACK TOTO

This MicroNote will compare three of Digital Equipment Corporation's
newest memory modules. Following the description of each memory module,
is a chart which, list the differences between these memories.
MSV11-Q
The MSV11-Q has three versions,
the MSV11-QA,
the MSV11-QB and the
MSV11-QC. The MSV11-QA (M7551-A) is a quad size Q-bus memory module and
contains 1MB of MOS RAM using 64K bit parts. The MSV11-QA has two etch
revisions which must be checked when configuring the module into a
system. The two revisions are the C rev and the A rev, both of these
revisions are discussed in the Users Guide (EK-MSVIO-UG) and in
Micronote # 030. The second version of the MSV11-Q is the MSV11-0B
(M7551-B) which is a half populated quad size O-bus memory module
containing 2MB of MOS RAM using 256K bit parts. The last version of the
MSV11-Q is the MSV11-QC which is a fully populated MSV11-QB quad size
Q-bus memory module containing 4MB of MOS RAM using 256K bit parts.
Both the MSV11-QB and the MSV11-QC use the MSV11-QA printed circuit
board, however that board is ECOed to etch level C.
MSVII-J
The MSV11-J has four versions, the MSV11-JB and MSV11-JC which are used
in the PDP-11/84 UNIBUS systems and the MSV11-JD and MSV11-JE are used
in either the MicroPDP-11/83 Q-bus systems, or the PDP-l1/84 UNIBUS
systems.
All four modules use ECC memory for error correction, as well
as using 256K bit MOS RAM parts on either a half or fully populated quad
size module.
NOTE:
NONE OF THE FOUR MSV11-J MODULES CAN BE PLACED IN A 0/0
BACKPLANE SLOT. IF THIS IS ATTEMPTED PERMANENT DAMAGE WILL
BE DONE TO THE BOARDS AND TO THE SYSTEM.
The MSVII-JB (M8637-BA) is a half populated quad size PMI memory module
containing 1MB of memory.
The second version of the MSV11-J is the
MSVI1-JC (M8639-CA), this is a fully populated MSVI1-JB quad size PMI
memory module containing 2MB of memory. These two modules can not be
used in a Q-bus system due to gate array incompatibilities, and can only

217

uNOTE # 028
PClge 2 of 3
be used in PDP-11/84 systems which use the UNIBUS/PMI bus interface
(KTJ11-A).
The third version of the MSV11-J is the MSV11-JD (M8639-DA)
which is a half populated quad size PMI memory module containing 1MB of
memory.
The last version of the MSV11-J is the MSV11-JE,
(M8639-EA)
which is a fully populated MSV11-JD quad size PMI memory module
containing 2MB of memory.
These last two modules can be used with
either the MicroPDP-11/83 system which uses the Q-bus/PMI bus interface
or the PDP-11/84 system which was mentioned above.
For details
reference the PMI protocol Micronote # xxx .
.Although the MSV11-JD and Msv11-JE are PMI memories they can be used
two other Q-bus configurations.

in

1. If either of these two memories are used in slots 1 and/or 2 of
a Q/eD backplane such as the H9276
(BAll-S box) or in the
MicroPDP-11 BA23 backplane, and with the standard 15MHZ KDJ11-B
cpu (non-fpj compatible) in slot 3, the system will perform PMI
memory cycles. In the case of BA23 backplanes, a maximum of two
memory modules may be used in slots ahead of the processor, with
a minimum of one memory module in front of the processor still
functioning as PMI memory. In the case of the H9276 backplane
a number of MSV11-JD/JE memory modules may be used ahead of the
processor bringing the system to a full 4MB of PMI memory.
2. If in a Q/eD or BA23 backplane the memories reside in slots 2&3
with either of the KDF11 or KDJ11 processors in the slot 1
the MSVll-J memories will respond as standard Q-bus memories,
performing normal Q-bus and block mode memory cycles. This use
of the MSV11-J memories is also true for the MicroVAX :r cpu.
However the fact that the MicroVAX I cpu is a two
board set
requires a slightly different configuration. Slots 1&2 will be
used for the MicroVAX I cpu boards with only one memory card
used, that being located in slot 3 for the BA23 backplane and
one or more memory cards being used for other Q/eD backplanes.
The only constraint with either of the second configurations is
that in the BA23 or other Q/eD backplanes no module may be
placed adjacent to the MSV11-J that uses pins in the eD
connector. Instead leave an empty slot between the MSV11-~J and
this option. An option which does not use the eD interconnect
may be placed adjacent to the MSV11-J.
MSV11-M
The MSV11-M has two versions;
the MSV11-MA and the MSV11-MB.
The
MSV11-MA (M7506-AA)
is a half populated dual sized Q-bus memory module
which contairts 0.5MB of MOS RAM using 256K parts.
The second version
the MSV11-MB
(M7506-BA)
is a fully populated dual size Q-bus memory
module containing 1MB of MOS RAM using 256K parts.

218

uNOTE # 028
Page 3 of 3

MEMORY COMPARISON TABLE
ATTRIBUTE

MSVll-QA/QB/QC

MSVll-MA/MB

1MB, 2MB, 4MB

0.5MB, 1MB

MSVll-JB/JC/JD/JE

,...

MEMORY SIZE
FORM FACTOR

QUAD

DUAL

SYSTEM SIZE

Q18/Q22

Q18/Q22

BLOCK MODE

YES

YES

1MB, 2MB
QUAD
PMI/CD
YES

ONLY

(JD/JE ONLY)

1'"-.

BLOCK MODE
CONFIGURABLE

YES FOR REV-A
NO FOR REV-C

AC BUS LOADS

2.4

2.0

2.5

DC BUS LOADS

1.0

1.0

0.5

AMPS @ +5 VDC
(ACTIVE ONLY)

QA
QB
QC

TYP
2.4
2.3
2.5

AMPS @ +12VDC

MEMORY ERROR
CORERECTION

MA
MB

NO +12v SUPPLY

WATTS
(ACTIVE ONLY)

MAX
3.99
3.59
4.30

NO
(DEFAULT OPTION)

QA
QB
QC

TYP
12.0
11.5
12.5

MAX
20.95
18.85
22.58

PARITY

MA
MB

TYP
2.19
2.22

MAX
3.11
3.34

NO
(DEFAULT OPTION)

JB/JD
JC/JE

TYP
1.5
1.7

MAX
3.94
4.29

JB/JD
JC/JE

TYP
7.5
8.5

MAX
19.7
21.5

NEEDED
TYP
11.0
11.1

MAX
16.3
17.5

PARITY

ECC

YES

YES

SAME
SAME

CVMJAO

MP02053

MP02056

EK-MSV1M-UG

EK-MSV1J-UG

1--.

BATTERY BACKUP
SUPPORT
DIAGNOSTICS

_.
MAINTENANCE
PRINTSET
USER GUIDE

YES FOR REV-C
NO FOR REV-A
CVMSAA FOR PDPlls
EHXMS FOR MICROVAX
MP01931
EK-MSV1Q-UG

219

220

uNOTE # 029

Title: Q-bus Expansion Concepts

Date: 28-Jun-85

Originator: Charlie Giorgetti

Page 1 of 5

This
MicroNote
discusses
the
expansion
(multiple
backplanes)
characteristics of a Q-bus system. Understanding this topic is critical
when configuring a system. The loading, impedance, and single backplane
characteristics of the Q-bus and some assumptions and definitions are
discussed prior to defining the expansion rules. The specific products
used in expansion are not discussed here.
Viewing the Q-bus for Electrical Analysis
When analyzing the Q-bus from a configuration rule standpoint the bus is
treated as a transmission line. The reasons for this:
o

The Q-bus has voltage sources at both ends of a conductor.

o

When one of these voltage sources (typically a processor) changes
state (a control/data signal transitioning) its effect is not seen
instantaneously at the other end, but after some propagation delay.
The propagation delay could result in signal reflections on the bus
if it is not properly terminated or expanded.
Loading Definitions

The Q-bus specification defines two loading parameters used when
configuring a system. These parameters, AC and DC loading, indicate the
load presented to the system by individual elements on the Q-bus.
A
system element is either a Q-bus module or a backplane. The definition
of AC and DC loads are:
o

AC loading is the capacitive loading added to a Q-bus system by a
Q-bus module or by the backplane itself. Capacitive loading will
cause bus reflections and impact signal rise and fall times.
This
is measured at the time the module or backplane is being designed.
An AC load is 9.35 pf/signal line.

a

DC loading is the amount of leakage current presented to the Q-bus
by an undriven signal line on a Q-bus module. This information is
obtained from the specification data for Q-bus
drivers
and
receivers. A DC load is defined as 210 uA.

221

uNOTE # 029
Page 2 of 5
The number of AC and DC loads allowed in a configuration is dictated by
the number of backplanes and the termination used.
This will be
discussed in later sections of this MicroNote.
The AC and DC values for Q-bus modules and backplanes can be found in
either
the Microcomputer Products Handbook
(#EB-26078-41)
or the
Microcomponents Configuration Guide (#EB-27318-68).
Backplane Configurations
The rules that govern Q-bus system implementation must be viewed in
light of the backplane arrangement used.
The two supported Q-bus
configurations are:
single backplane or multiple backplanes.
How the
Q-bus
is
treated as a transmission line varies for these two
configurations and is the foundation for the implementation rules.
Impedance and Termination Characteristics
ThE~ characteristic impedance of the Q-bus
is approximately 120 Ohms.
Therefore, when implementing a system (single or multiple backplane) the
basic configuration is:

Transmission Line Impedance = 120 Ohms
Source Backplane

Destination Backplane
Source (usually the processor)

Far-end termination

Z - Bus Termination with 120 Ohms Characteristic Impedance
S - voltage Source
The transmission line in this diagram could be a single
backplane or multiple backplanes connected with expansion
cables.
Figure 1 - General Q-bus Configuration

222

uNOTE # 029
Page 3 of 5
a-bus Configuration -

Single Backplane

For the single backplane case the transmission line is the length of the
etch runs on the a-bus connector blocks and the backplane printed
circuit board. This orientation has a signal generator at one end (the
processor) and potentially a terminator at the far end of the bus. The
length of the etch runs cannot exceed 14 inches (35.56 cm).
In figure 1
the transmi~sion line is the backplane itself.
A single backplane system does not require termination if there are less
than 20 AC loads.
In this case the signals do not lose their integrity
because the reflections, caused by the mismatched impedances, are not
significant enough to disrupt bus activity. However, in a high ambient
electrical noise environment, system integrity may be further insured by
proper termination.
The single backplane configuration requires termination if the number of
AC loads is 20 or greater. The number of allowable AC loads in this
case is dictated by the termination on the processor.
A 120 Ohm
processor can have up to 45 AC loads. A 240 Ohm processor can have up
to 35 AC loads.
Q-bus Configuration - Multiple Backplanes
For the multiple backplane case (where the multiples are two or three
backplanes), the transmission line is the cables used to interconnect the
multiple backplanes. The expansion cable set consists of:
o

A module in the source backplane

o

A module in the destination backplane

o

Cables to connect the two modules

The maximum length of the cables is 16.0 feet (4.88 meters).
The length
of these cables is by comparison significantly longer then the length of
the a-bus connector blocks and the backplane etch used in the single
backplane case. Therefore, onl~r the interconnect cables are considered
for configuration purposes. This arrangement has a signal generator at
one end and requires termination at the far end.
The far end termination must reside in' the last backplane of the
configuration. The location of the far end termination can be any place
in the last backplane, since the backplane etch runs do not enter into
transmission line considerations. The lump sum termination must be 120
Ohms.
The termination in the source box must also be 120 Ohms.
If the
processor is 240 Ohms then the expansion cable set module or the
backplane printed circuit board must have 240 Ohm termination to achieve
the 120 Ohms for the lump sum load.

223

uNOTE: # 029
Page 4 of 5
Lump s~m implies that the 120 Ohms can be achieved by one or more
expans10n module or backplane printed circuit board mounted terminators
and its location is position independent in a given backplane. Figure 2
shows an example of how such a lump sum load can be accomplished.

Expansion Cable from
Source Backplane

<

Backpla ne
Slot #

<

1

Expansion Module
with'Termination (Z1)

2

<

3

<

Printed Circuit Board
Backplane

n

D

<-.->

Lump Sum Termination -

D

Z1

* Z2

Z1 + Z2

Printed Circuit Board
Mounted Termination (Z2)
Figure 2 - Example of Lump Sum Termination in an Expanded Backplane
Figure 1 shows the double backplane configuration where the expansion
cable set is considered the transmission line. The far end termination
is required.
Figure 3 shows the three backplane
configuration.
Backplane #2 in figure 3 for all practical purposes is part of the
expansion cable set when looking at it from an expansion point of view.
The lengths of the expansion cables in multiple box configurations are
strictly specified.
As mentioned the maximum length of the overall
cable is 16.0 feet. The minimum length is 2.0 feet (0.61 meters).
Therefore, in a two backplane configuration the expansion cable must be
between 2.0 and 16.0 feet.
In the three backplane configuration the maximum cable length is still
feet. One of the two interconnect cables must be between 2.0 feet
and 6.0 feet (1.83 meters) in length. The other interconnect cable must
be at least 4.0 feet (1.22 meters) but not longer than 10 feet (3.05
meters). The difference in the two cable lengths must be 4.0 feet.
16.0

224

uNOTE # 029
Page 5 of 5
The cable lengths are specified to insure that any reflections occur
the expansion cables and not in the backplane (if they happen).

in

The etch runs vn the backplane printed circuit board used in a multiple
backplane cortfiguration must be no longer than 10 inches (25.4 cm). Not
all backplanes used in single configurations can be used in multiple
backplane configurations.
Expansion Cable
#1 to #2

Expansion Cable
#2 to #3

I

Is I

Iz I

Iz I

IS I
I

Backplane #1

Backplane #2

Backplane #3

Z - Bus Termination with a Characteristic Impedance
S - voltage Source
Figure 3 - Three Backplane Q-bus Configuration
Multiple backplane configurations
allow
22
AC
loads/backplane.
Therefore,
it is 44 AC loads in a two or 66 AC loads in a three
backplane configuration. To avoid lumping too many AC loads together
the total number of AC loads should be distributed as evenly as possible
over the two or three backplanes.
The entire configuration cannot
exceed 20 DC loads.
In summary,
following the expansion rules insures proper
system
operation.
The set of rules to be followed are dictated by the single
or multiple configuration chosen and the arrangement of the termination
in the system.

225

226

uNOTE # 030

Title:

The Private Memory Interconnect
between the KDJ11-B and the MSV11-J

Originator:

Peter Kent

Date: 28-Jun-85
Page 1 of 9

Purpose
This MicroNote describes the Private Memory Interconnect on
the
MicroPDP-11/83 system.
It is not intended to be a design guide for PMI,
since no devices other than the CPU and memory will make use of it.
General Description
A MicroPDP-11/83 system consists of the KDJ11-B CPU and one or more
MSV11-J memories in a Q-bus backplane. The slots used for the CPU and
memory use the CD interconnect.
In a MicroPDP-11/83 configuration,
the
first 1 or 2 slots in a BA23 backplane (an 8 slot backplane with the
first 3 slots Q/CD) are reserved for MSV11-J memory.
The CPU is put in
the third slot.
The mechanical design of the signal pathways between
the CPU and memory were designed to prevent accidental interference
between the PMI and other device's that might be placed adjacent to the
CPU and memory.
It is possible to have a single 2 Mb board in slot 1
followed by the CPU in slot 2.
putting the CPU after the memory ends
the PMI because the PMI signals from the CD side of the CPU board are
only on the component side of the CPU board.
"Private Memory Interconnect" is the addition of 14 unique signals to
the Q-bus.
These new signals use the CD part of the backplane in a
Q-bus system for communications between the KDJ11-B CPU and one or two
MSV11-J memories. Only the CPU and memory may communicate over this bus
(hence PRIVATE). The Q-bus Data/P.~ddress lines are used for passsing
data and addresses between the CPU and memory.
All other Q-bus
transactions proceed as before.
The PDP-ll/84 Unibus system uses the KTJ11-B Unibus Adaptor,
KDJ11-B
CPU,
and one or two MSVll-J memories.
No Q-bus devices may be
configured with the PDP-11/84 system.
Five of the PMI signals are used
only with Unibus systems. All communications between Unibus devices and
the KTJ11-B occur according to the Unibus protocol.
The KTJ11-B
provides the interface between PMJ: and Unibus protocols. This MicroNote
does not explain the details of the Unibus and PMI interaction.

227

uNOTE I 030
Page 2 of 9
What is PMI?
To understand PMI it is necessary to describe some of the
used by PMI and compare them with ordinary Q-bus cycles.
PMI cycles used in the MicroPDP-ll/83 system:

bus cycles
There are 4

DATI - Data word input.
This cycle is used to read one or more 16
bit words from memory by the cpu.
DATIP - Data word input pause. This cycle is used to read one or
more 16 bit words from memory by the cpu.
It is often used to
perform a read/modify/write cycle.
DATO - Data word ouput.
to memory by the cpu.
DATOB - Data byte output.
memory by the cpu.

This cycle is used to write a 16 bit word
This cycle is used to write a byte to

The KDJ11-B does not perform Block Mode reads or writes with memory.
Certain other Q-bus devices (such as the RDRX1 and RQDX2 controllers and
RQC25) perform Block Mode DMA with MSV11-P,MSV11-Q,AND MSV11-M memories.
The CPU monitors Block Mode transactions to keep its cache in order, but
it has no control over such transfers once it has relinquished control
of the bus to those devices.
REFERENCES
PMI signal definitions are listed at the end of this
MicroNote. All other signal definitions are as given in
the Microcomputer Products Handbook
(EB 26078-41)
or
Microsystems Handbook (EB 26085-41).
TWTBT, a Q-bus signal,
is used somewhat differently during a PMI
transaction than during a normal Q-bus transaction.
See the definitions
section for an explanation of this signal.
NOTE
Few timing relationships are given here because it is
not necessary for a basic understanding of PMI.
The
relationships that are given are a comparison to Q-bus
only.
The prefix "T" refers to bus driver input and "R"
refers to bus receiver
output.
This
helps
to
distinguish between the device which issues a particular
signal and that of the receiver of the signal.
If the
prefix "B" is used, it denotes a general term for the
signal on the bus without regard for its timing relation
with respect to sender or receiver (i.e. BSYNCH).

228

uNOTE # 030
Page 3 of 9
Address part of cycle
The address portion of the MicroPDP-11/83 PMI cycles is the same for all
4 PMI cycles.
It is listed here first and the description of the other
cycles follow.
1.

For the first part of the cycle, the CPU gates ADDR, BBS7
(if the
I/O page is referenced),
TWTBT, and TPBYT onto the Q-bus.
The
combination of TWTBT and TPBYT (PMI signal) determine what type of
PMI transaction will take place - see Table 1 below. These signals
are asserted for a brief period after the assertion of TPBCYC.
Table 1
BWTBT L

PBYT L

H
H
L
L

H
L
H
L

Description
. DATI or DATBI Cycle
DATIP Cycle
DATO Cycle
DATOB Cycle

As noted above, Q-bus signals such as TWTBT are used differently
during a PMI cycle. TWTBT is not normally used during a DATI cycle,
for example.
2.

Next, memory issues TPSSEL after receiving RADDR and RBS7.
The CPU
receives RPSSEL.
This part of the cycle indicates that the memory
is responding.

3.

If the CPU was the previous bus master and the previous cycle was a
Q-bus cycle,
then the CPU must not assert TPBCYC or TSYNC until
after the negation of TSYNC and after the negation of RRPLY.
If the
cycle was an interrupt service cycle, then the CPU must wait until
after the negation of RRPLY.
This stipulation allows for other
Q-bus devices equal access to the bus. Also, if another
Q-bus
device was previously bus master, then the CPU must not asssert
TPBCYC or TSYNC until after the negation of RSYNC - this is to make
sure RRPLY is negated long enough as per Q-bus protocol.

4.

Now, if RPSSEL is asse~ted and if RPUBMEM is negated, the PMI master
proceeds with a PMI cycle. The negation of RPUBMEM indicates no
that no Unibus memory is responding - in other words a Q-bus PMI
cycle.
Here is where the diffe- rence between Q-bus cycles and PMI
cycles becomes visible.

229

uNOTE # 030
Page 4 of 9
5.

The CPU asserts TPBCYC after gating TADDR, TBS7, TPBYT, and TWTBT
onto the bus.
The PMI master continues to gate TADDR, TBS7, and
TWTBT after the assertion of TPBCYC.

6.

If at this point RPSSEL is negated, the
normal Q-bus cycle.

This describes the address portion of
systems.

the

system
PMI

will

cycle

revert

for

to

Q-bus

a

only

DATI
When the CPU (KDJ11-B) is accessing memory for a PMI Data In Cycle, it
transfers 2 words. This takes advantage of the KDJ11-B restart overhead
to load a second 16-bit word into the cache on the CPU module.
Listed
below equivalent Q-bus cycles are compared with PMI cycles under "Timimg
Comparisons". For the read cycle, 2 data words (one after another) are
latched into the MSV11-J data gate array and both words are placed on
thf~ bus.
Interestingly enough, either word may be selected to be placed
on the bus first.
If the odd wo~d is placed on the bus first, it is
followed by the preceding even word. For example, if a word at address
17362 is selected to be placed on the bus first, the next word
transferred will be from address 17360. If the even word is selected to
be placed on the bus first, the next odd word is then transferred
second. For example, if a word at address 17360 is selected to be
placed on the bus first, the next odd word is then transferred second.
For example, if a word at address 17360 is selected to be placed on the
bus, the next word transferred will be at address 17362.
Using the MSV11-J memory as a normal Q-bus memory (disabling the PMI by
putting it after the CPU in the bus) and performing a read cycle, 2
words will be latched into the data gate array. However, only one word
is placed on the Q-bus.
1.

At this point the address portion of the cycle is over.
gates TDATA onto the bus after the assertion of RPBCYC.

2.

Immediately after RPBCYC
TPHBPAR and TPLBPAR.

3.

Memory asserts TPRDSTB immediately after the reception of RPBCYC.

4.

The strobe signal TPRDSTB is negated by memory after
of RPBCYC.

5.

The memory gates the second data word onto the bus after TPRDSTB is
negated.
Shortly after the parity in- formation is sent. Another
advantage is realized here: the second data word is transmitted
without the need of any further signals between the CPU and memory.

the

230

memory

enables

the

The

parity

the

memory
signals

reception

uNOTE # 030
Page 5 of 9

6.

If the CPU has read 2 words, it negates TPBCYC
second data word.

?

After the negation of RPBCYC memory removes TDAT from the bus.

after

latching

the

It becomes evident that there is an essential difference between normal
Q-bus transactions and PMI transactions. Q-bus transactions are all
based on handshaking. During a DATI Q-bus transaction,
the memory
responds with BRPLY after BDIN from the processor. There must be the
signal between each device that the transaction has taken place. During
a PMI DATI transaction, there is only a strobe signal from the memory
saying that it is ready for the data. The only further communication
between the memory and CPU is the actual data transfer. Only upon the
transmission of the second possible data word is parity information sent
along with the second data word. No other memory-CPU signalling occurs.
KDJ11-B

MSV11-J

Address Memory
o Gate Address
onto Address Lines
o Combination of
TPBYT and TWTBT
result in DATI Cycle
o Assert BBS? if Address
is in I/O page
PMI Cycle Assertion

Decode Address
~-------

<--------~

o TPSSEL asserted shows
Memory is Selected

-----l

o TPBCYC Indicates PMI Cycle
deasserts Address, BBS?
TPBYT,TWTBT Signals
Address part of
cycle is finished

PMI Cycle End

<_ _

o CPU deasserts TPBCYC
to end PMI Cycle

~------>

J
lL.....--_>

231

Data
o TDATA, TPHBPAR, TPLBPAR
(Data and Parity) is
asserted onto Data Lines
o Memory strobes CPU by
Asserting TPRDSTB to tell
CPU Data is on the Bus
o The strobe signal
TPRDSTB is deasserted
o The 'second data word and
parity info are put on
the Data Lines
Data
o Memory removes
data from Bus

uNOTE # 030
Page 6 of 9
Timing Comparisons
At this point it would be interesting to make some timing comparisons
between Q-bus and PMI DATI transactions.
Considering a Q-bus DATI
transaction, the cycle time
(timing from BSYNCH to TRPLY ignoring
addressing time) is 510 ns for MSV11-M.
The MSV11-M was chosen because
its cycle time does not include the ECC overhead of the MSV11-J. Add to
this 320 ns access time and this totals 830 ns to transfer 1 word from
memory to cpu. Now, if 2 words are to be transferred in this manner,
add another 300 ns due to delay between RRPLY and TSYNCH in order for
other Q-bus devices access to the bus. This results in 1130 ns total
for a 2 word transfer using MSV11-M parity memory.
Th.~

MSV11-J memory access time is 417 ns.
This is the time from RPBCYC
PRDSTB.
Fifty eight ns later, at the trailing edge of PROSTB, the
cpu receives the second data word. This means that PMI is approx.
2.5
times faster than Q-bus on 2 word reads from memory to cpu. Remember,
this also accounts for the time the ECC requires to do its modified
Hamming code versus the MSV11-M parity check.
For each 18 bits of
MSV11-J memory there are 6 bits used for ECC.
This accounts for the
space needed on the MSV11-J for 2 Mb of memory whereas 4 Mb is possible
on the MSV11-Q on the same size board.
to

DATO (DATOB)

The CPU uses DATO to transfer a single word (or byte for a DATOB cycle)
to memory.
The address portion of the cycle is the same as for the DATI
and is described above.
1.

The CPU determines what type of cycle (DATO or DATOB) by logically
combining TWTBT and TPBYT. During the address portion of the cycle,
these signals were used to indicate which type of PMI cycle was
selected.

2.

Memory asserts TRPLY after RPBCYC.

3.

After the assertion of TPBCYC, data is gated onto

4.

The CPU asserts TPWTSTB after data is gated onto the bus.

5.

Memory asserts TPSBFUL after RPWTSTB.

6.

The CPU deasserts TPBCYC after negating TWTSTB.

7.

The memory waits before it can accept another PMI
cycle) - then it deasserts TRPLY.

8.

Memory negates TPSBFUL before it can accept another
cycle).

cpu.

232

the

bus

by

the

cycle

(or

Q-bus

PMI

(or

Q-bus

uNOTE .. 030
page 7 of 9
KDJll-B

MSVll-J

Address Memory
o Gate Addresses onto
Address Lines
o Combination of TPBYT
and TWTBT Result in
DATO Cycle
o Assert BBS7 if Address
is in the I/O page
PMI Cycle Assertion

lll---_>
<------~

o TPSSEL Shows
Memory is address
selected

--l

Memory Responding

o Assertion of TPBCYC
indicates PMI Cycle
o CPU deasserts Address, BBS7,
TPBYT, TWTBT Signals Address Portion of Cycle
is finished

'----->

Data
o TDATA, TPHBPAR, TPLBPAR
(Data and Parity) is put
onto the Data Lines
o CPU then strobes the
Memory by asserting TPWTSTB

PMI Cycle End

Decode Address

Reception of Data

-,'------>

<---------~

o CPU deasserts TPBCYC
to indicate current
PMI Cycle is finished

o After reception of
RPBCYC, memory sends
TRPLY to CPU

o Memory asserts TPSBFUL
after reception of
RPWTSTB

Memory Cycle End

1 . . . ___ >

233

o Memory waits for other
devices to claim Bus
before it can accept
another PMI Cycle - then
deasserts TRPLY
o Memory must negate
TPSBFUL before another
PMI Cycle can begin

uNOTE # 030
Page 8 of 9
Timing Comparisons
Here is a comparison of a Q-bus DATO cycle with a PMI DATO cycle.
Looking at a Q-bus DATO transaction, the cycle time (timing from RSYNCH
to TRPLY) for MSV11-M is 550 ns.
Comparing this to the MSV11-J DATO
cycle,
the result of 223 ns is obtained. This figure is arrived at as
follows:
38 ns access time for the memory + 80 ns TPBCYC to TDATA + 75
ns TPWTSTB after data is on the bus + 30 ns to hold TPWTSB. Again the
speed advantage of PMI transactions over normal Q-bus transactions is
about 2.5 to 1.
DATIP
The PMI Data In Pause cycle is identical to the DATI cycle except that
TPBYT
is
asserted with TADDR to indicate that the next cycle
(immediately following the current cycle) will-be a data out cycle to
the same address.
PMI and Q-bus signal definitions
Eight of the PMI signals are used in an MicroPDP-11/83 system, therefore
only those will be defined here. One Q-bus signal, BWTBT, is defined
h.~re
because it is used differently than
during
normal
Q-bus
transactions.
PBYT L

PMI Byte. When the CPU gates address onto the bus, it asserts
this signal with BWTBT to indicate the type of bus cycle (see
Table 1 above).

PBCYC L

PMI bus cycle.
The CPU asserts this signal at the start of
a PMI cycle and negates it at the end of that cycle.

PRDSTB L

PMI read strobe. Memory asserts and negates this signal to
control data transfers during DATI cycles. The CPU latches
the received first word data on the negating edge of this
signal.
The second word is latched after that without further
signalling.

PWTSTB L

PMI Write Strobe. The CPU asserts this signal after gating
data onto the bus. The memory latches the data into its
write buffer after the leading edge of this pulse.

PSSEL L

PMI slave selected. Memory asserts this signal whenever it
decodes its address on the Q-bus.

234

uNOTE # 030
Page 9 of 9
PHBPAR L

PMI high byte data parity.
This signal is generated by PMI
memory during DATI cycles and provides odd parity for the high
byte data on the Q-bus.

PLBPAR L

PMI low byte data parity.
This signal is generated by PMI
memory during DATI cycles and provides even parity for the low
byte data.

PSBFUL L

PMI memory buffer full.
Memory asserts this signal during a
write cycle indicating that its write buffer is full and that
it cannot respond to another cycle request.
Q-bus signal

this
BWTBT L write byte (PMI write indication).
In Q-bus systems,
the
signal is used for Q-bus write cycles.
For PMI transactions,
cycle.
CPU gates this signal with PBYT to indicate the type of
PMI
See Table 1 above.
References
Microcomputer Products Handbook
Microsystems Handbook
MSVll-M User Guide
MSVll-Q User Guide
MSVll-J User Guide

235

EB-26078-41
EB-26085-41
EK-MSV1M-UG-OOl
EK-MSV1Q-UG-002
EK-MSV1J-UG-OOl

236

uNOTE # 031

Title: MSV11-QA Revision Differences

Date: 28-JUN-85

Originator: Jack Toto

Page 1 of 9

Digital Equipment Corporation recently announce the addition of three
memories for the Q-bus space; the MSV11-QA quad module at 1MB, the
MSV11-QB quad module
at 2MB, and the MSV11-QC quad module at 4MB.
Earlier versions of the MSV11-QA were shipped using a
revision A etch
and the
documentation correctly showed the jumper
configurations.
However early in 1985 the MSV11-QA/QB/QC started shipping with revision
C etch.
The documentation at that point did not show how to properly
configure the C etch.
It is the intent of this MicroNote to point out
the differences between the two modules and to explain the configuration
of both the etch revisions.
The two modules can
in the table below;

be identified

in anyone of the three ways listed

1. The location and value of the modules serial number.
2. The location of CSR and address jumpers and switches.
3. The module's designation number, stamped on the insertion
handles will be different.
3A. Revision A modules will be labeled M7551-AA.
3B. Revision C modules will be labeled M7551-AA.
SERIAL NUMBER LOCATION
The two modules can be identified by the location of its serial number.
The revision A module will have its serial number located in the upper
right hand corner of the module as you hold it with the fingers pointing
down or at you and the component side facing you or up as it would lay
on a work bench. This serial number will be 5017547A1. The location of
the serial number for revision C module will be on the component side
also, but in the upper left hand corner. This
serial
number
will
be 5017547-01-C1. The attached diagrams of the revision A and revision
C modules show the location of these numbers.

237

uNOTE # 031
Pag 2 of 9
JUMPER LOCATION
The MSV11-QA revision A module allows for the selection of Block Mode
DMA transfers, parity detection, and extended address parity error
detection as well as CSR and address selection. The address selection
includes two switches, one for the modules starting address and one
for the modules ending address. The ending address switch is used to
control the decode logic on the module as the same etch is used for 2MB
and 4MB boards as well, each with different value memory chips to reach
there designed capacity.
The location and function of these switches
and jumpers if
detailed in the diagrams and configuration
tables
attached to the end of this MicroNote.
The MSV11-QA revision C module does not allow for the selection of Block
Mode DMA or for the selection of parity detection, these features
are built into the module itself and can be used or not used through
hardware/software compatibility. When used in a system that supports
Block Mode the MSV11-QA will perform as a Block Mode device, when used
in a non Block Mode system it will perform as a normal memory module
without any decrease in that system's performance. When used with
software such as RSX11 and using mixed
parity/non-parity memories
parity detection can be disabled through sysgen. The only functions
that a user is required to configure to use the MSVll-QA revision C is
CSR selection and starting and ending address.
It should be pointed out
that the two switches for starting and ending addresses. have been flip
flopped from the positions in which they were located on the revision A
module. Once again refer to the diagrams and configuration tables
attached to this MicroNote for location and function of these switches
and jumpers.
The following pages contain diagrams and tables for configuring the two
versions of the MSVll-QA

238

uNOTE # 031
Page 3 of 9
MSV11-QA revision A Module Identification

5017547A1 <--------+- PRINTED CIRCUIT
BOARD NO.

(COMPONENT SIDE)

(A) MSV11-QA (ETCH revision A ONLY)

MSV11-QA revision A CSR SELECTION
NUMBER OF
MEMORY MODULE
1ST
2ND
3RD
4TH
5TH
6TH
7TH
8TH
9TH
10TH
11TH
12TH
13TH
14TH
15TH
16TH

JUMPER POSITION
R
P
N
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT

IN
IN
OUT
OUT
IN
IN
OUT
OUT
IN
IN
OUT
OUT
IN
IN
OUT
OUT

239

IN
IN
IN
IN
OUT
OUT
OUT
OUT
IN
IN
IN
IN
OUT
OUT
OUT
OUT

M
IN
IN
IN
IN
IN
IN
IN
IN
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT

CSR REGISTER
ADDRESS
17772100
17772102
17772104
17772106
17772110
17772112
17772114
17772116
17772120
17772122
17772124
17772126
17772130
17772132
17772134
17772136

uNOTE =I 031
Page 4 of 9
MSV11-QA revision A STARTING AND ENDING ADDRESS
DESIRED
STARTING
ADDRESS

SW1
SWITCH
POSITION

IN KBYTE

12345

o

00000
11111
01111
10111
00111
11011
01011
10011
00011
11101
01101
10101
00101
11001
01001
10001
00001
11110
01110
10110
00110
11010
01010
10010
00010
11100
01100
10100
00100
11000
00010
10000

128
256
384
S12
640
768
896
11024 (1MB)
1152
1280
1408
lS36
1664
1792
1920
21048 (2MB)
2176
2.304
2432
2S60
2688
2816
2944
3072 (3MB)
3200
3.328
3456
3!584
3712
3840
3968
1

=

o=

SW2
SWITCH
POSITION
6

o
1
1

1
1
1
1
1
1
1
1
1
1
1
1

1
1

1
1
1
1
1
1

1
1
1
1

1
1
1
1
1

STARTING
ENDING
ADDRESS
IN KBYTE
128
256
384
512
640
768
896
1024
1152
1280
1408
1536
1664
1792
1920
2048
2176
2304
2432
2560
2688
2816
2944
3072
3200
3328
3456
3584
3712
3840
3968
4096

(1MB)

(2MB)

(3MB)

(4MB)

ENDING
SWITCH
POSITION
12345
11111
01111
10111
00111
11011
01011
10011
00011
11101
01101
10101
00101
11001
01001
10001
00001
11110
01110
10110
00110
11010
01010
10010
00010
11100
01100
10100
00100
11000
01000
10000
00000

off position (open)
on position (closed)

NOTE: Switch S6 of SW1 is not used.
For a memory starting address of
0, switch S6 of SW2 should be set to 0 (on).
For all other
starting addresses S6 of SW2 should be off (1).

240

uNOTEI: 031

Page 5 of 9

MSV11-QA revision A

5017547A1

PARITY - - - )
LED

~;

D
D

CSR REGISTER
SELECTION

<

ENABLE/DISABLE
CSR SELECTION
th

1
2
3
4
5
6

(COMPONENT SIDE)

<--------+_ STARTING ADDRESS
SWITCHES
(S6 NOT USED)
ENABLE/DISABLE
BLOCK MODE

OFF ON

ENABLE/DISABLE
EXTENDED
ERROR ADDRESS

<---+- ENDING ADDRESS

1
2
3
4

SWITCHES

5
6
OFF ON
+5V

[]JJ <

ENABLE PARITY
ERROR DETECTION

<_J_H_ _+-

NOT USED, MODULE
DOES NOT SUPPORT
BATTERY BACKUP

B

+5VB
D

C

A

Jumper and Switch Locations
(Drawing not to scale)

24·1

uNOTE # 031
Page 6 of 9
MSV11-QA revision C Module Identification

PRINTED CIRCUIT -+--------> 5017547-01-C1
BOARD NO.

(COMPONENT SIDE)

•

( B ) MSV11-QA (ETCH revision C OR LATER)
MSV11-QB AND MSV11-QC
(Drawings not to scale)
MSVI1-QA revision C CSR SELECTION
NUMBER OF
MEMORY MODULE

JUMPER POSITION
J5
J7
J9
J11

1ST
2ND
3RD
4TH
5TH
6TH
7TH
8TH
9TH
10TH
11TH
12TH
13TH
14TH
15TH
16TH

IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT

IN
IN
OUT
OUT
IN
IN
OUT
OUT
IN
IN
OUT
OUT
IN
IN
OUT
OUT

IN
IN
IN
IN
OUT
OUT
OUT
OUT
IN
IN
IN
IN
OUT
OUT
OUT
OUT

242

IN
IN
IN
IN
IN
IN
IN
IN
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT

CSR REGISTER
ADDRESS
17772100
17772102
17772104
17772106
17772110
17772112
17772114
17772116
17772120
17772122
17772124
17772126
17772130
17772132
17772134
17772136

uNOTE # 031
Page 7 of 9
MSV11-QA revision C STARTING AND ENDING ADDRESS
SW1
SWITCH
POSITION

DESIRED
STARTING
ADDRESS

SW2
SWITCH
POSITION

IN KBYTE

12345

6

0

00000
11111
01111
10111
00111
11011
01011
10011
00011
11101
01101
10101
00101
11001
01001
10001
00001
11110
01110
10110
00110
11010
01010
10010
00010
11100
01100
10100
00100
11000
00010
10000

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

1,,~8

2'~,6

384
512
640
768
896
1024 (1MB)
1152
1280
1408
1536
1664
1792
1920
2048 (2MB)
2176
2304
2432
2560
2688
2816
2944
3072 (3MB)
3200
3328
3456
3584
3712
3840
3968

STARTING
ENDING
ADDRESS
IN KBYTE
128
256
384
512
640
768
896
1024
1152
1280
1408
1536
1664
1792
1920
2048
2176
2304
2432
2560
2688
2816
2944
3072
3200
3328
3456
3584
3712
3840
3968
4096

(1MB)

(2MB)

(3MB)

(4MB)

ENDING
SWITCH
POSITION
12345
11111
01111
10111
00111
11011
01011
10011
00011
11101
01101
10101
00101
11001
01001
10001
00001
11110
01110
10110
00110
11010
01010
10010
00010
11100
01100
10100
00100
11000
01000
10000
00000

1 - off position (open)
o =- on position (closed)
NOTE: 5witch 56 of 5W2 is not used. For a memory starting address
of 0, switch S6 of SW1 should be set to 0 (on) . For all other
starting addresses 56 of 5Wl should be off (1).

243

uNOTE # 031
Pa<:re 8 of 9
MSVI1-QA revision C

5017547-01~Cl

CSR REGISTER
SELECTION

SW2
1
2
3
4
5

<

STARTING ADDRESS
SWITCHES
(S6 NOT USED)

6

(COMPONENT SIDE)
SWI
1
2
3
4
5
6

W2

L_
Jumpers and Switches
(Drawing not to scale)

244

0
0
0
0

<

ENDING ADDRESS
SWITCHES

o

<

0
0
0

wI

BATTERY BACKUP
JUMPERS

uNOTE # 031
Page 9 of 9
COMPARISON OF SIMILAR FUNCTION JUMPERS

JUMPER
FUNCTION

SELECTABILITY
REV-A
REV-A

ENABLED
CONFIGURATION

DISABLE
BLOCK MODE

YES

NO

Wi IN (Jii TO J12)
W2 OUT

W2 IN (Jii TO J10)
W1 OUT

DISABLE
PARITY
MEMORY

YES

NO

JUMPER B IN
(J14 TO 13)
JUMPER A OUT

JUMPER A IN
(J14 TO J5)
JUMPER BOUT

DISABLE
PARITY
DETECTION

YES

NO

JUMPER H IN
(J2 TO J3)
JUMPER GOUT

JUMPER G IN
(J1 TO J2)
JUMPER H OUT

DISABLE
22-BIT
ADDRESSING

YES

NO

JUMPER L IN
(J8 TO J7)
JUMPER K OUT

JUMPER K IN
(J8 TO J9)
JUMPER LOUT

BATTERY'
BACKUP
SUPPORT

NO

YES

BATTERY BACKUP
CONFIGURATION

W3 AND Wl IN
WITH
W4 AND Wl OUT
(revision CONLY)

DISABLED
CONFIGURATION

W4 AND Wl IN
WITH
W3 AND W1 OUT
(revision CONLY)

NOTE: JUMPERS W4 AND W2 ARE LOCATED BETWEEN E21 AND
E13 IN THE LOWER RIGHT HAND CORNER OF THE
COMPONENT SIDE OF THE MODULE.
FOR THE ACTUAL
LOCATION OF THESE AND ALL OTHER JUMPERS PLEASE
REFER TO THE USERS GUIDE.

245

246

uNOTE,

KXTll-C Parallel I/O Programming

Title:

Originator:

Scott Tincher

* 032

Date: 28-JUN-85
Page 1 of 42

The KXT11-CA is a single board computer that provides the user with
flexible I/O programming options.
One of the onboard programmable
devices is a 20 line parallel I/O port (PIa). This note will describe
the operation of the PIa and will provide some programming examples.
Since the DIGITAL operating system MicroPower/Pascal provides a device
handler for the PIa, the programming examples included in this note will
be written in MACRO-ll for the user who wishes to program the PIa in
MACRO-ll.
The example programs assume the user is familiar with the
KXT11-C Software Toolkit for RT-ll or RSX.
FEATURES/CAPABILITIES
The PIO of the KXTll-C supplies the following features:
o

Two 8-bit, double buffered, bidirectional I/O ports

o

A 4-bit special purpose I/O port

o

Four handshake modes

o

REQUEST signal for utilizing the DMA controller

o

Pattern recognition logic

o

Three independent l6-bit counter/timers

The two 8-bit ports (A and B) are identical except that Port B can
provide external access to Counter/Timers 1 and 2.
Each port may be
configured under program control as a single or double buffered port
with handshake logic or as a bit port for control applications.
Pattern
recognition logic is also included in each port.
This logic allows
interrupt generation whenever a specific pattern is recognized.
Ports A
and B may be linked to form a l6-bit port with handshake.
When Port A o~ B is used as a port with handshake the control lines are
supplied by a special 4-bit port (Port C).
If no handshake lines are
required then Port C may be used as a bit port.
Port C also provides
external access to Counter/Timer 3 and a REQUEST line that allows the
PIO to utilize the DMA controller when transfering data.

247

uNOTE # 032
Page 2 of 42
Th4! PIO supplies three identical
16-bit
Counter/Timers.
These
Counter/Timers operate at a frequency of 2 MHz which provides a
resolution of 500 ns. Each Counter/Timer may operate with one of three
output duty cycles: pulse, one-shot, or square-wave. In addition, each
unit may operate as retriggerable or non-retriggerable.

•

REGISTER DESCRIPTION

The following section provides a brief description of the
tht:r! PIO.

registers

of

MASTER CONTROL REGISTERS
Tht:r!re are two registers that control the overall function of the PIO,
the Master Interrupt Control Register and the Master Configuration
Control Register.
Master Interrupt Control Register
7

2

1

o

Address - 177000
Bit 7:

Master Interrupt Enable (MIE)

o-

Inhibits this device from requesting an interrupt or
responding to an interrupt acknowledge.
1 - Allows interrupt logic to operate normally.
Bits 6,5,4,3,2,1:
Bit 0:

These bits must be programmed to zero.

Reset

o-

Clears the reset bit and allows the other registers to
function properly.
1 - Resets the device. While this bit is 1 reads of other
registers will be 0 and writes to other registers will be
ignored. This bit is cleared only by writing a 0 to the
RESET bit.

248

uNOTE # 032
Page 3 of 42
Master Configuration Control Register
2

7

1

o

Address - 177002
Bit 7:

Port B Enable (PBE)

o

Inhibits Port B from issuing an interrupt request and forces
tth Port B I/O lines into a high impedance state.
1 - Allows Port B to operate normally.
Bit 6:

Counter/Timer 1 Enable (CT1E)

o

Inhibits Counter/Timer 1 from issuing an interrupt request
and clears the Count In Progress (CIP) flag. All trigger
inputs are ignored.
1 - Allows Counter/Timer 1 to operate normally.
Bit 5:

Counter/Timer 2 Enable (CT2E)
Provides the same functions for Counter/Timer 2 that CT1E does
for Counter/Timer 1.

Bit 4:

Port C and Counter/Timer 3 Enable (PCE) and (CT3E)
Provides the same functions for Port C that PBE does for Port B
and the same functions for Counter/Timer 3 that CT1E does for
Counter/Timer 1.

Bit 3:

Port Link Control (PLC)

o1 -

Bit 2:

Allows Ports A and B to operate independently.
Links Ports A and B to form a 16-bit port. In this mode
Port A's handshake and command and status registers are
used. Port B is specified as a bit port. This bit must be
set before the ports are enabled.

Port A Enable (PAE)
Provides the same functions for Port A that PBE provides for
Port B.

Bits 1,0:

Counter/Timer Link Controls

These two bits specify how Counter/Timers 1 and 2 are linked
according to the following table:

249

uNOTE # 032
page 4 of 42
Bit 1

Bit 0

o
1
o

o

o

1
1

Counter/Timers
CIT l's output
CIT l's output
CIT l's output

1

are independent
(inverted) gates CIT 2
(inverted) triggers CIT 2
(inverted) is CIT 2's count input

The Counter/Timers must be linked before they are enabled.
PORT SPECIFICATION REGISTERS
Ports A and B both utilize the following port specification registers:
Port Mode Specification Register
3

7

2

1

o

Port A = 177100
Port B = 177120
A RESET forces all of these bits to O.
Bits 7,6:

All bits are read/write.

Port Type Select

These two bits specify the port type as defined by the
following table:
Bit 7

o
o

1
1

Bit 5:

Bit 6

o
o

1

1

Bit port (No handshake)
Input port with handshake
output port with handshake
Bidirectional port with handshake

Interrupt on Two Bytes (ITB)

o-

Indicates that Interrupt Pending (IP) should be set when
one byte of data is available for transfer.
For an input
port IP is set when the Input Data Register is full.
For an
output port IP is set when the Output Data Register is
empty.
1 - Indicates that IP should be set when two bytes of data are
available for transfer.
For an input port IP is set when
both the Input Data Register and the Input Buffer Register
are full.
For an output port IP is set when both the Output
Data Register and the Output Data Buffer are empty.
This bit must be set to zero for ports specified as bit
ports, single-buffered ports, or bidirectional ports.

250

uNOTE # 032
Page 5 of 42
Bit 4:

Single Buffered (SB)

o-

1 -

Indicates that the port is double-buffered.
Indicates the the port is single-buffered.

This bit is always 0 for bit ports.
Bit 3:

Interrupt on Match Only (IMO)

o-

Port operates normally.

1 - An interrupt is generated when the data moved into the Input

Data Register or out of the Output Data Register matches the
pattern specification.
Bits 2,1:

Pattern Mode Specification Bits

These bits define the operation of the pattern recognition logic
as shown by the following table:
Bit 2

o
o

1
1

Bit 0:

Bit 1

o

Disable Pattern Match
AND Mode
OR Mode
OR-Priority Encoded vector Mode

1

o

1

Latch on Pattern Match (LPM) or Deskew Timer Enable (DTE)
When a port is used as a bit port the LPM function is used.
When a port with handshake is used the DTE function is used.
LPM:

o-

Pattern matches are detected but the data read from the port
follows the port pins.
1 - When a pattern match is detected the input data at the port
is latched.
DTE:

o - The deskew timer is not activated.
1 - The deskew timer is activated to perform delay functions as
set in the Port Handshake Specification Register.

Port Handshake Specification Register
3

7

2

Port A == 1 77102
Port B -- 177122

251

1

o

uNOTE :I 032
Page 6 of 42
These bits are ignored if the port is a bit port.
bits to O. All bits are read/write.
Rits 7,6:

A RESET forces all

Handshake Type Specification Bits

These bits define the type of handshake a port will use as shown
by the following table:
Bit 7

o
o

1

1

Bit 6

o
o

1

1

Interlocked Handshake
Strobed Handshake
Pulsed Handshake
3-Wire Handshake

The Pulsed and 3-Wire Handshakes must not be specified for
bidirectional ports. Only one port at a time may use the Pulsed
Handshake. If one port uses the 3-Wire Handshake the other port
must be specified as a bit port.
Bits 5,4,3:

REQUEST/WAIT Specification Bits (RWS)

The WAIT function is not implemented on the KXT11-C. These bits
define the utilization of the REQUEST line as shown by the
following table:
Bit 5
0
0
0
1
1
1

Bit 4
0
0
1
0
0
1

Bit 3
0
1
1
0
1
1

REQUEST disabled
Not supported
Not supported
Special REQUEST
Output REQUEST
Input REQUEST

Only Port A may use the REQUEST capability - Port B must be
programmed as a bit port.
Bits 2,1,0:

Deskew Time Specification Bits

These bits specify the amount of deskew time to be provided for
output data. They define the minimum number of Peripheral Clock
(PCLK) cycles of delay between the output of a new byte of data
and the handshake logic indicating that new data is available.
PCLK - 250 ns. 0 PCLK cycles are chosen by setting DTE-O in the
Port Mode Specification Register.

252

uNOTE # 032
Page 7 of 42
Bit 1
0
0
1
1
0
0
1
1

Bit 2
0
0
0
0
1
1
1
1

Bit 0
0
1
0
1
0
1
0
1

PCLK cycles
2

4
6

8
10
12
14
16

Port Command and status Register
7

6

I

5

I

4

3

2

1

0

Port A - 177020
Port B - 177022
A RESET forces ORE to 1 and all other bits to O.
readable and four are writeable.
Bit 7:

Interrupt Under Service

All bits are

(IUS)

o-

Cleared to indicate that the port is not servicing an
interrupt.
1 - Indicates that that the port has been recognized by an
interrupt acknowledge sequence.
Bit 6:

Interrupt Enable (IE)

o-

Interrupt logic disabled. The port is unable to request an
interrupt or to respond to an interrupt acknowledge.
1 - Interrupt logic operates normally.
Bit 5:

Interrupt Pending (IP)

o - Cleared to indicate that the port does not require service.
1 - Set to indicate the port needs service because of a pattern
match, a handshake, or an error.
Bits 7, 6, and 5 are written using the following codes:

253

uNOTE # 032
Page 8 of 42
Bit 7

Bit 6
0
0
0
0

1
1
1
1

Bit 4 :

Bit 5
0
0

1

0

1
1

1

0
0

1

1
1

1

0
0
0

Null code
Clear IP and IUS
Set IUS
Clea r IUS
Set IP
Clear IP
Set IE
Clear IE

Interrupt Error (ERR)

This bit is set to 1 when using a a bit port with pattern match
enabled if a second match occurs before the previous match is
acknowledged. This is a read-only bit.
Bit 3:

Output Data Register Empty (ORE)

A status bit that indicates when an output port's Output Data
Register is empty. This bit can only be cleared by writing to
the data register. This is a read-only bit.
Bit 2:

Input Data Register Full (IRF)

A status bit that indicates if an input port's Input Data
Register is full. This bit can only be cleared by reading the
Input Data Register. This is a read-only bit.
Bit 1:

Pattern Match Flag (PMF)

If the port pattern match logic is enabled this bit will
indicate when a match is detected. This bit is read-only.
Bit 0:

Interrupt on Error (IOE)

o-

Disables the generation of an interrupt if an error occurs
within the pattern match logic.
1 - Enables the generation of an interrupt if an error occurs
within the pattern match logic.
This bit is valid only for bit ports with pattern match logic
enabled. It is ignored by ports with handshake and should be
programmed to O.
BIT PATH

DEFINIT~N

REGISTERS

Each port has a set of these registers.
bits are valid in the port C registers.

254

Only the four least significant

*

uNOTE
032
Page 9 of 42
Data Path Polarity Registers
These registers define whether the bits in a port are inverting or
non-inverting.
These bits are cleared by a RESET and are read/write.

o

7

Port A = 177104
Port B = 177124
Port C = 177012

o - Non-inverting
1 =- Inverting
Date Direction Registers
These registers are ignored by ports with handshake.
For bit ports
they define the data direction for each bit. These bits are cleared
by a RESET and are read/write.
7

3

2

1

o

Port A =- 177106
Port B = 177126
Port C =- 177014

o =- Output bit
1 == Input bit
Special I/O Control Registers
These registers supply special characteristics to the port's data
paths. A RESET clears all bits to O. All bits are read/write.
7

6

I5 I4 I3 I2 I1
Port A = 177110
Port B = 177130
Port C = 177016

0 = Normal Input or Output
1 = Input with l's catcher

255

0

uNOTE: # 032
Page 10 of 42
PATTERN DEFINITION REGISTERS
These registers are used collectively to specify the match pattern for a
port. A RESET clears all bits to O. All bits are read/write .
Pattern Polarity Registers (PPR)
3

7

2

1

o

1

o

Port A - 177112
Port B - 177132
Pattern Transition Registers (PTR)
3

7

2

Port A - 177114
Port B = 177134
Pattern Mask Registers (PMR)

Port A = 177116
Port"B -= 177136
The pattern specification for each bit is shown in the following
table:
PPR

PTR

PMR

1
1

o
1
o
o

1

1

o
o
o
1
o

1

1

1

o
o

Bit masked off
Any transition
Zero
One
One to zero transition
Zero to one transition

PORT DATA REGISTERS
Ports A and B have a data path that consists of three registers: an
Input Data Register, and Output Data Register, and a Buffer Reqister.
The Buffer Register is used to buffer the input or output data of a port
with handshake.
It is also used by bit ports to latch data whE~n pattern
matching is enabled.

256

uNOTE # 032
Page 11 of 42
Port A and B Data Registers
6

7

5

4

3

2

1

o

Port J\. == 177114
Port B == 177134
The Port C data register consists of two registers:
an Input Data
register and an Output Data register. Because Port C is only 4 bits
wide the least significant four bits of the data register are used for
the data path. The four most si9nificant bits are used as a writeprotect mask for the four least significant bits.
Port C Data Register

I I I I4 I3 I I1 I0 I
7

6

2

5

,..

;j
Bits 7,6,5,4:

,.

I

,.

I

,..

I

0 == writing of corresponding LSB enabled
1 - writing of corresponding LSB inhibited
Port C = 177036

COUNTER/TIMER CONTROL REGISTERS
Each counter/timer has a set of Counter/Timer Control registers to
specify the operation of the counter/timers.
Counter/Timer Mode Specification Registers
These registers define the modE~ of operation for the counter/timers
and specify the external contr()l and status lines to provide for it.
A RESET clears all bits to O. All bits are read/write.
7

I

6

I5 I4 I

3

2

I1 I

Counter/Timer 1 = 177070
Counter/Timer 2 = 177072
Counter/Timer 3 = 177074

257

0

uNOTE # 032
Page 12 of 42
Bit 7:

Continuous/Single Cycle

o-

When the counter reaches 0 the countdown sequence is
terminated.
1 - When the counter reaches 0 the time constant value is
reloaded and the countdown sequence is repeated.
Bit 6:

External Output Enable (EOE)

o - No external access.
1 - The output of the counter/timer is available on the I/O pin
associated with that counter/timer. (See table 2 for pin
assignments.)
Bit 5:

External Count Enable (ECE)

o - No external access.
1 - The I/O line of the port associated with the counter/timer
is used as an external counter input. (See table 2 for pin
assignments.)
Bit 4:

External Trigger Enable (ETE)

o - No external access
1 - The I/O line of the port associated with the counter/timer
is used as a trigger input to the counter/timer.
(See
table 2 for pin assignments.)
Bit 3:

External Gate Enable (EGE)

o - No external access
1 - The I/O line of the port associated with the counter/timer
is used as an external gate input to the counter/timer.
This allows the external line to suspend/continue the
countdown in progress by toggling the line. (See table
2 for pin assignments.)
Bit 2:

Retrigger Enable Bit (REB)

o-

Triggers (external or internal) that occur during a
countdown sequence are ignored.
1 - Triggers that occur during a countdown sequence cause a
new countdown to begin.
Bits 1,0:

Output Duty Cycle Selects

These two bits select the output duty cycle as shown in the
following table:

258

uNOTE # 032
Page 13 of 42
Bit 1

o
o

1

1

Bit 0

o
o

Pulse Output
One-Shot Output
Square Wave Output
Do not uf;e

1

1

See figure 2 for a description of each output duty cycle.
Counter/Timer Command and Status Registers
Each counter/timer contains a command and status register for
controlling the operation of thl~ counter/timer. A RESET clears all
bits to O.
7

6

5

4

3

2

1

o

Counter/Timer 1 - 177024
Counter/Timer 2 - 177026
Counter/Timer 3 = 177030
Bit 7:

Interrupt Under Service (IUS)
The'operation of the this bit is the same as the IUS bit
described on page *.

Bit 6:

Interrupt Enable (IE)
The operation of the this bit is the same as the IE bit
described on page *

Bit 5:

Interrupt Pending (IP)
This bit is set to 1 to indicate that the counter/timer needs
to be serviced.
It is automatically set to 1 each time the
counter/timer reaches its terminal count.

The IUS, IE, IP bits are written by using the codes shown in the
following table:
Bit 7
0
0
0
0
1
1
1
1

Bit 6
0
0
1
1
0
0
1
1

Bit 5
0
1
0
1
0
1
0
1

259

Null code
Clear IP and IUS
Set IUS
Clear IUS
Set IP
Clear IP
Set IE
Clear IE

llNOTE # 032
PagE~

14 of 42

Bit 4:

Interrupt Error (ERR)
This bit is set to indicate that the counter/timer has reached
a terminal count before the previous terminal count has been
serviced.

Bit 3:

Read Counter Control (RCC)
Writing this bit to a 1 causes the contents of the Counter/Timer
Current Count Register (CCR), which normally follows the downcounter, to be frozen until the least-significant byte of the
CCR is read.

Bit 2:

Gate Command Bit (GCB)

o - Halts the countdown sequence.
1 - starts or resumes the countdown sequence.
Bit 1:

Trigger Command Bit (TCB)
When written with a 1, this bit causes the down-counter to be
loaded with the time constant value and a countdown sequence
to be initiated.

Bit 0:

Count in Progress (CIP)
This status bit is set to 1 to indicate that a countdown
sequence is in progress.
It is automatically set to 0 when
the down-counter reaches o.

Counter/Timer Time Constant Registers
These registers contain the time constant value that is loaded into
the down-counter when a trigger is detected. These registers are 16
bits wide and are accessed as two a-bit registers.
(Bit 7 of the
most-significant byte is bit 15 of the Time Constant register). A
RESET does not effect these registers.
Bit 15

Bit 0

<

> <

MSB

I7 I6

5

I4 I3

2

0

1

Counter/Timer.. 1 MSB = 177054
Counter/Timer 2 MSB = 177060
Counter/Timer 3 MSB = 177064

260

LSB

I I7

6

5

4

>
3

2

1

I0 I

Counter/Timer 1 LSB - 177056
Counter/Timer 2 LSB - 177062
Counter/Timer 3 LSB - 177066

uNOTE # 032
Page 15 of 42
Counter/Timer Current Count Registers
These 16-bit registers follow the contents of the appropriate downcounter until a 1 is written into the RCC register. At that time the
contents of the CCR are frozen until the least-significant byte of the
CCR is read. A RESET forces the CCR to follow the down-counter again.
Bit 15

Bit 0

<

> <

MSB

I7 I6

5

4

3

2

1

0

Counter/Timer 1 MSB == 177040
Counter/Timer 2 MSB - 177044
Counter/Timer 3 MSB - 177050

>

LSB

I I7

6

5

4

3

2

1

I0 I

Counter/Timer 1 LSB - 177042
Counter/Timer 2 LSB - 177046
Counter/Timer 3 LSB - 177052

INTERRUPT RELATED REGISTERS
These registers contain the interrupt vectors output during an interrupt
acknowledge sequence. Registers are provided for Port A, Port B, one to
be shared by the Counter/Timers. Another register is provided to
indicate which devices need service in a polled environment.
Interrupt vector Registers
These vectors contain the vector output when the source of an
interrupt is acknowledged.
If Master Interrupt Enable - 1 then the
vector register returns status when read according to the following
table:
Port vector Status
OR-Priority Encoded vector Mode:
Bit 3

Bit 2

Bit 1

x

x

x

Encodes the number of the highest-priority
bit with Cl match

All other modes:
Bit 3
ORE

o

Bit 2
IRF

o

Bit 1
PMF

o

Normal
Error

Counter/Timer Status
Bit 2
0
O.

1
1

Bit 1
0
1
0
1

Counter/Timer 3
Counter/Timer 2
Counter/Timer 1
Error

261

uNOTE # 032
Page 16 of 42

7

4

5

6

2

3

1

o

Port A = 177004
Port B = 177006
Counter/Timers = 177010
The native firmware of the KXT11-C initializes these interrupt vectors
to the following values:
Port A - 200
l?ort B - 204
Counter/Timers - 210
Current Vector Register
When read) this register returns the interrupt vector that would have
been output by the device during an interrupt acknowledge cycle if its
lEI input had been high.
The vector returned corresponds to the
highest priority IP independent of IUS.
The order of priority is:
Counter/Timer 3, Port A, Counter/Timer 2, Port B, Counter/Timer 1"
If
no enabled iriterrupts are pending, a pattern of ones is returned.
This is useful in a polled environment.

o

7

Address

=

177076

I/O BUFFER CONTROL REGISTER
The PIO chip is protected from the connector by a set of buffers.
These
buffers comply with the IEEE 488 electrical standards.
The buffers
allow the ports to configured as inputs or outputs. They also allow the
ports to be configured as open collectors or active pull-ups.

[ 15

I 14 I 13 I 12 I 11

10

I9 I8 I7 I6

Address
Bit 15:

PCTT

=

5

4

3

177140

(Cleared on RESET)

o - Configures the Port C drivers for open collector
1 - Configures the Port C drivers for active pull-up

262

2

1

o

uNOTE i 032
Page 17 of 42
Bit 14:

PABTT

(Cleared on RESET)

o - Configures the Port A and B drivers for open collector
1 - Configures the Port A and B drivers for active pull-up
Bits 13:10:

PC DIR

(Cleared on RESET)

0 - Port C bit is a receiver
1 - Port C bit is a drivE~r
Bit 9:

PAHN DIR
0
1

Bit 8:

-

(Cleared on RESE:T)

Port A high nibble bits ( 4 : 7 ) are receivers
Port A high nibble bits are drivers

PALN DIR

(Cleared on RESET)

0 - Port A low nibble bits ( 0: 3 ) are receivers
1 - Port A low nibble bits are drivers
Bits 7 : 0:

PB DIR
0
1

-

(Cleared on RESET)

Port B bit is a receiver
Port B bit is a driver

PROGRAMMING THE I/O PORTS
This section will describe how to program the I/O ports and provide
example programs.
In particular this section will describe how to use
the I/O ports in the following modes:
as bit ports, as ports with
handshake, in 16-bit linked mode, and with the DMA controller. The use
of the pattern recognition logic will also be discussed.
programming the I/O Ports as Bit Ports
Using the I/O ports as bit ports provides up to 20 lines for control and
status. Each bit in ports Band C may be independently configured to be
an input or an output. Port A must be configured on a nibble (4-bit)
basis.
programming the PIO as a bit port is straight-forward. First, the Port
Mode Specification Register is used to select the port as a bit port
with/without pattern matching. 'I'hen the Bit Path Definition Registers
are
used
to
determine
the
polarity,
direction, and special
characteristics of the bits of the port.
If pattern recognition is
enabled the Pattern Definition Registers must also be initialized. It
is then a simple matter to write to the output data buffer to provide
the correct control signals and to read the input data buffer to monitor
status.

263

uNOTE # 032
Page 18 of 42
The following program provides an example for using the PIO in
mode:
.TITLE
j:

the

bit

PI01.MAC

+

;

This program provides an example of how to program the PIO's
I/O ports as bit ports. This program utilizes the PIO
loopback connector (Part #H3021 or 54-16227) which makes the
following connections:
AO
A1

BO
B1

A7
CO
C1

B7
C3
C2

;

;
;
;

After this program has been assembled and linked on the
development machine use, the KUI utility of the KXT11-C Software
Toolkit to load the program into the KXT11-C to execute as
shown in this example:
SET 2
LOAD PI01.SAV
EXECUTE

;

lOOT

;
;
;

'001152
R2/000000
1154/041101
001156/042103
001160/043105
001162/177507
001164/041101
001166/042103
001170/043105
.001172/000107
1001174/000000

;

.

EXIT

i

A non-zero result in R2 indicates that an error has occurred.
(Try
running the test without the loopback connector). Location 1154 is
the beginning of the output buffer.
Location 1164 is the beginning
of the input. buffer.

,
;

; .-

Register Assignments
MIC
MCC

177000
177002

264

uNOT! # 032
Page 19 of 42
PAMODE
PAPOL
PADDIR
PASIO
PADATA

177100
177104
177106
177110
177032

PBMODE
PBPOL
PBDDIR
PBSIO
PBDATA

177120
177124
177126
177130
177034

IOCNTL

177140

START: :
MTPS

#340

Inhibit recognition of
interrupts

;
Initialize PIO
MOVB
#1,MIC
CLRB

Reset device and inhibit interrupt
requests
Enable device (interrupts still
inhibited)

MIC

; Set-up Port A
CLRB
PAMODE
CLRB
PAPOL
CLRB
PADDIR
CLRB
PASIO

Port A: bit port, no pattern match
Port A bits are non-inverting
Port A bits are output bits
Normal output

; Set-up Port B
CLRB
PBMODE
CLRB
PBPOL
MOVB
#377,PBDDIR
CLRB
PBSIO

Port B: bit port, no pattern match
Port B bits are non-inverting
Port B bits are input bits
Normal input

; Set-up the PIO buffers
configure the PIO buffers for
MOV
#1400,IOCNTL
A-output and B-input
;
Initialize GPRs
MOV
#OUTBUF,RO
MOV
#INBUF,R1
CLR
R2

Point to data to be output
Point to input data buffer
R2 will indicate error status

;
~ush input buffer
TSTB
PBDATA
; Enable Ports A and B and send the data
MOVB
#204,MCC
; Enable ports A and B

265

uNOTE # 032
Page 20 of 42
1$:

MOVB
NOP

(RO)+,PADATA

Move data out of Port A

MOVB

PBDATA, (R1 ) +

and into Port B

.

; Test to see if done
TSTB
(RO )
BPL
1$

IF (RO) is positive
THEN transfer another byte
ELSE check if data is valid

; Compare original data with received data
MOV
#OUTBUF,RO
Point to output data buffer
MOV
#INBUF,R1
Point to input data buffer
2$:

; Test to see if done
TSTB
(RO )
BMI
3$
CMPB
BEQ

( RO ) + , ( R1 ) +
2$

INC

R2

IF (RO) is negative
THEN done comparing
ELSE do another compare
Compare bytes
IF bytes are equal
THEN test another pair
ELSE indicate error
A non-zero value of R2 indicates
an error
Branch here upon completion

3$:

BR

OUTBUF:

.BYTE
. EVEN
.BLKB

101,102,103,104,105,106,107,-1

.END

START

INBUF:

7

266

uNOTE # 032
Page 21 of 42
programming the I/O Ports as Ports with Handshake
Ports A and B may be configured as ports with handshake to facilitate
transferring data on a byte-by-byte basis.
Port C is used to provide
the handshake lines.
In addition, Port C may use the REQUEST line to
utilize a DMA controller to transfer the data.
See table 1 for a
description of the Port C handshake lines.
Figure 1 shows how two PIOs
can be connected directly together to transfer data and the handshake
lines that are utilized.
PIO Handshake Lines
OUTPUT

INPUT

PIO

DATA

\
\
/

PIO

/
DAV
> ACKIN
RFD
ACKIN (-----------------

- Figure 1 The handshakes that are available are:
Interlocked,
Strobed,
Pulsed,
and 3-Wire. A short description of each handshake type follows:
When using the Interlocked Handshake any action by the PIO must be
acknowledged by the external device before the next action can take
place.
In other words, an output port does not indicate that it has new
data available until the external device indicates that it is ready for
data.
Likewise, and input port does not indicate that it is
ready for
new data until the external device indicates that the previous byte of
data is no longer available,
thereby acknowledging the
input port's
acceptance of the last byte.
The Strobed Handshake uses external logic to "strobe" data into or out
of a port.
In contrast to the Interlocked handshake, the signal
indicating that the port is ready for another data transfer operates
independently of the ACKIN input.
External logic must ensure the data
transfers at the appropriate speed.
The Pulsed Handshake is used to interface to mechanical devices which
require data to be held for relatively long periods of time in order to
be gated in or out of the device.
The logic is the same as the
Interlocked Handshake except that Counter/Timer 3 is linked to the
handshake logic to add the appropriate delays to the handshake lines.

267

uNOTE # 032
Page 22 of 42
The 3-Wire Handshake may be used so that one -output port can communicate
to several input ports simultaneously. This is essentially the same as
the Interlocked Handshake except that two individual lines are used to
indicate when an input port is ready for data (RFD) and when it has
accepted data (DAC).
Because this handshake requires three lines only
one port can use the 3-Wire Handshake at a time.
Port C Handshake Lines
Port C Bits
Port A/B Configuration

Pin C3

Pin C2

Pin Cl

Pin CO

Ports A & B - Bit Ports

Bit I/O

Bit I/O

Bit I/O

Bit I/O

Port A - Input or Output
(Interlocked, Strobed,
or Pulsed Handshake)*

RFD or DAV

ACKIN

REQUEST
or Bit I/O

Bit I/O

Port B - Input or Output
(Interlocked, Strobed,
or Pulsed Handshake)*

REQUEST
or Bit I/O

Bit I/O

RFD or DAV

ACKIN

Port A or B = Input Port
(3-Wire Handshake)

RFD
(Output)

DAV
(Input)

REQUEST
or Bit I/O

DAC
(Output)

Port A or B = Output Port
(3-Wire Handshake)

DAV
(Output)

DAC
(Input)

REQUEST
or Bit I/O

RFD
(Input)

Port A or B = Bidirectional RFD or DAV
(Interlocked or Strobed
Handshake)

*

ACKIN

REQUEST
' or Bit I/O

IN/OUT

Both Ports A & B may be specified as input or output ports with
the Interlocked, Strobed, or Pulsed Handshakes at the same time
if neither uses REQUEST. Only one port can use the Pulsed
Handshake at a time.
- Table 1 -

When Ports A and B are configured as ports with handshake they must also
be configured as single- or double-buffered.
Double-buffering a port
allows more time for the interrupt service routine ,to respond to a data
transfer.
A s~cond byte of data is input to or output from the port
before the interrupt for the first byte is serviced. A single-buffered
port is used whe~ it is important to have byte-by-byte control over the
transfer or where it is important to enter the interrupt service routine
in a fixed amount of time after the data has been accepted/output.
The REQUEST line may also be used by ports with handshake.
This control
line enables the PIa to signal the DMA controller of the KXTll-C that
the port wishes to transfer data without CPU intervention.
The
operation of the REQUEST line is dependent on the Interrupt on Two Bytes

268

uNOTE # 032
Page 23 of 42
(ITS) bit in the Port Mode Specification Register.
If ITS - 0 then the
REQUEST line goes active anytime a byte is available to transfer.
If
ITB - 1 then the REQUEST line does not assert until two bytes are
available to transfer.
The implementation'of the PIO on the KXT11-C
requires that only Port A be used for DMA transfers.
Since the REQUEST
line utilizes one of the Port C bits Port B must be programmed as a bit
port when Port A uses the REQUEST facility.
The following example programs display the capabilities of the PIO
as a port with handshake:
.TITLE
;
;
;
;
;
;
;
;
;

used

PI02.MAC

This program demonstrates the ability of the PIO to transfer data
on a byte-by-byte basis. The program uses the Interlocked
Handshake to transfer data from Port A to Port B. Both ports are
configured as single-buffered. The PIO loopback connector (part
#H3022 or 54-16227) or a functional equivalent is required to
successfully run this program.
After this program has been assembled and linked on the
development machine use the KUI utility of the KXT11-C Software
Toolkit to load the program into the KXT11-C to execute as
shown in this example:
SET 2
LOAD PI02.SAV
EXECUTE
'ODT

;

;
;

001214
1262/065151
001264/066153
001266/067155
001270/070157
!001272/000377
!001274/065151
1001276/066153
!001300/067155
1001302/070157
1001304/000000

;

EXIT

;

This veri~ies that the contents of the output buffer (location 1262
were successfully transferred to the input buffer (location 1274).

;
;
;

; Register Assignments
MIC

177000

269

uNOTE # 032
Page 24 of 42
MCC

177002

PAVEC
PASTAT
PADATA
PAMODE
PAHDSH
PAPOL
PASIO

177004
177020
177032
177100
177102
177104
177110

PBVEC
PBSTAT
PBDATA
PBMODE
PBHDSH
PBPOL
PBSIO

177006
177022
177034
177120
177122
177124
177130

PCPOL
PCDDIR

177012
177014

IOCNTL

177140

STAR'r: :
MTPS

#340

Inhibit recognition of interrupts

MOVB

#l,MIC

CLRB

MIC

Reset device and inhibit interrupt
requests from the PIO
Enable device (interrupts still
inhibited)

MOVB
MOV
MOV

#200,PAVEC
#OUT,@#200
#340,@#202

Set up Port A interrupt vector
and PSW

MOVB
MOV
MOV

#204,PBVEC
#IN,@#204
#340,@#206

Set up Port B interrupt vector
and PSW

; set-up Port A
MOVB
#220,PAMODE
CLRB
PAHDSH
CLRB
PAPOL
CLRB
PASIO
MOVB
#300,PASTAT

Port A: Output Port, single-buffered
Use interlock handshake
Port A bits are non-inverting
Normal output
Enable Port A interrupts

; Set-up Port B
MOVB
#120,PBMODE
CLRB
PBHDSH
CLRB
PBPOL
CLRB
PBSIO
MOVB
#300,PBSTAT

Port B:
Input Port, single-buffered
Use interlock handshake
Port B bits are non-inverting
Normal input
Enable Port B interrupts

270

uNOTE # 032
Page 25 of 42
; Set-up the Port C handshake lines.
; All handshake lines are configured as inputs - even
;
if they aren~tl
MOVB
#377,PCDDIR
Port C bits are inputs
; Set-up the PIa buffers
MOV
#165400,IOCNTL; configure the PIO buffers for A-out
B-input, CO,C2-input, C1,C3-output
; Set-up data areas
MOV
#OUTBUF,RO
MOV
#INBUF,R1
; Enable Interrupts
MOVB
#224,MCC
MOVB
#200,MIC
MTPS
#0

Point to Output Buffer
; Point to Input Buffer
Enable ports A, S, and C
Enable MIC
Enable recognition of interrupts

; Start the first transfer
MOVB
#200,PASTAT
Set IP to initiate a transfer
BR

; Wait here for the interrupts

OUT: :
BMI

(RO)
1$

MOVB

(RO)+,PADATA

BR
MOVB
MOVB
RTI

2$

#240, PASTAT'
#140,PASTAT

Clear IP when done
Clear IUS on each pass

MOVB

PBDATA, (R1) +

MOVB
RTI

#140,PBSTAT

Move byte from Port B input data
register
Clear IUS on each pass

.BYTE
• EVEN
.BLKB

151,152,153,154,155,156,157,160,-1

.. END

START

~STB

1$:
2$:

IF (RO) are negative
THEN transfers are complete
ELSE transfer another byte
Move byte to the Port A output data
register

IN: :

OUTBUF:
INBUF:

10

271

uNOTE i 032
Page 26 of 42
.TITLE

;

PI03.MAC

This program is basically the same as PI02.MAC with the
with the exception that the ports are double-buffered.
The PIO loopback connector (part #83022 or S4-16227) or a
functional equivalent is required to successfully run this program.
After this program has been assembled and linked on the
development machine use the KUI utility of the KXT11-C Software
Toolkit to load the program into the KXT11-C to execute as
shown in this example:

,;

;
;
;

;
;
;

;
;

SET 2
LOAD PI03.SAV
EXECUTE
! OOT
1001214
11272/065151
'001274/066153
001276/067155
001300/070157
001302/000377
001304/065151
001306/066153
001310/067155
1001312/070157
1001314/000000
EXIT
This verifies that the contents of the output buffer (location 1272
were successfully transferred to the input buffer (location 1304).
; Register Assignments
MIC
MCC

177000
177002

PAVEC
PASTAT
PADATA
PAMODE
PAHDSH
PAPOL
PASIO

177004
171"020
177032
177100
177102
177104
177110

PBVEC
PBSTAT
PBDATA
PBMODE

177006
177022
177034
177120

272

uNOTE # 032
Page 27 of 42
PBHDSH
PBPOL
PBSIO

177122
177124
177130

PCPOL
PCDDIR

177012
177014

IOCNTL

177140

START: :
MTPS

#340

MOVB

#l,MIC

CLRB

MIC

MOVB
MOV
MOV

#200,PAVEC
#OUT,@#200
#340,@#202

MOVB
MOV
MOV

#204,PBVEC
#IN,@#204
#340,@#206

Inhibit recognition of interrupts
; Reset device and inhibit interrupt
requests from the PIO
Enable device (interrupts still
;
inhibited)
; Set up Port A interrupt
and PSW

vecto~

Set up Port B interrupt vector
and PSW

; Set-up Port A
MOVB
#240,PAMODE
CLRB
PAHDSH
CLRB
PAPOL
CLRB
PASIO
MOVB
#300,PASTAT

Port A: Output Port, double-buffered
Use interlock handshake
; Port A bits are non-inverting
Normal output
Enable Port A interrupts

; Set-up Port B
MOVB
#140,PBMODE
CLRB
PBHDSH
CLRB
PBPOL
CLRB
PBSIO
MOVB
#300,PBSTAT

Port B:
Input Port, double-buffered
Use interlock handshake
Port B bits are non~inverting
Normal input
Enable Port B interrupts

; set-up the Port C handshake lines.
All handshake lines are configured as inputs - even
;
if they aren'tl
Mova
#377,PCDDIR
Port C bits are inputs
; Set-up the PIO buffers
MOV #165400, IOCNTL
; set-up data areas
MOV
#OUTBUF,RO
MOV
#INBUF,R1

273

configure the PIO buffers for A-out
B=input, CO,C2-input, Cl,C3-output
Point to Output Buffer
; Point to Input Buffer

uNOTE # 032
page 28 of 42
; Enable Interrupts
MOVB
#224,MCC
MOVB
#200,MIC
MTPS
#0

Enable ports A, B, and C
Enable MIC
Enable recognition of interrupts

; start the first transfer
MOVB
#200,PASTAT
Set IP to initiate a transfer
SR

wait here for the interrupts

OUT: :

1$:
2$:

TSTB
BMI

(RO)
1$

MOVB

(RO)+,PADATA

MOVB

(RO)+,PADATA

BR
MOVB
MOVB
RTI

2$
#240,PASTAT
#140,PASTAT

MOVB

PBDATA, (R1)+

MOVB

PBDATA, (R1) +

MOVB
RTI

#140,PBSTAT

.BYTE
. EVEN
.BLKB

151,152,153,154,155,156,157,160,-1
10

.END

START

IF (RO) are negative
THEN transfers are complete
ELSE transfer another byte
Move 1st byte to the Port A output
data register
Move 2nd byte to the Port A buffer
register
Clear IP when done
Clear IUS on each pass

IN: :

OUTBUF:
INBUF:

Move 1st byte from Port B input data
register
Move 2nd byte from Port B buffer
register
Clear IUS on each pass

274

uNOTE # 032
Page 29 of 42

;
;
;

;

This example shows something a little more practical - one
KXT11-C transferring data to another.
Two programs follow:
one accepts data through Port B using the double-buffered
mode (PI04I.MAC); the second one sends data out of Port A
using the double buffered mode (PI040.. MAC).
In order to
successfully run these programs the KXT11-Cs must be connected
by a "straight-thru" ribbon cable which is given a half twist.
In other words, it should make the same connections that the
PIO loopback connector does. (AI-B1,A2-B2, ... A7-B7,CO-C3,C1-C2).

;

;
;

Each program should be assembled and linked separately on the
development machine.
Then use the KUI utility of the KXT11-C
Software Toolkit to load the programs into the KXT11-Cs to execute
as shown in this example:

;

;
;
;
;

;

SET 3
LOAD PI04I.SAV
EXECUTE
SET 2
LOAD PI040.SAV
EXECUTE
SET 3
lOOT

;

;
;

00113,0
1152/065151
001154/066153
001156/067155
001160/070157
001162/000000
EXIT

;

This verifies that the data was successfully transferred to
the input buffer of KXT11-C #3.
;

;-------------------------;----------------------------------------------------------------------.TITLE PI04I.MAC
; Register Assignments
MIC
MCC

177000
177002

PBVEC
PBSTAT
PBDATA
PBMODE
PBHDSH
PBPOL
PBDDIR

177006
177022
177034
177120
177122
177124
177126

275

uNOTE # 032
Page 30 of 42
PBSIO

177130

PCDOIR

177014

IOCNTL

177140

START: :
Inhibit recognition of interrupts
Reset device and inhibit interrupt
requests from the PIO
Enable device (interrupts still
inhibited)

MTPS
MOVB

#340
#l,MIC

eLRB

MIC

MOVB
MOV
MOV

#204,PBVEC
#IN,@#204
#340,@#206

Set up Port B interrupt vector
... and PSW

MOVB
eLRB
eLR
eLR
MOVB

#140,PBMODE
PBHDSH
PBPOL
PBSIO
#300,PBSTAT

Port B:
Input Port, double-buffered
Use interlock handshake
Port B bits are non-inverting
Normal input
Enable Port B interrupts

MOVB

#377,PCDDIR

Port C bits are inputs

MOV

#165400,IOCNTL

configure the PIO buffers for A-out
B=input, CO,C2-input, Cl,C3-output

MOV

#INBUF,R1

Point to input data buffer

MOVB
MOVB

#220,MCC
#200,MIC

Enable ports Band C
Enable MIC

MTPS
BR

#0

Enable recognition of interrupts
Wait here for the interrupts

MOVB

PBDATA, (Rl)+

MOVB

PBDATA, (R1) +

MOVB
RTI

#140,PBSTAT

Move 1st byte from Port B input data
register
Move 2nd byte from Port B buffer
register
Clear IUS on each pass

.BLKB

10

.END

START

IN: :

INBUF:

276

uNOTE # 032
Page 31 of 42

.TITLE

PI040.MAC

; Register Assignments
MIC
MCC

177000
177002

PAVEC
PASTAT
PADATA
PAMODE
PAHDSH
PAPOL
PASIO

177004
177020
177032
177100
177102
177104
177106
177110

PCPOL
PCDDIR

177012
177014

IOCNTL

177140

P~~DDIR

START: :
MTPS
MOVB

#340
#1,MIC

CLRB

MIC

MOVB
MOV
MOV

#200,PAVEC
#OUT,@#200
#340,@#202

Set up Port A interrupt vector
... and PSW

MOVB
CLRB
CLR
CLR
MOVB

#240,PAMODE
PAHDSH
PAPOL
PASIO
#300,PASTAT

Port A: Output Port, double-buffered
Use interlock handshake
Port A bits are non-inverting
Normal output
Enable Port A interrupts

MOVB

#377,PCDDIR

Port C bits are inputs

MOV

#165400,IOCNTL

configure the PIO buffers for A-out
B=input, CO,C2=input, C1,C3-output

MOV

#OUTBUF,RO

Point to output data buffer

MOVB
MOVB
MTPS

#24,MCC
#200,MIC
#0

Enable ports A and C
Enable MIC
Enable recogn~tion of interrupts

Inhibit recognition of interrupts
Reset device and inhibit interrupt
requests from the PIO
Enable device (interrupts still
inhibited)

277

uNOTE i 032
Page 32 of 42
MOVB
BR

i200,PASTAT

Set IP to initiate a transfer
wait here for the interrupts

TSTB
BMI

(RO)
1$

MOVB

(RO)+,PADATA

MOVB

(RO)+,PADATA

IF (RO) are negative
THEN all data has been transferred
ELSE do another transfer
Move 1st byte to. the Port A output
data register
Move 2nd byte to the Port A buffer
register

BR
MOVB
MOVB
RTI

2$
i240,PASTAT
i140,PASTAT

OUT: :

1$:
2$:

OUTBUF::.BYTE
.END

Clear IP when done
Clear IUS on each pass

151,152,153,154,155,156,157,160,-1
START

278

uNOTE # 032
Page 33 of 42
;
;
;
;
;

The following two programs demonstrate how the DTC may be used
to transfer data from the PIO to KXTII-C local memory~ DTC
transfers may only be accomplished using Port A of the PIO.
It is not possible to properly eonnect two PIOs with a ribbon
cable because the handshake lines will not align correctly when
connecting Port A to Port A.
Therefore it is necessary to build
a caple that makes the following connections:

;

Input Port A
output Port A
AO
(---->
AO
Al
(---->
Al

;
;
;
;

A7

(--

>

A7

C2
C3

(-(--

>
>

C3
C2

;
;

;
;

;
;

It is also necessary to place a jumper between posts M48 and M49
so that the REQUEST line from the PIO may signal th~ DTC.
For more
information about 'programming the DTC please refer to Micronote 18.

;

;

After each program has been assembled and linked on the
development machine use the KUI utility of the KXTII-C Software
Toolkit to load the programs into a KXT11-C to execute as
shown in this example:

;

;
;
;
;

SET 3
LOAD PI05I.SAV
EXECUTE
SET 2
LOAD PI050.SAV
EXECUTE
SET 3
ODT

;

;
;
i

;
;
;
;
;

001140
1140/000777
001142/065151
001144/066153
001146/067155
1001150/070157
1001152/001602
!
Examinin~the contents of the input buffer (location 1142)
verifies that the data was successfully transferred.

;
;------~--------------------------------------------------------

.TITLE

PI05I.MAC

279

uNO'l'E # 032
Page 34 of 42
This program transfers data from Port A of the PIO
to local memory by utilizing the DTC
Register Assignments
MMREG
CMDREG
CASTF1
CAOF1

174470
174454
174444
174440

MIC
MCC

177000
177002

PAVEC
PASTAT
PADATA
PAMODE
PAHDSH
PAPOL
PADDIR
PASIO

177004
177020
177032
177100
177102
177104
177106
177110

PCPOL
PCDDIR

177012
177014

IOCNTL

177140

START: :
MTPS

#340

; Inhibit recognition of interrupts

; Initialize the DTC - for more information on the DTC
; refer to Micronote #18.
MOVB
#154,MMREG
Load Master Mode Reg to Disable DTC
CLRB
CMDREG
Reset the DTC
MOV
#O,CASTFl
Load the CH1 Register SEG/TAG
MOV
#RELOAD,CAOF1
Load the CHl Register Offset
MOVB
#l55,MMREG
Load Master Mode Reg to Enable DTC
MOVB
#241,CMDREG
Start Chain Channel 1
; Initialize the PIO
MOVB
#l,MIC
CLRB

Reset device and inhibit interrupt
requests from the PIO
Enable device (interrupts still
inhibited)

MIC

; Set-l::tp Port A
MOVB
#l20,PAMODE
MOVB
#70,PAHDSH
CLR
CLR

Port A:
Input Port, single-buffered
Use interlock handshake, input
REQUEST
Port A bits are non-inverting
Normal input

PAPOL
PASIO

280

uNOTE # 032
page 35 of 42
MOVB

#2,PCPOL

MOVB

#377,PCDDIR

MOV

#164377,IOCNTL

configure the PIa buffers for A-in
B=output, CO,C2-input, C1,C3-output

MOV

#INBUF,R1

Point to input data buffer

MOVB

#24,MCC

Enable ports A and C

BR
INBUF:

Invert pin C1 - this is the line
that is used for the REQUEST signal
Port C bits are inputs

Wait here while the DMA transfers
take place

.BLKB

10

; Chain Load Region
RELOAD:

.WORD

001602

.WORD
.WORD

000020
; Current Address Register A Seg/Tag
padata+1; Current Address Register A Offset


.WORD
.WORD

000000
inbuf

Current Address Register B Seg/Tag
Current Address Register B Offset


.WORD

000010

Current Operation Count 

.WORD
.WORD

000000
000001

Channel Mode Register High
Channel Mode Register Low


.END

START

.TI~LE

PIOSO.MAC

Reload Word 
Current Address Register A Seg/Tag
Current Address Register A Offset
; 

283

uNOTE # 032
page 38 of 42
PROGRAMMING THE COUNTER/TIMERS
This section will describe how to program the Counter/Timers and provide
example programs demonstrating their capabilities.
Each of the three Counter/Timers provides up to four lines for external
access.
If these external lines are used the corresponding port pins
must be available and programmed in the proper direction. The following
table displays which port pins correspond to the Counter/Timer external
access lines:
Counter/Timer External Access Lines
Function

CIT 1

Counter/Timer Output
Counter Input
Trigger Inp\lt
Gate Input

CIT 3

CIT 2

Port B4
Port as
Port B6
Port B7

BO
B1
52
53

Port
Port
Port
Port

Port
Port
Port
Port

CO
C1
C2
C3

- Table 2 The first step in programming a Counter/Timer is to specify which (if
any) external lines are to be used, the output duty cycle, and whether
the cycle is continuous or single-cycle. The following figures display
the available output duty cycles:
Output Duty Cycles
If Time Constant Value = 5

Pulse Output Mode

I

T

<-

-) 500 nS

I

5

I

4

I

3

I

2

I

1

I

T

I

5

I

4

,-

One-Shot Mode

I

T

I

5

I

4

I

3

284

I

2

I

1

I

T

I

5

I

4

uNOTE # 032
Page 39 of 42
If Time Constant Value

=

8

Square Wave Mode

~
I

T

I

8

I

7

I

I

6

I

I

4

5

I

I

3

2

I

1

T

I

8

- Figure 2 Next, the Time Constant Registers must be loaded.
Each Counter/Timer
contains two of these registers which are used to form the 16-bit value
that is loaded into the down-counter when the Counter/Timer
is
triggered.
If external lines are to be used then the corresponding port pins should
be programmed as bit ports with the correct data direction. Finally,
the Counter/Timer enable bit for that port must be enabled in the Master
Configuration Control Register.
The down-counter is loaded and the countdown sequence is initiated when
the Counter/Timer is triggered.
This trigger may occur because the
Trigger Command Bit (TCB) in the Command and Status Register is set or
because an external trigger input was asserted. Once the countdown is
initiated it will continue towards the terminal count as long as the
Gate Command Bit (GCB) in the Command and status Register is set and the
Gate Input is held asserted (if it is enabled).
If a trigger occurs
during a countdown sequence the action taken is determined by the
Retrigger Enable Bit (REB). If REB = 0 then the trigger is ignored, but
if REB = 1 then the down-counter is reloaded and a new countdown is
initiated.
When the terminal count is reached the state of the Continuous/Single
Cycle bit (C/SC) in the Mode Specification Register is examined. If
C/SC - 0 then the countdown sequence stops. If C/SC - 1 then the time
constant is reloaded and a new countdown is initiated. If the Interrupt
Enable Bit (IE) is set an interrupt request is generated when the
down-counter reaches its terminal count. If a terminal count occurs
while the Interrupt Pending Bit (IP) then an error is indicated by the
Interrupt Error (ERR) bit.
The following program
Counter/Timers:

provides

285

an

example

of

how

to

program

the

uNOTE # 032
Page 40 of 42
.TITLE
;
;
;

CT1.MAC

This program demonstrates how to utilize one of the Counter/Timers
on the KXT11-C.
Counter/Timer 1 will be used in this program.
This counteritimer is clocked at a 500 ns rate.
The time constant
used for the counter is 50,000. Therefore the countdown sequence
will take 25 ms.
(500 ns x 50,000 - 25,000,000 ns - 25 ms).
The
interrupt service routine waits until the countdown sequence has
completed 40 times and then outputs an 'A' out of the console
port. This should happen approximately one time a second.
(25 ms
x 40 - 1 s).

;

;
;
;
;

After this program has been assembled and linked on the
development machine use the KUI utility of the KXT11-C Software
Toolkit to load the program into the KXT11-C to execute as
shown in this example:

;
;
;

SET 2
LOAD CT1.SAV
EXECUTE
EXIT

,.

;

;

Notice that the 'A's keep on coming after you exit

KUI~

; Register Assignments
MIC
MCC
CTVEC
CT1CON
CT1HI
CT1LO
CT1MOD

177000
177002
177010
177024
177054
177056
177070

START: :
MTPS

#340

MOVB
CLRB

#l,MIC
MIC

MOVB
MOV
MOV

#210,CTVEC
#ISR,@#210
#340,@#212

CLR

R1

Disable recognition of interrupts
;

;

Reset PIO
Enable PIO (Interrupts disabled)
Initialize Counter/Timer vector
and ISR address
Used as a counter

MOVB

-#200, CT1MOD

MOVB
MOVB

#203,CT1HI
#120,CT1LO

Select continuous mode, no external
access, pulse output
CT1HI and CT1LO combine ,to form
141520(8) = 50000(10)

MOVB

#100,MCC

Enable Counter/Timer 1

286

uNOTE # 032
page 41 of 42
MOVB
MTPS

#200,MIC
#0

Enable PIO interrupts
Enable recognition of interrupts

BISB

#306,CT1CON

Set IE,GCB,TCB - this starts the
countdown
wait here for the interrupts

Rl
Rl,#40.
2$
Rl
#101,@#177566

Increment the counter
IF this is not the 40th time
THEN count again
ELSE clear the counter and ...
send an 'A' to the console

BR
ISR:
INC
CMP
BNE
CLR
MOVB

;+
;
;
;

,

The console in this case is the KXTll-C console - NOT the
Therefore you'll have to hook a
development system console.
terminal up to SLUl to see the ' A's pop out.

e_

2$:

MOVB

Clear IUS and IP but don't bother
GCB

#44,CT1CON

RTI
.END

START

287

uNOTE i 032
Page 42 of 42
RELATED DOCUMENTS
For further information about the KXTll-C and the PIO please consult the
following sources:
KXT11-C Single-Board Computer User's Guide

(EK-KXTCA-UG)

AmZ8036 Counter/Timer, Parallel I/O Technical Manual*
*

This manual may be obtained from Advanced Micro Devices

288

uNOTE # 033

Title:

System Configuration of DL-type Devices

Originator:

Date: 28-Jun-85
Page 1 of 14

Art Bigler

DL-type devices are single,
asynchronous serial line unit
(SLU)
interfaces used on Digital's Q·-bus and UNIBUS processors. On PDP-lIs
the OL-type SLU is required as thf~ console terminal interface for use
with console octal debugging technique (ODT), diagnostics, and operating
system consoles.
They are also used to provide interfacing to a wide
variety of peripherals on both POP-II and VAX processors.
This MicroNote examines the proper use and configuration of DL-type SLUs
in system environments.
It first discvsses their characteristics, and
then, some of the applications in which they are used.
Lastly,
the
configuration of OL-type SLUs in the system environment is discussed and
a number of recommendations for their use are presented.
It should be noted that the examination of a system configuration and
any resulting recommendations are' based upon the particular application
of the system.
The configuration guidelines presented here are not
necessarily suitable for all application environments.
The system
designer must determine the extent to which this information is
a.ppropriate.

1.0 CHARACTERISTICS OF THE OL-TYPE SLU
The DL-type SLU is an interface to asynchronous serial peripherals (e.g.
terminals)
consisting of a host bus interface (to the Q-bus or UNIBUS),
a receiver and transmitter (usually an industry-standard UART),
and an
electrical interface to the peripheral
(20 rna.
current loop, EIA
RS-232-C, RS-422, etc.). Additional features (e.g.
the line time clock
register on the UNIBUS DL11 or modem control on the Q-bus OLVE1) mayor
may not be present on a oL-type SLUe These features have nothing to do
with the basic function of the SLU which is transmit and receive
asynchronous serial data (i.e. Modem control is a extension of the
capabilities of the interface, not a basic function). A block diagram
of a oL-type SLU is presented in figure 1.

289

uNOTE # 033
Page 2 of 14

Q-BUS OR UNIBUS

v

HOST
BUS
INTF

~---)

<------f

ASYNC
TRANS
/REC

1-----)

<---

ELECT
INTF
TO
SERIAL
LINE

TO/FROM
SERIAL
LINE

Figure 1
Block Diagram, DL-type SLU

1.1 DL-TYPE SLU REGISTERS
All DL-type SLUs must implement four registers:
two control and status
registers
(CSRs),
and two data buffer registers (BUFs).
The same base
configuration of bits within these registers must also be implemented.
These registers and their functions are listed below:
1.

The receiver control and status register (RCSR)
provides a
minimum of control and status of the receive interrupt
enable (bit 06) and status of the receiver done flag
(bit
07).
The receiver done flag is set by the SLU whenever a
character is received.
It may be polled by software or it
may generate an interrupt if the receive interrupt enable
has been set.
The receiver done flag is reset by an
initialization from the host bus or by reading the character
from the receiver data buffer register.

2.

The receiver data buffer register (RBUF) provides a minimum
of received character data (bits 00 through 07) and received
data error information (bits 12 through 15).
The received
data isvalid whenever the receiver done flag is set in the
RCSR.
The error bits are implemented in all DL- type SLUs
except the DLV11 and provide status information for the
received data. All DL-type SLUs implement framing error
(bit 13), overrun error
(bit 14), and error summary (bit
15).
Additionally,
all DL- type SLUs,
except
those

290

uNOTE # 033
Page 3 of 14
implemented with the DC319-1\A DLART, implement parity error
status (bit 12). Error summary is set whenever any of the
other error bits are set. Overrun error is set when a newly
received character is received before the receiver done flag
is reset.
Framing error is set whenever a character is
received without a valid stop bit, usually by a break
character.
Parity error is set whenever a character is
received with the incorrect parity, if the interface has
been configured to check parity.
3.

The transmitter control and status register (TCSR) provides
a minimum of control and status of the transmit interrupt
enable (bit 06) and the transmit break enable (bit 00), and
status
of the transmitter ready flag (bit 07).
The
transmitter ready flag is set by the SLU whenever the
transmitter is ready to transmit another character, or by an
initialization from the host bus. It may be polled by a
program or it may generate an interrupt if the transmit
interrupt enable has been set. The transmitter ready flag
is
res.t
by
transferring
another character to the
transmitter data buffer register. The transmit break enable
forces the transmitter to generate a continuous break
character (continuous space level) while it is set.

4.

The transmitter data buffer register (TBUF) holds a minimum
of the last character to be transmitted (bits 00 through
07). Transferring a character to this register resets the
transmitter ready flag in the TCSR.

Transfers to these registers are performed by programmed I/O, the result
of the execution of an instruction by the host processor. The only
other bus operation a DL-type SLU may initiate is an interrupt from the
transmitter or receiver.
Figure 2 provides graphic representations of these registers.
1
5
RC SR

1
4

1
3

1

1

2

1

1

o

o

o

o

o

o

o

o

o

9

8

7

6

5

4

3

2

o
1

o
o

[L----'---~--!.-----L.---'----'---.L.-..---iIL----.....l.I----L.I---J....----'------'------A..-~--'
RECEIVER DONE FLAG

.~

L

Figure 2
DL-type SLU registers

291

RECEIVE INTERRUPT
ENABLE

uNOTE # 033
Page 4 of 14
1
5

1
4

1
3

1
2

1

1
1

o

o

o

o

o

o

o

o

o

o

9

8

7

6

5

4

3

2

1

o
o

RBUF

L

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

L

PARITY ERROR
RECEIVED
CHARACTER
DATA

FRAMING ERROR

OVERRUN ERROR
ERROR SUMMARY

1
5

1
4

1
3

1
2

1
1

1

o

o

o

o

o

9

8

7

6

o
5

o
4

o

o

3

2

o
1

o
o

TCSR

~J

TRANSMITTER READY FLAG

TRANSMIT BREAK
ENABLE

TRANSMIT INTERRUPT ENABLE

1

1

1

5

4

3

1
2

1
1

1

o

o

o

o

o

o

o

o

o

o

9

8

7

6

5

4

3

2

1

I

TRANSMIT
CHARACTER
DATA
Figure 2, continued
DL-type SLU registers

292

o
o

uNOTE # 033
Page 5 of 14
1.2 DL-TYPE SLU ADDRESSES AND VECTORS
DL-type SLUs must implement their addresses and vectors in the following
manner:
1.

2.

The four registers, RCSR, RBUF, TCSR, and TBUF, occupy four
contiguous word addresses in the I/O page.
The first
address is called the base address.
A.

RCSR is assigned base address +00.

B.

RBUF is assigned base address +02.

C.

TCSR is assigned base address +04.

D.

TBUF is assigned base address +06

The receive and transmit. interrupt vectors occupy two
contiguous vectors with the' receive vector always first.

For the console SLU on a PDP-11 processor the base address is always
17777560 (octal) and the receive vector is at 60 (octal). DL-type SLUs
used for applications other than the console SLU are usually assigned
address and vectors in the floatin9 address and vector spaces.

1.3 DL-TYPE SLU PROGRAMMING CONSIDERATIONS
There are two methods
interrupt driven I/O.

of

programming

DL-type

SLUS;

polled

I/O

1.

In polled I/O the host software polls, or tests, the
receiver done flag in the ReSR or the transmitter ready flag
in the TCSR to determine if a character has been received or
is ready to be transmitted. If the flag is set the software
executes an instruction to move the character from the RBUF
or to the TBUF. The polling is then resumed. Polled I/O is
used by PDP-11 diagnostics because it is the simplest method
and requires the least amount of hardware working in a
system, a definite advantage when attempting to service a
system which is operating improperly.

2.

In interrupt driven I/O the software sets the receive
interrupt enable in the RCSR or the transmit interrupt
enable in the TCSR.
If the receiver done flag or the
transmitter ready flag is set, an interrupt is generated
through the appropriate vector. Execution is transferred to
an interrupt service routine (ISR) and an instruction is

293

and

uNOTE # 033
Page 6 of 14
executed to move the character from the RBUF or to the TBUF.
A return from interrupt (RTI) instruction then returns
control back to the main program.
All Digital operating
systems and most user software utilize interrupt driven I/O
because processor time is optimized.
When programming a DL-type SLU, several restrictions must be taken into
account.
Most of these are due to the design of the asynchronous
receiver and transmitter and its implementation in the SLUe
The
important restrictions are detailed below.
1.

There is only a one character buffer in the receive side of
the SLUe
Therefore, any character which has been received
must be moved from the RBUF prior to the next character
being assembled in the receiver. If characters are actually
being received at the maximum character rate as defined by
the bit data rate of the serial line, the RBUF must be read
within one character time or an overflow error will occur on
the SLU and data will be lost.

2.

The transmitter also has only a one character buffer.
However,
while
this
restriction
may result in the
transmission of characters at a rate lower than the maximum
character rate, the transmitter can wait a theoretically
infinite time for the next character. No data will be lost
and no errors will occur.

3.

Direct memory access (DMA) I/O has precedence over interrupt
I/O.
Therefore, if a DMA device and DL-type SLU wishing to
interrupt the processor are both requesting use of the bus,
the DMA device will be granted it. This does not normally
cause problems in systems which make use of single-cycle DMA
transfers.
An exception to this is when the system is
heavily loaded with a number of active DMA
devices.
However, the use of burst-mode DMA or, on the Q-bus,
block-mode DMA could conceivably lock out the interrupts
from the SLU for an appreciable length of time. This should
have little effect on the transmitter since it can wait
indefinitely for interrupts, but it could have a disastrous
effect on the receiver, resulting in the loss of data and
the generation of overrun errors.

294

uNOTE # 033
Page 7 of 14
1.4 DIGITAL'S DL-TYPE SLUs
Digital manufactures a variety of DL-type SLUs for both the Q-bus and
the UNIBUS.
The following list is compilation of those currently
available.
1.

2.

Q-bus compatible, DL-type SLUs

A.

DLV11 - a single
height module.
per second, full
modem control).
loop serial line

B.

DLVE1
(formerly DLV11-E)
a single
line,
DL-type SLU on one dual height module.
Data
rate from 50 to 19,200 bits per second,
full
duplex with limited modem control.
RS-232-C
serial line interface.

C.

DLVJ1
(formerly DLV11-J)
four individual,
DL-type SLUs on one dual height module.
Data
rate from 150 to 38,400 bits per second,
full
duplex, data leads only (no modem control).
RS-232-C serial line interface.

line, DL-type SLU on one dual
Data rate from 50 to 9,600 bits
duplex, data leads only (no
RS-232-C and 20 mae
current
interfaces.

UNIBUS compatible, DL-type SLUs
A.

DL11 - single line,
DL-type SLU on one quad
height small peripheral controller (SPC) module.
Data rate from 50 to 9600 bits per second,
full
duplex.
A number of variations are available
some including modem control and line time clock
interfaces.
RS-232-C and 20 mae
current loop
available.

3.

Digital produces two multifunction modules for the Q-bus,
the MXV11-A and the MXVI1-B, which contain DL-type SLUs.
These are intended for the board-level applications where
RAM and ROM memory and SI,Us in a single compact board are
required.

4.

Addit~onally,

Digital manufeLctures a DL-type SLU on a chip,
the DC319-AA DLART.
The DLART is used in several of
Digital's systems as the console terminal SLU for processor
modules such as the KDJ11-B.

295

uNOTE # 033
Page 8 of 14
2.0 DL-TYPE SLU APPLICATIONS
The following are examples of the potential uses
systems.
1.

for

DL-type

SLUs

in

In general, DL-type serial line units are required for the
console device interface on all POP-II processors for three
functions:
A.

Console ODT - the console ODT routines in these
processors
can
communicate
with
DL-type
interfaces only.

B.

Diagnostics - diagnostics which run under XXDP
and DEC/XII assume the use of a DL-type console
interface.

C.

Operating system console - the operating systems
which run on PDP-11 processors require DL-type
SLUs for the system console.
Even if the
console interface device can be redirected to
another serial line, as is possible in the RSX
family of operating systems, the crash and panic
dumps routines usually require the use of a
DL-type SLUe

The reason DL-type interfaces are used for these functions
is that they are the simplest, most reliable serial line
unit available. If a system is down, having a DL-type SLU
as the console interface will almost always eliminate the
possibility that the problem is with the console interface.
2.

DL-type SLUs are also used in some systems to provide
Their
use
for this
interactive
terminal
support.
are
application is not recommended for reasons which
discussed later in this document.

3.

Applications requiring the use of a serial hardcopy terminal
as a low-cost system printer may use the DL-type SLU as the
interface.

4.

Applications which require immediate attention to a serial
data stream may require a DL-type SLU as the interface. The
serial data stream is most often from an instrumentation
device, ~uch as a thermocouple, in a process control
environment.

The next sections examine the configuration of DL-type
environments.

296

SLUs

in

system

uNOTE # 033
Page 9 of 14
3. 0 SYSTEM CONFIGURATION OF DL-TYP:e: SLUS
There are several items which
DL-type SLUs into systems.

must

be

considered

when

configuring

1.

The data rate at which the SLU is expected to transfer data
to and from the serial line, and the impact on the host
processor's I/O bus.

2.

The aggregate data rate expected from all dev~ces on the
host processor's I/O bus. This includes the amount and mode
of DMA activity on the bus and its potential effect on the
processor's response to the DL-type SLU.

3.

The interrupt priority of the SLU on
bus.

the

host

processor's

In the following discussions, ,~e use an example based upon the
configuration of a DLVJ1 quad SLU in a Q-bus system. with the except~on
of block-mode DMA (which does not exist on the UNIBUS) the example 1S,
in general, valid for both Q-bus and UNIBUS PDP-11 and VAX processors.
It must be remembered, however,
that the configuration is largely
dependent upon the system application which may alter some of the rules
presented.

3.1 DLVJ1 DESCRIPTION AND CONSIDEru\TIONS FOR USE
The DLVJ1 is a dual height Q-bus module consisting of four
individually
programmed RS-232-C/RS-449/RS-423 compatible DL-type SLUs. Although
they share common Q-bus transceivE~rs and device selection and data
gating logic,
the four SLUs each have their own sets of serial line
interfaces circuits, Universal Asynchronous Receiver Transmitter
(UART)
circuits,
and DC003 interrupt controller circuits. This, in effect,
gives the system·designer four individual DL-type serial line units each
with its own set of CSRs and data buffer registers and data rates to
38.4K bits per second per channel.
The four DC003 interrupt controllers are configured and wired. in Q-bus
compatible fashion for bus request level four Only (BR4) devices.
That
is, BIAKI comes in from the bus, through the first DC003,
and out as
BIAKO which then goes to the BIAKI input of the second DC003.
The
second De003 then routes the BIAK signal to the third De003 and the
third to the-fourth which then routes its BIAKO signal out to the Q-bus
for continuation of the daisy chain. The Q-bus specification provides
for two methods of establishing device priority:

297

uNOTE • 033
Page 10 of 14
1.

Distributed arbitration - priority levels are implemented in
hardware on the device. Devices must monitor all interrupt
requests with higher priority than their own and pass
through the interrupt acknowledge if one exists. When
devices
of
equal
priority
request
an
interrupt
simultaneously
,
priority
is
given
to the device
electrically closest to the processor.

2.

Position-defined arbitration - priority is determined solely
by electrical position on the bus. The closer a device is
to the processor, the higher its priority is. Devices which
use
position-defined
arbitration
must
be placed in
descending bus request order after any devices
which
implement distributed arbitration.

Digital has produced only one Q-bus device with multiple interrupt
request levels, the TSV05.
All other devices produced to date have
implemented BR4 only, and depend upon position-defined arbitration for
their priority.
This is largely due to the standard Q-bus interface
chips' lack of circuitry required to perform the higher level bus
request monitoring.
Due to the implementation of the bus, UNIBUS
devices do not have this restriction. For further information on the
subjects of interrupt priorities and device placement consult the PDP-11
Architecture Handbook (EB-23657) and the Microcomputer Products Handbook
(EB-26078).
Receiver done and transmitter done interrupt requests are wired to the
DC003's so that the four receiver done interrupts have higher priority
than the four transmitter done interrupts.
Elevating the receivers'
done interrupt priorities over the transmitters' done interrupts helps
reduce the potential for lost input characters due to receiver data
overrun errors. Transmitter operation is essentially unaffected, except
potentially in throughput, since the transmitters will hold their
interrupt
requests
indefinitely.
This configuration i~ actually
preferable to that of four individual DL-type interfaces (DLVE1, etc.
on the Q-bus or DL11 on the UNIBUS) which would have the transmitter
done interrupts placed between the receiver done interrupts.
The device address selection and vector address generation circuits
allow the DLVJ1 to be configured at a number of different base addresses
and vectors, Channel three may be configured for use as the system
console device interface and it is this capability, not its cost, that
has made the DLVJ1 an extremely popular option.
The serial interfaces are capable of data-Ieads-only interfacing (i.e.
transmit data, receive data and ground) to external equipment. That is,
there is no modem control capability in the DLVJ1. This is usually of
no consequence since the largest use of this device is for local console
device and terminal interfacing. If the user requires modem control,
the DLVE1 is available.
If the interface is not being used for the
console terminal, asynchronous multiplexers with modem control such as
thE~
DzV11 and DHV11 are available and are preferable in almost all
applications.

298

UNOTE # 033
page 11,of 14
3.2 SLU DATA RATE CONSIDERATIONS
The UART used in the DLVJl is the 6402 which is a member of a generic
UART family in wide use in a large number of Digital and third party
vendor products, including the DLVE1 and DLV11 Q-bus options and the
OL11 UNIBUS option. They are very similar to Digital's DLART interface
chip which is used on the
MXV11-B
multifunction
module,
the
MicroPDP-l1/23 and PDP-l1/23-PLUS processor board (KDF11-Bx), and the
MicroPDP-11/73 processor board (KDJ11-Bx).
The 6402 provides one level of buffering on input and output data with
the implementation of a receiver data holding register and a transmitter
data holding register respectively. While the level of buffering is
relatively unimportant to the transmitter due to its ability to wait
indefinitely for additional characters, it is extremely important to the
receiver. To illustrate this the following example is used:
The 6402 provides a receiver register which holds the current,
incoming character. The data is transferred into thi~ register
at the bit data rate at which the serial line is runnIng.
The
time required to fill the receiver register can be calculated as
follows:
t =·1 /

(bit data rate) * (number of bits per character)

Where t is the character time and the number of bits per
character includes the start bit, all data bits, parity
bit if used, and all stop bits.
picking some common numbers for this example:
Bit data rate = 9600. bits per second.
Number of data bits = 8.
Number of parity bits = O.
Number of stop bits = 1.
The character time is therefore:
t = 1/9600*(1+8+0+1)
t - 1.041 msec.

per character

Therefore, at a 9600 bits per second data rate, the time from
the start of transmission of the character to the time the
character is loaded into the receiver buffer register is
approximately one millisecond.

299

uNOTE # 033
Page 12 of 14
If the next character starts transmission immediately,
the
processor has at least one character time before the receiver
buffer register must be emptied so that it can accept the
current input character,
in this case one millisecond.
This
implies that the receiver done interrupt must be serviced within
that time also.
Provided that the combination of software and
hardware is capable of servlclng the interrupt within
a
character time the receive data should never overrun.
Therefore, limiting the serial data rate will help reduce the amount of
system resources required to service the SLU and optimize processor
time.
Specifically it increases the allowable interrupt response
latency before data overrun would occur.

3.3 HOST PROCESSOR AGGREGATE DATA RATE CONSIDERATIONS
ThE~
D~\

above example does not take into account any other bus interrupt or
activity which will impact the speed at which the DLVJ1 interrupt is
serviced.
To minimize the effects of the host processor's aggregate
data rate two configuration rules should be followed:
1.

The data rate on the DLVJ1 devices should be kept to a
reasonable limit which is usually considered to be at or
below 1200 bits per second.
This allows additional time for
the processor to service the receiver done interrupt and
will keep the the amount of bus activity due to serial line
interrupts reasonable.

2.

Careful attention should be given to the amount and mode
(i.e.
single cycle, burst, or block) of DMA activity on the
host processor's bus.
Large quantities of DMA traffic mean
that the processor has less time to service interrupts which
have a lower priority than DMA operations.
Devices doing
burst and block mode DMA operations may hold the bus for
long periods of time, causing interrupts to be blocked for
the duration of the DMA operation.
This results in data
from the receiver being lost or data to the transmitter
being postponed.

3.4 INTERRUPT PRLORITY OF THE DL-TYPE SLU
The DL-type SLU should be configured as
the
highest
priority
interrupting device on the bus if at all possible.
In most cases this
will result in the SLU being the first device on the bus, with the
possible exception of the line time clock or BEVNT line.
This is

300

uNOTE # 033
Page 13 of 14
consistent with the MicroPDP-ll's, PDP-ll/23-PLUS's
,
and the UNIBUS
processors, which have their console device interfaces very close to the
beginning of the bus.
By placing the
possible,
the
devices on the
the
rest of
resulting in a

DL-type SLUs as close .to the beginning of the bus as
interrupt priority is elevated above that of the other
bus.
This allows interrupt requests to serviced before
the devices and immediately after the DMA activity,
reduced possibility of data loss.

4.0 SUMMARY AND RECOMMENDATIONS
The DL-type SLUs are
required by PDP-II systems as their console
interface.
There are several options which may be used to provide this
function.
Theses include theDLVxx series options on the Q-bus and DLxx
series options on the UNIBUS.
Additionally,
several multifunction
options and processors have DL-type interfaces integrated into them.
These include the MXVII-A, MXVII-B, KDFII-B and KDJII-B.
The use of all DL-type SLUs should be limited in most systems
(special
applications may have valid uses of DL-type devices).
They should, in
most circumstances, be used only for the console device interface and
serial printer applications.
The use of an asynchronous multiplexer is
recommended for all other serial line requirements,
excepting special
applications.
The use of any DL-type SLU for an interactive terminal on a multiuser
system is indicative of a poor system configuration.
In this case, the
proper configuration would include asynchronous multiplexers such as
DZVll's,
DZQll's,
or DHVll's (or their UNIBUS counterparts) to provide
efficient handling of terminal
interfaces with the minimum of bus
activity and operating system overhead.
The use of a DL-type SLU as a low cost printer port is exempt from the
above statement because it incurs approximately the same overhead as the
LPVll or LPll-type line printer controller.
However,
the use of an
asynchronous multiplexer with DMA output, such as the DHVll, may provide
a more efficient method of handling printers, depending upon the
implementation.
The data rate at which any DL-type SLU operates should be kept to a
minimum,
particularly when receiving data, to ensure that the amount of
bus activity is as low as possible since these interfaces are
interrupt
intensive.
This holds for any inte'rrupt intensive device (parallel I/O
devices such as DRVlls, etc.) in general.
The problem is not that of
interface limitations but of the amount of bus bandwidth available to
support the aggregate bus data rate.

301

uNOTE # 033
Page 14 of 14
The DL-type SLU should be p~aced in as high an interrupt priority
position as possible to lnsure adequate servicing by software.
This
will not affect DMA activity since it holds priority over
bus
interrupts.
The performance of most systems will not be affected by the
increased priority level of the maximum one or two DL-type interfaces
which are recommended to be active at one time.
NeVE!r place any device, including a DL-type interface, on the bus after
a FtQDX1 disk controller.
The RQDX1 does not pass through the DMA and
interrupt grant lines properly, thus producing unpredictable results and
often times "hung" devices.
Recommendations for the DL-type SLUs, and any other interrupt
devices, are:

intensive

1.

Limit their use whenever possible.
Use
asynchronous
multiplexers or other more advanced interfaces whenever
possible. The cost savings of a DLVJ1 over a DZQ11 must not
overshadow the performance issues.

2.

Limit the rate at which they operate.
For
DL-type
interfaces a good limit appears to be 1200 bits per second
or less although in some applications a higher rate may be
possible.

3.

Place them so that they have as high an interrupt
as possible, in most cases the highest priority.

4.

If a DL-type SLU is chosen for use, perform the calculations
as in section 3.2. Make a rational decision as to whether
the configuration can handle the data rates imposed.

priority

Following these few recommendations will result in improvE~d system
performance when configuring DL-type SLUs into systems.
For additional
information consult the appropriate technical manuals, user guides,
and
systems manuals for the specific devices under consideration.

302

[

programming the KXT11-C Multiprotocol SLU

Title:

uNOTE. 034

Date: 19-Jul-85
Page 1 of 24

Originator: Scott Tincher

The KXT11-CA single board computer provides a two-channel multiprotocol
serial line unit.
The SLU is implemented with an NEC uPD7201 chip.
This Micronote will explain the operation of this SLU and provide
example programs which display its capabilities. The example programs
will be written in Macro-11 so it is assumed that the programmer is
familiar with Macro-11 and either the RT-11 or RSX KXT11-C Software
Toolkits.
It should be noted that the DIGITAL operating system
Micropower/pascal provides a device handler for the uPD7201 chip.
FEATURES/CAPABILITIES
The multiprotocol SLU supplies the KXT11-C with the
and capabilities:
o

following

Two full duplex channels
Channel A provides full modem control
Channel B provides data and timing leads only

o

Each channel may be operated in one of three modes:
Asynchronous
o

5, 6, 7, or 8 Data bits

o

1, 1-1/2, or 2 stop bits

o

Odd, Even, or No parity

o

Break

o

Interrupt on parity, Overun, or Framing Errors

gen~ration

and detection

Charaster-oriented synchronous

303

features

uNOTE i 034
Page 2 of 24
o

Monosync, Bisync, and External Sync Operations

o

Software Selectable Sync Characters

o

Automatic Sync Insertion

o

CRC Generation and Checking

Bit-oriented synchronous
o

HDLC and SDLC Operations

o

Abort Sequence Generation and Detection

o

Automatic Zero Insertion and Detection

o

Address Field Recognition

o

CRC Generation and Checking

o

I-Field Residue Handling

o

Programmable Baud Rates

o

Double Buffered Transmitted Data

o

Quadruply Buffered Received Data

o

Programmable CRC Algorithm

a

Channel A may utilize the DMA controller to transfer data

REGISTER DESCRIPTION
The multiprotocol SLU is controlled by manipulating the registers of the
uPD7201 chip as well as registers in support chips that provide access
to the baud rate generator and the modem control signals. This section
will provide a brief description of the registers necessary to program
the multiprotocol SLU.
uPD7201 Registers
This section will describe the registers found in the uPD7201 itself.
~rhese
registers are found in both channels of the uPD7201 unless
otherwise indicated.
Control Register 0
7

6

5

4

304

3

2

1

o

*

uNOTE
034
Page 3 of 24
Bits 0,1,2:

Register Pointer

These bits are used to specify which register will be
affected by the next Control Register Write or status
Register Read. After a reset the register pointer is set
to o.
When the register pointer is set to a value other
than 0 the next control or status access is to the
specified register, then the pointer is reset to O.
Bits 3,4,5:

Command

These bits are used to select the command to be
the uPD7201. A list of these commands follows:
NULL (000)
This command has no effect and is used when
register pointer or issuing a CRC command.

sent

to

setting

the

causes

the

RESET EXTERNAL/STATUS INTERRUPTS (010)
Clears any pending external interrupts and reenables
latches so that new interrupts may be detected.

the

SEND ABORT (001)
When operating in the SOLe mod~, this command
uPD7201 to transmit the SOLC abort code.

CHANNEL RESET (011)
After issuing a
reset
command
the
receivers
and
transmitters are disabled, the transmitters are set in the
marking (high) state, and the modem control outputs are
set high.
In addition, all interrupts are disabled, and
all interrupt and DMA requests are cleared.
All control
registers must be rewritten after a
reset.
One NOP
instruction must be issued before writing a new command.
ENABLE INTERRUPT ON NEXT CHARACTER (100)
When operating in Interrupt on First Character mode this
command is issued to re-enable the interrupt logic for the
next received character.
RESET PENDING TRANSMITTER INTERRUPT/DMA REQUEST (101.)
Issue this command to reset a pending Transmitter Buffer
Becoming Empty interrupt or DMA request without sending
another character.
ERROR RESET (110)
This command resets a Special Receive Condition interrupt.
It also re-enables the Parity and Overrun Error latches
that allow you to check for these errors at the end of a
m.essage.
END OF INTERRUPT (111)

(Channel A only)

305

uNOTE # 034
Page 4 of 24
When an interrupt request has been issued by the uPD7201
all lower priority interrupts are blocked to permit the
current interrupt to be serviced. At some point in the
interrupt service routine this command must be issued to
re-enable the daisy chain and permit any pending lower
priority interrupt requests to occur.
Bits 6,7:

CRC Control Commands

These commands control
generator/checker logic.

operation

the

of

eRC

the

NULL (00)
This command has no effect and is used when issuing
commands or setting the register pointer.

other

RESET RECEIVER CRC CHECKER (01)
This command resets the CRC checker to 0 when the channel
is in a synchronous mode and resets to all ones when is
SDLC mode.
RESET TRANSMITTER CRC GENERATOR (10)
This command resets the CRC generator to 0 when the
channel is in a synchronous mode and resets to all ones
when is SOLC mode.
RESET IOLE/CRC LATCH (11)
This command resets the Idle/CRC latch so that when a
transmitter underrun condition occurs,
the transmitter
enters the CRC phase of operation and begins to send the
16-bit CRC character calculated up to that point.
The
latch is then set so that if the underrun conition
persists,
idle characters are sent following the CRC.
After a hardware or software reset, the latch is in the
set state.
Control Register 1
7

Bit 0:

6

5

4

3

2

1

o

External/Status Interrupt Enable
When this bit is set to one,
the uPD7201
interrupt-whenever any of the following occur:
o

transition of OCO input

306

issues

an

uNOTE i 034
Page 5 of 24

Bit 1:

o

transition of CTS input

o

transition of synch input

o

entering or leaving synchronous
break detection or termination

o

SDLC abort detection or termination

o

Idle/CRC

phase

becoming set (CRC being sent)

Transmitter Interrupt Enable
When this bit is
interrupt when:

Bit 2:

la~ch

Hunt

set

to

one,

the

uPD7201

issues

an

o

The character currently in the transmitter buffer is
transferred to the shift register (Transmitter Buffer
Becoming Empty)

o

The transmitter enters
Idle
Phase
transmitting sync or flag characters

and

begins

Status Affects vector (Channel B only)
This bit must always be programmed to one so that the
fixed vector programmed into Control Register 2B is
modified to indicate the cause of the interrupt.

Bits 3,4:

Receiver

Interrup~

Mode

This field determines how the
character receive conditions.

uPD7201

handles

the

RECEIVER INTERRUPTS/DMA REQUEST DISABLED (00)
The uPD7201 does not issue an interrupt or DMA
request
when
a character has been received.
(Polled Mode).
INTERRUPT ON FIRST RECEIVED CHARACTER ONLY (01)
The uPD7201 issues an interrupt for
the first
character received after an Enable Interrupt on
First Character Command (CRO) has been given.
If
the channel is in DMA mode then a DMA request is
issued for each character received including the
first.
INTERRUPT ON ALL RECEIVED CHARACTERS (10)
An interrupt is issued whenever a character is
present in the receive buffer. A DMA request is
issued if the chclnnel is in DMA mode.
A parity
error is considered a special receive condition.

307

uNOTE # 034
Page 6 of 24
INTERRUPT ON ALL RECEIVED CHARACTERS (11)
This mode is the same as above except that a parity
error
is
not
treated as a special receive
condition.
The following
conditions:

Bits 5,6,7:

are

always

considered

o

Receiver Overrun Error

o

Asynchronous Framing Error

o

SOLe End of Message

receive

special

These bits should always be programmed to O.

Control Register 2 (Channel A)

4
Bits 0,1:

3

2

1

o

DMA Mode Select

These bits det~rmine the mode in which channels A and B
operate.
If a channel operates in a non-OMA mode it my
perform transfers in either polled or interrupt mode.

Bit 2:

Bit 1

Bit 0

Channel A

Channel B

0
0
1
1

0
1
0
1

Non-DMA
DMA
Illegal
Illegal

Non-DMA
Non-DMA
Illegal
Illegal

Priority
This bit is used to select the appropriate internal
priorities for interrupts. The Channel A receiver always
has a higher priority than the Channel A transmitter when
Channel A is in DMA mode.
If Channels A and B are both in Interrupt Mode:

o - RxA > TxA > RxB > TxB > extA > extB
1 - RxA >-RXB > TxA > TxB > extA > extB
If Channel A is in DMA mode and Channel B is in
Mode:

308

Interrupt

uNOTE # 034
Page 7 of 24
0,1 - RxA > RxB > TxB > extA > extB
Bits 3,5,6,7:
Bit 4:

These bits must be programmed to O.

This bit must always be programmed to 1.

control Register 2 (Programmed in Channel B for both channels)
[ 7

Bits 0 .. 7:

6

5

4

3

2

1

o

Interrupt vector

The native firmware of the KXT11-C initializes the uPD7201
interrupt vector to 70(8).
All interrupts use this
vector. In order to determine the cause of the interrupt
the uPD7201 must be operated with Condition Affects vector
enabled.
(Control Register 1 - Bit 2). When this bit is
set the vector is modified to reflect the cause of the
interrupt. This modified vector is read from status
Register 2.
control Register 3
[ 7
Bit 0:

6

5

4

3

2

1

o

Receiver Enable

o - Disables the receiver
1 - Enables the receiver
Bit 1:

Sync Character Load Inhibit
In a synchronous mode, this bit inhibits the transfer of
sync characters to the receiver buffer. When using the
uPD7201's CRC checking capabilities this feature should
only be used to strip leading sync characters preceding a
message since the load inhibit does not exclude sync
characters
embedded
in
the
message from the CRC
calculations. Synchronous protocols using other types of
block checking such as checksum or LRC are free to strip
embedded sync characters with this bit.

309

uNOTE I 034
Page a of 24
Bit 2:

Address Search Mode
In SOLC mode, setting this bit places the uP07201 in
Address Search mode where character assembly does not
begin until the a-bit character (secondary address field)
following the starting flag of a message matches either
the address programmed into CR6 or the global address
11111111.

Bit 3:

Receiver CRC Enable
This bit enables (enable - 1) the CRC checker in COP mode
to
allow
the
selective inclusion or exclusion of
characters form the CRC calculation.

Bit 4:

Enter Hunt Phase
The uPD7201 automatically enters Hunt Phase after a reset.
Setting this bit to 1 causes the uP07201 to re-enter the
Hunt Phase.

Bit 5:

Auto Enables
Setting this bit to 1 causes the OCO and CTS inputs to act
as
enable
inputs to the receiver and transmitter,
respectively.

Bits 6,7:

Number of Received Bits/Character

This field specifies the number of data bits per
character:
Bit 7

Bit 6

0
0

1
1

received

Bits/Character

0

5

1
0
1

7
6
a

Control Register 4
7

Bit 0:

6

5

4

3

2

1

o

Parity Enable
Setting this bit to 1 adds an extra data bit containing
parity information to each transmitted cahracter. Each
received character is expected to contain this extra bit
and the receiver parity checker is enabled.

310

uNOTE # 034
Page 9 of 24
Bit 1:

Parity Even/Odd

o-

1 -

Bits 2,3:

Odd parity generation and checking
Even parity generation and checking
Number of stop Bits/Sync Mode

This field specifies whether the channel is used in a
synchronous mode or in asynchronous mode. In asynchronous
mode, this field also specifies the number of stop bits
used by the transmitter. The receiver always checks for
one stop bit.
Bit 3

Bits 4,5:

Bit 2

0

0

0
1
1

1

Mode
Synchronous mode
Asynch Mode, 1 stop bit
Asynch Mode, 1-1/2 stop bits
Asynch Mode, 2 stop bits

0

1

Sync Mode

These bits select the synchronous protocol to use if
channel has been programmed in a synchronous mode.

Bits 6,7:

Bit 5

Bit 4

0
0
1
1

0
1
0
1

the

Mode
Monosync
Bisync
SDLC
External Synchronization

Clock Rate

These bits
specify
the
relationship
between
the
transmitter and receiver clock inputs and the actual data
rate. When operating in synchronous mode the clock rate
must be specified as 1X the data rate.
Bit 7

Bit 6

0
0
1
1

0
1
0

Clock Rate
Clock
Clock
Clock
Clock

1

Rate == 1X
Rate = 16X
Rate = 32X
Rate = 64X

Data
Data
Data
Data

Control Register 5

Li I
Bit 0:

6

5

Transmitter CRC Enable

311

4

3

2

1

0

Rate
Rate
Rate
Rate

uNOTE # 034
Page 10 of 24
A 1 enables the CRC generator calculation. By setting or
resetting this bit just before loading the next character,
it and subsequent characters are included or excluded from
the calculation.
Bit 1:

RTS
In synchronous and SOLC modes, setting this bit to 1
causes the RTS pin to go low while a 0 causes it to go
high. In asynchronous mode, setting this bit to 0 does
not cause RTS to go high until the transmitter is
completely empty.

Bit 2:

CRC polynomial Select
A 0 selects the CRC-CCITT Polynomial (X**16 + X**12 + x**5
+ 1). A 1 selects the CRC-16 polynomial (X**16 + X**15 +
X**2 +1).
The CRC-CCITT polynomial must be selected when
in SOLC mode.

Bit 3:

Transmitter Enable
After a reset the transmitted data output is held high
(marking) and the transmitter is disabled until this bit
is set.

Bit 4:

Send Break
Setting this bit to 1 forces the
(spacing).

Bits 5,6:

transmitter

output

low

Transmitted Bits/Character

These bits specify the number of data bits per transmitted
character.
Bit 6

Bit 5

o

1

o

1
1

Bit 7:

Bits/Character
5 (or less)

o

7

o

6

1

8

OTR
When this bit is 1, the OTR output is active.

Control Register 6
7

6

5

4

312

3

2

1

o

uNOTE # 034
Page 11 of 24
Bits

0.~7:

Sync Byte 1

Sync byte 1 is used in the following modes:
Monosync:

The a-bit character transmitted during
the Idle Phase.
The least significant a bits of the 16-bit
transmit and receive sync character.
Sync character transmitted during
the Idle Phase.
Secondary address value matched to the
Secondary Address field of the
SOLC frame when the uP07201 is in Address
Search Mode.

Bisync:
External Sync:
SOLC:

Control Register 7
7

6

5

4

3

2

1

o

Bits 0 .. 7: Sync Byte 2
Sync Byte 2 is used in the following modes:
Monosync:
Bisync:

a-bit sync character matched by the receiver.
Most significant a bits of the 16-bit transmit
and receive sync characters.
Must contain the flag value, 01111110, for flag
matching by the uP07201 receiver.

SOLC:
Status Register 0
7

Bit 0:

6

5

4

3

2

1

o

Received Character Available
When this bit is set, it indicates that one or more
characters are available in the receiver buffer. Once all
of the available characters have been read, the uP07201
resets this bit until a new character is received. By
utilizing this bit the programmer my run at higher data
rates than normal because it will be possible to capture
more that one character per interrupt service routine.

Bit 1:

Interrupt Pending (Channel A only)
The interrupt pending bit is used with the interrupt
vector register (status register 2) to make it easier to
determine the uP07201's interrupt status. In Non-vectored

313

uNOTE # 034
Page 12 of 24
Interrupt mode,
interrupt pending is set when status
register 2B is read.
If status affects vector is enabled
and interrupt pending is set, the vector read from SR2
contains valid condition information.
Bit 2:

Transmitter Buffer Empty
This bit is set whenever the transmitter buffer is empty,
except during the transmission of the CRC. After a reset,
the buffer is considered empty and transmitter buffer
empty is set.

Bit 3:

DCD (Data Carrier Detect)
This bit reflects the inverted state of the DCD input.
When DCD is low,
the DCD status bit is high. Any
transition of this bit causes an External/status Interrupt
request.

Bit 4:

Sync Status
The bit assumes different meanings
operating mode of the uPD7201.

depending

on

the

Asynch mode:
Sync Status reflects the inverted state fo
the Sync input.
Any transition· of this bit causes an
External/Status interrupt request.
External Sync mode:
Sync Status operates in the same
manner as asynch mode. A low-to-high transition indicates
that synchronization has been achieved and character
assembly begins.
Monosync,
Bisync, SDLC modes:
Sync Status indicates
whether the receiver is in the Sync Hunt (bit -1) or the
Receive Data phase (bit - 0) of operation.
Bit 5:

CTS (Clear to Send)
This bit reflects the inverted state of the CTS input.
Any transition of this bit causes an External/Status
interrupt request.

Bit 6:

Idle/CRC
This bit i~dicates the state of the Idle/CRC latch used in
synchronous and SDLC modes.

Bit 7:

Break/Abort
In async mode, this bit indicates that the detection of a
break sequence that occurs when the input is held low

314

uNOTE # 034
Page 13 of 24
(spacing) for more than one character time. This
reset when the input returns high (marking).

bit

is

In SOLC mode, Break/Abort indicates the detection of an
abort sequence when 7 or more ones are received in
sequence.
Any transition of the
Break/Abort
External/Status interrupt.

bit

causes

an

status Register 1

Bit 0:

All Sent
In async mode, this bit is set when the transmitter is
empty and reset when a character is present in the
transmitter buffer or shift register. In synchronous and
SOLC modes, this bit is always 1.

Bits 1,2,3:

SOLC Residue Code

The data portion of an SOLC message can consist of any
number of bits and not necessarily an integral number of
characters. Special logic determines and reports when the
End of Frame flag has been received, the boundary between
the data field, and the eRC character in the last few data
characters that were read.
Bit 4:

parity Error
This bit is set when parity is enabled and the received
parity bit does not match the sense calculated from the
data bits.

Bit 5:

Receiver Overrun Error
This error occurs when the receiver buffer
already
contains three characters and a fourth character is
completely received, overwriting the last character in the
buffer.

Bit 6:

eRC/Framing Error
In Async modem a framing error is flagged when no sop
is detected at the end of a character.

315

bit

uNOTE # 034
Page 14 of 24
In sync and SOLC modes, this bit indicates the
result of
the comparison between the current CRC result and the
appropriate check value.
Bit 7:

End of SOLC Frame
This flag is used in SOLC mode to indicate that the End of
FRame flag has been received and that the CRe error flag
and residue code is valid.

status Register 2
7

Bits 0 .. 7:

5

6

4

3

2

1

o

Interrupt Vector (Channel B only)

Reading Status Register 2B returns the interrupt vector
that
was
programmed into Control Register 2B.
If
Condition Affects Vector is enabled the value of the
vector is modified as follows:
Condition Affects Vector Modifications
Bit 2

Bit 1

Bit 0

1

1
0
0
1
1
0
0
1
1

1
0
1
0
1
0
1
0
1

0

0
0
0
1
1
1
1

Condition
No interrupt pending
Channel B Transmitter Buffer Empty
Channel B External/Status Change
Channel B Received Character Available
Channel B Special Receive Condition
Channel A Transmitter Buffer Empty
Channel A External/Status Change
Channel A Received Character Available
Channel A Special Receive Condition
- Table 1 -

Code 111 has two meanings:
either Channel A Special
In order to
Receive Condition or no interrupt pending.
distinguish between the two,
the Interrupt Pending bit
(SRO) must be examined.
Baud Rate Generator Registers
Programmable baud rates for channels A and B are supplied by an
Intel 8254-2 timing controller chip with two counters operating
at 9.8304 MHz. A third counter that operates at 800 Hz is
available for general use.
This general purpose counter issues a
level 6 interrupt request to the T-11 via vector 104.

316

uNOTE # 034
Page 15 of 24
Programming these counters is straightforward.
First,
Control register is initialized to provide the proper
mode. Then a divider ratio is loaded into a Timer Data
to obtain the desired baud rate. The divider ratio is
from the following calculations:

a Timer
counting
register
obtained

For synchronous transmission,
Synchronous bit rate - 9830.4K / divider ratio
Therefore,
divider ratio = 9830.4K / synchronous bit rate
A few examples,
Bit Rate

Ratio

1200
9600
38.4K
76.8K

8192
1024
256
128

For asynchronous transmission (assuming that the
divided by 16),

clock

rate

is

Asynchronous bit rate = 9830.4K (1/16) / divider ratio
Therefore,
divider ratio

=

614.4K / asynchronous bit rate

A few examples,
Ratio

Bit Rate

512
64
16

1200
9600
38.4K
76.8K

8

Timer Control Register
7

6

5

317

4

3

2

1

o

uNOTE # 034
Page 16 of 24
Bit 0:

BCD or Binary

o - Use 16-bit binary counter
1 - Use BCD counter with four decades
Bits 1,2,3:

Mode Select

The mode of the counter is selected with these bits:

Bits 4,5:

Bit 1

Bit 3

Bit 2

0
0
0
0
1
1

0
0
1
1
0
0

1
1

1

0
1
0
1
0

1

1

Mode
Interrupt on Terminal Count
Not supported
Rate Generator
Square Wave Generator
Software Triggered Strobe
Not supported
Reserved
Reserved

0
1

Read/Write Sequence Selection

The Timer Data registers are programmed on a byte basis.
These bits determine the sequence in which the Timer Data
registers interpret the data.

Bits 6,7:

Bit 5

Bit 4

o
o

1

1
1

1

o
o

Sequence
Counter Latch Command
Read/Write least significant byte only
Read/Write most significant byte only
Read/Write least significant byte first,
then most significant byte

Counter Select

These bits select which counter is being programmed.
Bit 7

Bit 6

0
0
1

0
1
0

1

1

Counter
Counter 0
Counter 1
Counter 2
Read-back command

KXT Control/Statcrs Register A
4

3

2

1

o

This register contains some of the control lines for the uPD7201.

318

uNOTE i 034
Page 17 of 24
Bit 0:

SYNCM B

o-

Channel B receives its clock ~rom the onboard baud
rate generator
1 - Channel B receives its clock from an external source
Bit 1:

SLU2B R EN

o - Party line receive data enabled
properly configured)
1 - party line receive data disabled
Bit 2:

(Board

must

be

SYNCM A

o-

Channel A receives its clock from the onboard baud
rate generator
1 - Channel A receives its clock from an external source
Bit 3:

Data Terminal Ready (DTR)

o - DTR is not asserted
1 - DTR is asserted
Bit 4:

Terminal in Service (Busy)

o - Terminal in Service is not asserted
1 - Terminal in Service is asserted
Bit 5:

Diagnostic Prom Enable
This bit allows two different 1K portions of the onboard
firmware to be visible at addresses 160000-163777.

Bit 6:

Real Time Clock Enable

o - The RTC interrupt is inhibited
1 - The RTC interrupt is enabled
Bit 7:

Counter 2 Interrupt Enable

o - Counter 2 interrupts are inhibited
1 - Counter 2 interrupts are enabled
The following table lists the registers that have been
and their add~esses:

described

KXT Control/Status Register A

177520

Read;Write

Timer Control Register
Timer 2 Data Register
Timer 1 Data Register

175736
175734
175732

Write only
Write only
Write only

319

uNOTE # 034
Page 18 of 24
Timer
Timer
Timer
Timer

0
2
1
0

Channel
Channel
Channel
Channel
Channel
Channel
Channel
Channel

Register
Register
Register
Register

175730
175724
175722
175720

Write only
Read only
Read only
Read only

Transmitter
Control Register
Receiver
status Register
A Transmitter
A Control Register
A Receiver
A status Register

175716
175714
175712
175710
175706
·175704
175702
175700

write only
Write only
Read only
Read only
Write only
Write only
Read only
Read only

Data
Data
Data
Data
B
B
B
B

- Table 2 ;E»ROGRAMMING EXAMPLES
'rhe following programs provide 'skeletons' on which to base
application programs •
• TITLE

user

SLU1.MAC

This program utilizes the uPD7201 to transfer serial data. The
data will be transfered out of Channel A and received by Channel
A so a loopback connector is required (Part #H3022 or 54-16229-01)
This example transfers the data in asynchronous mode using
interrupts.
;
;

After this program has been assembled and linked on the
development machine use the KUI utility of the KXT11-C Software
Toolkit to load the program into the KXT11-C to execute as
shown in this example:

;

;

SET 2
LOAD SLU1.SAV
EXECUTE
lOOT

;
;

;

;
;

1001206
'001302/041101
001304/042103
001306/043105
001310/044107
001312/041101
001314/042103
001316/043105
001320/044107
001322/000000
R4/000000

320

*

uNOTE
034
Page 19 of 24
EXIT

;

.

,

This verifies that the data was successfully transfered. 1302 is
the address of the transmit buffer and 1312 is the address of the
receive buffer. R4.0 verifies that no external or special
condition interrupts were received.
Register Definitions
STATA
RBUFA
CNTRLA
TBUFA

175700
175702
175704
175706

Channel
Channel
Channel
Channel

STATB
CNTRLB

175710
175714

Channel B status register
Channel B control register

TIMREG
TIMERO

175736
175730

Timer control register
Timer o data register

A
A
A
A

status register
receiver
Control register
transmitter

START: :
This section initializes the KXT11-C system environment
MTPS

#340

Disable recognition of interrupts

MOV
MOV

#ISR,@#70
#340,@#72

SLU2 interrupts at location 70
Let the ISR run at priority 7

CLR

RO

This is the transmit char counter

MOV
MOV

#TBUF,R2
#RBUF,R3

R2 points to the transmit buffer
R3 points to the receive buffer

CLR

R4

This counter keeps track of external
status changes and special receive
receive conditions

This section initializes the bit rate generator

;

MOVB

#26,TIMREG

MOVB

#64.,TIMERO

; Select timer 0, low byte only,
; mode 3, binary
This divider selects 9600 bps

This section initializes the 7201 for asynch operation
MOVB
NOP

#30,CNTRLA

MOVB
NOP

#30,CNTRLB

;

Reset Channel A
Wait for reset to complete
Reset Channel B
Wait for reset to complete

321

uNOTE # 034
Page 20 of 24
MOVB
MOVB

#2,CNTRLA
#24,CNTRLA

Point to CR2A
setup bus interface options:
No DMA, RxA>RxB>TxA ... , Non-Vectored

MOVB
MOVB

#4,CNTRLA
#104,CNTRLA

Point to CR4
Set operation mode:
No parity, asynch mode, 1 stop bit,
clock rate = 16x data rate

MOVB
MOVB

#3,CNTRLA
#301,CNTRLA

Point to CR3
Enable receiver, char length - 8

MOVB
MOVB

#5,CNTRLA
#152,CNTRLA

Point to CR5
Enable transmitter, Char length - 8

CLRB
MOVB

CNTRLA
#20,CNTRLA

Point to CRO
Reset External/Status Interrupts

MOVB
MOVB

#l,CNTRLA
#36,CNTRLA

Point to CRl
Transmit IE, Interrupt on all
received chars, enable condition
affects vector

MTPS
MOVB
BR

#0
(R2)+,TBUFA

Enable recognition of interrupts
Send first character
Stay here while the interrupts occur

MOVB
MOVB

#2,CNTRLB
STATB,-(SP)

Point to SR2B
Store the condition affects vector
on the stack

MAIN: :

ISR: :

;

This section inspects the condition affects vector to
determine the cause of the interrupt

ROR
BCS

(SP)
EXT

ROR
BeS

(SP)
RCV

Rotate bit 0 into the carry bit
If this bit was set then the
interrupt was caused by a special
receive condition or an external/
status change
Rotate bit 1 into the carry bit
If this bit was set then the
interrupt was caused by a received
character

i+

If neither of the above conditions was
satisfied then the interrupt must have
been caused by the transmitter buffer
going empty
;XMIT: :

322

uNOTE # 034
Page 21 of 24

1$:
RCV: :

INC
CMP
BEQ
MOVB
BR
MOVB
BR

RO
RO,#8.
1$
(R2)+,TBUFA
IDONE
#50,CNTRLA
IDONE

Increment the xmit char counter
IF this is the eight char
THEN branch to 1$
ELSE send another char
and return
reset pending xmit interrupt
request - then return

MOVB
BR

RBUFA,(R3)+
IDONE

Store this character
and return

EXT: :

This program does not take any special action if an
External/Status interrupt or Special Receive Condition
occurs.
Just note that it occurred (there shouldn't be
any) and continue.
R4

Increment the counter
and return

IDONE:: TST
MOVB
RTI

(SP)+
#70,CNTRLA

Fix the stack
Issue end of interrupt command
and return to main program

TBUF::
RBUF::

.BYTE
.BLKB

101,102,103,104,105,106,107,110
8.

.END

START

.TITLE

SLU2.MAC

INC

;
;

This example program for the uPD7201 transfers serial data via
a loopback connector (part #H3022 or 54-16229) between Channel
A's transmit and receive using the DMA controller.
No ISR is
included in this example as it is meant to show how the uPD7201
and the DTC may work together. A 'real-life' program should
include an ISR which monitors any External or Special Receive
condition interrupts.
For more information regarding the
programming of the DTC please refer to MicroNote #018.

;

After this program has been assembled and linked on the
development machine use the KUI utility of the KXT11-C Software
Toolkit to load the program into the KXT11-C to execute as
shown in this example:

;

SET 2
LOAD SLU2.SAV
EXECUTE
.10DT

;

;

1001234

323

uNOTE # 034
Page 22 of 24
11276/041101
1001300/042103
1001302/043105
001304/044107
001306/041101
001310/042103
001312/043105
001314/044107
001316/000000
;

EXIT
This verifies that the data was tranfered successfully..
The
transmit buffer begins at address 1276 and the receive buffer
begins at address 1306.
Register Assignments
MMREG
CMDREG
CASTFO
CAOFO
CASTF1
CAOF1

Master Mode Register
Command Register
Chan 0 Chain Address
Chan 0 Chain Address
Chan 1 Chain Address
Chan 1 Chain Address

174470
174454
174446
174442
174444
174440

A
A
A
A

Seg/Tag Field
Offset Field
Seg/Tag Field
Offset Field

STATA
RBUFA
CNTRLA
TBUFA

175700
175702
175704
175706

Channel
Channel
Channel
Channel

status register
receiver
Control register
transmitter

STATB
CNTRLB

175710
175714

Channel B status register
Channel B control register

TIMREG
TIMERO

175736
175730

Timer Control register
Timer 0 Data register

START: :
;

This section initializes the KXT11-C system environment
MTPS

#340

MOV
MOV

#TBUF,R2
#RBUF,R3

Disable recognition of interrupts
R2 points to the transmit buffer
; R3 points to the receive buffer

This section initializes the bit rate generator
MOVB

#26,TIMREG

MOVB

#64.,TIMERO

Select timer 0, low byte only,
mode 3, binary
This divider selects 9600 bps

This section initializes the 7201 for asynch operation

324

uNOTE # 034
Page 23 of 24
MOVB
NOP

#30,CNTRLA

Reset Channel A
Wait for reset to complete

MOVB
NOP

#30,CNTRLB

Reset Channel B
; Wait for reset to complete

MOVB
MOVB

#2,CNTRLA
#2S,CNTRLA

MOVB
MOVB

#4,CNTRLA
#104,CNTRLA

; Point to CR4
Set operation mode:
No parity, asynch mode, 1 stop bit,
clock rate - 16x data rate

MOVB
MOVB

#3,CNTRLA
#301,CNTRLA

Point to CR3
; Enable receiver, char length - 8

MOVB
MOVB

#5,CNTRLA
#152,CNTRLA

Point to CRS
Enable transmitter, Char length - 8

CLRB
MOVB

CNTRLA
#20,CNTRLA

l?oint to CRO
Reset External/Status Interrupts

MOVB
MOVB

#l,CNTRLA
#16,CNTRLA

Point to CR1
Transmit IE, Interrupt on 1st
received char and issue DMA request
enable condition affects vector

Point to CR2A
setup bus interface options:
Chan A DMA, RxA>RxB>TxA ... ,
Non-Vectored

This section initializes the DMA controller
CLRB

CMDREG

Reset the DTC

MOV
MOV
MOV
MOV

#O,CASTFO
#LOADO,CAOFO
#0,CASTF1
#LOAD1,CAOF1

MOVB

#115,MMREG

Load Master Mode Reg to Enable DTC

MOVB
MOVB

#240,CMDREG
#241,CMDREG

start Chain Channel 0
Start Chain Channel 1

Load
Load
; Load
Load

Chain
Chain
Chain
Chain

Address
Address
Address
Address

Register
Register
Register
Register

Seg/Tag
Offset
Seg/Tag
Offset

MAIN: :
BR
;

stay here while the DMA transfers
occur

; Chain Load Region
LOAD1:

.WORD

001602

; Reload Word 

.WORD
.WORD

000020
Current Address Register A Seg/Tag
RBUFA+l ; Current Address Register A Offset


.WORD
. WORD

000000
RBUF

Current Address Register B Seg/Tag
Current Address Register B Offset


.WORD

000010

Current Operation Count 

.WORD
.WORD

000000
000001

Channel Mode Register High
Channel Mode Register Low


.BYTE
• BLKB

101,102,103,104,105,106,107,110
10

.END

START

RELATED DOCUMENTS
For further information about the KXT11-C and the uPD7201
consult the following sources:
KXT11-C Single-Board Computer User's Guide
uPD7201 Technical Manual *

*

This manual may be obtained from NEC

326

(EK-KXTCA-UG)

please

uNOTE # 035

Title:

Backplane Expansion/Termination

Date: 19-Jul-85

Originator: Jack Toto

Page 1 of 8

The following MicroNote discusses the termination
and
expansion
configurations.
These configurations will deal with 18 and 22-bit Q-bus
processors, backplanes and enclosure!s.
Not all cases presented in this
MicroNote meet FCC regulations, and only those that do are so marked.
The MicroNote is partitioned as follows:
1.
2.
3.
4.
5.
6.

System configurations
Single Box expansion/termination rules.
Multiple box expansion/termination rules.
Configuration/case reference chart.
Supported single box configuration cases.
Supported multiple box configuration cases.

1. SYSTEM CONFIGURATION
The following is a list of single and multiple backplane termination
rules which must be followed when termination is required.
Further
explanation of these rules can be found in MicroNote # 029,
the
Microcomputers
Products
Handbook
(EB-26078-41),
the Microcomputer
Products Configuration Guide (EB-27318-68), and generally the user guide
for any of the CPUs.
The LSI-11 Bus system can be divided into two types:
1.
2.

Systems containing one backplane.
Systems containing multiple backplanes

Before configuring any system, module/system
known.
These characteristics are:
The

+5

and

+12

Vdc

must

be

current

1.

Power consumption.
requirements.

2.

AC bus loading.
The amount of capacitance that a module
pres~ts
to a bus signal line. AC loading is expressed in
terms of ac loads where one ac load equals 9.35 pf of
capacitance.

327

Vdc

characteristics

uNOTE # 035
Page 2 of 8
3.

DC bus loading.
The amount of dc leakage current a module
presents to a bus signal when the line is high (undriven).
DC
loading is expressed in terms of dc loads where one dc load
equals 210 rna nominal.

4.

Total backplane loading must include ac and dc loads and the
power consumption of the processor, modules, terminator module,
and backplane.

5.

Processor termination, class as either 120 ohms or 240 ohms, as
follows:
OPTION
A.
B.
C.
D.
E.
F.

KDF11-A
KDF11-B
KDJ11-A
KDJ11-B
MicroVAX I
MicroVax II

TERMINATION
240
120
240
120
240
240

OHMS
OHMS
OHMS
OHMS
OHMS
OHMS

MODEL NAME
LSI 11/23
LSI 11/23 +
LSI 11/73
PDP 11/73
MicroVax I CPU
MicroVax II CPU

Power consumption, ac loading, and dc loading specifications
module can be found in sources mentioned earlier.

for

each

2. SINGLE BACKPLANE TERMINATION RULES
1.

When using a processor with 240 ohms termination, the bus can
accommodate up to 20. ac loads
(total)
before addi tional
termination is
required.
If more than 20 ac loads are
included,
the far end of the bus must be terminated with 120
ohms, although termination of 240 ohms is optimum.
Following
the addition of at least the minimum termination up to 35 ac
loads may be present in a single backplane.

2.

When using a processor with 120 ohms termination, up to 35 ac
loads
(total)
may be present before additional termination is
required.
If more than 35 ac loads are included, the far end
of the bus must be terminated with 120 ohms. When this has
been done up to 45 ac loads may be present.

3.

The bus can accommodate up to 20 (total)
true in all cases.

4.

The bus signal lines on the backplane can be up to 35.6 cm
in) long.

328

dc

loads.

This

is
(14

j

uNOTE i 035
page 3 of 8
3. MULTIPLE BACKPLANE TERMINATION RULES
1.

Up to three backplanes maximum can be configured in a
backplane system.

2.

The signal lines on each backplane can be up to 25.4 cm (10 in)
in length.

3.

Terminated multiple backplane systems can accommodate up to 44
ac loads, for two backplane systems, and 66 ac loads for three
backplane systems.
In multiple backplane systems no more than
22 ac loads may be present in anyone backplane, nor may any
unused ac loads from one backplane be added to the next
backplaneo
It is best to load each backplane equally, but if
not possible, then the first and second backplanes should have
the highest number of ac loads.

4.

OC loading for all modules in all backplanes cannot
loads (total).

5.

Both ends of the bus must be terminated with 120 ohms.
This
means that the first and last backplanes must have an impedance
of 120 ohms.
To achieve this, each backplane must be lumped
together as a single point.
The resistive termination may be
provided by combining two of the modules in the backplane;
the
processor providing 240 ohms to ground in parallel with an
expansion module providing 240 ohms to give the needed 120 ohms
termination. Alternately a processor with 120 ohms termination
would require no additional termination on the expansion module
to provide 120 ohms in the first box.
The 120 ohms termination
in the last box may be provided in three ways.
The termination
resistors may reside either on the bus expansion module, or on
a bus terminator module such as a BOVl1, or on the backplane
itself as in the case of the H9275 and H9278 (BA23-A enclosure)
backplanes.

6.

The cable lengths connecting the first and second backplane are
61 cm (2 ft) or greater.

7.

The cables connecting the second and third backplane are 122 cm
(4 ·ft)
longer or shorter than the cables connecting the first
and second backplanes.

8.

The combined length of the cables can not exceed 4.88 m
feet __

9.

The cables must have a characteristic impedance of 120 ohms.

329

multiple

exceed

or

20

16

uNOTE ~~ 035
Page 4 of S

4. CONFIGURATION/CASE REFERENCE CHART
rrhe chart below is designed to be a quick reference to a specific CPU
and system combination.
The actual configurations are listed after the
chart.
To use the chart below, find the CPU that is in the system and the
number of backplanes or enclosures that you will be using.
The
intersection of the two parameters will give you the case/variation
number that is valid for that configuration.
Ex.
case 1.2 represents
case 1, with variation 2.
SYSTEM CONFIGURATION CHART
PROCESSOR

SINGLE BOX

TWO BOX

THREE BOX

KDF11-A

240 OHMS

CASE 1
CASE 2

CASE 4.1
CASE 4.2
CASE 4.3

1S-BIT SYSTEMS
ONLY

KDFll·-B

120 OHMS

CASE 1
CASE 2

CASE
CASE
CASE
CASE

3.1
3.2
3.3
3.4

1S-BIT SYSTEMS
ONLY

KDJ11-A

240 OHMS

CASE 1
CASE 2

CASE 4.1
CASE 4.2
CASE 4.3

1S-BIT SYSTEMS
ONLY

KDJ1l-B

120 OHMS

CASE 1
CASE 2

CASE
CASE
CASE
CASE

3.1
3.2
3.3
3.4·

lS-BIT SYSTEMS
ONLY

MICROVAX I 240 OHMS

CASE 2

CASE
CASE
CASE
CASE

3.1
3.2
3. 3
3.4

NOT
APPLICABLE

MICROVAX II 240 OHMS

CASE 2

CASE 4.1
CASE 4.2
CASE 4. 3

NOT
APPLICABLE

330

uNOTE # 035
Page 5 of 8

5. SINGLE BOX SYSTEM CONFIGURATION CASES
Single box 18 or 22 bit system configurations can be terminated the
following two ways.
The two configuration cases presented in this
section will give optimum bus termi.nation respectively to 120 ohm and
240 ohm processor based systems.
CASE 1. Use an unterminated enclosure/backplane with a termination
card such as the BDV11 in the first unused slot. This card should
be ECO'd to etch revision E, when used in 22-bit systems
.
This
card should also have the on board processor and memory diagnostics
disabled if it is going to be used to terminate a system with the
KDJ11-A or as the CPU.
(refer to MicroNote # 003) The following
enclosures and backplanes are unterminated:

A.
B.
C.
D.
'E.
F.

OPTION

SYSTEM SIZE

BAll-SA
BA11-M
BA11-N
H9270-Q
H9281-QA
H9273-A

18/22 BIT
18 BIT
18 BIT
18/22 BIT
18/22 BIT
18 BIT

CASE 2. Use an enclosure/backplane which is already terminated.
All but one of Digital's backplanes are terminated with 120 ohms,
and will meet the minimum termination required for additional ac
loading beyond the capabilitiE!s of an unterminated backplane.
The
one backplane ,that is not terminated at 120 ohms is the one found
inside of the BA23-A enclosure. This option is terminated at 240
ohms. This enclosure is the only option that will provide optimum
termination for 240 ohm CPUs. The following table list all of the,
terminated enclosures and backplanes available
from
Digital
Equipment Corporation:

A.
B.
C.
D.

OPTION

SYSTEM SIZE

BA23-A
H9275-A
H9281-QB
H9281-QC

18/22 bit
22 BIT,
18/22 BIT
18/22 BIT

TERMINATION
240 OHMS
(not expandable) 120 OHMS
(not expandable) 120 OHMS
(not expandable) 120 OHMS

6. MULTIPLE BOX SYSTEM CONFIGURATION CASES
Multiple box configurations can be up to three boxes maximum.
However
currently only 18-bit three box systE~ms can be configured and terminated
properly. Therefore cases 3 and 4 dE~scribed below will deal only with
two box 22-bit system configurations using CPUs of either impedance as

331

uNOTE # 035
Page 6 of 8
l8-bit systems are sufficiently documented as noted below.
NOTE
FOR 18-BIT MULTIPLE BOX SYSTEMS USING A CPU CONTAINING
EITHER 120 OR 240 OHMS OF IMPEDANCE THE PROCEDURE FOR
EXPANDING FROM A ONE BOX SYSTEM TO A TWO BOX .SYSTEM IS
DOCUMENTED IN SEVERAL TECHNICAL RESOURCES, SUCH AS THE
EXPANSION PRODUCTS HANDBOOK (EB24836-75/68) AND THE
BA11-N
TECHNICAL
MANUAL
(EK-BA11N-TM-001).
A
PARTICULARLY GOOD RESOURCE FOR 18-BIT MULTIPLE BACKPLANE
EXPANSION AND TERMINATION GUIDELINES IS THE LSI SYSTEM
SERVICES MANUAL (EK-LSIFS-SV-005).
CASE 3. This case deals with a 120 ohm CPU.
The 120 ohms of
impedance on the CPU does not have to matched in the first box, but
does have to be matched at the far end of the bus which will be
located in the second box. This will generate four variations to
the case dealing with 120 ohm CPUs. All four of these variations
will have in common the BCV2A expansion assembly.
This option
contains two paddle cards (M9404-00 at 0 ohms and the M9405-YA at
120 ohms)
and the BC02D-03 interconnect cable.
The card for
expanding the bus out of the first box (M9404) will be installed in
the first unused slot of the first backplane, with the cable
connected to it the bus will be carried to the second backplane.
Here the bus is terminated by installing the termination card
(M9405) in the first slot of the second backplane.
VARIATION 1: Use two unterminated enclosures such as the
BAll-SA master box and the BA11-SE expansion box, connected
with the BCV2A.
This configuration is not FCC compliant and
places the task of FCC compliance on the user.
FCC compliance
can be obtained by rack mounting these two enclosures in an
H9642 cabinet and using the H349 distribution panel to make
connections from the system to the outside environment,
using
the appropriate option cabinet kits.
This cabinet system has
been tested by Digital
Equipment
Corporation
for
FCC
compliance.
NOTE
THE NEXT TWO VARIATIONS MAY BE MADE
FCC
COMPLIANT BY RACK MOUNTING BOTH BOXES IN AN
H9642 CABINET THAT HAS THE H9544-AJ
SIDE
PANELS.
THESE SIDE PANELS ALLOW FOR THE SIDE
TO SIDE AIR FLOW FOR THE BA23 ENCLOSURE.
ALSO
-INCLUDED IN THIS CABINET CONFIGURATION IS THE
H3490 PATCH PANEL WHICH IS USED FOR MAKING
CONNECTIONS FROM THE SYSTEM TO THE OUTSIDE
ENVIRONMENT VIA THE APPROPRIATE OPTION MODULE
CABINET KITS.

332

uNOTE # 035
page 7 of 8
VARIATION 2: Use the BA23 enclosure as the primary enclosure
and the BA11-SE as the expansion chassis, again using the BCV2A
as the interconnect for the two enclosures.
The termination
that exists on the BA23 backplane must be removed because the
that the' CPU has 120 ohms of impedance in the first box and
does not require any additional termination at this point. The
BA11-SE has not been tested in this configuration for FCC
compliance, however using the information in the above NOTE MAY
produce FCC compliance.
VARIATION 3: Use two BA23 enclosures. When using two BA23-A
enclosures
and
the BCV2A expansion assembly option the
termination from both backplanes must be removed. This is due
to the fact that the 120 ohms of CPU impedance does not have to
matched in the first backplane of a multiple backplane system
and that the BCV2A will put the required termination into the'
last backplane of this configuration.
VARIATION 4: A final variation to the 120 ohm CPU system would
be
to follow the same scenario as in the first three
variations, but using a mix of some terminated and untermiriated
backplanes as opposed to system enclosures. These backplanes
and their termination states are~ listed in cases one and two.
CASE 4. This case deals with the 240 ohm CPUs. As stated in the
termination rules for 240 ohms CPUs, the processors impedance must
be matched in the first box. This would bring the total impedance
in the first box to 120 ohms which is the ideal impedance. This
120 ohms from the first box, would be matched at the far end of the
bus which will be located in the second box. Configurations with
240 ohm CPUs have three variations. All of the case 4 variations
will have in common the BCV2A expansion assembly. The installation
of this option is explained above, in the section introducing two
box systems.
VARIATION 1: This case variation uses the BA23 enclosure as
the primary box and expands into a BA11-SE.
Using this
configuration requires that the termination on the backplane of
the BA23 be left in.
This will provide for an optimum
impedance match in the first box. The bus will be terminated
at the far end in the second box via the expansion assembly
termination card (M940S-YA). This configuration as is will not
be FCC compliant however following the guide lines from the
CASE 3 variations FCC compliance MAY possibly be achieved.
VARIATION 2: The two enclosures used here will be the BA23
system
box
and
the
BA23
expansion box.
While this
configuration resembles case 4 with variation 1, the only
change will be the removal of any termination from the second
(expansion) backplane. Interconnect between the two boxes and
FCC compliance can be achieved as described.

333

uNOTE # 035
Page 8 of 8
NOTE
WHEN CONFIGURING MULTIPLE BACKPLANE SYSTEMS
USING THE BA23-A BOX WITH THE RQDXl RD/RX
CONTROLLER,INSTALLED, CONSIDERATION SHOULD BE
GIVEN TO THE PLACEMENT OF THE CONTROLLER AND
ITS RELATIONSHIP TO THE DEVICES THEMSELVES.
FURTHER WHEN USING MULTIPLE BA23-A ENCLOSURES
IT BECOMES POSSIBLE TO HAVE THE BEVNT LINE FROM
BOTH OF THE POWER SUPPLIES TO BE ACTIVE AT THE
SAME TIME. THERE SHOULD ALWAYS BE ONLY ONE
BEVNT LINE ACTIVE AT ANYTIME, THEREFORE CARE
MUST TAKEN TO AVOID THIS CONFLICT.
THIS
PROBLEM IS AVOIDED WHEN USING A BA23-C AS THE
SECOND BOX.
VARIATION 3: This final case 4 variation deals with the use of
terminated and unterminated backplanes rather than enclosures.
Using a mix of these products the configurations would resemble
the first two for case 4, and would follow the same rules for
proper termination.

334

uNOTE # 036

Title:

MicroVMS Revealed

Originator:

Date: 19-Jul-85

Edward P. Luwish

Page 1 of 25

ABSTRACT
This MicroNote explains the contents of the MicroVMS
distribution kit as well as listing the "Full" VMS files
not included in said kit.
The description is of
MicroVMS V4.1M and VAX/V]~S V4.1, but will apply, with
minor changes, to later revisions of VMS V4.

DESCRIPTION OF THE COMPONENTS OF THE MICROVMS KIT
The MicroVMS kit comes in three parts
a standalone BACKUP piece
(currently three diskettes),
the BASE system (which is copied to a
blank, formatted hard disk by the standalone BACKUP) and a collection of
additional pieces which are addE~d to the system (using VMSINSTAL) as
though they were layered products. These pieces are labeled UTIL, USER,
PROG
and
SYSP.
Another piece, described here but purchasable
separately, is NET (DECnet). Note that the tape distribution contains
all these components (except DECnE~t) on a single volume - even so, the
partitioning is the same.
The installation procedure for MicroVMS is simple
first boot the
standalone BACKUP volume, use it to copy the BASE system to the hard
disk, then boot and log into the system thus built.
In many cases,
no
other files need be included on the hard disk.
If necessary, additional
options can be added to the system using VMS INSTAL and the remaining
pieces of the distribution kit.
The following sections describe the
components, starting with the Base system.
The files are divided into classes according to their usefulness in a
turnkey runtime environment. Class I was established experimentally, as
described in MicroNote # 37 - "In Search of NanoVMS".
The remaining
classes
represent
the author's opinion,
rather than defining a
hierarchy, and were based on the author's experiences with minimum
runtime environments.
Your environment may be somewhat different.

335

uNOTE # 036
Page 2 of 25
FILES INCLUDED IN THE BASE SYSTEM KIT
Class I files The following BASE SYSTEM files are required if a system is to boot up
at all.
The assumption is that the boot disk is an RQDX or other MSCP
device.
sys$system:DCL.EXE
sys$system:DUDRIVER.EXE
sys$system:FI1BXQP.EXE
sys$system:FPEMUL.EXE
sys$system:INSTALL.EXE
sys$system:JOBCTL.EXE
sys$system:LOGINOUT.EXE
sys$system:MTAAACP.EXE
sys$system:PDDRIVER.EXE
sys$system:PUDRIVER.EXE
sys$system:RMS.EXE
sys$system:RUNDET.EXE
sys$system:SCSLOA.EXE
sys$system:SET.EXE
sys$system:SETPO.EXE
sys$system:STARTUP.COM
sys$system:SYS.EXE
sys$system:SYSBOOT.EXE
sys$system:SYSGEN.EXE
sys$system:SYSINIT.EXE
sys$system:SYSLOAUV1.EXE
sys$system:SYSLOAUV2.EXE
sys$system:TTDRI~ER.EXE

sys$system:TUDRIVER.EXE
sys$system:VAXEMUL.EXE
sys$system:VAXVMSSYS.PAR

- Command language interpreter
(Executes startup command file)
- Class (protocol) driver for MSCP devices
- File ·structure and volume structure
(Extended QIO Processor)
- Emulate floating point instructions
- utility that installs known images
- Job controller/symbiont manager
(Creates detached process for LOGINOUT)
- Login/logout utility
(Needed for response to unsolicited
input from non-logged-in terminals)
- Magnetic tape ancillary control process
(Required if system is booted from TK50)
- Pseudo-disk driver for bootstrap
(Required if system is booted from TK50)
- Port (physical) driver for MSCP devices
- Record Management Services
- Runs detached images
(Needed to run JOBCTL.EXE)
- Loadable routines used by System
Communication Services
(needed by MSCP, etc.. )
- Processes many SET commands
(Needed frequently by STARTUP. COM)
- Processes SET MESSAGE command
(Needed frequently by STARTUP. COM)
- System-startup DCL command procedure
(Creates a standard VMS environment)
- Operating System image file
- System bootstrap utility
(Sets up system parameters prior to
invocation of STARTUP.COM)
- System customization utility
(Loads drivers, sets system parameters)
- Operating System Initialization image
- MicroVAX I-specific initialization
- MicroVAX II-specific initialization
(Pick only one of the above two files)
- Terminal driver (including console)
- Class (protocol) driver for TMSCP tapes
(Required if system is booted from TK50)
- Emulate VAX instructions not in uVAX arch.
- System parameter file
(Used by SYSGEN.EXE and SYSBOOT.EXE)

336

uNOTE # 036
Page 3 of 25
Class I files -

(continued)

sys$system:VMOUNT.EXE

- Volume mount utility
(Needed to mount system and user disks)
sys$library:DCLTABLES.EXE - Command-parsing tables
(Required by DCL.EXE)
sys$library:LBRSHR.EXE
- Runtime shareable library for Librarian
(Required by INSTALL.EXE)
sys$library:LIBRTL.EXE
- Runtime shareable library of common
system support routines
(Required by Job Controller)
sys$library:LIBRTL2.EXE
- Runtime shareable library of common
system support routines (Part 2)
(Required by Job Controller)
sys$library:MOUNTSHR.EXE - MOUNT shareable image
(Required by VMOUNT)
sys$library:SCRSHR.EXE
- V3.x screen management package
(Required by SYSGEN.EXE)
sys$manager:VMSIMAGES.DAT

Data file for installing known images

sys$message:SYSMSG.EXE

- System error messages
(required for boot up)
sys$message:SYSMGTMSG.EXE - ACC, EDIT/ACL, BACKUP, INSTALL,
MONITOR and AUTHORIZE error message file
(required for boot up)

337

uNOTE # 036
Page 4 of 25
Class IA files These files are required for proper system initialization and
shutdown, but will not prevent a system from booting if absent:
sys$system:DISMOUNT.EXE
sys$system:OPCCRASH.EXE
sys$system:SHUTDOWN.COM
sys$system~UVSTARTUP.COM

orde~ly

- Volume dismount utility
(Required for orderly system shutdown
or disk changing)
- System shutdown utility
(Required for orderly system shutdown)
- System shutdown DCL command procedure
(Required for orderly system shutdown)
- Processor-specific startup commands
(Required for orderly system startup)

sys$library:DISMNTSHR.EXE - DISMOUNT shareable image
sys$library:MTHRTL.EXE
- Math support runtime shareable library
(required by an image invoked by
SHUTDOWN. COM)
sys$library:UVMTHRTL.EXE - MicroVAX version of MTHRTL
sys$manager:SYSTARTUP.COM - Site-specific startup commands
(Required for Qrderly system startup)
sys$manager:SYCONFIG.COM - Required for orderly system startup
sys$manager:SYSHUTDWN.COM - Site-specific shutdown commands
(Required for orderly system shutdown)

338

uNOTE # 036
Page 5 of 25
Class IB Files These files are required by optional hardware:
sys$system:ANALYZBAD.EXE
sys$system:BADBLOCK.EXE
sys$system:DLDRIVER.EXE
sys$system:DZDRIVER.EXE
sys$system:MTAAACP.EXE
sys$system:SMGMAPTRM.EXE

sys$system:SYSLOAWS1.EXE
sys$system:SYSLOAWS2.EXE
sys$system:TERMTABLE.EXE
sys$system:TUDRIVER.EXE
sys$system:YFDRIVER.EXE

- ANALYZE/MEDIA image
(Required only for non-MSCP disk support)
- Dynamic bad block Files-11 ACP subprocess
(Required only for non-MSCP disk support)
- RL02 Disk Driver
- DZV11 Serial Interface Driver
- Magnetic tape ancillary control process
(Required for tape support)
- TERMTABLE global section - runs at
system startup.
(Required for video
terminal support using VMS screen
management package)
- Graphics display initialization
(RequirE~d for VAXstation I support only)
- Graphics display initialization
(RequirE~d for VAXstation II support only)
- Compiled terminal definitions file
(Required for te~minal support)
- Class (protocol) driver for TMSCP tapes
(Required for TK50 support only)
- DHVll Serial Interface Driver

339

uNOTE # 036
Page 6 of 25
Class II files These files MAY be required by user applications or layered products,
since they depend on which high-level language or operating system
features are used:
[Note that C and ADA are absent
their runtime
licenses are separate from, and in addition to, that of VMS]
sys$library:BASRTL.EXE
sys$library:BASRTL2.EXE
sys$library:CDDSHR.EXE

- Runtime shareable library - BASIC
- Runtime shareable library - BASIC
- Required by layered products using the
Common Data Dictionary - such as
Datatrieve
sys$library:COBRTL.EXE
- Runtime shareable library - COBOL
sys$library:ENCRYPSHR.EXE - Dummy encryption module
(Required by layered products that can
optionally use DES data encryption)
sys$library:FORRTL.EXE
- Runtime shareable library - FORTRAN
sys$library:PASRTL.EXE
- Runtime shareable library - PASCAL
sys$library:PLIRTL.EXE
- Runtime shareable library - PL/I
sys$library:RPGRTL.EXE
- Runtime shareable library - RPG II
sys$library:SMGSHR.EXE
- VMS screen management package
sys$library:VMSRTL.EXE
- Old-f~rmat VMS runtime library
(Required by V3.x applications)
sys$message:CLIUTLMSG.EXE - ANALYZE/MEDIA, EXCHANGE, MAIL, PHONE,
PRINT, SUBMIT, RUN, SET, SHOW and
SEARCH error messages.
sys$message:FILMNTMSG.EXE - ANALYZE/OBJECT, ANALYZE/IMAGE,
EDIT/FDL, ANALYZE/DISK error messages
sys$message:PASMSG.EXE
- PASCAL language error messages
sys$message:PLIMSG.EXE
- PL/I language error messages
sys$message:RPGMSG.EXE
- RPG language error messages
sys$message:SHRIMGMSG.EXE - CONVERT, DCX (library de/compression
utility), FDL, SORT, SMGSHR and EDT
error messages

340

uNOTE # 036
Page 7 of 2S
Class IIA files These are use.r utilities that can be called by application programs even
though there may exist no way to invoke them from the terminal by DeL
command:
sys$library:CRFSHR.EXE
sys$iibrary:DCXSHR.EXE
sys$library:EDTSHR.EXE
sys$library:FDLSHR.EXE
sys$library:SORTSHR.EXE

- Cross-Reference shareable image
(Required by compilers & linker if
cross-reference option is invoked)
- Data de/compression support
- Callable editor
(Required by EDT.EXE)
File Description Language parsing
shareable image
(Required by CREATEFDL.EXE and EDF.EXE)
- VAX Sort/Merge Runtime library
(Required by SORTMERGE.EXE)

Class III files These are often used to diagnose or maintain systems in the field.
They
can be used to adapt systems to changing user need on an interactive
basis.
Some applications call these as part of their operation.
sys$system:BACKUP.EXE
sys$system:CHECKSUM.EXE
sys$system:ERRFMT.EXE
sys$system:LINK.EXE
sys$system:MODPARAMS.DAT
sys$system:PATCH.EXE
sys$system:SUMSLP.EXE

- Backup utility
- Used during installation of
VAX/VMS updates
- Error logging facility
- Linker
(Development/upgrade utility)
- Site modifactions to sysgen
parameters - Used by AUTOGEN.COM
- Image patching utility
(Required for system updates/bug fixes)
- Batch-oriented source file editor
(Required for system updates/bug fixes)

sys$library:SECURESHR.EXE - Rights database (RIGHTSLIST.DAT)
service routines.
(Required by BACKUP.EXE)
sys$library:SUMSHR.EXE
- ShareablE~ image required by SUMSLP
sys$update:AUTOGEN.COM
sys$update:LIBDECOMP.COM
sys$update:REMOVE.COM
sys$update:SWAPFILES.COM
sys$update:VM~INSTAL.COM

-

System tuning utility
Library decompression utility
Update utility
System Tuning utility
Update utility

Optional files for disk support:
sys$system:INIT.EXE
- Volume initialization utility
sys$system:UNLOCK.EXE
- For reopening improperly closed files
sys$system:VERIFY.EXE- For error-correction of disks

uNOTE # 036
Page 8 of 25
Class IV files These set up and maintain a multi-user environment even
DCL is not supported by the turnkey system:
sys$system:AUTHORIZE.EXE
sys$system:CVTNAF.EXE
sys$system:CVTUAF.EXE
sys$system:NOTICE.TXT
sys$system:OPCOM.EXE
sys$system:REPLY.EXE
sys$system:SETSHOACL.EXE
sys$system:SYSALF.DAT
sys$system:SYSUAF.DAT

if

interactive

- User authorization utility
(Required only for login passwQrd support)
- Convert NETUAF.DAT utility
(Required only for V3.5+ system upgrades)
- convert SYSUAF.DAT utility
(Required only for V3.5+ system upgrades)
- Announcement file for logged-in users
- Operator communications facility
(For systems with a human operator)
- Message broadcasting utility
(For systems with a human operator
/multi-user/secure. Required by OPCOM)
- SET and SHOW ACCESS CONTROL LIST commands
(For secure systems)
- Automatically logged-in terminal data file
(Required only if this feature is used)
- User authorization data file
(Required only for login password support)

sys$library:SECURESHR.EXE - Rights database (RIGHTSLIST.DAT)
service routines.
(Required for multi-user systems)
sys$manager:ADDUSER.COM
sys$manager:ALFMAINT.COM
sys$manager:EDTINI.EDT
sys$manager:LOGIN.COM
sys$manager:SUCCESS.TXT
sys$manager:SYLOGIN.COM
sys$manager:WELCOME.TXT
sys$update:BACKUSER.COM
sys$update:CVTNAF.COM
sys$update:CVTUA~.COM

sys$update:RESTUSER.COM

- For maintaining multi-user systems
- For managing automatically
logged-in terminals
- Editor initialization script for
system manager's account
- Command file executed when system
manager logs into account
- Not required
- Command file executed when any user
logs in (prior to user's own LOGIN.COM)
(Required for multi-user systems)
- Not required
- Back up user directories before
performing system update
Update utility (multi-user systems)
- Convert NETUAF.DAT utility
(Required only for V3.S+ system upgrades)
- Convert SYSUAF.DAT utility
(Required only for V3.5+ system upgrades)
- Restore user directories after
performing system update
Update utility (multi-user systems)

342

uNOTE # 036
Page 9 of 25
Class V files These are user utilities that exist for the convenience of interactive
users.
Some of these are of interE!st primarily to programmers.
None of
the Class V files normally become part of a turnkey application.
sys$system:CDU.EXE
sys$system:CONVERT.EXE
sys$system:COPY.EXE
sys$system:CREATE.EXE
sys$system:CREATEFDL.EXE
sys$system:DELETE.EXE
sys$system:DIRECTORY.EXE
sys$system:EDT.EXE
sys$system:LIBRARIAN.EXE
sys$system:RECLAIM.EXE
sys$system:RENAME.EXE
sys$system:SHOW.EXE
sys$system:SORTMERGE.EXE
sys$system:TYPE.EXE
sys$system:VMSHELP.EXE

- For defining new DCL commands
(User-oriented utility)
- Converts RMS files to
new formats and organizations
(User-oriented utility)
- User-oriented file copying utility
- User-oriented file and directory
creation utility
- CREATE/FDL image
- User-oriented file deletion/purge utility
- User-oriented directory utility
- Interactive text editor
- Librarian (Development utility)
- Used to recover free space in
ISAM RMS files
(User-oriented utility)
- User-oriented file renaming utility
- SHOW command processor
- SORT and MERGE command processor
- Utility for typing text files on terminal
(User-oriented utility)
- Interactive help utility

sys$library:CONVSHR.EXE

- Shareable image required by CONVERT.EXE
and RECLAIM.EXE
sys$library:DBGSSISHR.EXE - DEBUG system service intercept handler
(Development utility)
sys$library:TRACE.EXE
- Error traceback facility
(Development utility)
sys$help:EDTHELP.HLB
sys$help:HELPLIB.HLB
sys$help:UAFHELP.HLB

- Help library for EDT
- Main help library (small version)
- Help library for AUTHORIZE

sys$message:DBGTBKMSG.EXE - DEBUG, TRACE messages
(Development utility)
sys$message:PRGDEVMSG.EXE - CDU, DIFF, DUMP, Librarian, Linker,
MACRO, MESSAGE, PATCH, ANALYZE/SYSTEM,
and ANALYZE/CRASH messages
(Development utility)
sys$update:SP~ITBLD.COM

sys$update:VMSKITBLD.DAT

- utility :for building software kits
(Development utility)
- Data for VMSKITBLD.COM - for building
MicroVMS binary distribution kits
(Development utility)

343

uNOTE # 036
Page 10 of 25
Class VI files These are files required by options which are not included in
System:

the

BASE

sys$message:NETWRKMSG.EXE - DECnet error messages

FILES INCLUDED IN THE OPTIONAL KITS
'The optional kits include UTIL, USER,
PROG,
SYSP and (at additional
cost) NET.
The files of these kits are described in the next sections
of the MicroNote.
First, a word of explanation about the format:
These
kits are in VMSINSTAL format - this means they consist of a number of
BACKUP savesets. Thus the UTIL option consists of the UTILxxx.A,
UTILxxx.B,
etc.
savesets, where IIXXX" is a number giving the version
and revision level.
Each saveset is listed separately, and denoted as
"UTIL A",
"UTIL B", etc.
The savesets are described individually
becauie they can-be added to your system (or not) depending on your
replies to the interactive VMSINSTAL.COM procedure.
The" A" saveset
contains the installation data tables and any default files- (if any)
needed by ALL the other savesets, so it will often appear empty in the
tables below.

NETWORK DEVICE DRIVERS
In order to permit the use of DECnet communication
devices
as synchronous serial lines,
the hardware
drivers are included in the UTIL option, and do not
require a DECnet license.
These same files are also
included in the DECnet kit so as to simplify network
installation.

344

uNOTE # 036
Page 11 of 25
This section lists the files of the UTIL option:
UTIL A

KITINSTAL.COM

UTIL B

MAIL utility

sys$system:MAIL.COM
sys$system:MAIL.EXE
sys$system:MAILEDIT.COM
sys$help:MAILHELP.HLB

Command procedure used by DECnet mail
Mail Utility
Default MAIL editing command procedure
Mail Utility help file

UTIL_C -- SEARCH utility
sys$system:SEARCH.EXE

-

File search utility

-

File compare utility

UTIL_D -- DIFF utility
sys$system:DIFF.EXE
UTIL_E -- DUMP utility
sys$system:DUMP.EXE

-- File dump utility

UTIL_F -- RUNOFF utility
sys$system:DSRTOC.EXE
sys$system:DSRINDEX.EXE
sys$system:RUNOFF.EXE

RUNOFF/CONTENTS image
RUNOFF/INDEX image
Text formatting utility

UTIL_G -- PHONE utility
sys$system:PHONE.COM
sys$system:PHONE.EXE
sys$help:PHONEHELP.HLB

PHONE startup procedure
Phone utility
phone utility help file

UTIL_H -- MicroVMS HELP library
sys$help:HELPLIB.HLB

Full default (DCL) help file

UTIL I -- Remote terminal support via SET HOST/DTE
sys$system:RTPAD.EXE
sys$library:DTE_DF03.EXE

Remote terminal command interface
-- SET HOST/DTE support for
DFO] dialer

UTIL J - - Drivers for netw'ork communication devices
Asynchronous DECnet driver
DECnet DMV11 datalink driver
DEQNA Ethernet interface driver

sys$system:NODRIVER.EXE
sys$system:XDDRIVER.EXE
sys$system:XQDRIVER.EXE

345

uNOTE i 036
Page 12 of 25
1

(UTIL option, continued)
UTIL K -- LAT-11 terminal server support (via Ethernet)
sys$system:LATCP.EXE
sys$system:LTDRIVER.EXE
sys$system:XQDRIVER.EXE
sys$help:LATCP.HLB
sys$manager:LTLOAD.COM
UTIL_L -

LAT-l1 Control Program
LAT-ll Driver
DEQNA Ethernet interface driver
LAT-11 Control Program help file
Command procedure to load and start LAT

Stand-alone backup on system disk support

sys$system:STABACCOP.EXE
sys$system:STABACKUP.EXE
sys$system:STANDCONF.EXE
sys$system:STASYSGEN.EXE
sys$update:STABACKIT.COM

Copy program for building
standa16ne BACKUP kit
Standalone BACKUP utility
Standalone BACKUP configure image
Standalone SYSGEN utility
Command procedure that builds
standalone BACKUP to media

UTIL_M -- MicroVAX-I bootstrap that works for any MSCP system device
sys$system:VMBUVAXlP.EXE
sys$update:VMBUVAXl.COM

Image which boots disks inaccessible
from boot ROM or console command
Command procedure to build Rx50
console floppy to boot other disks

UTIL_N -- Error Log Report Generator utility
sys$system:ERF.EXE
sys$system:ERFBRIEF.EXE
sys$system:ERFBUS.EXE
sys$system:ERFDISK.EXE
sys$system:ERFINICOM.EXE
sys$system:ERFPROCl.EXE
sys$system:ERFPROC2.EXE
sys$system:ERFPROC3.EXE
sys$system:ERFPROC5.EXE
sys$system:ERFSUMM.EXE
sys$system:ERFUVAX.EXE
sys$library:ERFCOMMON.EXE
sys$library:ERFCTLSHR.EXE
sys$library:ERFLIB.TLB
sys$library:ERFSHR.EXE

ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR
ANALYZE/ERROR

346

image
brief report generator
bus display ge:nerator
disk display generator
initialize routines
processing routines
processing routines
processing routines
processing routines
summary display routines
uVAx-specific routines
common data structures
shareable image
device descriptions
common routines

*

uNOTE
036
Page 13 of 25
This section lists the files of the USER option:
USER A

Default files

USER B

File Access Control List utilities

sys$system:ACLEDT.EXE
sys$library:ACLEDIT.INI
sys$help:ACLEDT.HLB

Access Control List (ACL) Editor
ACL Editor initialization file
ACL Editor help file

USER_C -- Disk Quota utility
sys$system:DISKQUOTA.EXE
sys$help:DISKQUOTA.HLB
USER_D -- Print and Batch

--- Disk Quota utility
------ Disk Quota utility help file

Queu(~

sys$system:LPDRIVER.EXE
sys$system:PRTSMB.EXE
sys$system:QUEMAN.EXE
sys$system:REQUEST.EXE
sys$system:SUBMIT.EXE
sys$library:SMBSRVSHR.EXE

utilities
Line printer driver
Print symbiont
Queue managing utility
Operator request facility
Batch job submission utility
Print symbiont service routines

USER_E --- Input Queue Symbiont
Card reader input symbiont

sys$system:INPSMB.EXE

USER_F --- Accounting Log Report Generator utility
sys$system:ACC.EXE

-- Accounting Utility

347

uNOT1!: # 036
Page 14 of 25
This section lists the files of the PROG option:
PROG A

KITINSTAL.COM

PROG B

Debugger utility

sys$library:DEBUG.EXE
sys$help:DEBUGHLP.HLB

Symbolic debugger
Debugger help file

PROG_C -- Image Dump utility
sys$system:ANALIMDMP.EXE
sys$library:IMGDMP.EXE

-- ANALYZE/PROCESS DUMP image
-- Image dump procedures

P'ROG_D -- RMS Analyze and FDL Editor utilities
sys$system:ANALYZRMS.EXE
sys$system:EDF.EXE
sys$help:ANLRMSHLP.HLB
sys$help:EDFHLP.HLB

ANALYZE/RMS FILE image
File Definition Language editor
ANALYZE/RMS FILE help file
FDL Editor help file

PROG_E -- Message utility
sys$system:MESSAGE.EXE

-- Message compiler

348

uNOTE # 036
Page 15 of 25
(PROG option, continued)
ImagE~

PROG_F -- Object and Shareable
sys$library:IMAGELIB.OLB
sys$library:STARLET.OLB

libraries

System default shareable image library
-- System object and runtime library

PROG G -- Macro libraries
sys$library:LIB.MLB
sys$library:STARLET.MLB

Operating system macro library
System macro library

PROG H -- Macro assembler
sys$system:MACR032.EXE

-- VAX MACRO assembler

PROG_I -- SDL intermediary form of STARLET.MLB
sys$system:SDLNPARSE.EXE
sys$library:STARLETSD.TLB

SDL compiler (for installing
optional software)
Text library of STARLET definitions
Used during layered product installations

PROG J - - FORTRAN require files
sys$library:FORDEF.FOR
sys$library:FORIOSDEF.FOR
sys$library:LIBDEF.FOR
sys$library:MTHDEF.FOR
sys$library:SIGDEF.FOR
sys$library:XFDEF.FOR

349

FORTRAN INCLUDE file: FOR$ sysmbols
FORTRAN INCLUDE file: IOSTAT error codes
FORTRAN program utility INCLUDE files
FORTRAN INCLUDE file: MATH$ symbols
FORTRAN program utility INCLUDE files
Definitions available for programs
using DR780 support routines

uNOTE # 036
Page 16 of 25
This section lists the files of the SYSP option:
SYSP A -- Default files
Install utility help file
Patch utility help file
Sysgen utility help file

sys$help:INSTALHLP.HLB
sys$help:PATCHHELP.HLB
sys$help:SYSGEN.HLB

SYSP_B -- Files-11.0DS1 ACP and EXCHANGE utility
RT-11/DOS file transfer utility
Files-l1 Structure Level 1 ACP
Exchange utility help file

sys$system: EXCHANGE. EXE
sys$system:F11AACP.EXE
sys$help:EXCHNGHLP.HLB
SYSP_C -- Monitor utility
sys$system:MONITOR.EXE
sys$help:MNRHELP.HLB
SYSP_D -

-- Monitor utility
-- Monitor utility help file

Analyze Object File utility

sys$system:ANALYZOBJ.EXE

-- ANALYZE/IMAGE and ANALYZE/OBJECT image

SYSP_E -- Delta debugger (for drivers and other privileged code)
sys$library:DELTA.EXE
sys$library:DELTA.OBJ

-- DELTA multimode debugging tool image
-- Alternate debugging tool

SYSP_F -- System Dump Analyzer utility
sys$system:SDA.EXE
sys$help:SDA.HLB

-- System Dump Analyzer
-- System Dump Analyzer help file

SYSP_G -- System Symbol Table file
sys$system:SYS.STB

-- Global symbol table of operating system

SYSP_H -- Misc Symbol Table files
sys$~y~tem:SYSDEF.STB

Global definitions for
executive structures

SYSP_I -- System map
sys$system:SYS.MAP
SYSP_J -

-- Map of the operating system

ConnecE-to-Interrupt Driver

sys$system:CONINTERR.EXE

-- Connect-to-Interrupt Driver

350

uNOTE # 036
Page 17 of 25
This section consists of the files
included in the DECnet Kit.
In
addition to these,
a license disk is included,
which unlocks the
end-node or the full routing node functionality in these files:
NET A -- Default files
Command file used by DECnet
error logging
DECnet event logging program
Network control program
DECnet pseudo-datal ink driver
DECnet ancillary control process
DECnet logical link driver
Network server DECnet command procedure
Network server image
Ethernet configurator DECnet
command procedure
Ethernet configurator image
NML server startup procedure
DECnet network manager listener
Asynchronous DECnet driver
DECnet DMV11 datalink driver
DEQNA Ethernet interface driver
DECnet management listener
shareable image
Network Command Program help file
DCL procedure to create
network ACP process
DCL procedure to configure
network database
DECnet startup procedure

sys$system:EVL.COM
sys$system:EVL.EXE
sys$system:NCP.EXE
sys$system:NDDRIVER.EXE
sys$system:NETACP.EXE
sys$system:NETDRIVER.EXE
sys$system:NETSERVER.COM
sys$system:NETSERVER.EXE
sys$system:NICONFIG.COM
sys$system:NICONFIG.EXE
sys$system:NML.COM
sys$system:NML.EXE
sys$system:NODRIVER.EXE
sys$system:XDDRIVER.EXE
sys$system:XQDRIVER.EXE
sys$library:NMLSHR.EXE
sys$help:NCPHELP.HLB
sys$manager:LOADNET.COM
sys$manager:NETCONFIG.COM
sys$manager:STARTNET.COM

NET_B -- Incoming Remote File Access files
sys$system:FAL.COM
sys$system:FAL.EXE

-- FAr. startup procedure
-- DECnet File Access Listener

NET C -- Incoming Remote Terminal files
CTERM Driver
Remote device ACP
Remote terminal driver
stop REMACP utility
Remote terminal loader

sys$system:CTDRIVER.EXE
sys$system:REMACP.EXE
sys$system:RTTDRIVER.EXE
sys$system:STOPREM.EXE
sys$manager:RTTLOAD.COM

351

uNOTE # 036
Page 18 of 25
(NET option, continued)
NET_D -- Outgoing Remote Terminal files
sys$system:RTPAD.EXE
sys$library:DTE_DF03.EXE

Remote terminal command interface
-- SET HOST/DTE support for DF03 dialer

NET E -- Network Test files
sys$system:DTR.COM
sys$system:DTRECV.EXE
sys$system:DTSEND.EXE
sys$system:MIRROR.COM
sys$system:MIRROR.EXE
sys$system:MOM.COM
sys$system:MOM.EXE

DTRECV.EXE server initiating procedure
DTSEND server
DECnet logical links test program
MIRROR startup procedure
DECnet node loopback server
Maintenance operations module
DECnet command procedure
Maintenance operations module image

NET_F -- Remote Task Loading
sys$system:HLD.COM
sys$system:HLD.EXE

Command procedure used by HLD.EXE
Downline task loading program

352

uNOTE # 036
Page 19 of 25
FILES WHICH ARE INCLUDED IN VMS DISTRIBUTIONS BUT NOT IN MicroVMS:
Files which are specific to larger CPUs:
Console-device files for 730, 750, 780:
VMB.EXE
BOOTBLDR.COM
DXCOPY.COM
730CNSL.DAT

BOOT58.EXE
BOOTUPD.COM
SETDEFBOO.COM
CONSOLBLD.COM

BOOTBLOCK.EXE
R~rB. EXE
7HOCNSL.DAT

CONSCOPY.COM
WRITEBOOT.EXE
750CNSL.OAT

Part of system startup:
SYSLOA730.EXE
SYSLOA750.EXE
SYSLOA780.EXE
SYSLOA790.EXE
CONFIGURE.EXE

CPU-specific initialization (11/730)
CPU-specific initialization (11/750)
CPU-specific initialization (11/780,782,785)
CPU-specific initialization (VAX 8600)
Dynamic device configure process

System-bus attachments:
CVDRIVER.EXE
DQDRIVER.EXE
PADRIVER.EXE
STACONFIG.EXE
XFDRIVER.EXE
XFLOADER.EXE

8600 Console Disk Controller (RL02)
RB730 11/730 Integrated Disk Controller (R80/RL02)
CI780 Port Driver
HSC System Disk Configurator
DR7S0, DR780 Ultra-high-speed Parallel Interface
DR750, DR780 Microcode loader

omitted from MicroVMS for reasons of size or performance:
DES Encryption:
ENCRYPFAC.EXE --

ENCRYPT command image

Related to new Screen Management handler for terminals:
SMGBLDTRMeEXE
SMGTERMS.TXT
TERMTABLE.TXT

Compiler for TERMTABLE definition file
ASCII source file for DEC terminal definitions
Terminal definitions source file

Related to SORT/MERGE:
SRTTRN.EXE

SORT specification file translator image

353

uNOTE # 036
Page 20 of 25
VAXCluster support:
FILESERV.EXE
CLUSTRLOA.EXE
CSP.EXE
MSCP.EXE
CNDRIVER.EXE
MAKEROOT.COM
CLUSTRLOA.MAP
SHWCLSTR.EXE
SHWCLHELP.HLB

File system cache flush server
Loadable VAXcluster support code
Cluster server process image
MSCP server
CI DECnet Protocol Driver
Add new roots to cluster common system disk
Link map of loadable VAXcluster support code
SHOW CLUSTER command
SHOW CLUSTER help file

11/782 Shared Memory support:
MP.EXE
MP.MAP
MPSHWPFM.EXE
MPCLRPFM.EXE
MBXDRIVER.EXE

VAX 11-782 multiprocessing code
Link map of multiprocessing code
Multiprocessing utility
Multiprocessing utility
Shared memory mailbox driver

PDP-11 Compatibility-mode images:
TEeO.EXE
TECO.HLB

TEeo text editor and programming language
TEeo help file

MASSBUS drivers:
DBDRIVER.EXE
DRDRIVER.EXE

RPOS, RP06 Disks
RM03, RMOS, RM80, RP07 Disks

LPA11-K Laboratory Peripheral Accelerator support:
LADRIVER.EXE
LALOAD.EXE
LALOADER.EXE
LPA11STRT.COM

LPA11
Sends
Loads
LPA11

Laboratory Peripheral Accelerator driver
requests to LALOADER.EXE
LPA11 microcode
site-specific startup command file

354

uNOTE # 036
Page 21 of 25
UNIBUS drivers:
CRDRIVER.EXE
DDDRIVER.EXE
DMDRIVER.EXE
DXDRIVER.EXE
DYDRIVER.EXE
DZDRIVER.EXE
LCDRIVER.EXE
TFDRIVER.EXE
TMDRIVER.EXE
TSDRIVER.EXE
TUDRIVER.EXE
XADRIVER.EXE
XEDRIVER.EXE
XGDRIVER.EXE
XMDRIVER.EXE
XWDRIVER.E,XE
YCDRIVER.EXE

CR11 Card Reader
Tu58 Cartridge Tape
RK611 (RK06, RK07) Disks
RX01 Floppy Diskette
RX02 Floppy Diskette
DZ11 Asynchronous Serial Multiplexer
(NOT the same as MicroVMS DZDRIVER.EXE)
DMF32 Line Printer Port
TU78 Magnetic Tape
TE16, TU45, TU77 Magnetic Tape
TS11, TS05, TUBO Magnetic Tape
(TSV05 will be supported)
TAB1, TUBI Magnetic Tape
(NOT the same as MicroVMS TUDRIVER.EXE)
DRI1-W High-speed Parallel Interface
DEUNA Ethernet Interface
DMF32 Synchronous Port
DMCll Synchronous Communications Adapter
DUP11 Synchronous Serial Line Interface
DMF32, DMZ32, CPI32 Asynchronous Serial Multiplexers

355

uNOTE # 036
Page 22 of 25
Files from sys$examples:
ADDRIVER.MAR
CONNECT.COM
DOI> ERAPAT.MAR DRCOPY.PRM
DRCOPYBLD.COM
DRMAST.MAR
DRMASTER.FOR
DRSLAVE.FOR
DRSLV.MAR
DTE DF03.MAR
GBLSECUFO.MAR
LABCHNDEF.FOR
LABIO.OPT
LABIOACQ.FOR
LABIOCIN.MAR
LA.BIOCIN. OPT
LABIOCOM.FOR
LABIOCOMP.COM
LABIOCON.FOR
LABIOLINK.COM
LABIOPEAK.FOR
LABIOSAMP.FOR
LABIOSEC.FOR
L1\BIOSTAT. FOR
LABIOSTRT.COM
LABMBXDEF.FOR
LBRDEMO.COM
LBRDEMO.FOR
LBRMAC.MAR
LPATEST.FOR
LPMULT.B32
MAILCOMPRESS.COM
MAILCVT.COM
MAILUAF.COM

Example device driver for ADII-K
Command procedure that connects device for
LABIO system
Example loadable erase pattern generator
Parameter file for DRCOPY routines
Command procedure to build DRCOPY.EXE
VAX RMS interface for DRMASTER.FOR
Master subroutines for DRCOPY
Slave subroutines for DRCOPY
VAX RMS interface for DRSLAVE.FOR
SET HOST/DTE dialer support
Opens file used as global section for LABIO system
Defines information associated with each AID
for LABIO system
Linker options file for linking modules
to be used in LABIO
Acquires data for LABIO system
Contains connect-to-interrupt call for LABIO system
Linker options file for linking LABIO DATA ACQ
Attaches a LABIO user program to the LABIOsystem modules of the LABIO system
Command procedure to compile and assemble
the modules of the LABIO system
Handles user requests and modifies the
database for LABIO system
Command procedure to link LABIO system
Samples channel for peak data in LABIO system
Samples channel in intervals, reporting date, time
and average value on logical device for LABIO system
places LABIO SECTION on page boundary
Displays AID-channel status for LABIO system
Command procedure to start LABIO system
Defines mailbox block for LABIO system
Command procedure to create Librarian DEMO.EXE
Librarian demo (first part)
Librarian demo (second part)
LPAII-K test program
Example program for line printer
Sample procedure to compress mail files
Sample procedure to convert V3.x mail files
Sample procedure to manipulate sys$system:VMSMAIL.DAT

356

uNOTE # 036
Page 23 of 25
Files from sys$examples, continued:
MSCPMOUNT.COM
PEAK. FOR
SCRFT.MAR
SYSGTTSTR.MSG
TDRIVER.MAR
TESTLABIO .. FOR
USSDISP.MAR
USSLNK.COM
USSTEST.MAR
USSTSTLNK.COM
XADRIVER.MAR
XALINK.MAR
XAMESSAGE.MAR
XATEST.COM
XATEST.FOR
XIDRIVER.MAR

Example cluster disk mount procedure
Peak selection routine in LABIO system
Optional screen package (SCR$ ... in RTL) extension
to handle foreign terminals
Sample SYSGEN TERMINAL/ECHO message file
Template for user-written driver
Tests LABIO system
Sample user system service dispatch and
service examples
Link command procedure for USSDISP
Sample program to invoke one of the example
user services implemented in USSDISP
Link command procedure for USSTEST
DR11-W driver
Sample DR11-W to DR11-w link program
DR11-W test program
Used to set up XA[,INK. MAR
Companion program for XAMESSAGE
Example driver for parallel port on DMF32

11/730 Dual RL02 Tailoring Files:
VMSTAILOR.COM
EXAMPLES.TLR
MANAGER.TLR
TEXTTOOLS.TLR

BLISSREQ.TLR
FILETOOLS.TLR
MISCTOOLS.TLR
UETP.TLR

357

DE:CNET. TLR
HE:LP. TLR
QUEUES.TLR
VMSTLRHLP.HLB

DEVELOP.TLR
LIBRARY.TLR
REQUIRED.TLR

uNOTE # 036
Paqe 24 of 25
User Environment Test package files:
TCNTRL.CLD
UETPGCOM
UETCLIGOO.COM
UETCLIGOO.DAT
UETCLIGOO.EXE
UETCOMSOO.EXE
UETDISKOO.EXE
UETDMPFOO.EXE
UETDNETOO.COM
UETDNETOO.DAT
UETDR1WOO.EXE
UETDR7800.EXE
UETFORT01.DAT
UETFORT01.EXE
UETFORT02.EXE
UETFORT03.EXE
UETINITOO.EXE
UETINIT01.EXE
UETLOADOO.DAT
UETLOAD02.COM
UETLOAD03.COM
UETLOAD04.COM
UETLOAD05.COM
UETLOAD06.COM
UETLOAD07.COM
UETLOAD08.COM
UETLOAD09.COM
UETLOAD10.COM
UETLOADll.COM
UETLPAKOO.EXE
UETMA7800.EXE
UETMEMY01.EXE
UETNETSOO.EXE
UETPHASOO.EXE
UETRSXFOR.EXE
UETSUPDEV.DAT
UETTAPEOO.EXE
UETTTYSOO.EXE
UETUNASOO.EXE

Defines UETP DCL commands
Main command procedure
For cluster-integration phase
For cluster-integration phase
For cluster-integration phase
DMC and DMR device test
Disk device test
DMP and DMF32 device test
For DECnet phase
For DECnet phase
DRII-W device test
DR780 and DR750 device test
Used by load test
Used by load test
Used by load test
Used by load test
Initializes UETP environment
Initializes UETP environment
Used by load test
User script for load test
User script for load test
User script for load test
User script for load test
User script for load test
User script for load test
User script for load test
User script for load test
User script for load test
User script f~r load test
LPAII-K device test
MA780 device test
Artificial load for load test
Used by DECnet phase
Test controller
Artificial load for load test
Supported device data file
Magnetic tape device test
Terminal and line printer device test
DEUNA device test

358

uNOTE # 036
Page 25 of 25
Unsupported files for linking against system images:
RMS.STB
CLUSTRLOA.STB
MP.STB
SCSDEF.STB
RMSDEF.STB
IMGDEF.STB
DCLDEF.STB
NETDEF.STB

RMS symbol table
Symbol table for loadable VAXcluster routines
Symbol table for MP.EXE
Symbol table for loadable SCS routines
Global definitions for VAX RMS structures
Global definitions for image activator structures
Global definitions for DCL structures
Symbol table for network definition

BLISS Require Files:
LIB.REQ
STARLET.REQ
TPAMAC.REQ

Structure definitions of executive internals
for use by BLISS programs
User interface structures for use by BLISS programs
Structure definitions for BLISS programs using TPARSE

Superceded or obsolete:
VMSUPDATE.COM

For updating VMS or adding layered products

SUMMARY
This MicroNote details the contents of the MicroVMS system, as well as
the portion of VAX/VMS not supplied with MicroVMS.
The reader can use
this information to determine whether any unnecessary files
can be
omitted from a turnkey system. Additional information can be found in
MicroNote # 37 ("In Search of NanoVMS")
which describes a working
minimal VMS subset.
Further information about the structure of VMS can
be found in the full VMS document set (Order # QL001-GZ-V4.0 and update
QL001-WZ-V4.1),
"VAX/VMS Internals and Data Structures" (Digital Press,
1984) and the VAX/VMS source listings on microfiche
(source license
required see sales representative).
NOTE
DIGITAL does not recommend the deletion of any component
files of the MicroVMS or VAX/VMS operating systems
except where explicitly stated in
the
respective
document sets
(of which this is NOT a part). A subset
operating system cannot be warranted or supported by
DIGITAL in any way.
This MicroNote is to be used for
informational purposes
only,
and
represents
the
research,
conclusions and opinions of the author, not
those of DIGITAL or OEM Technical Support.

359

360

uNOTE # 037

Ti tIe:

In Search of "NanoVMS

Originator:

Date:. 19-Jul-85

Edward P. Luwish

Page 1 of 8

ABSTRACT
This MicroNote describes the results of ongoing research
into the size and composition of a minimal VMS system.

A WORD ABOUT NOTATION
Where command lines, prompts and messages are discussed,
text printed by the computer is indicated by normal
type, text entered by the user is
indicated
by
boldface type.
Unless explicitly stated otherwise, all user entries are
to be terminated by the "return" character.
WHY "NanoVMS"
MicroVMS as currently packaged a.nd supported by Digital Equipment
Corporation is not always an ideal solution for customers who would like
to use it as a realtime application bed (rather than a multi-user
timesharing system). For this reason, research has been done for over a
year on minimal VMS systems.
Also, the number of floppy diskettes
required to bring up the system hals been found excessive by some users.
Currently three floppies for standallone backup are followed by thirteen
for the base system.
This incurs user inconvenience and a greater
likelihood of failure in the process. The TKSO cartridge tape is not
yet a universal solution to this problem.
HOW WAS "NanoVMS" BUILT?
The problem was approached by building a VMS system, component by
component, on the second winchester of a two-disk MicroVAX. This system
could be tested simply by shutting the system down and booting the
second disk.
If unsuccessful, the full system disk would be rebooted,
some files added to the minimal sys;tem, and it would be tried again,
guided by the error messages produced in the previous attempt.

361

uNOTE # 037
Page 2 of 8
HOW WAS "NanoVMS BUILT? (continued)
The first cut at a solution was derived from the
"Reboot Consistency
Check" offered by sys$system: SHUTDOWN. COM.
Notably absent from the list
of files was the disk driver! A number of other missing files were
disclosed,
and
success was eventually achieved through repeated
attempts.
Often the proper functioning of an image depended on the
presence of another
(such as a library file).
The dependencies are
shown in the attached directory listing.
HOW DOES ONE GENERATE A "NanoVMS" SYSTEM?
1.

Make some choices

There are a number of choices which affect how you generate a
"NanoVMS"
system.
You can create a backup set that can be loaded onto a MicroVAX
processor using standalone backup [Note - floppies only.
TKSO bootable
Mic:roVMS distributions cannot be created without access to a source
kit].
The other choice is to create "NanoVMS" on a winchester and
physically install it in to another MicroVAX.
This choice a:Efects the
thi.rd and fourth steps in the process, "Creating the distribution" and
"Loading the distribution". Another up-front choice that affects your
work is the list of target CPU's you intend to be able to run "NanoVMS"
on
currently this includes MicroVAX I, MicroVAX II, VAXstation I and
VAXstation II.
The work on the latter two has not yet been done
special graphics font files and server files need to be added to the
list.
Read "Copy the files" below for details.
2.

Create the directories

If you have a single-winchester system, create [sysl].
If you have a
two-disk system,
create [sysO]
on the non-system disk instead.
In
either case, create the subdirectories [.sysexe],
[.syslib],
[.sysmgr]
and [.sysmsg] in the [sysO] or [sysl] directories you just created.
If you have chosen the distribution option of physically installing
a bootable winchester,
and your non-system disk's data is expendable,
then you will want to initialize it.
Study the section "Creating the
Distribution",
below, with respect to initialization options. After
initializing the disk, create the previously mentioned directories.
3 ..

Copy the files

Copy all of the files listed on pages 7 and 8 from the cbrresponding
directories of your MicroVMS V4.1M system.
Note that a MicroVAX I CPU
requires the file SYSLOAUV1.EXE and a MicroVAX II CPU
requires
SYSLOAUV2.EXE.
Make sure to include the correct one (or both) as
required by the t~rget CPU. Also be sure to use the /CONTIGUOUS option
when copying SYSBOOT.EXE.

362

uNOTE # 037
Page 3 of 8
4.

Create the distribution

You will fir s twa n t to dec ide whe t h Ie r you r dis t r i bu t ion will inc 1 ud e all
of the files (including your own application files) of the final system,
or merely a basic "NanoVMS" skeleton to which additional files are added
from separate disk volumes.
If the former, at least list and count all
the additional files you need.
Note that VMS utilities occasionally
need runtime library files,
and your application files may need
language-related runtime libraries not part of the basic "NanoVMS"
system.
Be sure to include some extra files in your count.
Remember
that there are nine files that are part of any VMS volume, and that each
directory and subdirectory you create is a file as well.
The nine files that are part of every VMS volume
INDEXF.SYS
oOOOaO.DIR
CONTIN.SYS

BITMAP.SYS
CORIMG.SYS
BACKUP.SYS

BADBLK.SYS
VOLSET.SYS
BADLOG.SYS

If you chose to create a backup set, simply issue the appropriate
mount and backup commands, and insert the floppies into the RXSO drive
(n
floppy unit number, x = "NanoVMS" disk unit number,
r root
number) :
:if

$ MOUNT/FOREIGN DUAn:
If you wish to merge your own software into the backup set:
$ BACKUP/INITIALIZE/LOG/VERIFY -m
$ DUAx:[SYSr •.. ]*.*i*,[yourdirectorY···]*·*i*-m
DUAn:MICROVMS./SAVE_SET

$=

If you wish to separate your own software from the backup set:
$ BACKUP/INITIALIZE/LOG/VERIFY -m
$ DUAx:[SYSr .•• ]*.*i*-m
DUAn:MICROVMS./SAVE_SET

$=

The backup set created will then install exactly as described in the
Installation chapter of the MicroVMS User's Manual.
with standalone backup, you lose flexibility in initializing your
system disk - it uses all the default values, which may be unsuitable or
wasteful in a bounded system.
It is therefore recommended to use the
"walking winchester" as a way to transport bounded systems.
You would
not be considering "NanoVMS" unless you have a legitimate need to save
disk space,
and standalone backup will often waste space.
The index
file on an RD-volume is greater than 1000 blocks in allocated size,
in
order to accomodate a large number of files on the disk.
If you can put
an upper bound on the number of files you expect to have,
you can
realize considerable savings in index file size.
The two parameters
which most affect disk usage, Clustf~r Factor and Maximum File Count, are
explained in the next two paragraphs.

363

uNOTE # 037
Page 4 of 8
4.

Create the distribution (continued)

The cluster factor is the number of disk blocks allocated every
time a new file is created, or if additional blocks are needed when
editing, etc. If you issue the DCL command
$ DIRECTORY/SIZE-ALLOCATION

you will notice that all the sizes are divisible by 3 (the default
cluster size for "large" disks). If you have many small files, this can
be wasteful.
Unless you add the /CLUSTER SIZE-n option to
the
INITIALIZE command, this number will be 3 for-disks larger than 50,000
blocks, or 1 for smaller disks.
Small cluster sizes will adversely
affect disk performance since files may be stored as many small pieces
sCclttered widely over the disk surface. On the other hand large cluster
sizes will waste disk space, since only one or two of the three (or
more) allocat~d blocks may have data in them.
The maximum number of files contained on a disk is determined at
initialization time by the number of empty file headers allocated
contiguously in the index file. The DCL command
$ INITIALIZE/MAXIMUM_FILES-x DUAn:

label

initializes a disk with an index file capable of storing x file headers,
no more. The largest value of x is derived from the formula
volume size in blocks
maximum number of files -

cluster factor + 1

The default (when the /MAXIMUM_FILES switch is omitted, or when
$ BACKUP/INITIALIZE

is issued) is equal to one-half the number derived by the above formula.
If the default is much larger than the actual largest number of files
you anticipate storing, then you can gain many free blocks by specifying
/ru~XIMUM FILES-x,
where x is an upper bound on the number of files you
expect on the disk. In fact, you get exactly (default maxfiles)-x free
blocks, since each file header occupies a full block. The potential
disadvantage is that the disk will have to be reinitialized (i.e.
erased) if you need to store x+1 or more files.
The following table can be compared with your overall needs, so
that the appropriate initialization command line can be given:

Volume Size
Cluster Factor
Maximum Files

RD51

RD52

19530

60480

1

3

4880

7560

364

RD53
138649 blocks
3
blocks
17331 files

uNOTE # 037
Page 5 of 8
5.

Load the distribution

If the distribution is the "walking winchester",
then loading it
consists of installing the disk in the MicroVAX enclosure, removing the
existing one if necessary.
Instructions for the installation and
removal of hard disk drives can be found in the system's Owner's Manual.
If the distribution is a backup set stored on a number of RX50
floppy diskettes, follow the instructions in the Installation chapter of
the MicroVMS User's Guide.
6.

Boot "NanoVMS"

This procedu~e departs from the normal process, since "NanoVMS" does not
have a paglng file or a system-parameter file, nor can it execute the
full system startup command procedure since many of the commands in it
try to invoke image (.EXE) files and libraries that are not on the disk.
A number of error messages
(shown below) will be displayed on the
console terminal.
These are normal for "NanoVMS".
To boot the system,
you must use the conversational boot by typing the commands

»> B/1 DUAn
2 •• 1 •• 0 ••

%SYSBOOT-E-Unable to locate file
SYSBOOT> SET STARTUP PI "MIN"
SYSBOOT> SET VAXCLUSTER 0
SYSBOOT> CONTINUE
Note
If your system i.s a MicroVAX I,
you will be prompted for the time
and date before the
"MicroVMS
Version 4.1M" text appears.
MicroVMS Version 4.1M 13-MAY-1985 22:29
%SYSINIT-E- lookup failure on paging file, status - 00000000
%DCL-W-ACTIMAGE, error activating image SETPO
-CLI-E-IMGNAME, imagefile DUAr.t:[SYSO.SYSCOMMON.][SYSEXE]SETPO.EXE;
-RMS-E-DNF, directory not found
-SYSTEM-W-NOSUCHFILE, no such file
%RMS-E-FNF, file not found
%SET-I-N9MSG, Message number 007781B3
SYSTEM job terminated at 8-AUG-1985 09:39:05.01

365

uNOTE i 037
Page 6 of 8
6.

Boot "NanoVMS" (continued)

At this point, press carriage return and you will be prompted with
"Username:".
Type any non-null alphabetic string,
followed by a
carriage return.
You will then be prompted twice with "Password:".
R&Spond both times with a carriage return.
The familiar "$" DCL prompt
will then appear.
The default directory is SYS$SYSTEM.
7.

Further steps ...

The only DCL commands available at this point are COPY,
BACKUP,
RUN,
MOUNT and DISMOUNT, and a very small subset of the SET commands.
If you
have access to a second winchester with a full MicroVMS systl~m on it,
you can mount it and copy additional files to your "NanoVMS" disk.
You
can also use BACKUP/SELECT to copy selected files
from the MicroVMS
di.stribution floppies.
Remember to try the commands first before
walking away, since sometimes additional files (primarily in sys$library
and sys$message) are needed.
A paging file is often needed, particularly for applications which
set up large arrays or data buffers, especially when the system has
limited physical memory.
DECnet requires a 1000 block paging file
just
to initialize itself.
The file can be created by the following
commands:
$ RUN SYSGEN
SYSGEN> CREATE PAGEFILE.SYS /SIZE=lOOO /NOCONTIGUOUS
SYSGEN> EXIT

To make it less painful to reboot, and to allow you to save any
system tuning work, create a parameter file with the following commands:

$ RUN SYSGEN
SYSGEN> SET STARTUP Pl "MIN"
SYSGEN> SET VAXCLUSTER 0
SYSGEN> WRITE CURRENT
SYSGEN> EXIT
The next time you reboot, you need only type "»> B DUAn".
In order to have a secure system,
or to have incoming DECnet
access,
or
to
support login command files or to run turnkey
applications, you will probably want a user authorization file.
To
support this, copy the following files from the MicroVMS distribution or
from
a
MicroVMS
system
disk:
sys$system:AUTHORIZE.EXE,
sys$library:MTHRTL.EXE
and
sys$library:PLIRTL.EXE
and
INSTALL
sys$library:SECURESHR.EXE with the /prot/shar/open
options.
When
running AUTHORIZE for the first time, you will create the authorization
file SYSUAF.DAT._ You will have to reboot before you can log in
successfully.

366

uNOTE i 037
Page 7 of 8
DIRECTORIES OF FILES NEEDED FOR "NanoVMS"
Directory DUAl: [SYSO.SYSEXE]
BACKUP.EXEi1
COPY.EXEil

189
58

DCL.EXE;l

132

DISMOUNT.EXE;l
DUDRIVER.EXEi1
F11BXQP.EXE;1
FPEMUL.EXEi1
INSTALL.EXEi1
JOBCTL.EXEi1
LOGINOUT. EXE i 2
PUDRIVER.EXE;l
RMS.EXEi1
RUNDET.EXE;l
SCSLOA.EX E i1
SET.EXEi1
STARTUP.COM;l
SYS.EXE;l

8
27
107
20
46
102
103
13
211
14
8
167
17
344

SYSBOOT.EXE;l
87
115
SYSGEN.EXEi1
87
SYSINIT.EXE;l
SYSLOAUV2.EXEi 1 15
45
TTDRIVER.EXEi 1
23
VAXEMUL.EXEi1
16
VMOUNT.EXEi1

Required for adding additional files
to basic "NanoVMS" from backup sets
Required for adding additional files
to basic "NanoVMS" from VMS volumes
Required by STARTUP.COM and subsequent
user command execution
Required to remove auxiliary volumes
Disk controller protocol driver
Files-11 server
Floating-point emulator
VMOUNT.EXE must be INSTALLed to be run
Required to create LOGINOUT as detached process
Permits logins·after STARTUP.COM exits
Disk controller port driver
RMS-32 server - required to find and open files
Required to run JOBCTL as detached process
Required when using MSCP system disks
Required to enable interactive logins
Sets up LOGINOUT and system logical symbols
The operating system image (except for
device and file support, instruction emulation)
The primary bootstrap
Required to alter and save system parameters
The first image to be run as a process
MicroVAX II processor-specific initialization code
The terminal driver
Emulates non--floating-point VAX instructions
Required to mount auxiliary volumes

Total of 24 files, 1954 blocks.
Directory DUAl: [SYSO.SYSLIB]
DCLTABLES.EXE;3 248
DISMNTSHR.EXE;l 11
ENCRYPSHR.EXE;l 18
LBRSHR.EXE;l
76
LIBRTL.EXEi1
128
LIBRTL2.EXE;1
39
MOUNTSHR.EXE;l 120
SCRSHR.EXE;l
21
SECURESHR.EXE;l 58

Required
Required
Required
Required
Required
Required
Required
Required
Required

Total of 9 files, 719 blocks.

367

by
by
by
by
by
by
by
by
by

sys$system:DCL.EXE
sys$system:DISMOUNT.EXE
sys$system:BACKUP.EXE
sys$system:INSTALL.EXE
sys$system:JOBCTL.EXE
sys$system:JOBCTL.EXE
sys$system:VMOUNT.EXE
sys$system:SYSGEN.EXE
sys$system:BACKUP.EXE

uNOTE # 037
Page 8 of 8
DIRECTORIES OF FILES NEEDED FOR

~NanoVMS"

(continued)

Directory DUAl: [SYSO.SYSMGR]
ACCOUNTNG.DATi1

5 ! This file is created by LOGINOUT.EXE

Total of 1 file, 5 blocks.
Directory DUAl: [SYSO.SYSMSG]
SYSMGTMSG.EXEi1 49 ! Required for intelligible error messages
268 ! Required for intelligible error messages
SYSMSG.EXEi1
Total of 2 files,

317 blocks.

Grand total of 4 directories, 36 files, 2995 blocks.
Not shown:
Index file (see text)
Other files produced by volume initialization
Directory files (average 5 blocks each)
Page file (see text)
Sysgen parameter files (15 blocks each)

NOTE
This MicroNote describes a minimal VAX/VMS system which
is not in any way warranted or supported by Digital
Equipment Corporation - it reports ongoing research by
the author,
and repr~sents solely his conclusions and
opinions, not those of Digital Equipment Corporation.
The minimal VAX/VMS system described here can only be
used on MicroVAX computer systems which are licensed to
run MicroVMS.
It is composed of files which are normal
components of MicroVMS V4.1M.
Earlier or later versions
of
MicroVMS
may not successfully execute in the
described subset environment.

368

uNOTE. # 038

Title: DECnet Down-line Loading

Date: 26-Jul-85

Originator: Scott D. Blessley

Page 1 of 9

This article overviews the downline load process used by DECnet for
remote loading of PDP-11 and VAX processors.
Downline loading is a
versatile and complicated process.
This article is intended as an
introduction/aid to the process, not a tutorial. An extensive reference
list appears at the end of the article for
readers interested in
pursuing the subject further.

1

OVERVIEW OF THE DOWNLINE LOAD PROCESS

DECnet downline load is the set of hardware and software features which
allow complete systems
(RSX-11S and VAXELN) to be loaded into remote,
potentially unattended processors.
In addition,
RSX-llS offers the
capability to:
dynamically load tasks over comm lines, checkpoint tasks
out of memory over the line, and upline dump a failed operating system.
RSX-11S functionality is a subset of those features found in RSX-11M.
VAXELN also features a symbolic debugger that allows debug of the target
from the host processor.

2
2.1

DEFINITIONS
HOST

The host [node] (for this discussion) refers to both the machine which
originates the load,
as well as the machine which loads the software.
In actuality, these need not be the same machine.

2.2

TARGET

The target [node] ,is the machine being loaded with new software.
It
must be powered up,
but mayor may not have to be awaiting primary
bootstrap, de~nding on its communications bootstrap device and boot
options.

369

uNOTE # 038
Page 2 of 9
2.3

EXECUTOR

The executor [node] is the node which initiates the commands to downline
load a target.
It need not be the same as the host.

TARGET
(HOBSON: : )

<----------~

Load request

Operating System

NCP)TRIGGER NODE HOBSON

v

v

HOST
(FURILO::)

EXECUTOR
(FURILO::)

( " same CPU or
different)
Relationship between host, target, and executor nodes

3

PREPARING FOR DOWNLINE LOAD

There are three overall steps:
o

Configuring the communications hardware
target systems

o

Configuring the DECnet software and the operating system image
will be loaded.

o

Verification and testing.

both

on

the

host

and
that

The most frequent problem is the failure to correctly configure the host
and/or target hardware.
There are two principal places for error:
setting DIP awitches inappropriately resulting in incorrect
speeds, wrong power-up boot options (BSEL switches), etc.

line

Skew between hardware configuration and software
(for example
mis-specifying the vector/CSR or the Ethernet address for the target
device).
Be sure to have the latest version of the hardware
manuals.

370

uNOTE # 038
Page 3 of 9
Specific points to be careful about:
1.

Vector/CSR

2.

B[oot]SEL[ect] switches - these specify under
comm interface will force a bootstrap.

conditions

the

3.

Service password - this is a protection feature to lessen
likelihood of an inadvertent or malicious downline load.

the

4.

Ethernet address (Ethernet circuits only) - the unique address
the target Ethernet device will respond to.

5.

Service circuit - this
the target.

6.

Enable SERVICE for the circuit being downline loaded. This enables
the DECnet software to start thE~ downline load process on the host.

7.

Make sure event logging is enabled, or you'll miss error messages.

8.

It may seem obvious, but make sure that the target comm device
you're using,
and the processor bootstrap are *capable* of doing'
what you ask.
For details,
see uNote 1015,
"Q-bus Hardware
Bootstraps"

4

identifiE~s

what

that

at the end of which wire to expect

RSx-11S OVERVIEW

Configure the RSX-11S image on a VAX/VMS, RSX-11M or RSX-11M+ system,
us i ng the no rmal tool s (SYSGEN, M.l-\C, TKB, VMR).
P repa re and bui ld the
host loader table.
(Refer to the References section for documentation
on RSX downline load procedures)

5

VAXELN OVERVIEW

The program/VAXELN image development sequence is:

1.

Develop the source modules

2.

LINK the source modules with the RTLSHARE.OLB and RTL.OLB libraries

3.

EBUILD the LINKed image to produce a bootable VAXELN system.
To be
able to downline load the VAXELN image, you must select Boot Method
DOWNLINE in the VAXELN System Characteristics portion of EBUILD.

371

# 038
Page 4 of 9

uNOTI~

40

Downline load the target over Ethernet (this is not the only method
of loading a VAXELN target).
The target can be loaded through
EDEBUG commands, or via NCP LOAD/TRIGGER commands.

5~

Debug the application and repeat steps 1-4.

~)ASCAL or C
L:tource prog.

.OBJ>I~ ~~AS

or

I·EXE>~I_$__E_B_U_I_L_D__~I .SYS>~~_r_E_~_~_~_U_G__~
Other VAXELN
modules

VAXELN Program development sequence

6

OBSERVING & DEBUGGING

There are a variety of error indications, and diagnostic aids available.
Some are at the hardware level (comm device diagnostic LEDs), some from
the host software (upline dump for RSX-11S, EDEBUG for VAXELN).
Others
are provided by the DECnet components that handle downline load, through
the EVL (EVent logger) capability. Some diagnostic facilities:
1.

Device status LEDs give a numeric indication as to potential
hardware, or hardware configuration problems with the interface or
its connections~

2.

Event logging messages:
Event code 0.3 - Auto service:
DLL is taking place.

indication that a portion

of

a

Event code 0.7 - Aborted service request:
indication that a
portion of a DLL load request is failing. This is not always
bad. For example, it is an acceptable "error" when multiple
hosts (on an Ethernet) offer service and the target accepts only
one. The remaining systems report event 0.7. EVL messages come
with varying amounts of diagnostic information. A 0.3 or 0.7
event in~ludes the type of load being requested, from where it
is requested, to whom it is requested, etc.

372

uNOTE # 038
Page 5 of 9
3.

Failure message from NCP on LOAD/TRIGGER commands insight as to the source of the problem

may

40

Line/circuit counters - indicate how much data has been
and received , and what errors have occurred.

give

some

transmitted

Remember: Enable event logging:
NCP SET LOGGING  KNOWN
EVENTS STATE ON.
Otherwise, EVL will not display this diagnostic
information!

7

EXAMPLES

One the next three pages are examples showing the successful load of a
terminal server and a VAXELN target. The appearance of the output will
be approximately the same for your targets, only with different node
names and files.

373

uNOTE # 038
Page 6 of 9

$ reply/enable-network
%%%%%%%%%%% OPCOM 26-JUL-1985 13:09:11.96 %%%%%%%%%%%
Operator FURILO$RTA1: has been enabled, username BLESSLEY
%%%%%%%%%%% OPCOM 26-JUL-1985 13:09:11.99 %%%%%%%%%%%
Operator status for operator FURILO$RTA1:
NETWORK
$ run sys$system:ncp
NCP>show node hobson characteristics

!Hobson is a DECserver 100

Node Volatile Characteristics as of 26-JUL-1985 13:10:49
Remote node -

13.102 (HOBSON)

=

Service circuit
Hardware address
Load file
Dump file

UNA-O

= 08-00-2B-02-0F-5F
=

=

SYS$SYSROOT:[DECSERVER]PS0801ENG.SYS
SYS$SYSROOT:[DECSERVER]PSDMPOF5F.SYS

NCP>trigger node hobson
NCP>~Z

%%%%%%%%%%% OPCOM 26-JUL-1985 13:10:13.16 %%%%%%%%%%%
Message from user DECNET on FURILO
DECnet event 0.3, automatic line service
From node 7.272 (FURILO), 26-JUL-1985 13:10:13.04
Circuit UNA-O, Load, Requested, Node = 13.102 (HOBSON)
File = MOM$LOAD:PS0801ENG, Operating system, Ethernet address·
= 08-00-2B-02-0F-SF
%%%%%%%%%%% OPCOM 26-JUL-1985 13:10:18.08 %%%%%%%%%%%
Message from user DECNET on FURILO
DECnet event 0.3, automatic line service
From node 7.272 (FURILO), 26-JUL-198S 13:10:16.40
Circuit UNA-O, Load, Successful, Node = 13.102 (HOBSON)
File - MOM$LOAD:PS0801ENG, Operating system,
Ethernet address - 08-00-2B-02-0F-SF
DECserver-100 Downline Load Example

374

uNOTE i 038
Page 7 of 9
Below is an example of down-line load of a MicroVAX II system using
EDEBUG.
The first part of the illustration shows the DECnet volatile
database entries for the target, as seen from the system that ultimately
boots the target, and from another that fails to boot the target.
[This command is issued on system "BELKER"]
BELKER> NCP SHOW NODE TUBBS CHARACTERISTICS
Node Volatile Characteristics as of
Remote node -

7-AUG-1985 10:38:59

7.453 (TUBBS)

=
=

Service circuit
Hardware address
Load file

=

UNA-O
08-00-2B-02-1C-63
DISK$USER:[SAMPLE.ELN]CHER.SYS;

[This command is issued from system "FURILO"]
FURILO> NCP SHOW NODE TUBBS CHARACTERISTICS
Node Volatile Characteristics as of
Remote node =

7-AUG-1985 10:40:52

7.453 (TUBBS)

Load file

= DISK$USER:[SAMPLE.ELN]CHER.SYS;
Command to downline load the VAXELN image from EDEBUG:

[This command and related output is from system "BELKER"]

$ EDEBUG/LOAD=PROG1 TUBBS
Edebug V2.0-00
Loading "TUBBS"
Connecting to "TUBBS"

(screen mode debugger)
Event log messages resulting from the EDEBUG command:
DECnet event ()".7, aborted service request
From node 7.272 (FURILO),
6-AUG-1985 16:13:14.46
Circuit UNA-O, Line open error, unrecognized component, Node
Ethernet address = 08-00-2B-02-1c-63
FURILO:: didn't nave this address defined in its
volatile database so it couldn't service the request
A

375

uNOTE # 038
Page 8 of 9
DECnet event 0.3, automatic line service
From node 7.190 (BELKER),
6-AUG-1985 16:12:51.34
Circuit UNA-O, Load, Requested, Node = 7.453 (TUBBS)
File = DISK$USER:[SAMPLE.ELN]CHER.SYS;, Operating system
Ethernet address - 08-00-2B-02-1C-63
BELKER:: did have the address, corresponding to an
entry for "TUBBS::" Here, the target system is
requesting an operating system load. BELKER's DECnet
software is acknowledging the request.
A

DECnet event 0.3, automatic line service
From node 7.190 (BELKER),
6-AUG-198516:12:57.62
Ci.rcuit UNA-O, Load, Successful, Node - 7.453 (TUBBS)
File - DISK$USER:[SAMPLE.ELN]CHER.SYS;, Operating system
Ethernet address - 08-00-2B-02-1C-63
BELKER responds with packet(s) containing the
requested O.S. code for the target

8

SUMMARY

This Micronote has presented an overview of the downline loading
process8
Many "components" are involved in the process - at least two
CPUs and at least two communication interfaces, target operati.ng system
and images plus host,
target,
and executor DECnet software.
The
procedure is akin to bringing up a complex, customized operati.ng system
up on a remote processor, without a local load device.
Once configured,
it offers the benefits of not requiring any mass storage devices
(resulting in higher MTBF and lower cost), plus the ability to bootstrap
a processor which my be physically inaccessible.
There is a great
amount of information on DECnet downline load.
There is no single
compendium, although each of the supported operating systems,
plus
VAXELN have a chapter on the subject.

376

uNOTE # 038
Page 9 of 9
9

REFERENCES

All of the following references are to Digital publications.
DECnet-RSX Volume IV - System Ma.nager's Guide AA-H224C-TC
Guide to Networking VAX/VMS - AP..-Y512A-TE (chapter 4)
QMA DMV11 Synchronous Controller Technical Manual EK-DMVQM-TM
DEQNA User's Guide EK-DEQNA-UG
DECnet Digital Network Architecture (Phase IV)
AA-N149A- TC

General

DECnet Digital Network
Architecture
(Phase
Operations Functional Specification AA-X436A-TC
Networks and Communications

BUyt~r's

IV)

Description
Maintenance

Guide ED-26347

"VAXELN Installation and Programming" AA-Z454A-TE
"MicroVax

I

Owner's Manual" EK-KD32-0M

"MicroVAX I Owner's Manual" (Release Notes) EK-KD32A-OM-CNl
Micronote #015, "Q-Bus Hardware Bootstraps"
Software Product Descriptions:
DECnet-11S #10.74
DECnet-11M #10.75
DECnet-11M+ #10.66
DECnet-VAX #25.03

377

378

uNOTE' # 039

Differences between KDJll-A and KDJll-B

Title:

Date: 8-Aug-85

Peter Kent

Originator:

Page 1 of 5

Purpose
The purpose of this MicroNote is to identify and discuss the differences
between the KDJll-A and KDJll-B CPU modules.
The table that follows lists the differences between the CPU modules.
Differences that require explanation follow the table and are marked *
FEATURE

KDJll-A

KDJll-B

Cache

Single tag

Dual tag

No

Yes

No

Yes

Boot/diagnostics *
control status reg.

No

Yes

Boot page *
control register

No

Yes

Boot configuration *
and display register

No

Yes

*

PMI support

*

On-board bootstrap
and diagnostic ROM

*

Instruction implementation differences
DCJ-ll speed/FPJll differences
Backplane compatibility

*

*

*

Maintenance register differences

*
cont'd

379

uNOTE # 039
Page 2 of 5
The differences between the CPU modules.

cont'd:

FEATURE

KDJ11-A

KDJ11-B

Module I .0.

M8192

M8190

Size

Dual

Quad

Power: 5 volt (12 Volt)

4.5

5.5 ( 0 .2)

AC loading

3.4

2.3

Console serial line

No

One
Cache

For a full discussion of cache memory as used on the KJD11-A and KDJ11-B
refer to MicroNote #9 and the KDJI1-A and KDJ11-B User's Guides.
Both
CPU modules have a similar cache organization using a nine bit tag.
This nine bit field contains information that is compared to the address
label, which is part of the physical address. When the physical address
is generated, the address label is compared to the tag field.
If there
is a match it can be considered a hit provided that there is entry
validation and no parity errors.
The KDJ11-B has an additional tag
store called the DMA tag.
The OMA tag is an identical copy of the cache
tag store and is used to monitor the main memory DMA updates while the
cache tag store monitors the DCJ11 requirements.
The presence of the
second tag store - DMA tag - allows the J-11 microprocessor to continue
processing after it has relinquished the system bus to a OMA device.
When the DMA tag detects a hit (main memory location written to by the
O~~ device), the microprocessor stops and relinquishes the internal
bus
to the cache controller to allow it to monitor further OMA activity on
the bus.
The KDJ11-A,
however,
has only one tag store and stops
processing as soon as it relinquishes the system bus to a DMA device.
PMI support
ThE~ PMI or Private Memory Interconnect is described
in MicroNote #30.
ThE! PMI consists of 14 unique signals which use the CD interconnect side
of the backplane of certain Q-bus backplanes.
PMI is used only with the
KDJ11-8 and MSVII-J.
PMI DATI and DATO bus transactions between the
KDJ11-B and MSV11-J are more than twice as fast as those between non-PMI
CPU and memory configurations.
The KOJ11-A does not offer a PMI
capability.
ThE~ Unibus adaptor used with PDP11/84 systems enables the Unibus map
if
a particular PMI signal - PMAPE (Unibus map enable) - is asserted and
disables the Unibus map when PMAPE is negated.
The memory modules
associated with PMI (MSV11-J) do not use this signal.
PMAPE is asserted
if Memory Management Register 3, bit 05 is set, and negates this signal

380

uNOTE # 039
page 3 of S
if MMR3 is clear.
If there are ~evices which require this signal to
work, the KDJ11-A will not and cannot (without warranty violating
modifications) be made to issue this signal.
KDJ11-B boot/diagnostic ROM
The are basically 3 parts to the ROM code.
The first part is the
diagnostic tests which are run at power up or at the initiation of the
operator.
These tests perform checks on the CPU module,
the memory
module(s),
and the Unibus adaptor for Unibus systems.
The second part
of the ROM is the boot code.
The following devices can be booted from
the KDJ11-B:
RA80/81/60, RDS1/S2, RXSO, RC2S, RL01/02, RX01/02, TUSS,
RKOS, TK2S/S0, TSOS, TU81, DEQNA, DECnet DUV11, DECnet DLV11-E,
DECnet
and DLV11-F.
The boot code can also start programs stored in the EEPROM
or programs stored in M9312 type boot ROMs located on the KTJ11 Unibus
adaptor module.
The third part of the the code allows the storing and
modification of parameters for the CPU,
the Unibus adaptor,
and the
system..
This portion of the boot code also provides support for the
EEPROM itself.
The user can also create (using a machine code editor)
his own custom boot code and save this code in the EEPROM.
Boot and diagnostic controller status register
The boot and diagnostic controller status register (BCSR) is both word
and byte addressable.
The BCSR allows the boot and diagnostic ROM
programs to test battery backup and reboot status, to set parameters for
the PMG (processor mastership grant)
counter and the line clock, to
enable the console halt on break feature and to enter or exit from stand
alone mode.
Boot page control register
The page control register is a read/write register which is both byte
and word addressable.
The PCR high byte provides the most significant
ROM address bits when the 16 bit RO~[ sockets are accessed by bus address
1777300-17773776.
The PCR low byte provides ·the most significant ROM
(or EEPROM) address bits when the 16 bit or 8 bit ROM sockets are
accessed by addresses 17765000-17765776.
Configuration and display register
The configuration and display register reflects the status of the eight
switches edge mounted at the top of the ~odule.
It also allows boot and
diagnostic programs to update the 8 bit LED display located at the top
of the KDJ11-B module.
Instruction set differences
a
read-modify-write
are
Instructions which are required to do
There are only 3
implemented differently on the KDJ11-A and KDJ11-B.
be
instructions which are defined by the PDP11 architecture to
They are the TSTSET,
uninterruptible during its read- modify-write.

381

uNOTE # 039
Page 4 of 5
WRTLCK,
and ASRB instructions.
The KDJII-A will
implement these
read-modify-write instructions differently than a KDJI1-B.
The KDJ11-A
processor uses the AIO signal outputs of the J11 to determine whether it
performs either a 1) DATIO cycle or 2) a DATI cycle followed by a DATa
cycle.
The KDJ11-A will ONLY do a DATIO Q-bus cycle when it executes a
TSTSET, WRTLCK or ASRB instruction.
Past implementations of the PDP-II
architecture have also implemented
other
instructions
doing
a
read-modify-write cycle as being uniterruptable.
The BIS (Bit Set)
instruction will be used as an example.
This instruction requires the
CPU to READ a word from memory, possibly MODIFY that word, then WRITE
the word back to memory.
A KDJ11-B uses a Q-bus DATIO cycle to
implement
this
instruction.
Therefore,
the instruction is not
interruptable between doing the READ and the WRITE.
When it executes
other instructions which want to do a read-modify-write operation like
the BIS instruction, it will use two separate Q-bus cycles.
This
implementation allows for an interrupt or DMA request to be granted
between the DATI and the DATa (case 2 above).
There are third party
vendors whose equipment assume that a BIS instruction will use a DATIO
bus cycle.
Those devices will work fine in a system with a KDJ11-B, but
will work intermittently in a system with a KDJ11-A because what they
assume to be uninterruptible is now interruptible and affects their
on-board firmware.
Speed and the FPA
15 MHz
~

18 MHz

FPA compatible

FPA on board

system

KDJ11-AA

Yes

No

No

No

Q18/Q22

KDJ11-AB

Yes

No

Yes

No

Q18/022

KDJ11-AC

Yes

No

Yes

Yes

Q18/Q22

KDJI1-BB

Yes

No

Yes

No

11/73

KDJ11-BC

Yes

No

No

No

11/73

KDJ11-BF

No

Yes

Yes

Yes

11/83

Notes on the above table
The 15 MHz or 18 MHz refers to the crystal frequency at which the DCJ-11
will
run.
FPA-means the FPJ11 floating point accelerator chip.
Refer
to MicroNote #25 for more information on upgrading with the FPJ11.
The
KDJ11-A is a CPU module that is not sold as part of a package system.
The reference to Q18/Q22 refers to the fact that the KDJ11-A can be used
in any 18 or 22 bit Q-bus backplane.
The notation 11/73 means that the
indicated KDJ11-B CPUs are used with the MicroPDP-11/73 systems and the
indicated KDJ11-B CPU are used with the MicroPDP-11/83 system.

382

uNOTE # 039
Page 5 of 5
Backplanes
The KDJll-A CPU may be used in any C~18/Q22 slot.
The KDJll-B,
being a
quad module must be accomodated in a backplane which has Q-bus in AB
slots and the CD interconnect in thE! CD slots.
The KDJll-B cannot be
used in a backplane (or that part of the backplane) where there is Q-bus
in both AB and CD slots.
Maintenance register differences
The maintenance register contains the following information in both the
KJDll-A and KDJll-B:
POK (power ok),
power up mode selected, HALT
status, Module ID, FPA available,
and Boot address.
The module ID
number is a
4 bit code that difj:ers between the KDJll-A and KDJll-B.
The ID number for the KDJll-A is 0001 and 0002 for the KDJll-B.

383

384

uNOTE # 040

Title: FPJll Theory of Operation

Date: 17-SEP-85

Originator:

Page 1 of 4

Bill Jackson

The goal of this MicroNote is to introduce the FPJll, a floating point
coprocessor
to
the
DCJll,
and
to explain the interprocessor
communication between the FPJll and DCJll.
Figure 1 shows a typical
DCJll based system which includes the FPJll.
For a discussion of FPJl1
support on the KDJI1-A processor, see MicroNote #025.

OCJll
DATA BUS
IDMR
FPJll

V
DMR

<-

CACHE

-

51

r--~

FPE

<

AIO

>
>
>

ACK
5TL
DV
OP
ROY
FPE
AIO<3:07
ALE
5TRB
PRDC
ABORT
ADDR<2:0>

-

L
A
T
C

I

I
ADDRESS BUS

H

Figure 1 - Typical DCJll/FPJll Application

385

BUS
INTERFACE

uNOTE # 040
Page 2 of 4
The FPJ11 is a single chip floating point accelerator for the DCJ11
microprocessor.
Its coprocessor interface,
along with optimizations
within the chip allow for 5 to 8 times acceleration over the DCJ11
microcoded floating point performance.
The FPJ11 provides

o

Complete FP11 floating point instructions (46)

o

Two FP11 floating point data types (F and D)

o

Six 64-bit floating point accumulators

o

FEC floating exception code register

The FPJ11 interfaces as a true Co-processor.
The Bus Interface Unit or
BIU)
inputs all instruction stream data and decodes instructions in
parallel with the DCJ11.
Support microcode in the DCJll initiates all
I/O cycles required by the FPJ11.
This Co-processor interface allows
overlap of floating point instruction executing in the FPJ11 and integer
instructions executing in the DCJ11.
This allows for reduced execution
time by interleaving floating point and integer instructions.
The interface to the FPJ11 involves several DCJll signals which indicate
the state of the DCJ11 processor, and synchronize the two processors.
Table 1 lists the signals and their use in the FPJ11 interface, Figure 1
shows their use.
TABLE 1
DCJll/FPJll signals
DCJ11 signal

Use

AIO<3:0>
PRDC
STRB
DMR
FPE
ALE
DV
DAL<2:0>
FPA-OP
FPA-STL

Indicate to FPJ11 current DCJ11 cycle type
signal instruction decode to FPJ11
signal beginning of bus cycle to FPJll
used by FPJ11 to stall the DCJ11
indicate to DCJ11 a floating point exception
used to latch cache hit data (trailing edge)
used to latch non-cache data (trailing edge)
indicate GPREAD and GPWRITE information
signal to SI that writes come from FPA
used to stall DCJ11 during multiple FPA
instructions
indicates FPA data will be ready in 125ns
enable FPA output drivers

FPA-RDY
FPA-ACK

The DCJ11 supports several types of bus operations in communicating with
the external system.
Since the FPJ11 relies on the DCJ11 to initiate

386

uNOTE # 040
Page 3 of 4
all I/O cycles, the FPJ11 will monitor DCJ11 I/O cycles for activity.
'When specific I/O cycles occur,
the FPJ11 will 'wake up' and start
processing. A subset of the DCJll bus cycles are used by the FPJ11
in
communicating with the DCJ11 and the system interface (51).
These bus
cycles are listed in Table 2~
The bus read and write cycles are used to
read/write data to/from memory (or cache).
The GP transactions are used
for interprocessor communications between the DCJ11 and FPJ11.
Table 2
DCJ11 bus operations
Cycle

Description

IREAD
DREAD
WRITE
GPREAD
GPWRITE

latched to search for FP instruction
used for data fetches for FP instructions
used to write FP data back to memory
used to read FP data to DCJ11 internal registers
used to write FP data to DCJ11 internal
registers

The DCJ11 divides all bus reads into 3 categories:
Instruction stream
Demand READ (IDREAD), Instruction stream Request READ (IRREAD), and Data
stream READ (DREAD).
Instruction stream reads are used by the DCJll to
fetch instruction stream data such as PDP-11 instructions, immediate
data and absolute data. All other DCJ11 reads are classified as Data
stream reads
(for more information on DCJ11 bus cycles and data
classification see the DCJ11 data sheet EK-26921-00)
Request reads are reads that the DCJll will attempt when doing internal
cycles such as register transfers.
This is an attempt at filling the
DCJ11 4 stage pipeline.
Demand reads are reads that must be completed
in order to finish an instruction.
The DCJ11 will always try to keep
the pipeline full by doing request reads, but will do demand reads as
necessary.
The most typical FPJll operation is the common FP11 instruction that
reads some data from memory, operates on it, then writes the result back
to memory.
In this operation, the FPJ11 monitors the DCJll bus cycles
for either type of instruction stream read. When the FPJ11 sees any
type of Instruction stream read,
it latches the data from
the
data/address lines (DAL) and holds it in its instruction register.
The
FPJ11 keeps doing this until it sees the DCJ11 indicate that it is now
doing a
ins~ruction
decode by the assertion of the DCJ11 signal PRDC.
The FPJ11 then does a parallel decode of the instruction and checks if
it is a
floating point instruction.
If the instruction is not a
floating point instruction, the FPJ1l 'goes to sleep' and continues to
latch. all I-stream read data.
If the instruction is a floating point
instruction, the DCJ11 will initiate all bus cycles while the FPJ11 will
remove data from the bus.
The FPJ11 will then do the floating point

387

uNOTE # 040
Page 4 of 4
operation.
If the operation is a store type operation the DCJll will
initiate the bus write operation signaling to the FPJll to write data to
memory~

When either the sourca or destination of the floating point instruction
is a DCJll general purpose register, a GP cycle will be used to access
the DCJll register.
Load type operations would use the GPWRITE bus
cycle to write the contents of the DCJ11 register to the FPJ11.
GPREAD
operations are used to read data from the FPJll and deposit it into the
DCJ11 general purpose registers.
Because of the overlapping instruction capability,
the DCJll/FPJ11
combination can start to fetch operands for a next floating point
operation while one is executing.
Because there is a single datapath
internal to the FPJ11,
this prefetched data must not get to the
execution unit until the current operation is finished.
The FPJll will
output FPA-STL to the DCJll if the current operation will not be
completed before all of the data is ready.
This mechanism guarantees
that the datapath will only be used by one floating point operation at a
time. When the FPJ11 is done with the current operation the DCJ11 is
continued, and the floating point operation proceeds.

388

uNOTE # 041

Title:

Device Ordering Chart for Q-bus Systems

Originator:

----.

Jack Howes and Peter Kent

Date: 16-Sep-85
Page 1 of 6

Primary Device Ordering Determination
DMA devices as well as interrupt devices on the Q-bus are position
dependant.
That means that the order in which devices are placed in the
bus relative to the CPU determines in what order their DMA (or
interrupt) requests will be serviced.
The primary factor in determining the device sequencing order is the
length of time that each device can wait to become bus master without
error.
These errors normally occur when a controller's data buffer
fills
to capacity before the device connected to it has finished its
transfer.
Generally, the cause of this is a higher priority device
(or
devices)
transferring data over the Q-bus, and the controller that gets
the error is blocked from becoming bus master.
Characteristics that
influence whether a device will fail in this way are:
the on board
buffer size that a controller/device has,
the intelligence of the
controller/device, and the transfer speed of the device connected to the
controller.
Methodology
There has been an in-house test instrument developed which can detect
the failure of Q-bus devices when they cannot get bus service.
This
measurement is the length of time a device can wait before getting a
data late or device timeout error.
The test instrument can be
programmed to hold the Q-bus, per acquisition, for any time between 1
microsecond and 3.9 milliseconds.,
It runs in conjunction with the
device under test.
During the test process the length of time the test
instrument holds the Q-bus is variE~d until the device under test fails.
This measurement is called "latency tolerance".
Holding the Q-bus for
3.9 milliseconds is equivalent to the test instrument transferring 4095
words (non-block mode DMA) per assertion of BSACK.

389

uNOTE # 041
Page 2 of 6
Secondary Device Ordering Determination
The large buffer sizes and intelligence built into some of the newer
controllers make them less susceptible to data late or device time out
errors.
These devices do not get an error waiting for the Q-bus up to
3.9 milliseconds and consequently are ordered by other criteria:
1.

The type of Q-bus transfer they do (block mode, burst mode or single
cycle).
See
MicroNote #12 for a description of Q-bus DMA
transaction types.

2.

If interrupted by a lower priority DMA device will they pass the
Q-bus (DMG) grant signal, when they are doing a blockmode transfer.

3.

The effect the ordering has on device and system performance.

4.

The power consumption and/or cabling requirements of the device.
Examples:

o

A magtape advertise~ as a "streaming" tape drive may not stream if
it is assigned a lower priority than a device that utilizes a
significant amount of bus time.
In this instance the tape drive
will be ordered ahead of a device that it would normally follow
according to its latency tolerance.

o

A device that consumes a substantial amount of power may have to be
configured in an expander box with another power supply for
practical reasons, even though this device would normally precede
other devices.

The following pages contain the recommendations for the order of devices
on the Q-bus. Also contained in these pages are the measurements taken
and the reasons for suggesting the guidelines.
This ordering table is
only a guideline for Q-bus system configurations, and it should be noted
that a system will work satisfactorily in many other configurations as
well.
Additionally,
customers may alter the configurations to better
meet their specific application needs.
The measurement process to determine the device sequence chart has been
an evolving one and as such not all the devices on the chart contain the
same data.
The measurements on this chart were only true for the system
that they were measured on.
These measurements will vary from system to
system dependent upon the memory type, system architecture
(mapped or
unmapped. DMA)
and the speed of each CPU's arbitrator logic.
The
variations in measurements that can occur between CPU's should not
theoretically effect the bus placement of each device.

390

uNOTE # 041
Page 3 of 6
Table 1 lists the order in which devices should be placed in the Q-bus.
please refer to the detailed information about each device that follows
the table.
Table 1

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

T5V05 9 track magtape controller
DMV11 Microprocessor controlled DECnet communications interface
TQK25 Controller for 8 inch magtape drive
DHV11 Microprocessor controlled communications multiplexor
DEQNA Ethernet controller
TQK50 Controller for single spindle cartridge magtape
RLV12 Controller for 14 inch RL series disk drives
RQDX3 Controller for 5 1/4 inch RD/RX drives
KDA50 Controller for 14 inch ~\ series disk drives
RQC25 Controller for 8 inch RC25 series disk drives
RQDX2 Controller for 5 1/4 inch RD/RX drives
DRV11-WA General purpose 22 bit: DMA interface

Table 2 lists the transfer time and time between requests for DATI
DATO cycles and latency tolerance. All times are microseconds.

391

and

uNOTE # 041
Page 4 of 6
Table 2

Device

No. words
transferred

Transfer time
DATO
DATI

TSV05

1 word

2.8

2.8

DMV11

1 word

3.1

3.1

TQK25

4 word
block mode

5.1

Time between
requests
DATI
DATO

I

8.7
280

@

Latency
tolerance
12

56 Kbits

175

280
4 W single
& burst mode
DHV11

1 word

DEQNA

16 word
block mode

TQK50

4 word
burst

7.25
2.15

2.15

11.78

13.87

1200
5.1

5.1

- or >
3900

20.63

- or >
3900

9.49

10.7

24.35

7.09

7.8

5.92

5.7

- or >
3900

RLV12

4 word
burst

RQDX3

16 word
block mode

13.5

12.7

4.48

4.48

- or >
3900

KDA50

8 word
block mode

9.0

8.9

6.68

6.68

- or >
3900

RQC25

2 X 8 word
block mode

14.84

16.52

15.41

14.41

- or >
3900

RQDX2

16 word
block mode

15.23

15.48

1.7

1.7

- or >
3900

6.6

7.0

0.17

0.17

- or >
3900 *

DRV11-WA

4 word
burst

* for DEC/X11 only

392

uNOTE # 041
Page 5 of 6
Additional device information
TSVOS
This device does not do 16 word block transfer so it doesn't monitor the
Q-bus BDMR (DMA request line) signal.
DMV11
This device does not do 16 word block transfers, so it
the Q-bus BDMR signal.

doesn't

monitor

Latency Tolerance was determined while running DECNET on a uVAX-I.
The
following error occurred when the DMV11 was held off the bus for more
than 17Sus:
"COPYEOPENIN RMS-F-SYS, QIO Request Failed,
SYSTEM-F-LINK
exit".
TQK25
This device does not do 16 word block transfers, so it
the Q-bus BDMR signal.

doesn't

monitor

DHV11
This device does not do 16 word block transfers, so it doesn't monitor
the Q-bus BDMR signal.
It performs DMA on output to the controller,
however is interrupt driven when accepting data from the attached
asynchronous lines.
DEQNA
This device monitors Q-bus BDMR signal and passes grant when interrupted
by a lower priority device.
This device is placed relatively close to
the CPU because it cannot quickly recover from bus latency conditions.
Re-transfers over the ethernet are costly in system resources.
TQK50
This device d~es not do 16 word block transfers, so it
the Q-bus BDMR signal.

doesn't

monitor

While this tape drive has a high latency tolerance, it should be placed
in front of the other devices that utilize a significant amount of bus
time.
Doing this enhances its ability to stream data.

393

uNOTE # 041
Page 6 of 6
RLV12
This device does not do 16 word block transfers so it doesn't monitor
the Q-bus "BOMR" signal.
It is configured in this position because of
its ability to avoid bus latency conditions even though it doesn't do
block mode transfers.
RQOX3
This device monitors BOMR and passes grant when interrupted by a
lower
priority device.
This device may have to be placed as the last device
in the CPU box because of cabling requirements.
KDA50
Instead of monitoring BDMR, the KDA50 does an eight word block transfer
and releases the bus between transfers to allow other devices access.
Although this device works more efficiently before the RQOX2 and RC25,
it may have to be configured in an expansion box due to its high power
consumption.
RQC25
This device does not monitor BDMR.
It performs two consecutive eight
word block transfers, during which it will not pass the grant to a lower
priority device.
RQDX2
This device monitors BDMR however it does not pass grant to a lower
priority device when interrupted.
It holds the Q-bus from a lower
priority device for 288us average.
In a dual expander box system this
device may have to be configured in the first expansion box due to
cabling requirements.
DRV11-WA
This device does not do 16 word block transfers so it doesn't monitor
the Q-bus BOMR signal.
The DRV11-WA may "monopolize" the bus if traffic
to/from the devi~e is sufficiently high.
The placement of this device
is very dependent upon the customers application.
For DEC/X11 and
diagnostic testing it should be configured as the last device on the
Q-bus.

394

APPENDIX A
TABLE OF CONTENTS
ORIGINAL MICRONOTES

001
002
003
004
005
006
007
008
009
010A
011
012
013
014
015
017
018
019
020
021
022
023
024
025
026
027A
028
029
030
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046A
047
048
049
050
051

BATTERY BACKUP
REV11 PROM CHIPS
MACRO & ASSEMBL ON THE 11V03
4K RAM IN BANK 0
IEEE BUS SUB-SPECS
CORRECT MU BASIC LANGUAGE MANUAL
MEMORY IN LSI-11 AND 11/03 SYSTEMS
DMA DEVICES IN LSI-11 SYSTEMS
HEX AND QUAD HOLD-DOWN BRA.CKET FOR LSI-11 SYSTEMS
POWER SUPPLY FOR H909C
LSI-11 HALTING DURING INTERRUPT CYCLE
LSI-11 BUS THEORY OF OPERATION
INSTALLING APL-11 ON 11V03 AND 11T03
CORRECT INPUT PARAMETERS FOR THE QJV11 PROM
FORMATTING PROGRAM
POWER SEQUENCING FOR THE KD11-HA MODULE
LSI-11/2 PROCESSOR CLOCK
DR11-C VS. DRV11
EIA RS-422 AND RS-423
9 X 6 SLOT BACKPLANE DOCU~ENTATION ERROR
COMPARISON OF DATA TRANSMISSION TECHNIQUES
MRV11-BA NEW FEATURE
USING THE MSV11-D 30K OPTION
ASYNC., SERIAL LINE UNIT COMPARISONS
CONFIGURING MEMORY SYSTEMS WITH MSV11-D RAM & PROM
MICRO BACKPLANE MECHANICAL MOUNTING GUIDELINES
PROM CHIPS AVAILABLE UNDER PART #MRV11-AC
EXTENDED MEMORY FOR THE LSI-11
USING THE MRV11-AA FOR A BOOTSTRAP ROM
SRUN SIGNAL
EXTENDED BUS TIME-OUT LOGIC
CABLES FOR DLV11, DLV11-E, DLV11-F
CONFIGURING A 3-BOX 11/03 SYSTEM
PROM PROGRAMMING
CORE MEMORY IN 11/03-L BACKPLANE
C-D INTERCONNECT SCHEME
DIAGNOSTICS FOR 30K MEMORIES ON LSI-11'S
DMA REQUEST/GRANT TIMING
PARCHES FOR BASIC/PITS ON LSI-11
NEW FUNCTIONS FOR BDV11-AA BOOT
REMOVING MODULES FROM "LIVE" BACKPLANES
BACKPLANES FOR THE RLV11 (RL01)
CONS"OLE ODT "L" COMMAND ON 30K SYSTEMS
MOUNTING LSI-11/2 MODULES ON THE EUROtARD
DLV11-F REPLACEMENT FOR THE DLV11
INCOMPATIBILITY BETWEEN THE REV11 AND THE LSI-11/23
LSI-11/23 INSTRUCTION TIMING (PRELIMINARY)
SYSTEM DIFFERENCES - LSI-11 VS. LSI-11/23
MICRO ODT DIFFERENCES - LSI-11 VS. LSI-11/23
DIGITAL SUPPORTED PROM'S

A1

052
053
054
055
056
057
058
060
061
062A
063A
064A
065A
066
067B
068
069
070
071
072
073
074
075
076
077
078
079
080A
081
082
083
084
085
086
087
088
089
090
091
092
093
094A
095
096
097
098
099
100
101
102
103
104
105
106

PARITY MEMORY IN LSI-11/23 SYSTEMS
PDP-11 FAMILY DIFFERENCES
MXV11 CONFIGURATION
LSI-11 VS. LSI-l1/23 BUS TIMING
DLV11-J CABLING
LOCATION OF W13 ON THE BDV11
CONFIGURING MEMORY FOR LSI-11 SYSTEMS WITH MORE THAN
64K BYTES
MAXIMUM CONFIGURATION OF DLV11-J MODULES
PROGRAMMING THE MRV11-C
BOOTSTRAPS FOR TU58, RL01, RK05, RX02, RX01
RL01 TYPE-IN BOOTSTRAP
DLV11-J I/O PAGE ADDRESS PROBLEM REPORT
BOOTSTRAP FOR RX02
11/123 FLOATING POINT COMPATIBILITY
DLV11-J RECEIVER CHIP PROBLEM
MICROCOMPUTER MODULE ENVIRONMENTAL CONSIDERATIONS
18-BIT DMA WITH CHIPKITS
LSI-11 VS. LSI-11/23 TRANSACTION DIFFERENCES
EXPANDING BA11-MA AND BA11-NC BASED SYSTEMS
PERIPHERAL COMPATIBILITY WITH 11/23 SYSTEMS
TU58 CABLING
MXV11-AA, -AC CABLING
MXV11-A2 BOOTSTRAP ERROR HALTS
DLV11-F CURRENT LOOP PROBLEM
SUMMARY OF BOOTSTRAP SOURCES
LSI-11/23 PROCESSOR DIFFERENCES
THE LSI-11/23 AND THE LSI-11/2BUSES ARE THE SAME
LSI-11/23 I/O PAGE ADDRESSING
USE OF RECOMMENDED DISKETTES
HANDLERS FOR SERIAL LINE PRINTERS
ALTERNATE CLOCK FREQUENCIES FOR THE MXV11
IMPROVED DLV11-F
WAKE-UP CIRCUIT IMPLEMENTATIONS
INTERFACING TO THE TU58 W/O BREAK
TYPE-IN BOOTSTRAP FOR TU58
RT-11 V3B FB MONITOR AND TUS8'S
STANDALONE PROBLEM LOADER
USING THE BAll-VA IN SMALL SYSTEMS
USING THE MXV11-A2 BOOTSTRAP ON THE MRV11-C
TWO POTENTIAL PROBLEMS WITH THE RXV21
USER WRITTEN SYSTEM TASKS UNDER RT-11 V4
RL02 SUPPORT BY DIGITAL SOFTWARE
VTI03 APPLICATIONS FOR UNUSUAL BAUD RATES
TU58 TIPS
TUS8 TAPE FORMAT AND ADD.RESSING MODES
11/23 & 11/03 RL01 BASED PACKAGED SYSTEM EXPANSION
RL02 BOOTSTRAP FAILURES USING BDV11
UPG~DES FOR PB11
TU58 SYSTEM POWER PROBLEM
MMU CONFIGURATION JUMPERS
CREATING A DIAGNOSTICS DECTAPE II UNDER XXDP+
11/23 ECO STATUS
MXV11 BOOTSTRAP PROBLEMS
MXV11 FUNCTIONALITY

A2

107
108
109
110
111

22-BIT ADDRESSING FOR DMA CHIPKIT USERS
ADV11-A,AAV11-A,KWV11-A vs. ADV11-C,KWV11-C,AAV11-C
DIFFERENCES
USING THE FALCON SBC-11/21 IN A STANDALONE ENVIRONMENT
MUL, DIV, AND ASH INSTRUC~rION FOR THE FALCON SBC-l1/21
DIFFERENCES BETWEEN MSVI1-L AND MSV11-p MEMORIES

A3

APPENDIX B
Subject Index - By MicroNote Number

BDV11
Backplanes
Block Mode DMA
Bootstrap
C

-,

3

35
2,12
3,15
27

Cache
9
40
DCJ11
38
DECnet
33
DL-type devices
19
DLV11-J
12,41
DM
Disabling RAM
19
38
Down-line loading
ECO
17
EIS extended instruction set 1
25,40
FPJ11-A
Falcon
1,7
Falcon-Plus
1,7
21,25
Floating point
11
I/D space
I/O programming
10
J-11 see DCJ11
KA630 see MicroVAX II
KDJ11-A see LSI-11/73
30,39
KDJ11-B
16,18,32
KXT11-C
34
18
KXT11-C DMA controller
KXT11-C multiprotocol SLU
34
32
KXT11-C parallel port
4,6,17
LSI-11/23
3,4,6
LSI-11/73
8,9,11
25,39,40
3
LSI-11/73 bootstrap options
18,32,34
MACRO-11
19
MRVI1-D
28,30
MSV11-J
28
MSV11-M
28,31
MSV11-Q
20
Mxv11-A
3,4
MXv11-A2
19, 20
MXV11-B
3, 4
MXV11-B2
28,31
Memory differences
8,11
Memory management
7
Memory maps
8,9,11
Memory systems
4
MictoPDP-11/23
13,16
MicroPower/Pascal
10
MicroVAX
21,22,23
MicroVAX I
22,23,26
MicroVAX II
36,37
MicroVMS
36
MicroVMS files description
B1

Minimum MicroVMS system
37
Module differences
20
Multicomputing
26
NanoVMS
37
PDP-11/23 Plus
4
PDP-11/84
30
Pascal
14,27
Performance evaluation/data 13
Private Memory Interconnect 30
Processor differences
4,22,23
24,39
Processor upgrades
4,23
Q-bus expansion
29,35
Q-bus memory
28,30
Q-bus operation
2,5,10
12,26,29
35,41
Q22
5
RSX-11s
38
SBC-11/21-Plus see Falcon-Plus
Software development
16,18,27
32,34
System configuration
29,33,35
41
VAX-11 Fortran
14
21,24
VAX-11 instruction set
14,27,38
VAXELN



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2002:11:30 17:13:45Z
Creator Tool                    : g4pdf
Modify Date                     : 2013:10:23 08:53:07-07:00
Metadata Date                   : 2013:10:23 08:53:07-07:00
Producer                        : Adobe Acrobat 9.55 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:3cd03983-4041-42ae-ba1c-963f123cc8c8
Instance ID                     : uuid:6314f92e-e8a1-48ae-bfc3-85ed065cda42
Page Mode                       : UseOutlines
Page Count                      : 405
Creator                         : g4pdf
EXIF Metadata provided by EXIF.tools

Navigation menu