Trying to image Miniscribe 3425, looking for tips!

27 views
Skip to first unread message

Brian Minear

unread,
Nov 10, 2025, 11:31:08 AMNov 10
to MFM Discuss
Hi, I have a couple of David's MFM Emulators, they work great, many thanks to him!  I recently acquired an AT&T Unix PC, and it came with a Miniscribe 3425 20MB hard drive, but wouldn't boot, so I replaced it with an MFM emulator and it works great now, but I'd really like to see what was on the original drive, i.e., apps, data, etc.  

The drive spins up properly, and I hear a bit of head seeking, but when I try to image the drive I just get errors:

% mfm_read --analyze --emulation_file attpc_a
Board revision C detected
Found drive at select 1
Command 7 fault 300 status 34
Initial drive ready check failed
Write fault
Not Seek complete
Not Index
Not Ready
Drive selected

I did some googling and found that the stepper motor can get bound up, but when I manually rotate the stepper (yes, not powered up) it seems to rotate well, but regardless I oiled the bearing.  Still get read error.

I didn't want to do it, but I then removed the top cover to see if there was anything obvious, but don't see anything, platters look great (no head crash).  In my google drive there is a video of the drive when it initializes.  The platters spin up and then the heads seek back and forth briefly.  If I manually rotate the stepper so that the heads are about half-way in the platter then power it up I was expecting the heads to seek back to track 0, but it does the same thing and just move back and forth a bit before stopping.  I don't know the exact terminology, but it stops when the metal arm attached to the stepper motor is exactly aligned with the sensor.

Anyway, would love to see what gems might be on this hard drive.  Any tips from the pros on what I could try next to get this drive working just enough to image it?  Would it help to re-cap it, that's within my skill set.

All help appreciated, thank you!

Al Kossow

unread,
Nov 10, 2025, 11:38:21 AMNov 10
to mfm-d...@googlegroups.com
On 11/10/25 8:31 AM, Brian Minear wrote:
> I manually rotate the stepper (yes, not powered up)

You REALLY REALLY REALLY do NOT want to move the heads when the platter isn't spinning.
Disconnect the stepper motor and do it only when powered up

David Gesswein

unread,
Nov 10, 2025, 12:06:05 PMNov 10
to mfm-d...@googlegroups.com
This is the most suspicious.
> Write fault

Does the drive activity light blink in a pattern?

Have you verified the drive has the termination resistor installed?

You might want to try powering up the drive without the emulator connected
and see if you still get write fault. The signals are open collector so
you will need to either pull the signal up with a resistor or diode check
with a meter should also work.

Had a problem with another drive which would declare write fault and made
code changes to deal with it a while ago.

On Mon, Nov 10, 2025 at 08:31:08AM -0800, Brian Minear wrote:
> Hi, I have a couple of David's MFM Emulators, they work great, many thanks
> to him! I recently acquired an AT&T Unix PC, and it came with a Miniscribe
> 3425 20MB hard drive, but wouldn't boot, so I replaced it with an MFM
> emulator and it works great now, but I'd really like to see what was on the
> original drive, i.e., apps, data, etc.
>
> The drive spins up properly, and I hear a bit of head seeking, but when I
> try to image the drive I just get errors:
>
> % mfm_read --analyze --emulation_file attpc_a
> Board revision C detected
> Found drive at select 1
> Command 7 fault 300 status 34
> Initial drive ready check failed
> Write fault
> Not Seek complete
> Not Index
> Not Ready
> Drive selected
>
> I did some googling and found that the stepper motor can get bound up, but
> when I manually rotate the stepper (yes, not powered up) it seems to rotate
> well, but regardless I oiled the bearing. Still get read error.
>
> I didn't want to do it, but I then removed the top cover to see if there
> was anything obvious, but don't see anything, platters look great (no head
> crash). In my google drive
> <https://drive.google.com/drive/folders/1IVoE6tWprlbq8g_E1G2BVIPZ2bIZDpj4?usp=sharing>
> there is a video of the drive when it initializes. The platters spin up
> and then the heads seek back and forth briefly. If I manually rotate the
> stepper so that the heads are about half-way in the platter then power it
> up I was expecting the heads to seek back to track 0, but it does the same
> thing and just move back and forth a bit before stopping. I don't know the
> exact terminology, but it stops when the metal arm attached to the stepper
> motor is exactly aligned with the sensor.
>
> Anyway, would love to see what gems might be on this hard drive. Any tips
> from the pros on what I could try next to get this drive working just
> enough to image it? Would it help to re-cap it, that's within my skill set.
>
> All help appreciated, thank you!
>
> --
> You received this message because you are subscribed to the Google Groups "MFM Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to mfm-discuss...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/mfm-discuss/c1a707d0-4342-48e0-bf95-c1c84c9a98a8n%40googlegroups.com.

Brian Minear

unread,
Nov 10, 2025, 4:11:51 PMNov 10
to MFM Discuss
On Monday, November 10, 2025 at 11:06:05 AM UTC-6 d...@pdp8online.com wrote:
Does the drive activity light blink in a pattern?

Well, mine didn't have an LED so I wired one to J11.  Yes, I get 1010,
which is:

Code A - Track Zero interrupter misadjusted

Have you verified the drive has the termination resistor installed?


Yes, termination resistor installed.
 
You might want to try powering up the drive without the emulator connected
and see if you still get write fault. The signals are open collector so
you will need to either pull the signal up with a resistor or diode check
with a meter should also work.

I'm going to work on the track 0 issue, seems like until I get past that the rest of moot.

thanks for the help so far!

Brian Minear

unread,
Nov 10, 2025, 5:15:05 PMNov 10
to MFM Discuss
OK, I fiddled with the drive interrupter for a while.  Loosen set screw, rotate interrupter slightly one direction, retighten, test...rinse repeat.  I have now eliminated the Track Zero interrupter misadjusted error message and the drive "boots" clean (no LED errors).  Now when I attempt to the mfm_read I get:

Board revision C detected
Found drive at select 1
Drive RPM 3600.4
No more peaks in histogram
No more peaks in histogram
Retrying on cylinder 0 head 1
No more peaks in histogram
Unable to determine drive format

So I'm wondering if I now have the interrupter aligned properly onto a track, but not track 0??

David Gesswein

unread,
Nov 10, 2025, 8:14:40 PMNov 10
to mfm-d...@googlegroups.com
Hopefully track 0 is just now aligned to a cylinder < 0.

You can use mfm_read --analyze=50,1 --ignore_seek_error to seek to cylinder 50
and try to read it. If your lucky it will print out a format. You can try
others heads and cylinders.

If you just want to generate an extracted data file you can paste the arguments
on mfm_read command except increase the number of cylinders by how far off
it is.

To generate an emulator file you will need to modify drive.c drive_seek_track0
to seek the proper number of tracks to get to track 0 after it returns to
where the drive says track 0 is.

To do that call drive_step with update_cyl 0.
> --
> You received this message because you are subscribed to the Google Groups "MFM Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to mfm-discuss...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/mfm-discuss/53c6346e-cb3e-4ec6-9997-958f3df3b515n%40googlegroups.com.

Brian Minear

unread,
Nov 11, 2025, 11:14:34 AMNov 11
to MFM Discuss
Hi, thanks for that suggestion.  I tried a series of --analyze=x,1 and in most cases it found a matching format, but then errored.  So it seems I made progress.  It didn't start matching a format until I hit 4,1.  So is that my offset?

debian@mfmemu-beagle-float:~/emulation$ mfm_read --analyze=50,1 --ignore_seek_error

Board revision C detected
Found drive at select 1
Drive RPM 3600.4
Found matching format RQDX2: good count difference -1
Found matching format WD_3B1: good count difference 0
Found matching format CORVUS_OMNI: good count difference -2
Found matching format Souyz-Neon: good count difference -1

Retrying on cylinder 0 head 1
No more peaks in histogram
No more peaks in histogram
Retrying on cylinder 1 head 1

No more peaks in histogram
Unable to determine drive format

debian@mfmemu-beagle-float:~/emulation$ mfm_read --analyze=100,1 --ignore_seek_error

Board revision C detected
Found drive at select 1
Returning to track 0
Drive RPM 3600.3
Found matching format RQDX2: good count difference -1
Found matching format WD_3B1: good count difference 0
Found matching format CORVUS_OMNI: good count difference -2
Found matching format Souyz-Neon: good count difference -1

