• Please review our updated Terms and Rules here

RK05 disk emulator

PDP11GY

Experienced Member
Joined
Jun 20, 2009
Messages
144
Location
Munich/Germany
I am currently trying to develop a RK05 disk emulator. It is an addition to my
existing projects, the RL01/RL02 and MFM disk emulator, and will be also based
on the DE10-Nano FPGA board. The firmware and the associated C program is almost
ready. Everything is based on Quartus version 22.1. However, I have problems
with the interface hardware, see picture attached. I'm missing some information
and I currently do not have access to a working RK05 disk drive.
-I can't find any information about the pinout assignment of the RK05 backplane.
A description of the RK05 interface cable is available in the RK8-L manual,
but only of the P1 and P2 connectors and not of the RK05 backplane.
-In the PDP-11 area there is no documentation about the sector/header format,
at least I can't find any.
General notes:
Of course it is also an open source project and I can also publish the existing
beta version on GitHub and on my homepage if required.
I am planning(!) a new PCB concept with a friend. It should consist of 2 parts.
Part 1: A general level converter from/to the FPGA world. In the beta version,
I used the https://www.sparkfun.com/products/12009 , see picture attached.
Part 2: Individual design for the RL02/MFM/RX and RK05 emulator interface which is
plugged on the level converter interface.
Another problem is the availability of the edge connectors.
Maybe it's too wasteful (for me) to develop a new PCB board. Anyway, I will try
to finish the prototype like in the picture and I will try to finish the
prototype like in the picture. Another idea: We could then send this prototype
around and everyone can save their RK05 cartridges.
My view: it should also be our joint design
In the TTL world I use the chip 74LS07, open collector and a resistor network
for the input signals. This is correct for emulator mode, but if the interface
board should also to be used as a reader only, things are different, like in my
MFM or RL02 emulator.
Help from you is necessary and every hint is also very welcome.
Reinhard
 
-I can't find any information about the pinout assignment of the RK05 backplane.
A description of the RK05 interface cable is available in the RK8-L manual,
but only of the P1 and P2 connectors and not of the RK05 backplane.
This has pinout. See page 23 of PDF. Also has wiring at end though not very readable.
http://www.pdp8online.com/pdp8cgi/query_docs/tifftopdf.pl/pdp8prints/rk05j.pdf
End wiring may be a little more readable in this one
http://www.bitsavers.org/pdf/dec/disc/rk05/RK05J_RevAX_Engineering_Drawings_Mar78.pdf
This has the two PDP-8 interface cable pinouts for both sides of card. Pg 34 on of pdf.
http://www.bitsavers.org/pdf/dec/pdp8/disc/RK8-F_EngrDrws_Jul73.pdf
 
I am currently trying to develop a RK05 disk emulator. It is an addition to my
existing projects, the RL01/RL02 and MFM disk emulator, and will be also based
on the DE10-Nano FPGA board.
Interesting post. So, I've also been starting the design of an RK05 emulator. Concept is similar but using a Lattice ICE40 either 1K or 4K, disk image copied from microSD to an SDRAM. The reason for caching in SDRAM is so the drive can be written many times without wear issues. Also, images can be imported from Simh.

I can send you notes, reconstructed RK05 timing diagrams, and planning for FPGA in case it's useful. I have some hand-written notes that I can scan when I get home (in Libson this week).
However, I have problems
with the interface hardware, see picture attached. I'm missing some information
and I currently do not have access to a working RK05 disk drive.
I can forward what I've found by studying the schematic and maintenance manual. I see others have posted links to it on bitsavers, so you might already have what you need.
-In the PDP-11 area there is no documentation about the sector/header format,
at least I can't find any.
I found on @djg 's website it mentions the order of sectors and heads. This describes the PDP-8. I assume the 12-sector PDP-11 format has the same order but I don't know for certain.
"A look at the hardware shows that after the sector counter overflows (at 16 sectors) the heads switch to the other surface. After the sector counter overflows again, the heads switch back and then the cylinder address increments."
It's at the bottom of this page...
https://www.pdp8online.com/os/os8/os8_general.shtml
Part 1: A general level converter from/to the FPGA world. In the beta version,
I used the https://www.sparkfun.com/products/12009 , see picture attached.
Regarding drivers and receivers...
I was looking at the SMT version of the 75451 driver, same part used in the real RK05. This has a 5 volt supply but can be driven from 3.3V logic.
For receivers considering SN74LVC744A for conversion from the RK05 I/O connector to the FPGA's 3.3V logic.
Another problem is the availability of the edge connectors.
As @pbirkel@gmail.com wrote, I've used connectors from two sources in China, available on AliExpress. This is the place:

You can use the 2x40 and remove middle pins and insert a shim in the middle, or the 2x43 and cut some of the connector body from the outsides and add shims in the middle and outsides. Details about cutting, removing connector pins and shims are in the build info document:

These connectors lack the keying bump on one side and the slot width is slightly too wide. However, on the mini Omnibus Backplane that was solved by using shims in unused pin slots. These connectors are also don't quite have the same insertion depth as the real DEC connectors, but on the mini backplane that was solved by 3D printing some short card guides that mount to the PCB.
 
This is a nice and interesting surprise. Another one who dares to emulate an RK05.
That's great and we're happy to share our knowledge. Meanwhile, I copied my
version to GitHub: https://github.com/pdp11gy/RK05-Disk-Emulator
I chose the DE10-Nano board because I know it very well from my RL-disk and
MFM-disk projects. I find, This module also has certain advantages, however,
it is more expensive and still difficult to obtain. You use the Lattice ICE40 board.
Then maybe you can use some of my source code. I implemented everything in
Verilog and C. My Firmware(Verilog) and Software(C) is almost ready for the PDP-8
environment. I should be able to emulate 4 RK05 drives simultaneously, create/read image
files based on information from the PDP-8/RK05 service manual. Detailed information
in the source code: DE10_RK_emulator/software/RK/main.c ->PRESET_one_SECTOR(void)
BUT for me the difference between PDP-8 and PDP-11 environment is not clear:
PDP-8: 12 sector/track, Data-checksum , 512Byte/sector , 28 Byte header...
PDP-11: 16 sector/track, Data-CRC(?) , ? , ?
I can't find any adequate documentation for this issue. If you have already made so
much effort to find out one thing then I would be very happy about your information.
Here in the Computer Museum/DatArena is a PDP11/40 with RK11 controller.
Unfortunately, the 11/40 causes problems, but when the 11/40 problem is solved,
I can determine the signals with the logic analyzer. What can I say, problems often
come together.
Interface Hardware:
Here the general question always arises: Should the interface work in emulator(=slave)
mode or in reader/clone(=master) mode or switchable in both modes? From my own experience
with my RL emulator and especially with the MFM emulator, I know that it can be very
complicated if you want to implement both modes on one interface. Especially with the
RK05 it gets much more complicated, because we are still in the open collector world.
And there is no CS signal available to switch in Tri-State mode !
With a RK05 interface, the terminators would have to be switched between slave and
master mode. The master mode would also have great advantages. Read a RK05 directly
from the FPGA without a PDP-8 or PDP-11 host, create an image file and then start it
with SIMH. Definitely possible with the DE10-Nano board, because it has an integrated
Cortex A9 CPU. A difficult decision. Also: PDP-8: no special connectors would be required,
only 2x 40 pin default connectors.
Summary: Maybe with 2 different interface boards?
I'll try to continue with the emulator mode only first.
If the prototype interface works, I'll be happy to work on the Mini Omnibus backplane.
Thank you for all your information.
 
Sorry this response is delayed. I'm back home now and I wanted to organize the attached notes better so they're more coherent before sharing.
BTW, I also have no RK8-E and no RK05.

This is a nice and interesting surprise. Another one who dares to emulate an RK05.
That's great and we're happy to share our knowledge. Meanwhile, I copied my
version to GitHub: https://github.com/pdp11gy/RK05-Disk-Emulator
Hey, thanks! I downloaded the zip and am still looking through it.
I've attached a copy of planned high-level functions of the emulator, "RK05 Emulator Functions v01.pdf".
I chose the DE10-Nano board because I know it very well from my RL-disk and
MFM-disk projects. I find, This module also has certain advantages, however,
it is more expensive and still difficult to obtain.
This makes sense.
You use the Lattice ICE40 board.
I have a couple of ICE40 boards for debugging code blocks but I was planning to solder a 144pin TQFP chip onto the emulator board.
Then maybe you can use some of my source code. I implemented everything in
Verilog and C. My Firmware(Verilog) and Software(C) is almost ready for the PDP-8
environment.
You are much farther along in this project. Looks good!
I should be able to emulate 4 RK05 drives simultaneously,
Good idea. I was planning only a single RK05 or RK05F per unit. Each unit would be much smaller than a "real" RK05, would fit in the palm of a hand. Could sit on a table top or mount maybe 2 or 3 drive emulators across on a 2U rack mount panel.
BUT for me the difference between PDP-8 and PDP-11 environment is not clear:
PDP-8: 12 sector/track, Data-checksum , 512Byte/sector , 28 Byte header...
PDP-11: 16 sector/track, Data-CRC(?) , ? , ?
I can't find any adequate documentation for this issue. If you have already made so
much effort to find out one thing then I would be very happy about your information.
I've also been trying to compile this information to better understand the different modes. The attached "RK05 Emulator notes v02.pdf" may have the information you're looking for.
Also "RK05 Timing Calc Sector Fields Timing.pdf" and "RK05 Timing Calc Address Accepted.pdf"
Interface Hardware:
Here the general question always arises: Should the interface work in emulator(=slave)
mode or in reader/clone(=master) mode or switchable in both modes?
I never considered making a reader/clone mode, but it's an interesting idea. All of the drive bus signals would be reversed compared to the emulator, and the functionality is completely different compared to the emulator. Seems like the reader/clone could be a different piece of hardware but with many parts in-common with the emulator. I don't have a working (or non-working, for that matter) RK05 to read and clone from. A PDP-8 plus RK8-E or PDP-11 plus RK11-D/E plugged into an RK05 and RK05 emulator could be the reader/clone system.
From my own experience
with my RL emulator and especially with the MFM emulator, I know that it can be very
complicated if you want to implement both modes on one interface. Especially with the
RK05 it gets much more complicated, because we are still in the open collector world.
And there is no CS signal available to switch in Tri-State mode !
With a RK05 interface, the terminators would have to be switched between slave and
master mode.
I think the same open-collector interface can be used with the reader/clone mode. Just have the M930 terminator plugged into the RK05 being cloned, and of course the signals that have drivers in the emulator need to have receivers in the reader/clone, and vice versa.
I'll try to continue with the emulator mode only first.
That seems like the best path.
 

Attachments

  • RK05 Emulator notes v02.pdf
    2.6 MB · Views: 18
  • RK05 Timing Calc Sector Fields Timing.pdf
    412.6 KB · Views: 13
  • RK05 Timing Calc Sector Fields Timing.pdf
    412.6 KB · Views: 10
  • RK05 Emulator Functions v01.pdf
    715.9 KB · Views: 12
Thank you very much for all your information. They also help me a bit further, especially
the information in the RK05 Emulator notes file.
I use the logic analyzer from https://www.saleae.com/de/downloads/ If you want I can send
you some data, all you have to do is download the software.
It is still not clear to me how the sector format is structured on the PDP11.
I also still have reservations about the Index Pulse. However, everything is
relatively easy to adapt in the verilog and C program.
I have no experience with the ICE40 board and the TQFP chip. solder a 144pin chip
would be too complicated for me. Additionally I tried to use another FPGA because the
DE10-Nano board is hard to get and also relatively expensive. The very cheap TANG NANO 9K
FPGA board comes from China and is unusable. An alternative would be the Mercury board.
But then it's too expensive and has too few I/O pins. So I decided again for the
DE10-Nano board. Everything is available on this board that I need. We can continue to
share our experiences. Maybe I'll have access to a real RK05 soon and can measure
the data with a logic analyzer or maybe another one?
 
I am excited to hear about this being tackled. Not just for the sake of PDP8 and PDP11, but more because RK05's are, as I understand it, identical from the computer's perspective to diablo 31's, which were used just about everywhere. So an RK05 emulator, to my thinking, should be a viable storage solution not only for DEC stuff, but also for DG, Interdata, etc. With an appropriate cable for whatever pinout, of course.
 
I am excited to hear about this being tackled. Not just for the sake of PDP8 and PDP11, but more because RK05's are, as I understand it, identical from the computer's perspective to diablo 31's, which were used just about everywhere. So an RK05 emulator, to my thinking, should be a viable storage solution not only for DEC stuff, but also for DG, Interdata, etc. With an appropriate cable for whatever pinout, of course.
Thanks for mentioning the Diablo 31. I wasn't aware that it was so similar to the RK05. The interface signals of the RK05 and model 31 appear to be nearly identical. Also, the connectors are different, and as you mention, an appropriate adapter cable would be needed.

What's also interesting, is that I was originally considering support for only at the 12 and 16 sector formats for the DEC RK11-D/E and RK8-E. The drive will clearly support any number of sectors as long as there's sufficient space for the index mark. In fact, The model 31 has one more sector address bit than the RK05.
Are there other 2315-style disk cartridges out there that have other than 12 or 16 sectors? There's an example in the Diablo series-30 maintenance manual that shows an 8-sector disk.
1679344341477.png
 
I am excited to hear about this being tackled. Not just for the sake of PDP8 and PDP11, but more because RK05's are, as I understand it, identical from the computer's perspective to diablo 31's, which were used just about everywhere. So an RK05 emulator, to my thinking, should be a viable storage solution not only for DEC stuff, but also for DG, Interdata, etc. With an appropriate cable for whatever pinout, of course.

You can mix RK05 and Diablo 31 disks on a DEC controller as long as the RK05 drives are closest to the controller. The Diablo doesn't supply one signal that the RK05 does. I think that the missing signal is Power OK or something like that.
 
You can mix RK05 and Diablo 31 disks on a DEC controller as long as the RK05 drives are closest to the controller. The Diablo doesn't supply one signal that the RK05 does. I think that the missing signal is Power OK or something like that.
You can mix them if you only have a limited number of devices on a DEC controller. The Diablo 31 disks decode the select lines as 1 of N, versus the RK05 drive which decodes the same lines as drive #. A Diablo can be unit #1, but never #0.

Jerry
 
Are there other 2315-style disk cartridges out there that have other than 12 or 16 sectors?
My Pertec D3000-series manual lists all of these as being available:
Code:
6, 8, 10, 12, 14, 16, 18, 20, 24, 28, 30, 32, 36, 40, 42, 48, 56, 60, 64, 70, 72, 80, 84, 90, 96, 112, 120, 126, 128
I doubt any but the 12 and 16 were very common, but there's probably a few oddballs out there that use some of the others. Not sure how some of the larger ones would've been practical; would you even have enough space left for data in a 128-sector platter?
 
My Pertec D3000-series manual lists all of these as being available:
Code:
6, 8, 10, 12, 14, 16, 18, 20, 24, 28, 30, 32, 36, 40, 42, 48, 56, 60, 64, 70, 72, 80, 84, 90, 96, 112, 120, 126, 128
I doubt any but the 12 and 16 were very common, but there's probably a few oddballs out there that use some of the others. Not sure how some of the larger ones would've been practical; would you even have enough space left for data in a 128-sector platter?
Wow! 128 is crazy. Thanks for the tip about these, I had no idea.
RK05 hardware in the drive detects the Index mark spaced 600 usec following the sector mark, so sectors need to be at least more than 600 usec (0.6 msec) in duration to be able to exist. Spinning the drive at 1500 RPM translates to 40 msec per revolution.

Given this rotation speed and index mark offset there could be no more than 66 sectors in this drive. RK05 has a sloppy SN74123 one-shot in the Index pulse separator, so many less than 66 sectors would work. (and the RK05 has only 4 sector bits on the connector)

Probably should focus on 12 and 16 sector compatibility in the initial versions of the emulator.
 
You can mix them if you only have a limited number of devices on a DEC controller. The Diablo 31 disks decode the select lines as 1 of N, versus the RK05 drive which decodes the same lines as drive #. A Diablo can be unit #1, but never #0.
That's interesting. I wasn't able to find a schematic of the Diablo 31 drive select circuit. The maintenance manual found on bitsavers has a hand written note on the cover: "No Full Schematic!" :ROFLMAO: It has some schematics at the end of the manual, but I couldn't find the drive select circuit.
There was only a short paragraph about drive selection:
1679418745261.png
Maybe Diablo did something strange here, but it sounds like just individual select lines. Or maybe it's that a Model 31 connected to an RK11-D/E that uses binary encoded select lines has limited addresses since Model 31 supports individual select lines. When connected to a PDP-8 RK8-E it might support being any of the four drive addresses.

The DECC RK05 supports both an individual select line mode and a binary encoded drive select mode, which is selected using the BUS_RK11D-L signal.
From the information I've collected: RK8-E uses four individual select lines, RK11-D/E uses three binary encoded select lines.
There's a circuit for this dual-mode drive selection on the M7680 (newer) and M7700 (older):
1679419329218.png

The RK05 emulator FPGA code has a Verilog version of this, except the drive ID is a 3-bit register written by the microcontroller instead of an on-board rotary switch.
 
The DECC RK05 supports both an individual select line mode and a binary encoded drive select mode, which is selected using the BUS_RK11D-L signal.
From the information I've collected: RK8-E uses four individual select lines, RK11-D/E uses three binary encoded select lines.
There's a circuit for this dual-mode drive selection on the M7680 (newer) and M7700 (older):
View attachment 1254466
Back in the day, I wasn't aware of the ability of the RK11D/RK05 to use 1 of N select lines. The gear was a hand-me-down and I didn't have access to schematics, We only had a few drives. I remember putting a Diablo as Unit #1 (first line bit 0) and the RK05's on as Unit #2 or #4 as a work around.
 
That's interesting. I wasn't able to find a schematic of the Diablo 31 drive select circuit. The maintenance manual found on bitsavers has a hand written note on the cover: "No Full Schematic!"

there are four different copies of the maint manual there, you picked the wrong one to look at.
the drive select is done with a jumper across four lines
 

Attachments

  • d30drvsel.png
    d30drvsel.png
    61.5 KB · Views: 16
there are four different copies of the maint manual there, you picked the wrong one to look at.
the drive select is done with a jumper across four lines
Thanks! And it looks like there's some form of this diagram in 3 of the 4 maintenance manuals. I really did pick the wrong one.
So, with the jumper in 1-of-4 positions it's set up for individual select lines.
 
FYI

Getting Carl's work would be useful to you.
He promised to build one for me, and ended up just returning the FPGA board
AFAIK, none of his work was ever documented.
The big issue he ran into was getting enough drive strength on the control bus drivers.
 
Last edited:
Back
Top