RL11 disk controller

From Computer History Wiki
Revision as of 03:32, 15 December 2017 by Jnc (talk | contribs) (Mention cable details)
Jump to: navigation, search

The RL11 disk controller for the UNIBUS was for the RL01 and RL02 disk drives.

The RL11 was a hex board. It has a 40-pin Berg connector holding a flat cable, which runs to a bulkhead-mounted converter from the flat cable to a special inter-drive cable (round in cross-section, with special locking connectors).

(If the flat cable is plugged in the wrong way around, nothing is damaged; the drive merely turns on its 'fault' light.)

The cable runs from the converter 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.

Controller capabilities

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.

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 on an RL01:

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 'Seek' command on an RL02:

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 on an RL01:

0 CYL ADDR HD SEL SECTOR
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

During a 'Read Data' or 'Write Data' command on an RL02:

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, on an RL01:

0 CYL ADDR HD SEL SECTOR
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

and on an RL02:

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