Difference between pages "Category:UNIBUS Peripherals" and "RK11 disk controller"
From Computer History Wiki
(Difference between pages)
(New page: Peripherals that attach to a UNIBUS.) |
(→Disk ''n'': Formatting hack) |
||
| Line 1: | Line 1: | ||
| − | + | {{stub}} | |
| + | The '''RK11''' is the [[UNIBUS]] controller for the [[RK05]] moving-head magnetic disk drive. | ||
| + | |||
| + | ==Physical implementation== | ||
| + | Todo. | ||
| + | |||
| + | ==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)=== | ||
| + | |||
| + | {| border=1 style="text-align: center;" | ||
| + | | colspan=3 | Drive Ident. || DPL || HDEN || DRU || SIN || SOK || DRY || ARDY || WPS || SC=CA || colspan=4 | Sector Counter | ||
| + | |- | ||
| + | | colspan=3 | 15 14 13 || 12 || 11 || 10 || 09 || 08 || 07 || 06 || 05 || 04 || colspan=4 | 03 02 01 00 | ||
| + | |} | ||
| + | |||
| + | ===777402: Error Register (RKER)=== | ||
| + | |||
| + | {| border=1 style="text-align: center;" | ||
| + | | DRE || OVR || WLO || SKE || PGE || NXM || DLT || RTE || NXD || NXC || NXS || colspan=3 | || CSE || WCE | ||
| + | |- | ||
| + | | 15 || 14 || 13 || 12 || 11 || 10 || 09 || 08 || 07 || 06 || 05 || colspan=3 | 04 03 02 || 01 || 00 | ||
| + | |} | ||
| + | |||
| + | ===777404: Control Status Register (RKCS)=== | ||
| + | {| border=1 style="text-align: center;" | ||
| + | | ERR || H.E. || SCP || M || IBA || FMT || R/WA || SSE || RDY || IDE || colspan=2 | EX. MEM || colspan=3 | FUNCTION || GO | ||
| + | |- | ||
| + | | 15 || 14 || 13 || 12 || 11 || 10 || 09 || 08 || 07 || 06 || colspan=2 | 05 04 || colspan=3 | 03 02 01 || 00 | ||
| + | |} | ||
| + | |||
| + | ===777406: Word Count Register (RKWC)=== | ||
| + | {| border=1 style="text-align: center;" | ||
| + | | colspan=16 | WC15 <---> WC00 | ||
| + | |- | ||
| + | | 15 || 14 || 13 || 12 || 11 || 10 || 09 || 08 || 07 || 06 || 05 || 04 || 03 || 02 || 01 || 00 | ||
| + | |} | ||
| + | |||
| + | ===777410: Current Bus Address Register (RKBA)=== | ||
| + | {| border=1 style="text-align: center;" | ||
| + | | colspan=16 | BA15 <---> BA00 | ||
| + | |- | ||
| + | | 15 || 14 || 13 || 12 || 11 || 10 || 09 || 08 || 07 || 06 || 05 || 04 || 03 || 02 || 01 || 00 | ||
| + | |} | ||
| + | |||
| + | ===777412: Disk Address Register (RKDA)=== | ||
| + | {| border=1 style="text-align: center;" | ||
| + | | colspan=3 | DRIVE SELECT || colspan=8 | CYLINDER ADDRESS || SUR || colspan=4 | SECTOR ADDRESS | ||
| + | |- | ||
| + | | 15 || 14 || 13 || 12 || 11 || 10 || 09 || 08 || 07 || 06 || 05 || 04 || 03 || 02 || 01 || 00 | ||
| + | |} | ||
| + | |||
| + | ===777414: Maintenance Register (RKMR)=== | ||
| + | {| border=1 style="text-align: center;" | ||
| + | | M<br/>RCP || M<br/>RDP || M<br/>SPS || M<br/>ADA || M<br/>LAI || colspan=3 | || M<br/>DRY MR/W/S || colspan=2 | || colspan=4 | MAINTENANCE<br/>SECTOR COUNTER | ||
| + | |- | ||
| + | | 15 || 14 || 13 || 12 || 11 || 10 || 09 || 08 || 07 || 06 || 05 || 04 || 03 || 02 || 01 || 00 | ||
| + | |} | ||
| + | |||
| + | ===777416: Data Buffer Register (RKDB)=== | ||
| + | {| border=1 style="text-align: center;" | ||
| + | | colspan=16 | 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. | ||
| + | {| border=1 | ||
| + | ! 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: | ||
| + | <table> | ||
| + | <tr> | ||
| + | <td> | ||
| + | {| border=1 | ||
| + | ! 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) | ||
| + | |} | ||
| + | </td> | ||
| + | <td> | ||
| + | {| border=1 | ||
| + | ! Value !! Unit | ||
| + | |- | ||
| + | | 020000 || Unit 1 | ||
| + | |- | ||
| + | | 040000 || Unit 2 | ||
| + | |- | ||
| + | | 060000 || Unit 3 | ||
| + | |- | ||
| + | | 100000 || Unit 4 | ||
| + | |- | ||
| + | | 120000 || Unit 5 | ||
| + | |- | ||
| + | | 140000 || Unit 6 | ||
| + | |- | ||
| + | | 160000 || Unit 7 | ||
| + | |} | ||
| + | </td> | ||
| + | </tr> | ||
| + | </table> | ||
| + | |||
| + | ==Documentation== | ||
| + | [http://toresbe.dreamhosters.com/redirect.php?res=bitsavers&doc=dec/unibus/RK11-C_manual1971.pdf RK11-C manual, 1971] | ||
| + | |||
| + | [http://toresbe.dreamhosters.com/redirect.php?res=bitsavers&doc=dec/unibus/RK11-C_schemFeb1971.pdf RK11-C schematics, February 1971] | ||
| + | |||
| + | [http://toresbe.dreamhosters.com/redirect.php?res=bitsavers&doc=dec/unibus/EK-RK11D-MM-002.pdf EK-RK11D-MM-002, RK11-D Maintenance Manual] | ||
| + | [[Category:UNIBUS Storage Controllers]] | ||
| + | [[Category:DEC Storage Controllers]] | ||
Revision as of 02:38, 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 MR/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:
|
|
Documentation
Subcategories
This category has the following 7 subcategories, out of 7 total.
Pages in category "UNIBUS Peripherals"
The following 10 pages are in this category, out of 10 total.