The RQDX3 is a hard drive controller for MFM drives. It can be obtained easily and cheaply. If you are lucky, you might find a manual. The information here should be enough to get one of these working.


RQDX3 boards are cheap ($20) and easy to find, but until now the only way I've seen for connecting it to a drive was via the distribution panel that is buried inside a BA23 chassis. Here is how to construct a ribbon cable that connects the RQDX3 to a single MFM drive.

As you look at the front edge of the RQDX3, with the components up, pin1 (the red stripe on a gray ribbon cable) is to the right.

You will need a 50 pin ribbon cable with a connector that will fit the front edge of the RQDX3. One way of getting this is scavenging an internal SCSI cable.

You will need 20 and 34 pin card edge connectors. These can be hard to find new, but most boxes of junk computer parts will contain a couple MFM cable sets. Carefully disassemble these connectors and remove the old ribbon cable.

If you have an RQDX3 manual, the ribbon connector pinout given in the back of the manual may be incorrect. Use the list here:

1  -- write data 1 + (second drive)
2  -- write data 1 - (second drive)
3  -- ground
4  -- head select 2
5  -- ground
6  -- seek complete
7  -- D4 ready (front panel -- note this is wrong in the manual)
8  -- write fault
9  -- head select 3 (connect to ground)
10 -- head select 1
11 -- D1 ready (front panel)
12 -- D3 ready (front panel)
13 -- D1 write protect (front panel)
14 -- drive select ack 0
15 -- read data 0 + (first drive)
16 -- read data 0 - (first drive)
17 -- write data 0 + (first drive)
18 -- write data 0 - (first drive)
19 -- read data 1 + (second drive)
20 -- read data 1 - (second drive)
21 -- ground
22 -- reduced write current/head select 3
23 -- D3 write protect (front panel)
24 -- drive select 4
25 -- ground
26 -- index
27 -- D4 write protect (front panel)
28 -- drive select 1
29 -- drive select 2
30 -- drive select 3
31 -- D2 ready (front panel)
32 -- floppy motor
33 -- ground
34 -- direction
35 -- ground
36 -- step
37 -- ground
38 -- floppy write data
39 -- ground
40 -- write gate
41 -- ground
42 -- track 0
43 -- D2 write protect (front panel)
44 -- drive select ack 1
45 -- ground
46 -- floppy read data
47 -- ground
48 -- head select 0
49 -- ground
50 -- ready 

Note that there is little consistency in the origin of numbering, for example, we have DS1, 2, 3, and 4 on the RQDX3 corresponding to DS0, 1, 2, and 3 on the drive.

Here is the interconnection list for the ribbon cable:

RQDX3         34 pin connector (all odd pins are ground)
=====         ================
22 ------------- 2  write current
 4 ------------- 4  HD2
40 ------------- 6  wgate
 6 ------------- 8  scomp
42 ------------- 10 trk0
 8 ------------- 12 wprot
48 ------------- 14 HD0
                 16 no connection
10 ------------- 18 HD1
26 ------------- 20 index
50 ------------- 22 ready
36 ------------- 24 step
28 ------------- 26 DS0
29 ------------- 28 DS1
30 ------------- 30 DS2
24 ------------- 32 DS3
34 ------------- 34 dir
            20 pin connector 
14 -------------  1 drive select ack
G  ------------- 12 ground
17 ------------- 13 WD+
18 ------------- 14 WD-
G  ------------- 16 ground
15 ------------- 17 RD+
16 ------------- 18 RD-
G  ------------- 19 ground

I built my cable by "unzipping" 3-inch strands of the 50 pin ribbon cable at the end away from the RQDX3, and inserting individual strands into the correct teeth on the MFM drive connectors. When a signal in the ribbon happens to be paired with a ground, I unzipped the pair, because every odd pin on the 34 pin connector is ground. There were a few other cases where it made sense to unzip a group (for example, WD+ and WD-). Connect three RQDX3 grounds to the 20 pin connector as shown. The remaining grounds should be distributed on the 34 pin connector.

