The RX01/RX02 series of DEC Floppy Disk Systems,
provided 8 inch diskette storage for various Digital Equipment
platforms. Both were standalone systems which communicated serially
with a PDP processor.
Mixed FM and MFM
Mixed FM and MFM
RX02 as RX01
It seems that the difference between an RX8E and
an RX28 is the drive type it is attached to.
Hardware Compatibility - RXV21 and the PDP-11/73
The RXV21 (M8029) must be the latest revision
level to be compatible
with a microPDP-11.
The board is PN 5013080 with a suffix C or D to indicate etch level.
Etch level C has a large number of ECO jumpers and does not function in
(Etch C, Rev Unknown, component side.Etch C, Rev Unknown, solder side.)
Etch level D eliminates most of the ECO jumpers,
but does not necessarily function with a KDJ-11 processor.
I believe that the last revision to the M8029 is F and that this
is equivalent to print revision J.
(Etch D, Rev F, component side.Etch D, Rev F, solder side.)
The schematics below show the jumpers that must be added to an etch
level D board,
but do not show the trace cuts.
Three cuts are necessary to get an etch level D board functional at
M8029 rev F: one on the component side (Etch D, Rev F, component side marked with red circle) and two on the solder side
(Etch D, Rev F, solder side marked with red circle).
RX01/02 on the PDP-8/e
The PDP-8/e has two options to attach an RX drive:
RX8 (or RX8E) and the RX28. The former is for the RX01 and the later
for the RX02. They both use the same M8357 OMNIBUS interface
An RX03 is a never released double sided RX02.
One version of the OS/8 RX02 SYS handler includes support for
RT-11 V04.00 also includes support in the DY device handler,
but this was removed from V05.00. The RK8E disk is too large
for a single OS/8 file system and so is divided into to halves and
is addressed as two block devices.
So in the last 9 or so years I ported the code to an ARM micro controller.
Using an OlinuXino board with an iMX233 processor, the parallel port interface was converted
to gpio on the board.
4 September 2012
I did some testing with the hardware that I have available.
I have two RXV21 modules, one has lots of ECO wires and the other does not.
The board with lots of jumpers ran for 24 hours without an issue.
The board with few jumpers hangs after about 10,000 sector reads/writes. It always hangs
in the same way: the host sends a command, but the interface never sets RX RUN to the drive.
The emulator is running on an AMD Phenom II X4 at 3.2Ghz.
The OS is Ubuntu 12.04 LTS with kernel 3.2.0-29.46-generic-pae 3.2.24.
The ASUS motherboard has a ISA LPC chip for the
"legacy" interfaces such as the parallel port. Interestingly this makes the port somewhat slower than I saw
when using a 400Mhz Pentium. The minimum pulse width is about 2µS vs 1µS for the older board.
LPC means low pin count and the interface to the chip is bit serial.
The PDP-8/e and the PDP-11/40 are not convenient to test with for now.
24 August 2012
To determine if there are any differences between the Technical Manual flowchart and the
actual RX02 microcode, I acquired a copy of the microcode PROM contents and disassembled them.
The disassembler is here and the resulting listing is here.
20 July 2012
I have been contacted by a couple of users of the emulator who are having trouble
using it with a PDP-11.
It seems that a couple of things have occured. NetBSD no longer includes the outpb and inpb macros
that are necessary to compile the emulator on NetBSD. This may be something to do with gcc because
I thought these were built into the compiler when optimizations were turned on.
On Linux, ppdev seems to interfere with the direct port I/O used by rxm, so you have to be sure the
module is unloaded. Finally I have upgraded the computer running the emulator and it does not run
on the significantly faster processor.
I have not used the emulator for quite a while, but have it set up now so that I can do some testing.
20 October 2010
I have been thinking about this again. The PC based emulator works pretty well,
but it takes a whole PC.
This thing could be shrunk down to the size of a micro-controller and a CF or SD card.
I have been playing with Atmel AVR8 processors.
They have just enough memory for a single sector buffer and are pretty fast.
The AVR Studio has a C compiler that would ease the conversion of my PC based emulator.
Compact flash is bit parallel, so I might choose SD card instead.
SD has a simple single bit serial interface.
I think the file image format should be FAT since it is ubiquitous.
By carefully managing the files, we might be able to keep the files contiguous.
This would definitely make file management and file access easier.
I have seen some micro-controller FAT file systems that only support contiguous files.
Makes me think of OS/8...
An SD card is VERY BIG in comparison with an RX02.
The front panel should include some way of selecting between the myriad of possible
images on the SD card.
23 July 2007
My first try at getting the RX03 support included seems to be working with OS/8.
I think this is using an OS/8 V4 handler. I say "I think", because I don't know the
exact lineage of the floppy image I am using. RESORC says OS/8 V3T.
ZEROing the disk gets me 1969 free blocks.
Thats good, because any CUSP that needs to know how big a disk is supposed to be is suspect,
and this one gets it right.
I reviewed the OS/8 V4 handler sources and see that last years idea of a 4000 block RX image
won't work with the current driver.
The disk sides are handled one at a time and not by cylinder,
so the size of the disk is pretty much woven through the code.
I want to work with this a little before I post the code.
The emulator now works with OS/8 in both RX01 mode and RX02 mode with both system and not system handlers.
I now have a media that can contain a complete DECtape with some room to spare.
I have also done a little bit of work with RX03 support. That will double the capacity
Another interesting thought is to make a 157 track, double sided floppy.
That ends up being an almost maximal sized OS/8 block device (4082 blocks). Even better, depending
on how the handler does the block number to track number conversion, it might just
work without any changes except to the device size.
playing with this thing again.
It can work with both RX01 and RX02 interfaces on the PDP-11. I use it
to run RT-11 on my diskless PDP-11/40.
I have also gotten it to work as an RX01 and RX02 with a PDP-8/e. It
works as a non-system disk in OS/8. I have not tried to get it to boot
There has been a lot of discussion on info-pdp11 about a disk interface
for the QBus. This project has been mentioned.
Take anything you are interested in.
The emulator is not complete, but it was able to boot RT11 using the RX
driver and boot OS/8 using the RX01 handler. RX02 support is not quite
there yet. I have not done anything with this since January 2004.
The tarball for rxm was updated to the latest
Peter McCollum - This is a different approach to the same problem. He
has designed a UNIBUS compatible interface to a PC parallel port with
just enough hardware to make the PDP think it is an RX11. The really
interesting thing about this to me is that if generalized, it could be
used to emulate any disk interface. As an RX11 interface, it does not
support DMA though.
Peter McCollum - This was an earlier project for the QBus.
by Béla Török <!Béla Török> - This is a port and extension of my original emulator for
use with a Raspberry PI or Arduino. Very cool! Béla <!Béla> independently did the project that
I never got around to.
RX02 Emulator by Don North. This one actually passes the PDP11 RX02 diagnostics which mine never did.