RL11 disk controller
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:
- Load Cartridge
- Spin Up
- Brush Cycle
- Load Heads
- Seek
- Lock On
- Unload Heads
- 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 |