Difference between revisions of "RK11 disk controller"
From Computer History Wiki
m (minor changes to disassm) |
(Commented the disk-n bootstrap) |
||
Line 55: | Line 55: | ||
{| border=1 | {| border=1 | ||
− | ! Address !! Data !! Mnemonic !! Description | + | ! Address !! Data !! Mnemonic !! Description |
|- | |- | ||
− | |1000||012700||MOV #177406, R0 | + | | 1000 || 012700 || MOV #177406, R0 || Store the address of the Word Count register in r0 |
|- | |- | ||
− | |1002||177406||(constant) | + | | 1002 || 177406 || (constant) || (Which is 177406) |
|- | |- | ||
− | |1004||012760||MOV xxxxxx, 000004(R0) | + | | 1004 || 012760 || MOV xxxxxx, 000004(R0) || Store the disk ID number in the Disk Address register |
|- | |- | ||
− | |1006||xxxxxx||(disk ID number) | + | | 1006 || xxxxxx || (disk ID number) || The disk number goes here. |
|- | |- | ||
− | |1010||000004||(index) | + | | 1010 || 000004 || (index) || |
|- | |- | ||
− | |1012||012700||MOV #177406, R0 | + | | 1012 || 012700 || MOV #177406, R0 || Store the addresss of the Word Count register in r0 |
|- | |- | ||
− | |1014||177406||(constant) | + | | 1014 || 177406 || (constant) || (Which is 177406) |
|- | |- | ||
− | |1016||012710||MOV #177400, (R0) | + | | 1016 || 012710 || MOV #177400, (R0) || Store 177400 into the Word Count register, |
|- | |- | ||
− | |1020||177400||(constant) | + | | 1020 || 177400 || (constant) || meaning that octal 400 words are to be read. |
|- | |- | ||
− | |1022||012740||MOV #000005, -(R0) | + | | 1022 || 012740 || MOV #000005, -(R0) || Store 5 into the Control Status register |
|- | |- | ||
− | |1024||000005||(constant) | + | | 1024 || 000005 || (constant) || selecting the function "read" with 4, and "go" with 1 |
|- | |- | ||
− | |1026||105710||TSTB (R0) | + | | 1026 || 105710 || TSTB (R0) || Test the Control Status Register (upper) byte |
|- | |- | ||
− | |1030||100376||BPL *-1 | + | | 1030 || 100376 || BPL *-1 || Repeat if it's positive, that is Control Ready is cleared |
|- | |- | ||
− | |1032||005007||CLR PC | + | | 1032 || 005007 || CLR PC || If not, clear the Program Counter (essentially, jump to 0) |
|} | |} | ||
− | |||
==Documentation== | ==Documentation== |
Revision as of 02:25, 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
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) |