The RK11 series of controllers for the UNIBUS and [[QBUS] are for the earlier RK drives (RK02-RK05), all based on the IBM 2315 drive and pack. (The later RK06 and RK07, and their controller, the RK611, are a different drive and pack.)
There are several models of the RK11, which are basically identical in their programming interface; differences between them are discussed in the sections on the individual models (below).
The UNIBUS RK11's all connect to the RK drive through a BC11A cable, the standard UNIBUS cable.
RK11-C
Like many of the earlier large peripheral controllers for the PDP-11, the RK11-C was a large custom wire-wrapped backplane which bolts into the front of a 19 inch rack, such as an H960; into it plugged about 40 small M-Series FLIP CHIPs.
RK11-D
The RK11-D was a reimplementation of the RK11-C on four double-depth large quad cards (M7254-7), which plugged into a custom-wired quad-wide hex-high system unit backplane, for a BA11 slide-out mounting box.
It was program-compatible with the RK11-C, except that the RK11-D did not contain the Maintainence Register of the earlier controller. The location of the MR responds on the bus with an RK11-D, but according to the prints, it reads as zero, and written data is ignored.
RK11-E
The RK11-E is a variant of the RK11-D which supports 18-bit data; it is used with the ?PDP-15; it uses the same cards as the RK11-D, with a jumper selection for 18-bit operation, and a different clock crystal.
RKV11-D
The RKV11-D is a variant of the RK11-D for the QBUS (the others are all UNIBUS).
It uses three of the four cards of the RK11-D (M7254-6), along with a different custom quad-wide quad-high system unit backplane, and a replacement fourth card (M7268) which is connected via ribbon cables to two dual cards, one of which plugs into a QBUS backplane slot (M7269), and the other into the first RK05 drive (M993-YA).
It is programming compatible with the RK11-D, except that it only supports Q16 QBUS mode, so the two extended memory bits in the CSR have no effect; they may be read and written, but are not connected to anything.
Device registers
Register |
Abbreviation |
Address
|
Drive Status Register |
RKDS |
777400
|
Error Register |
RKER |
777402
|
Control Status Register |
RKCS |
777404
|
Word Count Register |
RKWC |
777406
|
Current Bus Address Register |
RKBA |
777410
|
Disk Address Register |
RKDA |
777412
|
Maintenance Register |
RKMR |
777414
|
Data Buffer Register |
RKDB |
777416
|
777400: Drive Status Register (RKDS)
Drive Ident. |
DPL |
HDEN |
DRU |
SIN |
SOK |
DRY |
ARDY |
WPS |
SC=CA |
Sector Counter
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
777402: Error Register (RKER)
DRE |
OVR |
WLO |
SKE |
PGE |
NXM |
DLT |
RTE |
NXD |
NXC |
NXS |
|
CSE |
WCE
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
777404: Control Status Register (RKCS)
ERR |
H.E. |
SCP |
M |
IBA |
FMT |
R/WA |
SSE |
RDY |
IDE |
EX. MEM |
FUNCTION |
GO
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
777406: Word Count Register (RKWC)
WC15 <---> WC00
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
777410: Current Bus Address Register (RKBA)
BA15 <---> BA00
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
777412: Disk Address Register (RKDA)
DRIVE SELECT |
CYLINDER ADDRESS |
SUR |
SECTOR ADDRESS
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
777414: Maintenance Register (RKMR)
M. RCP |
M. RDP |
M. SPS |
M. ADA |
M. LAI |
|
M. DRY |
M. R/W/S |
|
MAINT. SECTOR COUNTER
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
777416: Data Buffer Register (RKDB)
DB15 <---> DB00
|
15
|
14
|
13
|
12
|
11
|
10
|
09
|
08
|
07
|
06
|
05
|
04
|
03
|
02
|
01
|
00
|
PDP-11 bootstraps
Disk 0
I know the octal data is correct, but I'm not sure about the mnemonics and the description.
Address |
Data |
Mnemonic |
Description
|
1000 |
012700 |
MOV #177406,R0 |
Move the top of the address of the controller into r0
|
1002 |
177406 |
|
(constant)
|
1004 |
012710 |
MOV #177400,(R0) |
Move 177400 into 177406
|
1006 |
177400 |
|
(constant)
|
1010 |
012740 |
MOV #5,-(r0) |
Move 5 into 177404
|
1012 |
000005 |
|
(constant)
|
1014 |
105710 |
TSTB (R0) |
Test byte at 177404
|
1016 |
100376 |
BPL 1014 |
Jump backward if positive
|
1020 |
005007 |
CLR PC |
Jump to zero
|
Disk n
This bootstrap will boot from any disk in a daisy-chained multi-drive configuration. Memory location octal 1006 contains the unit number, as follows:
Address |
Data |
Mnemonic |
Description
|
1000 |
012700 |
MOV #177406, R0 |
Store the address of the Word Count register in r0
|
1002 |
177406 |
(constant) |
(Which is 177406)
|
1004 |
012760 |
MOV xxxxxx, 000004(R0) |
Store the disk ID number in the Disk Address register
|
1006 |
xxxxxx |
(disk ID number) |
The disk number goes here.
|
1010 |
000004 |
(index) |
|
1012 |
012700 |
MOV #177406, R0 |
Store the addresss of the Word Count register in r0
|
1014 |
177406 |
(constant) |
(Which is 177406)
|
1016 |
012710 |
MOV #177400, (R0) |
Store 177400 into the Word Count register,
|
1020 |
177400 |
(constant) |
meaning that octal 400 words are to be read.
|
1022 |
012740 |
MOV #000005, -(R0) |
Store 5 into the Control Status register
|
1024 |
000005 |
(constant) |
selecting the function "read" with 4, and "go" with 1
|
1026 |
105710 |
TSTB (R0) |
Test the Control Status Register (upper) byte
|
1030 |
100376 |
BPL *-1 |
Repeat if it's positive, that is Control Ready is cleared
|
1032 |
005007 |
CLR PC |
If not, clear the Program Counter (essentially, jump to 0)
|
|
Value |
Unit
|
020000 |
Unit 1
|
040000 |
Unit 2
|
060000 |
Unit 3
|
100000 |
Unit 4
|
120000 |
Unit 5
|
140000 |
Unit 6
|
160000 |
Unit 7
|
|
Documentation
RK11-C manual, 1971
RK11-C schematics, February 1971
EK-RK11D-MM-002, RK11-D Maintenance Manual