A description of the RX50 floppy controller subsystem of the DECmate II/III
Excerpted from an email message from Charles Lasner
---------------------------------------------------------------------------
Basically, the RX subsystem is known as an "RX emulator".  If the RX78
option is available, you have to select it with AC=4000 or 4001
(depending on the pair, and issuing 6750.  This disables the 8051
entirely.  Otherwise, it defaults to RX50 pair 0 or 1 as the AC=0 or 1
for 6750.  (Power-on default is pair 0.)

The thing accepts only RX01 commands except for a curious anomaly:
8-bit mode needs the sending of the extra byte ala 8-bit RX02, even
though there is no info to pass.  Otherwise, it's an RX01 with
different geometry (80 tracks not 77, 10 sectors not 26 or so, and 512
bytes/sector not 128).  12-bit transfer is curious though, not 12-bit
bytes like the 01/02, but 12 bits every 16 where the first 8 are all
used, then the next 4 become the high-order PDP-8 wor bits, and the
next 4 are wasted; repeat the pattern 256 times.  This is the soul of
the non-bootable system problem if you recall.

You can't interact with it any more than that: the set media density
command is a NOP just like on an RX01, and the command to write deleted
data works, though I don't know if the difference is notable, because I
didn't check if the status register reads it back as a deleted data
marked sector like an RX01.  All else does the same, read error
register, read status, fill, empty, read, write.  Unit select is
identical.  IF the media is a PC-type low-density disk, you can read
the 8-10 sectors, but you can't write on a 40-track disk.  In fact, the
only way to tell it's a 40 track disk is to not find any higher tracks.
 This is useful to read one-sided PC 160-180K disks, but not much else.

There ain't much else.  It doesn't use a PIC chip, so the instructions
are RX compatible totally.  Most interfaces are 1/5 of the PIC chips.
(6121).

The 8051 interprets these commands and does its own thing.  DEC made
their own data separator because the 179x chips need it; this is not a
765 like in a PC.  You will have trouble doing other than 250 KHz.

My understanding of the difference between the 1793 and 1796 is that
the 6 is a double-sided disk controller.  

There was a spec for how to do double-sidedness for the RX03 prototype
which is in RT-11 and OS/8 handlers.  Basically, those drives add an
additional hole (I have the media for it) that makes an LED photocell
combination work and makes the low-bit of the status register turn on
if a two-side disk is present.  (I punched extra holes in them to make
them flippy disks :-).)  BTw, you have to figure out that it's not an
RX01 getting a parity error, because it's the same bit!  (There are
ways; P?S/8 "knows" what to do)  There is an active "reserved" bit in 
every RX02 which is the head-select, and it always works!  (Don't set
it in any practical code, because it makes it not work :-(.)  So, this
could be a prototype for a modified RX controller section if you can
make it "know" about the double-sidedness of a drive/media.

All else is the 8051's business.  (I might have that code too!)  It
talks to the 1793 or 6 in -3 mode. (one-sided only).

This is why we only want to use the second RX port connector to make a
double-sided disk support that way; still compatible for software
harder to modify like CP/M and MS-DOS, but still doable for P?S?8 and
OS/278, yet totally compatible.  Use the other socket for side select,
and use isolation diodes in the cable to prevent false select when the
drive selects on multiple DS values.

Not much else in there on the RX issue.  The ROM doesn't do anything
extraordinary with it either.

I hear that the RX50 is not brought out in two pairs on the DM III, so
you can't even upgrade it that way.  Also, that the DM III+ can't read
the 40-trac disks at all, so it is incompatible on that point. 
Remember, it uses the RX33 with one side, and at 300 KHz to compensate
for the 360 RPM.
