Difference between revisions of "RK11 disk controller"
(better comments for bootstrap, typos) |
(Move RK11-C board tables to bottom, out of the way) |
||
Line 11: | Line 11: | ||
The backplane is wired for connection to a standard [[DEC indicator 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. | The backplane is wired for connection to a standard [[DEC indicator 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. | ||
− | ===Board chart/count | + | See the table at the bottom of the page for a listing of the Flip Chips used in the RK11-C, and their location in the backplane. |
+ | |||
+ | ==RK11-D== | ||
+ | |||
+ | The RK11-D was a re-implementation of the RK11-C on four [[DEC card form factor|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 Maintenance Register of the earlier controller. In the RK11-D, the bus location of the MR responds, but according to the prints, it reads as zero, and written data is ignored. | ||
+ | |||
+ | ==RK11-E== | ||
+ | |||
+ | The RK11-E (sometimes called the RK15) was a variant of the RK11-D which supported 18-bit data; it was used with the [[PDP-15]]. It used the same cards as the RK11-D, with a jumper selection for 18-bit operation, and a different clock crystal. | ||
+ | |||
+ | It was used with the [[UC15]] Unichannel, which used a [[PDP-11/05]] acting as a slave to the PDP-15 via shared memory; the RK11-E was plugged into the UNIBUS on the PDP-11. It used the two UNIBUS parity lines for the two extra data bits. The two extra bits were not used by the PDP-11 or its memory, but went through the [[MX15-B]] Memory Multiplexer, directly to the PDP-15's memory. | ||
+ | |||
+ | ==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== | ||
+ | |||
+ | {| border=1 | ||
+ | ! 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)=== | ||
+ | |||
+ | {{16bit-header}} | ||
+ | | colspan=3 | Drive Ident. || DPL || HDEN || DRU || SIN || SOK || DRY || ARDY || WPS || SC=CA || colspan=4 | Sector Counter | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | ===777402: Error Register (RKER)=== | ||
+ | |||
+ | {{16bit-header}} | ||
+ | | DRE || OVR || WLO || SKE || PGE || NXM || DLT || RTE || NXD || NXC || NXS || colspan=3 | || CSE || WCE | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | ===777404: Control Status Register (RKCS)=== | ||
+ | {{16bit-header}} | ||
+ | | ERR || H.E. || SCP || M || IBA || FMT || R/WA || SSE || RDY || IDE || colspan=2 | EX. MEM || colspan=3 | FUNCTION || GO | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | ===777406: Word Count Register (RKWC)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=16 | WC15 <---> WC00 | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | ===777410: Current Bus Address Register (RKBA)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=16 | BA15 <---> BA00 | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | ===777412: Disk Address Register (RKDA)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=3 | DRIVE SELECT || colspan=8 | CYLINDER ADDRESS || SUR || colspan=4 | SECTOR ADDRESS | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | ===777414: Maintenance Register (RKMR)=== | ||
+ | {{16bit-header}} | ||
+ | | M. RCP || M. RDP || M. SPS || M. ADA || M. LAI || colspan=3 | || M. DRY || M. R/W/S || colspan=2 | || colspan=4 | MAINT. SECTOR COUNTER | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | ===777416: Data Buffer Register (RKDB)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=16 | DB15 <---> DB00 | ||
+ | {{16bit-bitout}} | ||
+ | |||
+ | |||
+ | ==RK11-C Board chart/count tables== | ||
The Flip Chip module utilization chart for the RK11-C backplane is as follows (* = Connector): | The Flip Chip module utilization chart for the RK11-C backplane is as follows (* = Connector): | ||
Line 87: | Line 175: | ||
6775 = Cable to indicator panel | 6775 = Cable to indicator panel | ||
+ | ===Module counts=== | ||
− | + | (Drawn from module utilization drawing, confirmed in module count chart): | |
Single height boards: | Single height boards: | ||
Line 134: | Line 223: | ||
* M795 | * M795 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==PDP-11 bootstraps== | ==PDP-11 bootstraps== | ||
Line 243: | Line 249: | ||
|1020||005007||CLR PC ||Start loaded bootstrap with jump to 0 | |1020||005007||CLR PC ||Start loaded bootstrap with jump to 0 | ||
|} | |} | ||
+ | |||
Note that the INIT pulse caused by hitting the 'Start' button will clear the Bus Adddress register, so the loaded block will be placed at location 0. | Note that the INIT pulse caused by hitting the 'Start' button will clear the Bus Adddress register, so the loaded block will be placed at location 0. |
Revision as of 14:25, 8 November 2016
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 RK11-C Board chart/count tables
- 7 PDP-11 bootstraps
- 8 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 indicator 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.
See the table at the bottom of the page for a listing of the Flip Chips used in the RK11-C, and their location in the backplane.
RK11-D
The RK11-D was a re-implementation of the RK11-C on four 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 Maintenance Register of the earlier controller. In the RK11-D, the bus location of the MR responds, but according to the prints, it reads as zero, and written data is ignored.
RK11-E
The RK11-E (sometimes called the RK15) was a variant of the RK11-D which supported 18-bit data; it was used with the PDP-15. It used the same cards as the RK11-D, with a jumper selection for 18-bit operation, and a different clock crystal.
It was used with the UC15 Unichannel, which used a PDP-11/05 acting as a slave to the PDP-15 via shared memory; the RK11-E was plugged into the UNIBUS on the PDP-11. It used the two UNIBUS parity lines for the two extra data bits. The two extra bits were not used by the PDP-11 or its memory, but went through the MX15-B Memory Multiplexer, directly to the PDP-15's memory.
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 |
RK11-C Board chart/count tables
The Flip Chip module utilization chart for the RK11-C backplane is as follows (* = Connector):
Slot | A | B | C | D |
---|---|---|---|---|
1 | UNIBUS in | |||
2 | UNIBUS out | |||
3 | ||||
4 | ||||
5 | M105 | M784 | ||
6 | M782 | M79 | ||
7 | M795 | |||
8 | M784 | M784 | ||
9 | M623 | M307 | ||
10 | Disk 2* | M623 | M307 | |
11 | M623 | M307 | ||
12 | Disk 1* | M207 | M163 | |
13 | M798 | G736 | G740 | M405 |
14 | M149 | M149 | M116 | M161 |
15 | M149 | M149 | M304 | M119 |
16 | M149 | M149 | M113 | M113 |
17 | M239 | M238 | M216 | M141 |
18 | M239 | M214 | M115 | M115 |
19 | M214 | M214 | M121 | M112 |
20 | M208 | M208 | M111 | M111 |
21 | M203 | M203 | M112 | M112 |
22 | M149 | M149 | M205 | M117 |
23 | M149 | M149 | M203 | M203 |
24 | M121 | M002 | M116 | M115 |
25 | M216 | M797 | M611 | M617 |
26 | M141 | M119 | M113 | M304 |
27 | M304 | M112 | M112 | M113 |
28 | M236 | M121 | M216 | M216 |
29 | M205 | M117 | M117 | |
30 | W130* | M113 | M113 | |
31 | 6775* | M113 | M205 | |
32 | 6775* | M116 | M216 |
W130 = Cable to ??
6775 = Cable to indicator panel
Module counts
(Drawn from module utilization drawing, confirmed in module count chart):
Single height boards:
- G736
- G740
- M002
- M105
- M111 2
- M112 5
- M113 7
- M115 3
- M116 3
- M117 3
- M119 2
- M121 3
- M141 2
- M149 10
- M161
- M163
- M203 4
- M205 3
- M207
- M208 2
- M214 3
- M216 5
- M236
- M238
- M239 2
- M304 3
- M307 3
- M405
- M611
- M617
- M623 3
- M782
- M784 3
- M796
- M797
- M798
Double height boards:
- M795
PDP-11 bootstraps
Disk 0
Address | Data | Mnemonic | Description |
---|---|---|---|
1000 | 012700 | MOV #177406,R0 | Move the address of the Word Count register into R0 |
1002 | 177406 | (constant) | |
1004 | 012710 | MOV #177400,(R0) | Move block size (negative) into Word Count register |
1006 | 177400 | (constant) | |
1010 | 012740 | MOV #5,-(R0) | Move 'Read Go' command into CSR |
1012 | 000005 | (constant) | |
1014 | 105710 | TSTB (R0) | Test for 'Done' bit in CSR |
1016 | 100376 | BPL 1014 | Jump backward if not set |
1020 | 005007 | CLR PC | Start loaded bootstrap with jump to 0 |
Note that the INIT pulse caused by hitting the 'Start' button will clear the Bus Adddress register, so the loaded block will be placed at location 0.
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:
|
|