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.
Specifications
System
Tracks
Sectors
Heads
Sector Size
Encoding
Capacity
Format
RX01
77
26
1
128
FM
256k
IBM 3740
RX02
77
26
1
256
Mixed FM and MFM
512k
DEC RX02
RX03 (?)
77
26
2
256
Mixed FM and MFM
1024k
DEC RX02
RX01/RX02 Systems
Option
Module
Bus
Mode
RX02
RX02 as RX01
RX01
RX11
M7846
UNIBUS
PIO
No
Yes
Yes
RXV11
M7946
Q/Q22
PIO
No
Yes
Yes
RXV21
M8029
Q/Q22
DMA
Yes
No
No
RX211
M8256
UNIBUS
DMA
Yes
No
No
RX8E
M8357
OMNIBUS
PIO
No
No
Yes
RX28
M8357
OMNIBUS
PIO
Yes
No
No
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
a microPDP-11.
(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:
the
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
card.
System
8 bit
Sector Size
8 bit
Capacity
12 bit
Sector Size
12 bit
Capacity
OS/8
Blocks
Format
RX01
128 bytes
256,256 bytes
64 words
128,128 words
494
IBM 3740
RX02
256 bytes
512,512 bytes
128 words
256,256 words
988
DEC RX02
RX03
256 bytes
1,025,024 bytes
128 words
512,512 words
1,976
DEC RX02
DECtape
-
-
128 words
188,672
words
737
-
RK8E
-
-
256 words
1,662,976 words
3,248x2
-
An RX03 is a never released double sided RX02.
One version of the OS/8 RX02 SYS handler includes support for
the RX03.
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.
Computer
Interface
Module
Results
PDP-8
RX8/E
M8357
untested
PDP-11
RX11
M7846
untested
RX211
M8256
untested
microPDP-11
RXV11
M7946
OK
RXV21
M8029 RevE(?)
OK
RXV21
M8029 RevF(?)
Unreliable
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.
May 2006
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
again.
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.
April 2006
I have
been
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
yet.
September 2004
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.
May 2004
The tarball for rxm was updated to the latest
available.
Dead Link!RX11
Emulator by
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.
Dead Link!RXV11
Emulator by
Peter McCollum - This was an earlier project for the QBus.
RX02 Emulator
by 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 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.