Difference between revisions of "RL11 disk controller"
(drive articles already exist) |
(fix possible misunderstanding) |
||
Line 1: | Line 1: | ||
The '''RL11''' disk controller for the [[UNIBUS]] was for the [[RL01 disk drive|RL01]] and [[RL02 disk drive|RL02]] [[disk|disk drive]]s. | The '''RL11''' disk controller for the [[UNIBUS]] was for the [[RL01 disk drive|RL01]] and [[RL02 disk drive|RL02]] [[disk|disk drive]]s. | ||
− | The RL11 was a [[DEC card form factor|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 | + | The RL11 was a [[DEC card form factor|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 bus running from one drive to the next, with a terminator in the last drive of the string. |
The controller and drive combination can execute 8 different commands: | The controller and drive combination can execute 8 different commands: | ||
Line 14: | Line 14: | ||
* Read Data Without Header Check | * 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 | + | 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. |
==Device registers== | ==Device registers== |
Revision as of 13:36, 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 bus running from one drive to the next, 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 |