ahh, the HP 9133A - the largest and heaviest external 3 1/2" floppy drive ever built. let's get it working! 🧵

whoops, surprise hard drive inside!

this one is a Seagate ST-506, a MFM drive with a whopping 5MB capacity!

after taking out 894375037 screws, the actual drive reveals itself.
oh yeah, the hard drive has a controller board on top of it. and on the controller board is this super weird potted electronics module. i'll have to look into that later.
the floppy drive is the extremely ancient Sony OA-D31V-1. it's not the first one to come out. more like the second one.
transmissive optical sensors hate dust bunnies. they'll produce false readings, so they must be cleaned!
a single-sided 3.5" drive head is something you don't see every day. they were never that common.
i'm taking it apart this far because the drive mech needs to be cleaned and relubricated. the old grease hardens and makes the mechanism go sticky, so you'll be able to insert a disk, but when you try to remove it, it'll tear the head right off!
and it tests good! the weird 26-pin HP interface is natively supported by my Floppy Exerciser board (https://github.com/schlae/FloppyExerciser)
on to the surprise hard drive. but, no surprise, it won't spin up and pulls a bunch of current on 12v. hmmm.
the motor won't move. I think it is stiction. ugh.
yeah all the heads are stuck. trying a heat gun now...
it spins, but it sounds bad. not much hope for this drive, unfortunately.

the Gesswein MFM emulator was able to capture a flux transition dump! i used their mfm_util to analyze it, and it is a very odd format: check out the command line:

--format EC1841 --sectors 32,0 --heads 4 --cylinders 153 --header_crc 0x0,0xa00805,32,4 --data_crc 0x0,0xa00805,32,4 --sector_length 256

example output of the analyze command... some bad sectors, but a lot of good ones!
output of 'strings' shows some cool stuff!
the HPIB verification program for the HP5005B signature analyzer. wild
@dgesswein , who authored the MFM emulator tool i am using for this task, reached out. i updated the software to the latest version (i was tragically out of date). got a new dump. only a few bad sectors this time, and none on track 0!

bad sectors were on tracks 37, 75, 113, and 152. the 9133a uses hardware partitioning to get four logical volumes, so these "bad sectors" are really just extra sectors at the end of each disk.

for posterity, the command i used was

./mfm_read --format Xebec_104527_C0_256B --sectors 32,0 --heads 4 --cylinders 153 --header_crc 0x0,0xa00805,32,2 --data_crc 0x0,0xa00805,32,2 --sector_length 256 --retries 50,4 --drive 1 --xebec_skew --begin_time 151000 --tran hp9133a_st506 --ext hp9133a_st506.bin

'file' is superintelligent these days. it knows about LIF disks! looks like the binary data is good!

also the drive is running very smoothly now. a few days ago it was making horrible screeching sounds but i think that was the spindle bearing.

i've been running it upside down to allow the oil to warm up and drain back into the bearing.

digging around on this drive, i've found a bunch of software for the HP-85, including a program designed to control the HP 5005B Signature Multimeter. presumably none of this stuff has ever been preserved before.
huh, i reconnected everything and plugged the drive into my HP85, and it actually works! i can read the files on it.
one of the programs.
unfortunately the floppy drive isn't quite working. i can't format this new disk. the drive makes a very rattly sound, so it's probably something mechanical.
3 1/2" = light mode
5 1/4" = dark mode
got some time to take the drive out again and clean it again. i ended up having to remove this entire sliding side plate because there was still some old crusty lubricant. it is much better now. i also lubricated the head stepper worm gear.
@tubetime this is where the whole printer ink scam started, "Use HP Media - Part No XYZ" ....
@tubetime why do these seem like GPIB devices

@tubetime

If you have an easy way to accomplish it, can you send me listings of some of the programs, so I can work on the BASIC lister code ?

For instance the "BIORHY" program, which I suspect is a HP demo ?

@bsdphk sent you the file in an email.

@tubetime

Oh pretty HP85. HP and 3M executives never suffered the pain they should have for inflicting those damn DC100A cartridge/drives on users.

@darryl_ramm yeah those are awful

@tubetime

It's not like they were ever that reliable to start with.

**Insert ad for EBKS multipurpose storage/expansion module for HP80 Series**

https://www.fliptronics.com/EBTKS/EBTKS.html

https://www.youtube.com/watch?v=m18GCQs0288

Thanks Philip et al. My 85 and 87 have them.

EBTKS Overview — EBTKS 1.0 documentation

@darryl_ramm i have one in this machine.
@tubetime so gorgeous and stunning

People used to laugh when I said I'd fixed their squealing hard drive by oiling it.

Seagate used to have a grounding strip that sat atop a bearing on the end of the spindle (outside the drive) and at a push you could apply some graphite from a soft pencil to stop it being noisy.

Happy days.

@linker3000 I once had an HP calculator with a magnetic card reader. When the cards got dirty, you cleaned them with a pencil eraser.

Linux's knowledge of file formats can be investigated with

$ strings /usr/share/file/magic.mgc | more

@tubetime It's wild how many different disk formats there were in the day.

@tubetime

My AutoArchaeologist toolkit can turn the LIF filesystems into static HTML files so you can spelunk the contents.

Example:

https://phk.freebsd.dk/misc/fatfs/05/056ab17c6.html

Software:

https://codeberg.org/Datamuseum-dk/AutoArchaeologist

⟦056ab17c6⟧

@bsdphk useful, can it handle partially corrupted images?

@tubetime

I dont know how robust the LIF excavator is, I have only written/tried it on good images, but the general idea of AA is to handle whatever you throw at it, as well as possibe.

@tubetime

The fastest way to find out, is probably if you send me the image, but I can also walk you through the setup so you can run AA yourself.

(I've never finished the proper python packaging so it's a bit manual)

@bsdphk i'm going to try and get a better image file, then i will give it a shot.

@bsdphk

Traceback (most recent call last):
File "/home/eric/src_other/AutoArchaeologist/run_example.py", line 11, in <module>
from autoarchaeologist.container import argv
File "/home/eric/src_other/AutoArchaeologist/autoarchaeologist/container/argv.py", line 17, in <module>
import ddhf_bitstore_metadata
ModuleNotFoundError: No module named 'ddhf_bitstore_metadata'

@tubetime

Sorry forgot to mention that dependency, that repos is also on our codeberg account:

https://codeberg.org/Datamuseum-dk/DDHF_bitstore_metadata

DDHF_bitstore_metadata

Metadata file handing for DDHF's bitarchive.

Codeberg.org
@bsdphk ahh that solved it. new issue though, it looks like this hard drive image has 4 volumes but each has lifver set to 0, and the volume header is missing the track, head, and sector count fields, triggering a bug:
@bsdphk if you want to experiment, i put the whole disk image here: https://drive.google.com/file/d/1aTSBuvYilyCwlMffqJVZQTnmUwSarSrB/view?usp=sharing
hp9133a_st506_2.bin

Google Docs
@bsdphk David Gesswein pointed out to me by email that this image file has a software interleave of 9 and each track has a spare sector 31 which contains just a fill pattern and can be ignored. so that might explain some of the parsing difficulties.

@tubetime

Ok, figured the interleave out:

https://phk.freebsd.dk/misc/LIF9133/

Now we just need an examiner for the AutoArchaeologist to list the HP-BASIC programs

FATFS

@tubetime

Hmm, i think there's still something not quite right about the interleave: I'm seeing too much 0x6d 0xb6 in places it should not be.

Or maybe there is a bad-block remapping we need to figure out.

@tubetime

Ok, I think I got it now.

The interleave is:

[0, 9, 18, 27, 4, 13, 22, 8, 17, 26, 3, 12, 21, 30, 7, 16, 25, 2, 11, 20, 29, 6, 15, 24, 1, 10, 19, 28, 5, 14]

I've also added a very rudimentary BASIC-detokenizer (git pull to get it), and updated the output here:

https://phk.freebsd.dk/misc/LIF9133/_index__HP85_20Basic.html.html

(Bedtime in Denmark now :-)

Master Index: HP85 Basic

@tubetime Tap on the side with a hammer often sorted that. 😅
@tubetime Wait - that's an ST-506? That's the drive that popularised the hard drive interface it uses!
@tubetime I think the 26-pin interface is actually just Sony’s original interface. It’s also on the D30/32’s used on the ACT Apricot.
@tubetime Neat seems HP was a fan of Sony drives, My HP1653B logic analyzer also has a Sony drive with HP specific interface though that one is 3.5 inch
@tubetime And it's so satisfying to clean it and re-assemble it.
@tubetime Is that like… 360KB capacity?
@mwichary worse, it is 270K and it uses 256 byte sectors. it also runs at 600 rpm!
@tubetime You say “worse,” but all of this sounds awesome. 😀