There are a couple of front panel signals that must be terminated. (You have to do this, or it won't work). For each "Dx write protect" signal, I pulled it to +5 with a 4.7K resistor. The 'Dx ready" signals can probably be terminated similarly, however, I used the following circuit:

   -----+------- +5
        Z 470 ohms
        Z 220 ohms
       (O) LED
   -----+------- ground

The "ZZZ" is a resistor. This seems to provides adequate pullup when DxRDY is high, a reasonable load when DxRDY is low, and the LED indicates when the corresponding drive is seeking. Use a small LED that will be visible with only 5 ma. I built a small board with the LEDs and resistors on it. I also added LEDs with 1K loads (to +5) to READY and DS1 for debugging. Right now the board is dangling from the cable, and +5 and ground are supplied via clip leads. I'll tie things down later. On a real front panel, switches to ground provide the "write protect" and "drive offline" functions.


There is a four pin jumper near the front edge of the board next to a uA9639 (an 8 pin DIP). Looking at the board with the front edge to the left, the rightmost two pins should be jumpered. This combines HD3 and "reduced write current" on pin 22. (With the jumper in the center position these functions are separated).

Holding the board with the Qbus connectors toward you, the row of 11 jumpers are bits 12 through 2 of the module address. The remaining upper bits are all ones, the lower bits all zero. With "I" meaning "jumper in", and "O" meaning "jumper out", the default setting is: IOIOOOIIOIO. This selects a module base address of 172150.

All other jumpers on the board should be out. 


In theory, the RQDX3 should work with any MFM hard drive. The catch is that the drive geometry is stored on the first cylinder of the hard drive, and the DEC supplied utility (ZRQCH0 in XXDP) that puts the geometry info on the drive only supports a few drive types. It is possible to patch ZRQCH0 to define new drive types (I've done it, see XXDP), but it is nastily difficult.

Here are the supported drive types:

bulletRD51 --  300C  4H 18S,  10 meg
bulletRD52 --  480C  7H 18S,  30 meg
bulletRD53 -- 1024C  8H 17S,  68 meg, Micropolis 1325 or 1335 (add jumper R7)
bulletRD54 -- 1224C 15H 17S, 152 meg, Maxtor XT2190
bulletRD31 --  615C  4H 17S,  20 meg, Seagate ST225
bulletRD32 --  820C  6H 17S,  40 meg, Seagate ST251
bulletRD33 -- 1170C  7H 17S,  68 meg
bulletRX50 -- single sided DSDD 5" floppy (400 K)
bulletRX33 -- 1.44 meg 3" floppy

C=cylinders, H=heads, S=sectors per track.

The only information I've found that might relate to what's on a DEC formatted hard drive is in US patent #4,434,487 at www.uspto.gov. I didn't read it carefully enough to determine if what is described pertains to the RQDX3 or some other disk system. I did read enough to know that the on-disk format is extremely complicated and probably not worth the time it would take for me to hack it. Also be warned that there are can be subtle differences between patents and the actual implementations (either intentional, or due to further development).


There are two ways I know of to format a drive for use with the RQDX3. One is to use a utility in the boot ROM of a microVAX 2000. I have never tried this. The other is with the ZRQCH0 utility, which is part of XXDP. I have an image of ZRQCH0 that can be booted via VTserver.

From the file "third party disks.txt", is this sample ZRQCH0 session:


# UNITS (D) ? 1

Enter controller IP address (O) 172150 ?
What unit do you want to format [0-255] (D) 0 ? 1
Would you like to revector a single LBN only [Y/N] (L) N ?
Do you want to use the "AUTOFORMAT" Mode [Y/N] (L) Y ? N
Would you like to use the RCT - Revector known bad blocks [Y/N] (L) N ?

**** WARNING ****
[text about don't proceed if you're just kidding deleted]
Do you wish to continue [Y/N] (L) Y ?

MSCP Controller Model: 19
Microcode Version: 4

Do you want to use manufacturing bad block information [Y/N] (A) N ?
Downline load UIT [Y/N] (A) Y ?

UIT Drive Name
0 RD51
1 RD52 part # 30-21721-02 (1 light on front panel)
2 RD52 part # 30-23227-02 (2 lights on front panel)
3 RD53
4 RD31
5 RD54
6 RD32

Enter Unit Identifier Table (UIT) [0-7] (D) ? 5
Continue if bad block information is inaccessible [Y/N] (A) N ? Y
Please type in the serial number [8-10 digits] (A) ? 05388342

Formatting of Drive 1 Begin.

[a long sequences of messages is displayed here, 1 per minute, showing the
progress of formatting and what step is in progress on which block number.]

Format Completed.
00001 Rev LBNs
00000 Bad RBNs
00000 Bad DBNs
00000 Bad XBNs
00001 retired
FCT was not used.

Drive 1 has been formatted successfully.



Other information sources



Last modified: December 31, 2009