Difference between revisions of "RK11 disk controller"
From Computer History Wiki
(Commented the disk-n bootstrap) |
(Saved a lookup table for disk ID number) |
||
| Line 53: | Line 53: | ||
===Disk ''n''=== | ===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: | ||
| + | |||
| + | {| 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 | ||
| + | |} | ||
{| border=1 | {| border=1 | ||
Revision as of 01:28, 17 May 2007
The RK11 is the UNIBUS controller for the RK05 moving-head magnetic disk drive.
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 |
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:
| Value | Unit |
|---|---|
| 020000 | Unit 1 |
| 040000 | Unit 2 |
| 060000 | Unit 3 |
| 100000 | Unit 4 |
| 120000 | Unit 5 |
| 140000 | Unit 6 |
| 160000 | Unit 7 |
| 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) |