Retrying on cylinder 0 head 1
Primary transition period 92 ns, should be around 200
Primary transition period 95 ns, should be around 200
Retrying on cylinder 1 head 1

No more peaks in histogram
Unable to determine drive format

debian@mfmemu-beagle-float:~/emulation$ mfm_read --analyze=1,1 --ignore_seek_error

Board revision C detected
Found drive at select 1
Returning to track 0
Drive RPM 3600.4
Primary transition period 97 ns, should be around 200

No more peaks in histogram

debian@mfmemu-beagle-float:~/emulation$ mfm_read --analyze=2,1 --ignore_seek_error

Board revision C detected
Found drive at select 1
Returning to track 0
Drive RPM 3600.3
Primary transition period 97 ns, should be around 200

No more peaks in histogram

debian@mfmemu-beagle-float:~/emulation$ mfm_read --analyze=3,1 --ignore_seek_error

Board revision C detected
Found drive at select 1
Returning to track 0
Drive RPM 3600.4
Primary transition period 97 ns, should be around 200

No more peaks in histogram

debian@mfmemu-beagle-float:~/emulation$ mfm_read --analyze=4,1 --ignore_seek_error

Board revision C detected
Found drive at select 1
Returning to track 0
Drive RPM 3600.4
Found matching format RQDX2: good count difference -1
Found matching format WD_3B1: good count difference 0
Found matching format CORVUS_OMNI: good count difference -1
Found matching format Souyz-Neon: good count difference -1

Retrying on cylinder 0 head 1
No more peaks in histogram
No more peaks in histogram

David Gesswein

unread,
Nov 11, 2025, 1:40:19 PMNov 11
to mfm-d...@googlegroups.com
Forgot it would try to test another track if it found multiple formats.
Since one was difference 0 not sure if it really needs to try again. You can
modify the code to not do that if needed.

Yes if you found track 0 at 4 that is likely where it really is.

I would try adding call to drive_step at end of drive_seek_track0 in drive.c
drive_step(DRIVE_STEP_FAST, 4, DRIVE_STEP_NO_UPDATE_CYL, DRIVE_STEP_RET_ERR);
and see what happens.
> To view this discussion visit https://groups.google.com/d/msgid/mfm-discuss/fa79f4e4-d6fc-4b1d-89c0-b39fc9ca566cn%40googlegroups.com.

Brian Minear

unread,
Nov 12, 2025, 3:53:43 PMNov 12
to mfm-d...@googlegroups.com
> I would try adding call to drive_step at end of drive_seek_track0 in drive.c drive_step(DRIVE_STEP_FAST, 4, DRIVE_STEP_NO_UPDATE_CYL, DRIVE_STEP_RET_ERR); and see what happens.

Seems to be making progress. I added the call to drive_step as you suggested. I'm 99% sure this drive is 615 cylinders, 4 heads, 17 sectors. It seems to find that heads 3 and 4 are not there, so it suggests 2 heads. It then images the drive, but only half...if I'm reading this correctly.

debian@mfmemu-beagle-float:/opt/mfm/mfm$ mfm_read --analyze --emulation_file attpc_a --extracted_data_file attpc_extract
Board revision C detected
Found drive at select 1
Returning to track 0
Drive RPM 3600.3
Found matching format RQDX2: good count difference -1
Found matching format WD_3B1: good count difference 0
Found matching format CORVUS_OMNI: good count difference -1
Found matching format Souyz-Neon: good count difference -1
Retrying on cylinder 0 head 1
Found matching format RQDX2: good count difference -1
Found matching format WD_3B1: good count difference 0
Found matching format CORVUS_OMNI: good count difference -1
Found matching format Souyz-Neon: good count difference -1
Multiple matching formats found, using best
Selected head 4 found 0, last good head found 1
Read errors trying to determine sector numbering, results may be in error
Number of heads 2 number of sectors 17 first sector 0
Interleave (not checked): 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Drive didn't reach track 0 testing fast ST412 seek
Drive didn't reach track 0 testing slow ST506 seek
Seek test didn't work. Trying to read disk anyway with fast seeks.
If read successful email d...@pdp8online.com with drive model.
Drive supports buffered seeks (ST412)
No sectors readable from cylinder 616
Stopping end of disk search due to two unreadable tracks in a row
Number of cylinders 616, 10.7 MB

