Difference between revisions of "RL11 disk controller"
(All basic data) |
(→774406: Multipurpose Register (RLMP): Redo so code table starts at 0) |
||
Line 66: | Line 66: | ||
{{16bit-bitout}} | {{16bit-bitout}} | ||
− | State | + | {| class="wikitable" |
− | + | ! State Code !! State | |
− | + | |- | |
− | + | | 0 || Load Cartridge | |
− | + | |- | |
− | + | | 1 || Spin Up | |
− | + | |- | |
− | + | | 2 || Brush Cycle | |
− | + | |- | |
− | + | | 3 || Load Heads | |
+ | |- | ||
+ | | 4 || Seek | ||
+ | |- | ||
+ | | 5 || Lock On | ||
+ | |- | ||
+ | | 6 || Unload Heads | ||
+ | |- | ||
+ | | 7 || Spin Down | ||
+ | |} | ||
During a 'Read Header' command, three successive reads to the Multipurpose Register will return: | During a 'Read Header' command, three successive reads to the Multipurpose Register will return: | ||
− | |||
{{16bit-header}} | {{16bit-header}} | ||
| 0 || colspan=8 | CYL ADDR || HD SEL || colspan=6 | SECTOR | | 0 || colspan=8 | CYL ADDR || HD SEL || colspan=6 | SECTOR |
Revision as of 03:08, 5 October 2017
The RL11 disk controller for the UNIBUS was for the RL01 and RL02 disk drives.
The RL11 was a hex board, with a 40-pin Berg connector holding a cable to the first drive. Up to 4 drives can be connected to a single controller, using a serial bus, with a terminator in the last drive of the string.
The controller and drive combination can execute 8 different commands:
- No Operation
- Write Check
- Get Status
- Seek
- Read Header
- Write Data
- Read Data
- Read Data Without Header Check
Spiral reads and writes (i.e. multi-block reads which start on one track, and overflow to the next) are not supported. Multiple separate read/write commands are needed, with a seek to the next track between each pair.
Contents
Device registers
The RL11 controller includes 4 read-write registers:
Register | Abbreviation | Address |
---|---|---|
Control Status Register | RLCS | 774400 |
Bus Address Register | RLBA | 774402 |
Disk Address Register | RLDA | 774404 |
Multipurpose Register | RLMP | 774406 |
774400: Control Status Register (RLCS)
CERR | DE | NXM | DLT/HNF | DCRC/ HCRC | OPI | DRVSEL | CRDY | IE | ADDR EX | FUNC | DRDY | ||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
774402: Bus Address Register (RLBA)
BA15 <---> BA01 | 0 | ||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
774404: Disk Address Register (RLDA)
During a 'Seek' command:
0 | CYL ADDR DIFF | RSVD | HD SEL | 0 | DIR | 0 | 1 | ||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
During a 'Read Data' or 'Write Data' command:
0 | CYL ADDR | HD SEL | SECTOR | ||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
During a 'Get Status' command:
NOT USED | MBZ | RESET | 0 | GT STA | 1 | ||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
774406: Multipurpose Register (RLMP)
During a 'Get Status' command:
WDE | CHE | WL | SKTO | SPE | WGE | VC | DSE | Rsvd | HS | CO | HO | BH | STATE | ||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
State Code | State |
---|---|
0 | Load Cartridge |
1 | Spin Up |
2 | Brush Cycle |
3 | Load Heads |
4 | Seek |
5 | Lock On |
6 | Unload Heads |
7 | Spin Down |
During a 'Read Header' command, three successive reads to the Multipurpose Register will return:
0 | CYL ADDR | HD SEL | SECTOR | ||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
in the first word, all 0's in the second word, and the header CRC in the third.
During a 'Read Data' or 'Write Data' command:
111 | WC | ||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |