RK11 disk controller
The RK11 series of controllers for the UNIBUS and QBUS are for the earlier RK moving-head magnetic disk 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.
Contents
- 1 RK11-C
- 2 RK11-D
- 3 RK11-E
- 4 RKV11-D
- 5 Device registers
- 5.1 777400: Drive Status Register (RKDS)
- 5.2 777402: Error Register (RKER)
- 5.3 777404: Control Status Register (RKCS)
- 5.4 777406: Word Count Register (RKWC)
- 5.5 777410: Current Bus Address Register (RKBA)
- 5.6 777412: Disk Address Register (RKDA)
- 5.7 777414: Maintenance Register (RKMR)
- 5.8 777416: Data Buffer Register (RKDB)
- 6 PDP-11 bootstraps
- 7 Documentation
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.
The backplane is wired for connection to a standard DEC indictor panel, but no inlay for such has even been sighted, although the RK11-C Engineering Drawings allow one to work out exactly what such an inlay would have looked like.
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 (M7269) plugs into a QBUS backplane slot, and the other (M993-YA) into the first RK05 drive.
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:
|
|