Difference between revisions of "RX211 floppy disk controller"
From Computer History Wiki
(Reasonable complete) |
m (+cat) |
||
Line 121: | Line 121: | ||
| 0250 || Wrong key word for set media density command | | 0250 || Wrong key word for set media density command | ||
|} | |} | ||
+ | |||
+ | [[Category:UNIBUS Storage Controllers]] | ||
+ | [[Category:QBUS Storage Controllers]] |
Revision as of 01:55, 4 September 2018
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.
Contents
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 |