VOGONS


Reply 20 of 23, by Kekkula

User metadata
Rank Member
Rank
Member

Thanks for your advices.
I got the system working after finding all commodore pc50 bioses at zimmers.
I tested all of them and the issue persisted, so I started to think that the problem is not in system bios but xt-ide bios.
I had assumed that I could use 386 bios since it's 386 system. After changing to at bios, sytem started to accept no drive option in system bios, and sytem booted normally.

Reply 21 of 23, by Deunan

User metadata
Rank l33t
Rank
l33t
rasz_pl wrote on 2026-04-03, 14:17:

I have disk captures from mfm WD1003V-MM2, rll WD1003V-SR1 & WD1006V-SR2. Sadly all with 6 Head drives so I never saw what you describe 🙁
All WDs seem to use 3 byte headers (decode_id_rec_3byte) where Head number is limited to 4 bits (0x0F).

I've dug it up, it's mentioned in WD1006V-MM2 short manual:

A minor incompatibility exists between the WDl006V-MM1 (or WD1006-MM2) and the WDl003-WAH (or WDl003-WA2). If the drive contains […]
Show full quote

A minor incompatibility exists between the WDl006V-MM1 (or
WD1006-MM2) and the WDl003-WAH (or WDl003-WA2). If the
drive contains more than eight heads, e.g. a 16 head drive, the
WD1003-WAH numbers heads 8 through 15 as 0 through 7 in media's
ID fields. The WD1006V controllers number heads 8 through 15 as 8
through 15. To correct this problem, install a jumper on Wl pin 7-8
when using the WD1006V controller on a drive formatted with the
WD1003-WAH (WD1003-WA2). This problem is not manifested in
drives with less than eight heads.

I've not run into this issue myself though, but possibly there are also chips other than WD that had 8-head limit (or some HW bug). I hope I'm not breaking any (C) laws or forum rules but I can't remember where I got this manual from so rather than link I will attach the file directly.

As for decoding MFM/RLL, I wrote my own Python scripts that deal with Greaseweazle flux dumps of the tracks. Lately I've decoded ST-157A which is early IDE, and on surface it's just Seagate RLL with reduced track count. Even "dumb" MFM and RLL HDDs have interesting things on them, like hidden tracks or R/O data in sync gaps. But I no longer have time to play with these things...

Reply 22 of 23, by rasz_pl

User metadata
Rank l33t
Rank
l33t
Deunan wrote on Yesterday, 09:38:

I've dug it up, it's mentioned in WD1006V-MM2 short manual:

If the drive contains more than eight heads, e.g. a 16 head drive, the
WD1003-WAH numbers heads 8 through 15 as 0 through 7 in media's
ID fields.

so same header format, just some controller bug/limitation. Less exciting that I expected 😀

Deunan wrote on Yesterday, 09:38:

I wrote my own Python scripts that deal with Greaseweazle flux dumps of the tracks. Lately I've decoded ST-157A which is early IDE, and on surface it's just Seagate RLL with reduced track count.

Neat, how did you figure out where to plug in? I see AIC-010 but no recognizable endec, just some custom Signetics chips.

https://github.com/raszpl/sigrok-disk FM/MFM/RLL decoder
https://github.com/raszpl/FIC-486-GAC-2-Cache-Module (AT&T Globalyst)
https://github.com/raszpl/386RC-16 ram board
https://github.com/raszpl/440BX Reference Design adapted to Kicad

Reply 23 of 23, by Deunan

User metadata
Rank l33t
Rank
l33t
rasz_pl wrote on Yesterday, 13:03:

Neat, how did you figure out where to plug in? I see AIC-010 but no recognizable endec, just some custom Signetics chips.

Well now that I know what's on the platters I suspect that Seagate reused the codec from their own RLL card series (ST-11 and/or ST-21/22 series). Perhaps it was always a rebranded Signetics chip or they just got it manufactured there, with some small changes maybe. There are 2 chips that work as head mux and amp, the 10188-521 and 10189-521. The latter is on the back side of the PCB and there you can also see the parts for differential signal path. Probably a good place to probe (with wires) if you want to tap the original 157A electronics.

I had some suspicions, and frankly a different idea in mind, so I just swapped the PCB from ST-125 drive. It uses quite similar head mux/amp setup with 10189-502 and 10188-501 chips. This way I could fully control the stepping and not worry about where to cut into signal path, just use the standard interface. I also confirmed my theory that MFM electronics will accept "servo" data from 157A platters. I don't much care for these early IDE drives, I'd much rather repair my bad ST-138 with the mechanical part of the 157A.

There are 2 problems yet to be solved though. The ST-125 only has 4 heads and the electronics seems to know this and ignore higher select bits. I do need to make sure 138 electronics will see all heads on 157A mechanical part. The 125 and 138 seem pretty identical but now I know these can't be swapped 1:1 in all cases. Second problem is the 157A donor has weird issues with both its own PCB and a different 157A PCB (from another drive that works but is very loud and platters are quite gouged). Seems like it can't properly keep its heads on the track, reads very slowly and with tons of errors that go away with retries. I didn't notice any obviously bad data with 125 PCB dump but that was me doing very slow track to track stepping. I wonder if the stepper motor magnets got weak and the head settle time is so big that 157A electronics keeps retrying the "missed" seek all the time. This would also affect operation in 138 mode at full speed... Swapping platters and head assembly but without the stepper motor is way more involved than I have time and patience for right now so this whole project got shelved, quite possibly for good.

But it was fun and thing were learned along the way. Now I got two 157A - one loud and tired, one that looks and sounds great but has serious R/W issues, one 125 that works but sometimes heads stick and the top-most platter has a "balding spot" and bad sectors there, and finally a 138 that would be great if not for that one head being ripped off. /rant