Command line to read disk:
--format WD_3B1 --sectors 17,0 --heads 2 --cylinders 616 --header_crc 0xffff,0x1021,16,0 --data_crc 0xffff,0x1021,16,0 --sector_length 512 --retries 50,4 --drive 1
Returning to track 0

< various cylinder issues starting at 612...which is suspiciously 616-4>

Found cyl 0 to 615, head 0 to 1, sector 0 to 16
Expected 20944 sectors got 20807 good sectors, 128 bad header, 9 bad data
0 sectors marked bad or spare
0 sectors corrected with ECC. Max bits in burst corrected 0
Track read time in ms min 18.505333 max 125.818375 avg 42.178079
To view this discussion visit https://groups.google.com/d/msgid/mfm-discuss/aRODEUSCqPgYFOdD%40hugin3.

Chris Burrows

unread,
Nov 12, 2025, 5:29:37 PMNov 12
to mfm-d...@googlegroups.com
On Thu, Nov 13, 2025 at 7:23 AM Brian Minear <br...@minear.com> wrote:
> I would try adding call to drive_step at end of drive_seek_track0 in drive.c drive_step(DRIVE_STEP_FAST, 4, DRIVE_STEP_NO_UPDATE_CYL,  DRIVE_STEP_RET_ERR); and see what happens.

Seems to be making progress.  I added the call to drive_step as you suggested.  I'm 99% sure this drive is 615 cylinders, 4 heads, 17 sectors.  It seems to find that heads 3 and 4 are not there, so it suggests 2 heads.  

FYI - I've recently been working with an Adaptec ACB 201A drive controller on an IBM XT. Their parameter lists state this for the Miniscribe 3425 drive: 

Capacity: UNFMT/FMT = 25.5 MB / 21.3 MB, 4 Heads, 612 Cylinders, 2-500us Step

David Gesswein

unread,
Nov 12, 2025, 5:47:54 PMNov 12
to mfm-d...@googlegroups.com
Try rereading forcing the proper number of heads
mfm_read --format WD_3B1 --sectors 17,0 --heads 4 --cylinders 616 --header_crc 0xffff,0x1021,16,0 --data_crc 0xffff,0x1021,16,0 --sector_length 512 --retries 50,4 --drive 1 --emulation_file attpc_a --extracted_data_file attpc_extract
> To view this discussion visit https://groups.google.com/d/msgid/mfm-discuss/DM5PR1501MB21529AD1B0315FD8574EE851DFCCA%40DM5PR1501MB2152.namprd15.prod.outlook.com.

Brian Minear

unread,
Nov 12, 2025, 6:32:00 PMNov 12
to mfm-d...@googlegroups.com
> Try rereading forcing the proper number of heads mfm_read --format WD_3B1 --sectors 17,0 --heads 4 --cylinders 616 --header_crc 0xffff,0x1021,16,0 --data_crc 0xffff,0x1021,16,0 --sector_length 512 --retries 50,4 --drive 1 --emulation_file attpc_a --extracted_data_file attpc_extract

Yep, tried that immediately after I first encountered the mismatch :) It just gave errors on every read via those heads.

David, I looked at the 10MB extracted data file it created, and basically it's 99% the same byte pattern, very little deviation. Even though it's only reading one platter should I at least see lots of deviation if there's an actual file system with data? I looked at the AT&T Unix PC image that you have on your website that obviously has good data and it's varied throughout until what is probably free space at the end. Maybe this drive was wiped.

David Gesswein

unread,
Nov 12, 2025, 6:46:13 PMNov 12
to mfm-d...@googlegroups.com
Sounds like it was wiped.
> --
> You received this message because you are subscribed to the Google Groups "MFM Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to mfm-discuss...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/mfm-discuss/DM5PR1501MB2152D5E1C2048BCDA1A2F571DFCCA%40DM5PR1501MB2152.namprd15.prod.outlook.com.
Reply all
Reply to author
Forward
0 new messages