• Please review our updated Terms and Rules here

MFM emulator, zrqch0 and friends - some notes

iainmaoileoin

Experienced Member
Joined
Dec 24, 2014
Messages
216
Location
inverness
I have been running a couple of mfm emulator boards (http://www.pdp8online.com/mfm/) for a while now. Most things working very well. At present all on 11/73 and 11/83 with BSD2.11 as the OS - but I have plans to move to older kit once I get an understanding of the MFM and what it does.

First: hats off to some very nice kit. If YOU do what it says on the tin, then IT does indeed do what IT says on the tin.

After that I wandered off into a few areas that gave me trouble - with the old XXDP dec formatters.

Others may have seen these problems from different angles and be able to help.

For those who have not seen them and head in an "MFM emulator" direction it may save you time and frustration.

Background
11/73 with RL02s and an M7555 (RQDX3 controllers).

I have no trouble using the emulator to "image" an existing disk and then use that on the 11/73. Works a dream. I have copied 4 old RD5x type disks onto the beagleboard - and backed them up to my linux system with no problems.

Then I decided to make a "disk" from scratch - without reading in an existing drive,

Ttry as I might I just could not get the dec formatter ZRQCH0 to format the "emulated disk".


DR>STA

CHANGE HW (L) ? Y

# UNITS (D) ? 1

UNIT 0
Enter controller IP Address (O) 172150 ? 172154
What unit do you want to format [0-255] (D) 0 ? 0
Would you like to revector a single LBN only [Y/N] (L) N ? N
Do you want to use the "AUTOFORMAT" Mode [Y/N] (L) Y ? N


Would you like to use the RCT - Revector known bad blocks [Y/N] (L) N ?


**** WARNING ****

ALL DATA ON SELECTED DRIVE WILL BE DESTROYED

Write protect all drives not being formatted.
Please verify that the selected drive is ON LINE
and NOT write protected.

If formatting RX33 media, insert media to be
formatted in the selected drive.

Do you wish to continue [Y/N] (L) Y ? Y


MSCP Controller Model: 19
Microcode Version: 4


Formatting of Diskette on Drive 0 Begun.

ZRQC SYS FTL ERR 00007 ON UNIT 00 TST 001 SUB 000 PC: 105742
Controller has reported a fatal error in the FORMAT program.
Status: LBN format error (drive FORMAT command failed)

Drive 0 was not formatted successfully.

ZRQC EOP 1
1 TOTAL ERRS



(and a thousand other attempts with Y and no and and and)
So errors - some versions of the formatter produced errors about no Unit Information Table.

But other folk on the web had prompts about "make a new one".

So I moved from my trusty XXDP2.5 back to XXDP2.2 - same issue
I went to an XXDP1 disk - no ZRXC?? of ANY sort!

damn it.

rummaged and rurached on the web, dunted my heid off the desk a few times. Perhaps ZRQCH0 I was running was not the unique and only ZRQCH0.
I KNOW that the 0 should be a release and 1 for a different release.

Anyway I found a bunch of other rl02 images on the web, downloaded them and one by one dd'd them into an RL02.
One of these downloads had an image that did more sensible things
DR>START

CHANGE HW (L) ? Y

# UNITS (D) ? 1

UNIT 0
Enter controller IP Address (O) 172150 ? 172154
What unit do you want to format [0-255] (D) 0 ?
Would you like to revector a single LBN only [Y/N] (L) N ?
Do you want to use the "AUTOFORMAT" Mode [Y/N] (L) Y ? N


Would you like to use the RCT - Revector known bad blocks [Y/N] (L) N ?


**** WARNING ****

ALL DATA ON SELECTED DRIVE WILL BE DESTROYED

Write protect all drives not being formatted.
Please verify that the selected drive is ON LINE
and NOT write protected.

If formatting RX33 media, insert media to be
formatted in the selected drive.

Do you wish to continue [Y/N] (L) Y ? Y


MSCP Controller Model: 19
Microcode Version: 4

Do you want to use manufacturing bad block information [Y/N] (A) N ? N

Downline load UIT [Y/N] (A) Y ? Y


UIT Drive Name
_______________________________________________________
0 RD51
1 RD52 part # 30-21721-02 (1 light on front panel)
2 RD52 part # 30-23227-02 (2 lights on front panel)
3 RD53
4 RD31
5 RD54
6 RD32
7 RD33

Enter Unit Identifier Table (UIT) [0-7] (D) ? 5

Continue if bad block information is inaccessible [Y/N] (A) N ? Y

Please type in the serial number [8-10 digits] (A) ? 2222211111


Formatting of Drive 0 Begun.


------------ FORMAT PROGRESS REPORT -------------


1 minute into format ---- Formatting tracks, LBN # 34613
2 minutes into format ---- Formatting tracks, LBN # 68885
3 minutes into format ---- Formatting tracks, LBN # 103242
4 minutes into format ---- Formatting tracks, LBN # 137310
5 minutes into format ---- Formatting tracks, LBN # 171650
6 minutes into format ---- Formatting tracks, LBN # 206007
7 minutes into format ---- Formatting tracks, LBN # 240075
8 minutes into format ---- Formatting tracks, LBN # 274721
9 minutes into format ---- Formatting tracks, LBN # 309061
10 minutes into format ---- First check pass, writing LBN # 35428
11 minutes into format ---- First check pass, writing LBN # 70618
12 minutes into format ---- First check pass, writing LBN # 105808
13 minutes into format ---- First check pass, writing LBN # 140998

Success!

The disk that did the trick for me had an md5sum of 0c5c788d406b3ee6e27c3ebbd13f206a for the 10meg uncompressed file
and a unix sum of 23864 10240
and a dir list of the form
775 ZVTMA0.BIN 19-SEP-81 29 034517
776 ZVTNA0.BIC 19-SEP-81 13 034554
777 ZVTOA0.BIC 19-SEP-81 19 034571
778 WUZ24 .CNF 1-JAN-70 2 034741
779 WUZ24 .MAP 1-JAN-70 2 034743
780 DECX23.BIC 2-JAN-70 66 034747
781 DECX23.CNF 2-JAN-70 2 035051
782 DECX23.MAP 2-JAN-70 9 035053
783 FERRER.LIB 2-JAN-70 2 035064
784 FERRER.BIN 2-JAN-70 73 035066
785 GAMMA .CNF 2-JAN-70 2 035177
786 GAMMA6.BIN 2-JAN-70 95 035201
787 GAMMA6.CNF 2-JAN-70 2 035340
788 GAMMA7.CNF 2-JAN-70 2 035342
789 GAMMA7.BIN 2-JAN-70 95 035344
790 ZRQCB2.BIC 10-MAR-86 28 035503
791 ZRQCH0.BIC 23-AUG-88 73 035537

I dont know where I downloaded the disk from - dulich - too late at night and two tired, and my notebook degenerated into doodles.

Note the 2 files "at the end" of the DIR way out of date sequence.


So,
I can now create a RD disk with 2048 cylinders,16 heads and have a humungous 280Mb disk on the MFM controller.

I hope this saves someone else the time it took me to rummage about.
Soon I will be trying the DX2 controller and then back into the mists of time on older processors ....
 
I am really sorry I dont know ;-( Bad science, no notes in my log book
I think I downloaded 2.2 and 2.5 from that site.
I have

The md5sums are
0c5c788d406b3ee6e27c3ebbd13f206a xxdp+1.rl02
fd79b7a8d7d0d752a8052463c3f399e8 xxdp22.rl02
04845865c63bcc912d7dee922ce9ac59 xxdp25.rl02
253216f8c81f125f1fd35e0ae6a30d88 xxdp+.rl02
and
23864 10240 xxdp+1.rl02
59679 10240 xxdp22.rl02
35180 10240 xxdp25.rl02
31081 10240 xxdp+.rl02

Just downloaded them, I get
[root@jondev Downloads]# md5sum xxdp*.rl02
fd79b7a8d7d0d752a8052463c3f399e8 xxdp22.rl02
04845865c63bcc912d7dee922ce9ac59 xxdp25.rl02
So if I dont have those ones I have something cloned from them or vv.

The file I am calling xxdp+1.rl02 is the rl02 image that worked well for me.
Up until now I have only ever formatted a "real" dec disk, so the UIT block(s) was not an issue and both 2.2 and 2.5 worked for me.

I dont think ANY of the 2.5 images I have used worked on on an mfm emulated disk that was created without cloning a real mfm disk.
The 4 above are the ones that currently exist on my rl02 packs.

I can highly commend djg's board. Living in Scotland I could not get the "whole show" in a oner. I had to get a Beaglebone locally and set it up. I was not sure how messy that would be. It was not, the manual worked fine and the conjuction of boards worked fine.

What really beats me is if that I import it directly from the States I am a terrorist looking for that encryption technology. If I buy it over the counter in Scotland using untraceable cash I am not a terrorist!
Your laws are as daft as ours!
 
I have tried one of these emulators, allthough not with a PDP. This is my experience:

On my unit the low-level format was also a bit of a hassle. Not because the formatter, but because I had missunderstood the role of the Drive 2 ID jumper. Having it set without actually having the second drive headers connected to anything somehow caused a lot of fail. Usually "Drive not ready".

But once I realized and fixed the problem, the emulated drive would successfully low-level format in a PC/AT. I then had to write to all sectors in the target machine, and after that it has worked flawlessly ever since. I'm very happy with this device!

The reason I had to do the low-level format in an AT was because the target machine never had a low-level formatter. If you waned a HDD with this machine, the original disks came pre-formatted and pre-installed from the factory, and the designers assumed the consumer didn't need to perform any formatting at all. Of course I could have written a WD1010 low-level formatter myself, but using the PC/AT was a much easier solution.
 
Last edited:
"Your laws are as daft as ours!"

Given that we are cousins separated by a common language this should not be surprising.

As to whether or not our House of Representatives and Senate have a higher or lower percentage of looney tunes than your equivalent legislative bodies I have no comment. To quote one of our legislators, "furthermore I have no comment regarding why I have no comment."

Or my personal favorite from Sen. Pryor: "You don't need to pass an IQ test to be in the Senate".
 
[.... snip lots .... ]


So,
I can now create a RD disk with 2048 cylinders,16 heads and have a humungous 280Mb disk on the MFM controller.

I hope this saves someone else the time it took me to rummage about.
Soon I will be trying the DX2 controller and then back into the mists of time on older processors ....

Iain,

Do you (or anyone else) have an RQDX3 emulator file for a 280MB MFM drive? I just got a couple of emulator boards for a Vaxstation 2000.
Until I got the boards, I stupidly didn't realize that I'd need edge-connector to edge-connector cables to read an image. I'm also far from sure how to use the emulator to initialize an MFM drive, then supply values for the Microvax 2000 formatter (TEST 70).

Even an RD53 or RD54 image would help!

If no-one has the image or it's a pain to transfer, I guess I'll just start again next week, with cables from an IBM XT, via eBay.
 
Iain,

Do you (or anyone else) have an RQDX3 emulator file for a 280MB MFM drive? I just got a couple of emulator boards for a Vaxstation 2000.
Until I got the boards, I stupidly didn't realize that I'd need edge-connector to edge-connector cables to read an image. I'm also far from sure how to use the emulator to initialize an MFM drive, then supply values for the Microvax 2000 formatter (TEST 70).

Even an RD53 or RD54 image would help!

If no-one has the image or it's a pain to transfer, I guess I'll just start again next week, with cables from an IBM XT, via eBay.
Oh, that *would* be lovely. I'm faced with slogging through to try to make a 280MB emulated disk myself, but if some kind soul just made a image file available that would save potentially a whole lot of suffering.
 
Until I got the boards, I stupidly didn't realize that I'd need edge-connector to edge-connector cables to read an image. I'm also far from sure how to use the emulator to initialize an MFM drive, then supply values for the Microvax 2000 formatter (TEST 70).
You don't need edge-connector to edge-connector cables to read an image of an existing drive. You use J3 and J4 which are normal headers. http://www.pdp8online.com/mfm/revb/revb_board_build.shtml. You need female 0.025 header to edge connector.

For emulator side of initializing an image see in previous link the line with --initialize
Even an RD53 or RD54 image would help

See VAXStation on http://www.pdp8online.com/mfm/status.shtml for a RD53 formatted image. I don't think I can make the maximum size image on my VAXStation since i don't know how to manually specify the drive geometry. Might be able to make an RD54. If someone makes maximum size image I will put it on that page.
 
Formatting non-DEC disks in the MicroVAX/VAXstation-2000(part 1)
--------------------------------------------------------
By Bob Armstrong with additions from Kees Stravers

Some of this information I figured out by reading STARLET and the
example device drivers in the VMS _Device Support_ manuals. Much of
it was contributed to me by Terry Kennedy, Lennart Boerjeson, and
others.

The standard DEC drives that are supported in the VS2000 and their
industry equivalents are:

RD54 - Maxtor XT-2190
RD53 - Micropolis 1325 or 1335
RD31 - Seagate ST-225
RD32 - Seagate ST-251-1

If you have any of these standard drives you can simply plug it into
your 2000 and the ROM formatter will automatically recognize the drive
types. I've never seen this fail, even if the drive has never seen a
DEC machine before, or even if the drive was previously formatted in
a PC.

If the VS2000 ROM formatter program does not recognize one of these
drive types, then it will enter a dialog asking you to enter the drive
parameters described below. Again, I've never seen this fail, even
with very old ROM firmware versions (v1.2 is the oldest I've seen).
If you get a "??" response rather than the dialog, you almost certainly
have a hardware problem with your drive.

In theory you can use ANY MFM drive in the VS2000 by calculating
the appropriate parameters. I've done this with several non-DEC
drives with good success now, and following is a description of what
I've learned about the parameters. If you can contribute to any
of the "I don't know" parts, I'd like to hear about it!

The formatting dialog for an unknown hard disk is as follows:

------------------------------------------------------------------------

>>> TEST 70
VSfmt_QUE_unitno (0-2) ? 0 [Enter drive number]

VSfmt_STS_Siz .......... ???? [Formatter does not recognize drive type]

VSfmt_STS_EntUIB [Formatter wants drive details]

[this example is from the VS2000 technical manual]

xbnsiz :=54 [enter the number of transfer blocks]

dbnsiz :=48 [enter the number of diagnostic blocks]

lbnsiz :=83236 [enter the number of logical blocks]

rbnsiz :=200 [enter the number of replacement blocks]

surpun :=6 [enter the number of surfaces per unit]

cylpun :=820 [enter the number of cylinders per unit]

wrtprc :=820 [enter the write precompensation cylinder]

rctsiz :=4 [enter the size of the revectoring control table (RCT)]

rctnbr :=8 [enter the number of copies of the RCT]

secitl :=1 [enter the sector interleave]

stsskw :=2 [enter the surface to surface skew]

ctcskw :=9 [enter the cylinder to cylinder skew]

mediai :=627327008 [enter the MSCP media ID]

* Note this number is not dependant on disk geometry, but is the
* magic number for VMS to report on the type of disk.

At this point, the formatter exits the query mode.

The next output to the screen is:

VSfmt_QUE_SerNbr (0-999999999) [enter the serial number for
the drive]
[or enter a unique number
for each unit]

VSfmt_QUE_RUsure (DUAx 1/0) ? [where x equals the unit number]
[enter 1 for YES, 0 for NO]

The formatter is now running, and the output should look like:

VSfmt_STS_RdMbb.............OK [manufacturer's bad block located]

VSfmt_STS_FMTing............OK [disk formatted OK]

VSfmt_STS_ChkPss............OK [check pass completed OK]

VSfmt_STS_BBRvec := x [number of bad blocks revectored]

VSfmt_RES_Succ [disk is successfully formatted]

>>>

At this point, the disk has been succesfully formatted, and the
console command prompt is displayed.
 
(part 2)
------------------------------------------------------------------------


Explanation of drive specifics:


XBNSIZ - number of transfer blocks. All DEC's disks seem to use 54,
regardless of the disk capacity.


DBNSIZ - number of diagnostic blocks. DEC seems to select this so that the
DBNs and XBNs total up to 1 cylinder. Therefore:

DBNSIZ = (SURPUN*17) - XBNSIZ


LBNSIZ - total number of user data blocks, not counting DBNs and XBNs.
I believe that

LBNSIZ = CYLPUN * SURPUN * 17

the numbers I have for DEC disks are close to this, but not
exact. There must be some ambiguity about what gets counted.


RBNSIZ - replacement block count (for bad block revectoring). About 0.1%
to 1% of the disk capacity is reasonable, depending on the media
quality. DEC seems to always use 0.2%. This is frequently
rounded to an exact number of cylinders, but I'm not sure that's
necessary. WARNING - if you allocate fewer RBNs than your disk
has bad sectors, the VS2000 formatter seems to hang in the media
analysis phase!


SURPUN - surfaces (aka heads) per drive. Note that the RQDX? will ALWAYS
assume 17 sectors per track, 512 bytes per sector! The RQDX
controllers can handle a maximum of 16 heads.


CYLPUN - cylinders per drive. Total number of cylinders on the drive.
I believe, but I'm not sure, that this does NOT include the
cylinders used for DBNs, RBNs and XBNs. Note that the RQDX
family controllers can handle a maximum of 2048 cylinders
(but I don't think there were ever any MFM drives made with
even close to that number!).


WRTPRC - cylinder to start write precompensation. If your drive doesn't
need write precomp (almost none do), then enter a value larger
than the last cylinder.


RCTSIZ - size of the Replacement (i.e. Bad Block Replacement) and Caching
Table. From the structure of the RCT, I believe this can be
calculated as

RCTSIZ = (44 + 4*RBNSIZ) / 512

but unfortunately this doesn't give the values DEC uses for
their drives! You could also just use the RCTSIZ from the
closest sized DEC disk.


RCTNBR - number of copies of the RCT. I'm not sure of the significance
of this, but DEC disks always use 8.


SECITL - sector to sector interleave. The RQDX is fast enough to support
1 (i.e. no interleaving). Anything larger will reduce thruput.
SECITL is a function of the disk rotational speed, and is the same
for all MFM drives regardless of capacity.


STSSKW - delay for switching heads. I don't know how to calculate this or
even what units it's expressed in! All drives seem to use 2.


CTCSKW - delay for track-to-track seek. I don't know how to calculate this
or even what units it's expressed in! All DEC drives use 8.


MEDIAI - media identification code. This is a 32 bit value which the ROM
wants you to enter in DECIMAL, not hex! Standard values are:

RD32 - 627327008
RD33 - 627327010
RD53 - 627327029
RD54 - 627327030

The last section explains how the media id is calculated if you
are interested. If you use a non-DEC media id, be aware of two
things: (1) the ROM disk diagnostic won't work, and (2) the VMS
MSCP cluster server won't serve the disk.

------------------------------------------------------------------------

Here are the parameter values for some DEC disks, and those that I've
successfully used for a Seagate ST-4097 (an 80Mb drive).

RD54 RD53 ST4097
------ ------ ------
XBNSIZ 54 54 54
DBNSIZ 201 82 99
LBNSIZ 311256 138672 156060
RBNSIZ 609 280 306
SURPUN 15 8 9
CYLPUN 1221 1020 1021
WRTPRC 1221 1020 1024
RCTSIZ 7 5 5
RCTNBR 8 8 8
SECITL 1 1 1
STSSKW 2 2 2
CTCSKW 8 8 8
MEDAI 627327030 627327029 627327029

------------------------------------------------------------------------

Media Identification Code

The media id is a longword (32 bit) value composed of five 5-bit
alphabetic characters and one 7-bit binary value. The five characters
start from bit 31 (the MSB) of the longword and are encoded as 0=null,
1='A', 2='B', etc. Only letters (and a null) can be represented.

The first two characters represent the media type (e.g. "DU") and
the next three are the name of the media currently mounted (e.g.
"RD" or more accurately, "RD").

The 7-bit binary value is the numeric part of the media name
(e.g. 32, 53, 54, etc).

For example, for an RD54 we have


D U R D 54
00100 10101 10010 00100 00000 0110110

Write this down as a 32 bit hex value and we have 0x25644036 or
627327030 (decimal).

Bob.

Formatting a known hard disk with a VS2000

Example of formatting an RD32 hard disk
>>>> TEST 70

VSfmt_QUE_unitno (0-2) ? 0 [enter the drive number of the hard disk]

VSfmt_STS_Siz........... RD32 [formatter recognized DUA0 as a RD32]

VSfmt_QUE_SerNbr (0-999999999) [enter the serial number for the drive]
[or enter a unique number for each unit]

VSfmt_QUE_RUsure (DUAx 1/0) ? [where x equals the unit number]
[enter 1 for YES, 0 for NO]

VSfmt_STS_RdMbb.............OK [manufacturer's bad block located]

VSfmt_STS_FMTing............OK [disk formatted OK]

VSfmt_STS_ChkPss............OK [check pass completed OK]

VSfmt_STS_BBRvec := x [number of bad blocks revectored]

VSfmt_RES_Succ [disk is successfully formatted]

>>>>

Formatting a floppy with a VS2000

Example of formatting an RX33 floppy diskette
>>>> TEST 70

VSfmt_QUE_unitno (0-2) ? 2 [enter the drive number of the floppy drive]

VSfmt_QUE_RXmedtyp
( 1=RX33 ) ? 1 [enter a 1 if RX33 diskette media]

VSfmt_QUE_RUsure (DUA2 1/0) ? 1 [enter a 1 for yes, 0 for no]
[DUA0 is the first hard disk, DUA1 the second,
and DUA2 is the floppy drive]

VSfmt_STS_FMTing .....OK [diskette formatted OK]

VSfmt_STS_CkRXfmt ....OK [RX33 format checked OK]

VSfmt_RES_Succ [diskette is formatted successfully]

>>>>
 
"Your laws are as daft as ours!"

Given that we are cousins separated by a common language this should not be surprising.

As to whether or not our House of Representatives and Senate have a higher or lower percentage of looney tunes than your equivalent legislative bodies I have no comment. To quote one of our legislators, "furthermore I have no comment regarding why I have no comment."

Or my personal favorite from Sen. Pryor: "You don't need to pass an IQ test free to be in the Senate".
I still need an RQDX3 emulator file for a 280MB MFM drive. If anyone has it or knows how to transfer the file, I would greatly appreciate the help. Otherwise, I will start again next week with cables from an IBM XT via eBay.
 
Back
Top