Difference between revisions of "RK11 disk controller"
From Computer History Wiki
(→Device registers: Fixed an error, updated some formatting) |
(→Device registers) |
||
Line 29: | Line 29: | ||
===777400: Drive Status Register (RKDS)=== | ===777400: Drive Status Register (RKDS)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| colspan=3 | Drive Ident. || DPL || HDEN || DRU || SIN || SOK || DRY || ARDY || WPS || SC=CA || colspan=4 | Sector Counter | | colspan=3 | Drive Ident. || DPL || HDEN || DRU || SIN || SOK || DRY || ARDY || WPS || SC=CA || colspan=4 | Sector Counter | ||
|- | |- | ||
Line 37: | Line 37: | ||
===777402: Error Register (RKER)=== | ===777402: Error Register (RKER)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| DRE || OVR || WLO || SKE || PGE || NXM || DLT || RTE || NXD || NXC || NXS || colspan=3 | || CSE || WCE | | DRE || OVR || WLO || SKE || PGE || NXM || DLT || RTE || NXD || NXC || NXS || colspan=3 | || CSE || WCE | ||
|- | |- | ||
Line 44: | Line 44: | ||
===777404: Control Status Register (RKCS)=== | ===777404: Control Status Register (RKCS)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| ERR || H.E. || SCP || M || IBA || FMT || R/WA || SSE || RDY || IDE || colspan=2 | EX. MEM || colspan=3 | FUNCTION || GO | | ERR || H.E. || SCP || M || IBA || FMT || R/WA || SSE || RDY || IDE || colspan=2 | EX. MEM || colspan=3 | FUNCTION || GO | ||
|- | |- | ||
Line 51: | Line 51: | ||
===777406: Word Count Register (RKWC)=== | ===777406: Word Count Register (RKWC)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| colspan=16 | WC15 <---> WC00 | | colspan=16 | WC15 <---> WC00 | ||
|- | |- | ||
Line 58: | Line 58: | ||
===777410: Current Bus Address Register (RKBA)=== | ===777410: Current Bus Address Register (RKBA)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| colspan=16 | BA15 <---> BA00 | | colspan=16 | BA15 <---> BA00 | ||
|- | |- | ||
Line 65: | Line 65: | ||
===777412: Disk Address Register (RKDA)=== | ===777412: Disk Address Register (RKDA)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| colspan=3 | DRIVE SELECT || colspan=8 | CYLINDER ADDRESS || SUR || colspan=4 | SECTOR ADDRESS | | colspan=3 | DRIVE SELECT || colspan=8 | CYLINDER ADDRESS || SUR || colspan=4 | SECTOR ADDRESS | ||
|- | |- | ||
Line 72: | Line 72: | ||
===777414: Maintenance Register (RKMR)=== | ===777414: Maintenance Register (RKMR)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| M<br/>RCP || M<br/>RDP || M<br/>SPS || M<br/>ADA || M<br/>LAI || colspan=3 | || M<br/>DRY || M<br/>R/W/S || colspan=2 | || colspan=4 | MAINTENANCE<br/>SECTOR COUNTER | | M<br/>RCP || M<br/>RDP || M<br/>SPS || M<br/>ADA || M<br/>LAI || colspan=3 | || M<br/>DRY || M<br/>R/W/S || colspan=2 | || colspan=4 | MAINTENANCE<br/>SECTOR COUNTER | ||
|- | |- | ||
Line 79: | Line 79: | ||
===777416: Data Buffer Register (RKDB)=== | ===777416: Data Buffer Register (RKDB)=== | ||
− | {| border=1 style="text-align: center;" | + | {| border=1 width=60% style="text-align: center;" |
| colspan=16 | DB15 <---> DB00 | | colspan=16 | DB15 <---> DB00 | ||
|- | |- |
Revision as of 21:22, 17 May 2007
The RK11 is the UNIBUS controller for the RK05 moving-head magnetic disk drive.
Contents
- 1 Physical implementation
- 2 Device registers
- 2.1 777400: Drive Status Register (RKDS)
- 2.2 777402: Error Register (RKER)
- 2.3 777404: Control Status Register (RKCS)
- 2.4 777406: Word Count Register (RKWC)
- 2.5 777410: Current Bus Address Register (RKBA)
- 2.6 777412: Disk Address Register (RKDA)
- 2.7 777414: Maintenance Register (RKMR)
- 2.8 777416: Data Buffer Register (RKDB)
- 3 PDP-11 bootstraps
- 4 Documentation
Physical implementation
Todo.
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 |
MAINTENANCE 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:
|
|