The RX01 is an 8-inch floppy disc drive device for PDP-8 and PDP-11 computers. It was available in a single-drive or dual-drive configuration. The dual-drive version is shown here. The single-drive version had a blanking plate in place of the right-hand drive. The RX01, or the later RX02, was commonly (but not universally) used on PDP-11 systems. The RX01/RX02 were also used on some PDP-8 and VAX systems.
These drives are very “clunky”. Literally. They have a head-load solenoid that presses the rotating disc against the R/W read. This solenoid is activated/deactivated on each R/W operation. It makes a very noticeable noise and can be heard above the cooling fan noise, even when the RX01 assembly is installed in a DEC rack.
Here are some more pictures of the RX01:
The major assemblies inside the RX01 are:
- Controller board (large upper PCB – M7726)
- Read/Write board (large lower PCB – M7727)
- Power supply (h771-d, for 50Hz systems)
- One or two belt-driven 8-inch bare drives (no PCBs)
- Cooling fan assembly (large black shroud with fan attached)
The drive motors are 110VAC, even in RX01 systems that are 230VAC powered (the h771 power supply produces the 110VAC for the drives).
Because the drives are AC-powered, the drive motor speed is dependent upon the AC line frequency. The drives are marked as being for 50Hz or 60Hz systems. Although I’ve not yet verified this, I suspect that 50Hz and 60Hz system both use the same motors, but the pulley diameters are changed to give the correct (360RPM) floppy drive spindle speed.
RX01 versus RX02
The RX02 drive uses double-density sectors, but single-density sector headers. As a result the RX02 can store twice as much data (512KB). The downside of the RX02 is that the disc format is non-standard, so you can’t read or write these discs on other systems.
Be aware also that you need different interface cards (in the computer) to interface to an RX02 drive. This is explained well on Henk Gooijen’s website (see link below).
This page does not discuss the RX02 in any detail.
The RX01 uses standard single-sided single-density IBM 3740 format floppy discs (single-sided, 77 tracks, 26 sectors/track, 128 bytes/sector). The formatted capacity is therefore 256,256 bytes.
One downside of the RX01 is that DEC provides no way to low-level format an RX01 disc. So you need to either use “pre-formatted” (ie IBM 3740) discs, or use a tool on another computer to achieve the low-level format. I use Dave Dunfield’s ImageDisk MSDOS program to do this on a PC.
One good thing about the RX01 is that discs can be read and written on an MSDOS-based PC that has an 8-inch drive attached to it. This makes it simple to transfer disc images (and therefore files) between a simulator (such as SIMH), an actual PDP-8/PDP-11, and disc images found on the web. Again I use ImageDisk on an MSDOS PC for this purpose.
Note that the RX01 is designed for single-sided discs. These are recognisable by the fact that the index hole in the jacket is only slightly offset from the centreline of the disc. There is an optocoupler in the RX01 drive that is physically located to look for the index hole in this location. These days blank discs that you find by random are more likely to be double sided. These have the index hole in the jacket offset a little further from the centreline of the disc, and do not line up with the optocoupler in the RX01’s drives.
A double-sided disc can be used in an RX01 drive, with two limitations:
- You will only be able to access one side of the disc, as the RX01 physically only has one head (which is positioned on the underside of the disc – Side 0). So always only format and use the disc as a single-sided disc
- The RX01 controller will never see an index pulse. This doesn’t seem to cause any problems with ordinary operation with OS/8 (on the PDP-8) or RT-11 (on the PDP-11). However your ROM-based bootloader may not like it, and refuse to boot the disc. This is definitely a problem when trying to boot from the interactive menu on the PDP-11/23 KDF11B bootloader, but the PDP-8 RX01 bootloader shown below works fine with double-sided media
To use the RX01 in a PDP-11 or PDP-8 you will also need the correct interface card that for that computer:
- M7846 (RX11): For a UNIBUS PDP-11 (such as a PDP-11/10)
- M7946 (RXV11): For a QBUS PDP-11 (such as a PDP/11-23)
- M8357 (RX8E): For an OMNIBUS PDP-8 (such as a PDP-8/e)
A 40-way ribbon cable connects the interface card to the RX01 drive. The standard cable supplied by DEC was a BC05L-15, which is 15 feet (4.6m) in length. It is a fairly simple cable (no ground plane).
Each end of the cable is fitted with a 40-pin BERG connector. The cable has a red stripe which should be at the end of the connector that has a very small pin 1 triangle marker on it. This is to be aligned with the “Pin A / Pin B” end of the BERG housing on the drive and interface board. Take care when inserting the cable, as it is not polarised and can easily be inserted the wrong way.
The photo gallery above has a close up picture of the BERG housing on the RX01’s upper PCB (M7726). If you look carefully at this photo you can just see the numbering that is moulded into that housing.
Conventional unshielded ribbon cable and 40-pin IDC connectors would probably work just fine, if you need to make a new cable.
Using the RX01 on a PDP-8/e
You will need an M8357 (RX8E) to do this.
I used an Industrial 8 for this demonstration. The Industrial 8 is essentially a PDP-8/e. But the technique described here should work on any Omnibus-based PDP-8.
The M8357 is fairly simple to configure. There is only one bank of dipswitches and no there are no jumpers. Only the first 6 switches are used. These are the upper 6 switches in the 8-way dipswitch. The other two switches are not used.
The switches set the “device code” for the board per Table 2-1 in the RX8/RX11 floppy disk system user’s manual (as shown here).
Unfortunately using the “standard” setting marked with an asterisk in the manual (device code 670X) won’t work with OS/8, and may not work with ROM-based bootloaders. See Michael Thompson’s post for more details of this problem.
If you want to use the RX01 with OS/8, set the dipswitch for 675X (device code 75).
Connect the 40-pin cable between the RX8E and the RX01. Pin 1 of the cable (red stripe) goes nearest to the top corner of the M8357 board.
Insert the RX8E in an unused slot in the PDP-8/e.
Now power up your PDP-8 and the RX01 to test the drive.
When you hit the “CLEAR” button on the front panel of the 8/e, you should hear the “clunk” of the head-load solenoids activating and de-activating (even if the drive is empty). There won’t be another clunk when you release the key.
If you are able to boot your PDP-8 into OS/8 from a different device, go ahead and do so, and then try the following with no disks in the RX01:
You should get the following response:
.DIR RXA0: ERROR READING INPUT DIRECTORY .
Now try and boot or read an RX01-formatted disk, if you have one.
If you don’t have an RX01-formatted floppy disk, here’s a technique for making one (see the links section below for copies of the disk images that are mentioned here):
- Download os8_rx.rx01 from David Gesswein’s website. In its current format, you can boot this image on a SIMH PDP8 simulator, if you want to check it out
- Rename the file as os8_rx.dsk, because MSDOS won’t accept 4-character filename suffixes
- Transfer os8_rx.dsk to an MSDOS machine that has an 8-inch floppy drive attached and a copy of Dave Dunfield’s ImageDisk suite of tools
- Use ImageDisk’s BIN2IMD.COM utility to convert the BINARY disk image to an IMD disk image as follows: BIN2IMD OS8_RX.DSK OS8_RX.IMD N=77 DM=0 SS=128 SM=1-26 /1 /C
- Use the main ImageDisk program (IMD.COM) to “write” the IMD disk image to a real 8-inch floppy disc connected to the MSDOS machine
- Move the floppy disc to the RX01 drive on your PDP-8
If you are able to boot your PDP-8 into OS/8 from a different device, go ahead and do so, and then use the DIR RXA0: command to view the contents of your newly written RX01 floppy disk.
David Gesswein’s Bootstrap
You should also now be able to boot OS/8 from the new RX01 boot disc by placing the disc in RX01 Drive 0 and then toggling in the following bootstrap (copied from here on David Gesswein’s website):
Addrs Data 00032 7305 00033 6755 00034 5054 00035 1061 00036 6751 00037 5047 Note non sequential address 00047 4053 00050 3002 00051 2050 00052 5047 00053 0000 00054 6753 00055 5033 00056 6752 00057 5453 00060 7004 00061 0000
Load the switches with 0032 then sequentially hit ADDR LOAD, CLEAR and CONT.
If all goes well, OS/8 should load from Drive 0 and you will be greeted with an OS/8 dot prompt on the console.
Pocket Service Guide bootstrap
I’ve had limited success with the above bootloader. Sometimes it just won’t work for me. I’ve had more success with the following bootstrap, which appears at Table 1-8 on Page 13 of the RX01/RX02 Pocket Service Guide (EK-RX012-PS-002):
Addrs Data 24 7126 25 1060 26 6751 27 7201 30 4053 31 4053 32 7104 33 6755 (Start Address) 34 5054 35 6754 36 7450 37 7610 40 5046 41 1060 42 7041 43 1061 44 3060 45 5024 46 6751 47 4053 50 3002 51 2050 52 5047 53 0000 54 6753 55 5033 56 6752 57 5453 60 7024 61 6030
Directory listing of os8_rx.rx01
The DIR command should give the following results:
.DIR SYS VOLUME-- 1 SYS:=RX8E OS/8 SYSTEM VERSION 3Q BUILD .SV 33 HELP .SV 8 BASIC .UF 4 ABSLDR.SV 5 PAL8 .SV 19 BCOMP .SV 17 BITMAP.SV 5 PIP .SV 11 BLOAD .SV 8 BOOT .SV 5 PT8E .BN 1 BRTS .SV 15 CCL .SV 18 RESORC.SV 10 EABRTS.BN 24 CREF .SV 13 RXCOPY.SV 6 RESEQ .BA 6 DIRECT.SV 7 SABR .SV 24 ECHO .SV 2 EDIT .SV 10 TECO .SV 22 RKLFMT.SV 9 EPIC .SV 14 BASIC .AF 4 SET .SV 14 FBOOT .SV 2 BASIC .FF 4 BATCH .SV 10 FOTP .SV 8 BASIC .SF 4 FUTIL .SV 26 HELP .HL 55 BASIC .SV 9 IDS .SV 5 36 FILES IN 437 BLOCKS - 1 FREE BLOCKS .
The RX01/RX02 Pocket Service Guide lists (at Section 1.4 on page 9) the following diagnostics:
AIRXB(x) performance exerciser
The diag-games-kermit.rk05 image contains the files DIRXAB.SV, DIRXAC.SV, DIRXBC.DV and DIRXBD.SV.
The diagpack2.rk05 image contains the files AIRXAE.DG and AIRXBF.DG
There’s a useful forum topic here about diagnostics for RX drives on the PDP-8 -> Debugging an RX01/RX02 on an RX8E in a PDP-8/e
Vince’s website has MAINDEC documentation and binary files for DIRXA-B, DIRXA-C, DIRXA-D, DIRXB-C and DIRXB-D -> MAINDEC Software Files
Other RX01 webpages
There are some great webpages out there with information about RX01/RX02 drives.
Here are some that I find to be very helpful:
David Gesswein’s OS/8 images (includes many RX01 images)
Here are some links to documents and disk images: