This page is about a PDP-11 QBUS non-DEC MFM Winchester Disc Controller that I really like: the Webster SRQD11-A.
The SRQD11 is similar in some ways to DEC’s family of RQDX controllers. Both boards are “dual-height” QBUS boards, and both can be used to connect an MFM hard drive to a QBUS-based PDP-11 system.
But there are also plenty of differences, as shown in the table below:
Item | SRQD11 | RQDXn | |
---|---|---|---|
No of supported drives | 1 | 0-4 | |
Speed | Good | Fair | |
Supports any drive geometry | Yes | No | |
On-board formatting and diagnostic software | Yes | No | |
Can autoboot without a separate ROM board | Yes | No | |
Drive connects directly to the board | Yes | No | |
Also supports floppy drives | No | Yes |
Here are some pictures of the SRQD11-A and the drive I’m using with it (a Micropolis 1325, which DEC sold as a RD53).
Configuring the board
This board is fairly simple to configure. There is only a small number of jumpers and they are shown in Section 3.2 of the SRQD11-A User Manual (see Links section below to obtain the User Guide). If your system already contains boot ROMs (such as the built-in boot menu on the KDF11B (M8189), you’ll want to disable the SRQD11’s on board bootstrap.
Make sure your drive is configured to respond to DS1 (and only DS1). Also check that the drive has a set of termination resistors fitted. These are essential, as the control signals are open-collector.
Once you have the board configured, connect the MFM drive to the board using a simple set of straight-through connectors. There’s one 20-way cable and one 34-way cable. Now go ahead and plug the board into the QBUS backplane.
You’ll need to supply +5V and +12V to the drive. It’s very likely that you’ll be able to tap into the power supply outputs of your QBUS chassis to supply these to the drive.
Introducing the WOMBAT
The SRQD11 is very different to DEC RQDXn controllers when it comes to doing the low-level format of the drive. The SRQD11 doesn’t need (and can’t use) the XXDP diagnostics and utilities designed for the RQDXn controllers. Instead, we’re going to use the SRQD11 on-board software known as “WOMBAT” to format the drive.
To startup WOMBAT, power up your PDP-11 and get to the ODT prompt. From there we’re going to toggle in a very short piece of code as shown below (this is from Section 5.1 of the User Manual). At the end of each line press LINEFEED (if working from a real serial terminal) or otherwise CTRL-J (if working from a PC keyboard).
@1000/000000 106427 ↓ 001002/177777 340 ↓ 001004/000000 12737 ↓ 001006/000000 250 ↓ 001010/177777 172150 ↓ 001012/000000 777 ⤶ @
Now we’re going to use ODT’s “G” command to execute that toggle-in program. We type 1000G (without a RETURN or LINEFEED) and you’ll immediately get WOMBAT’s Master Menu shown on your console, as shown below:
@1000g*** WOMBAT Version: 3.11. *** Disc unformatted ** Master Menu ** 1 Structure Disc 2 Test Disc 3 Manage Bad Blocks 4 Initialise Controller 5 Position Head on Shipping Zone Option:
As shown above, WOMBAT detected that the drive is not yet formatted.
Below this main menu there are a number of nested sub-menus that you can access. Go ahead and navigate around a little, to see what WOMBAT has to offer. TIP: to move back up one level of the menu, just press RETURN without entering a number.
Problems accessing the WOMBAT menu
Between printing the sign-on banner (“*** WOMBAT Version: 3.11. ***”) and the “Master Menu”, WOMBAT appears to interrogate the drive, to determine whether or not it is already formatted. Back in February 2017, I encountered two circumstances in which WOMBAT will just hang at this point. Firstly, WOMBAT will hang if the drive is not configured to respond to (and only to) DS1. Secondly, WOMBAT will hang if the drive is faulty. I’m not sure which hardware faults cause this (the manual does not explain this point).
I had further difficulties with a second SRQD11 board in October 2019. It was connected to a Hitachi DK502-3 drive (26MB unformatted, 20MB formatted). I could not get into WOMBAT at all using the ODT method. I connected a known-good ST225 and had the same problem. The only way I could get into WOMBAT was to set the board to autoboot, and then press CTRL-C during the boot process. That got me to a “>” prompt, and from there you can use the “W” command to enter WOMBAT.
Formatting the drive
The formatting process is described in Section 5 of the SRQD11 User Guide. At a minimum, please read the “Field Descriptions” on pages 29-33 of the User Guide. You’ll need to know this information to be able to provide sensible data to WOMBAT about your drive.
Now is also a good time to go read any data you can find about your particular MFM drive. For example, you’ll need to know the number of cylinders, heads and sectors-per-track. Here are the basic specifications for some of the drives that I have used on the SRQD11:
- Seagate ST-412 (DEC RD51): 10MB drive. 306 Cylinders, 4 Heads, 17 Sectors
- Seagate ST-225 (DEC RD31): 20MB drive. 615 Cylinders, 4 Heads, 17 Sectors
- Seagate ST-4053: 44MB drive. 1024 Cylinders, 5 Heads, 17 Sectors
- Maxtor XT-1140: 120MB drive. 918 Cylinders, 15 Heads, 17 Sectors
Here is a rough guide to the information you will need to know to answer WOMBAT’s questions about the drive:
- Number of Cylinders: As specified in the drive’s user manual or specifications
- Number of Heads: As specified in the drive’s user manual or specifications
- Number of Sectors: This is the number of 512-bytes sectors per track. Always use 17 here, unless the drive RPM is very accurate (in which case 18 may be possible). This is explained in more detail in the SRQD11 User Guide. Note that the drive’s manufacturer may quote a higher number of sectors that would apply if you were using 256-byte sectors. Ignore that higher number, as the PDP-11 uses 512-byte sectors
- Interleave Factor: Use 3 here, unless you have very fast memory (in which case 2 may may be possible)
- Replacement Cylinders: The SRQD11 says to use a minimum of 6 here
- Head Step Rate: I use the default value of 0 here (35 uSec). If you suspect a problem, check the step rate in the drive’s user manual or specifications, and lookup the corresponding value in the QRWD11 User Guide. For example: a value of 10 gives a 5.0 mSec step rate
- All other settings: I just use the default values (by simply pressing Enter) for all other settings. For “Shipping Zone Cylinder” you might however want to use the value shown in the drive’s user manual or specifications, if it is stated.
The formatting process involves the following steps:
- “Create Disc Structure” (in RAM) by using menu option 1-1. This is where we answer questions about the drives geometry, so the controller can do the low-level format correctly.
- “Format Disc” by using menu option 1-2. This will destroy any information currently on the drive, so be sure this is what you want to do!.
- Optionally, you might want to do some testing of the drive’s integrity. I do this using the “! Write Disc !” test which is menu option 2-2. For my RD53 (69MB drive) I let it do 3 complete passes and that took about 30 minutes. The test will continue indefinitely until you press CTRL-C.
- “Write Disc Structure” (from RAM to the hard disc) by using menu option 1-3. This is necessary so that the SRQD11 knows the drive geometry each time the PDP-11 is booted.
Here is a dialog showing the console I/O when using WOMBAT to format a Micropolis 1325 (also known as a DEC RD53) 69MB drive using WOMBAT:
** Master Menu ** 1 Structure Disc 2 Test Disc 3 Manage Bad Blocks 4 Initialise Controller 5 Position Head on Shipping Zone Option: 1 ⤶ ** Disc Structure Menu ** 1 Create Disc Structure 2 Format Disc 3 Write Disc Structure 4 Update HDR Blocks 5 Display Disc Structure Option: 1 ⤶ * Disc Characteristics * Created by: WOMBAT Version: 3.; Size, Cylinders:[0.]? 1024 ⤶ Heads:[0.]? 8 ⤶ Sectors per Track: [17-18][18.]? 17 ⤶ Interleave Factor: [2-6][0.]? 3 ⤶ Replacement cylinders:[0.]? 8 ⤶ Head Step Rate:[0.]? 0 ⤶ Command Queue Size: [1-32]:[8.]? 8 ⤶ Seek Optimisation: 0-None, 1-Nearest, 2-Elevator, 3-Forward Optimisation Strategy [0-3]:[0.]? 0 ⤶ Fairness Count:[1-255][25.]? ⤶ Shipping Zone Cylinder:[340.]? ⤶ Media Type: (AAAnn)[WCC69.]? ⤶ Serial Number:(Octal)[0]? ⤶ Unit Number:[0.]? ⤶ User area: 138023 Blocks 'RETRN' to continue: ⤶ ** Disc Structure Menu ** 1 Create Disc Structure 2 Format Disc 3 Write Disc Structure 4 Update HDR Blocks 5 Display Disc Structure Option: 2 ⤶ *** Warning: All information on this Disc will be destroyed, including any bad block mapping! Is this what you want to do [Y/N]?Y ⤶ Cylinder: 0. Cylinder: 64. Cylinder: 128. Cylinder: 192. Cylinder: 256. Cylinder: 320. Cylinder: 384. Cylinder: 448. Cylinder: 512. Cylinder: 576. Cylinder: 640. Cylinder: 704. Cylinder: 768. Cylinder: 832. Cylinder: 896. Cylinder: 960. * Disc Formatted * ** Disc Structure Menu ** 1 Create Disc Structure 2 Format Disc 3 Write Disc Structure 4 Update HDR Blocks 5 Display Disc Structure Option: ⤶ ** Master Menu ** 1 Structure Disc 2 Test Disc 3 Manage Bad Blocks 4 Initialise Controller 5 Position Head on Shipping Zone Option: 2 ⤶ ** Disc Test Menu ** ( ! means all data on Disc destroyed ) 1 Read All Disc (preserves all data) 2 ! Write Disc ! 3 ! Pattern Test ! 4 ! Random Writes ! 5 Display Error Statistics 6 Zero Error Statistics Option: 2 ⤶ Pass: 1. Errors: 0. Pass: 2. Errors: 0. Pass: 3. Errors: 0. [Note: CTRL-C was pressed here, to exit the "Write Disc" test] ** Disc Test Menu ** ( ! means all data on Disc destroyed ) 1 Read All Disc (preserves all data) 2 ! Write Disc ! 3 ! Pattern Test ! 4 ! Random Writes ! 5 Display Error Statistics 6 Zero Error Statistics Option: ⤶ ** Master Menu ** 1 Structure Disc 2 Test Disc 3 Manage Bad Blocks 4 Initialise Controller 5 Position Head on Shipping Zone Option: 1 ⤶ ** Disc Structure Menu ** 1 Create Disc Structure 2 Format Disc 3 Write Disc Structure 4 Update HDR Blocks 5 Display Disc Structure Option: 3 ⤶ ** Disc Structure Menu ** 1 Create Disc Structure 2 Format Disc 3 Write Disc Structure 4 Update HDR Blocks 5 Display Disc Structure Option: ⤶ ** Master Menu ** 1 Structure Disc 2 Test Disc 3 Manage Bad Blocks 4 Initialise Controller 5 Position Head on Shipping Zone Option:
To exit WOMBAT you’ll need to halt the processor or reboot the PDP-11.
Next steps
The drive has now been “low-level formatted”. But it doesn’t yet have a directory structure on it. That step is done through the operating system that you intend to use. For example, in RT-11 you’ll use the INITIALIZE command to write the directory structure on to the disc. Until you’ve done that step, the drive can’t be used to store files.
I’ve explained the process of INITIALIZE’ing a hard drive and loading RT-11 on it on my RQDX Breakout Board page. You may want to take a look there for some further details of this process. But the dialog below shows what happens when I boot RT-11 on the PDP-11 (using a TU58 emulator) and then INITIALIZE the drive using RT-11:
.INITIALIZE/BADBLOCKS DU0: ⤶ DU0:/Initialize; Are you sure? Y ⤶ ?DUP-I-No bad blocks detected DU0: .DIR DU0: ⤶ 0 Files, 0 Blocks 65467 Free blocks .
The DIR command above shows us some interesting information. When we used WOMBAT to “Create Disc Structure”, WOMBAT told us that we’d have a User Area of “138023 Blocks”. A block is 512 bytes, so this equates to approximately 69MB. But the DIR command says that our drive only has “65467 Free blocks”.
So what happened to the other 70,000 blocks?
Well the answer is simple. RT-11 can only handle a maximum partition size of 65536 blocks. That’s fine for drives of up to 32MB (the whole drive will be just one partition – and RT-11 won’t let you break it down into smaller partitions even if you wanted to). But for drives larger than that we need to partition the drive, if we want to access the remainder of it. The process is a bit like partitioning a hard drive on a PC. The difference is that no “partition” structure is actually written to the drive. Instead, RT-11 keeps track of where each DUx drive starts and ends. Each partition is exactly 65536 blocks, except the final one (which instead takes up the remainder of the drive and will be 65536 blocks or less).
I’ll explain the process of partitioning the drive on a separate page some day soon.
Automatic Bootstrap
With link B1 in (and B2 out), the on board bootstrap at address 173000 is enabled. This will boot the MFM drive on power up (assuming you have correct jumper settings on your PDP-11 processor board as well).
Here is the typical dialog shown during the boot process:
SRQD11 Boot V4.5 Booting from DU0: RT-11FB V05.01 .
Notes and errata
The SRQD11 manual says that the DK502-3 drive has the following parameters: 306 cylinders, 4 heads, 17 sectors, 6 replacement cylinders, 0 step rate and 320 shipping cylinder.
However the DK502-3 that I have (which is still connected to a SRQD11) has the following parameters: 306 cylinders, 8 heads, 18 sectors, 6 replacement cylinders, 15 head step rate and 320 shipping cylinder.
The numbers in the manual appear to be incorrect, as they do not result in a 20MB drive capacity.
Links
The SRQD11-A User Manual is available on Bitsavers here.
The Webster company still seems to exist and their current webpage (as at July 2016) claims to have “limited supply” of the SRQD11-B still available! I haven’t contacted them to verify availability. But it seems the page was last updated in 2005, so stock levels may have changed since then.
Revision History
23 July 2016: Posted initial version
5 February 2017: Explained why WOMBAT sometimes hangs at start-up. Added some drive geometry information and some details about questions asked by WOMBAT when structuring a disk.
14 October 2017: Added more details about how to start WOMBAT if the ODT method does not work. Added details of errors in the manual relating to the Hitachi DK502-3 drive.