RX211 floppy disk controller

From Computer History Wiki
Jump to: navigation, search

The RX211 and RXV21 are controllers for the RX02 )and also the RX01) floppy disk drives for the UNIBUS and QBUS, respectively.

They have an identical programming interface; both use DMA to transfer information between main memory and the floppy.

Device registers

Register Abbreviation Address
Command and Status Register RX2CS 777170
Data Buffer Register RX2DB 777172

777170: Command and Status Register (RX2CS)

Error Initialize Extended Address RX02 Unused Density Transfer Request Interrupt Enable Done Unit Select Function Go
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

The function codes are:

Code Function
0 Fill Buffer
1 Empty Buffer
2 Write Sector
3 Read Sector
4 Set Media Density
5 Read Status
6 Write Deleted Data Sector
7 Read Error Register

777172: Data Buffer Register (RX2DB)

This register contains one of several 'virtual' registers, depending on the function in progress.

The 'Transfer Request' bit in the RXCS is used to indicate which virtual register is in use at any given time.

Track Address (RX2TA)

Unused 0 Track
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Sector Address (RX2SA)

Unused 0 0 0 Sector
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Word Count (RX2WC)

Unused 0 Count
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Bus Address (RX2BA)

Address
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Data Buffer (RX2DB)

Unused Data
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Note the name clash between this virtual register, and the actual register which contains it.

Error and Status (RX2ES)

Unused NXM WC Overflow Reserved Unit Select Drive Ready Deleted Data Drive Density Density Error AC Low Initialize Done Reserved CRC Error
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Error (RX2ER)

Unused Error Code
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Error code values:

Value Meaning
0010 Drive 0 failed to see home on Initialize
0020 Drive 1 failed to see home on Initialize
0040 Tried to access a track greater than 76
0050 Home was found before desired track was reached
0070 Desired sector could not be found after looking at 52 headers (2 revolutions)
0110 More than 40 μsec and no SEP clock seen
0120 A preamble could not be found
0130 Preamble found but no ID mark found within allowable time span
0140 CRC error found on what we thought was a header
0150 The header track address of a good header does not compare with the desired track
0160 Too many tries for an IDAM (identifies header)
0170 Data AM not found in allotted time
0200 CRC error on reading the sector from the disk
0220 R/W electronics failed maintenance test mode
0230 Word count overflow
0240 Density error
0250 Wrong key word for set media density command