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.
much better, it actually formats the disk! BTW this 3 1/2" format is very odd. 600 rpm, 66 tracks, 16 sectors per track, single-sided, 270K capacity, 256 byte sectors.
why all this work? i need to work with some very early 3 1/2" disks. this example has an oval window but more surprisingly, the disk shutter must be opened manually before you put the disk in the drive!
and it actually reads! at least, it recognizes the LIF volume label. the filesystem is for a different type of computer, so the HP85 doesn't show any files.
some might be curious about the format of the disk. here's the view in HxC. zero bad sectors! they are standard IBM MFM sector format, 256 bytes per sector, but there's a 17th "narrow" 128 byte sector that stores a media wear counter.
i'm dumping the original hard drive again, but this time using the EBTKS.
so the difference with the MFM dump is that it includes spare empty sectors that are skipped by the 9133A drive controller. looks like each track only has 31 sectors with 1 spare, totaling 32. a little confused about the initial offset of 0x1e00 for the first spare sector. the next spare sectors are at 0x3d00 and 0x5c00.

you might be wondering what those weird 3 1/2" disks were for: it is this very odd beast, the HP 125. this is a dual processor CP/M machine that uses Z80s. one of them is the main CPU and the other runs the terminal I/O!

the form factor is super weird. it, along with the 2621 terminal, were known as the "Alien Heads."

it's a bit tricky to install CP/M on the hard drive, so i will go through the process here. first, the machine always boots from HPIB drive 0, so set it up with the floppy drive at 0 and the hard drive at *2*.
then place a CP/M boot diskette in the machine and power it up. then from the welcome screen, hit UTILITIES and then FORMAT. the hard drive will appear as drive E, F, G, and H. i had it format drive E.
exit to the welcome screen, and then select UTILITIES and then COPY. hit CHANGE COPY until the selection says SYSTEM (not ALL or DATA). select the source drive as A and the destination drive as E. this copies the CP/M operating system to the hard drive.
now turn off the computer and swap the drive DIP switches around so the floppy disk has ID 2 and the hard drive has ID 0. when you turn the computer back on, it should automatically boot CP/M!
however, the basic install of CP/M doesn't include any utilities other than the build in commands, so you'll need to go E:PIP A:=E:PIP.COM to copy the PIP program to the hard drive, which you'll use to copy more programs. then you can repeat this for any other utilities you want on the hard drive, like FORMAT, STAT, COPY, SUBMIT, XSUB, or the other software that HP released.
HP's version of CP/M will try to run WELCOME.COM which displays the GUI. i find it annoying, so i just renamed it to WELCOM2.COM using REN.
here's what i have installed so far. besides microsoft basic, there is also the CP/M assembler (ASM), editor (ED), and loader (LOAD), as well as the dump utility and the dynamic debugger (DDT).
NARRATOR: it was NOT a convenient way to edit text files.
heck yes! i assembled and ran a CP/M program!
@tubetime Reminds me of mucking about with surplus Xerox 820 boards back in the day.
@tubetime I kept looking for "The Big Hook", but I see you gave it a name. I fiddled with CP/M on my Apple //e, thanks to the Micro-Soft Z-80 Soft-Card. I even bought the S-C Assembler Z-80 version.

@tubetime Welcome to the wonderful world of CP/M. An OS by coders, for coders. Where you are actually expected to read the source before assembling and running stuff.

An elegant OS from a more civilized time.

@stefanie @tubetime
I used it and the derived CP/M86 and MS DOS. I wrote programs for CPM-80 and DOS.
Z80 card for Apple II, A generic S100 box and Research Machines 380Z with CP/M.
Sirius 1 (Victor 9000) CP/M 86
Many DOS 2.11 to DOS 6.22 (8088 to 80486)
It's pretty primitive and little more than a collection of I/O and file utilities.
Of course memory was limited.

Simple but not at all elegant.

@raymaccarthy @tubetime I find elegance in simplicity and minimalism. Especially CP/M 3 with the extra performance features.
And a full Z-System is even more comfortable than DOS, except for the subdirectories.

Maybe "elegance" isn't the right word. But I love that the API is so simple that I can *almost* memorize it all.

@stefanie @tubetime
There can be elegance in simplicity, but CP/M and its single user derivatives were just simple.
Was it 2.11 that DOS got directories and SWITCHAR let you use / instead of \ if - was set for options instead of /?
MS Madness!
So two main decent DOS are 3.3 and 6.22 (7 doesn't really count as then PC booted straight to Win9x.
At home I went back to CP/M with the PCW8256/PCW8512 for a couple of years. Ran a spreadsheet, wordprocessor & dialup as well as DOS.
PC in work for CAD.

@raymaccarthy @tubetime My first "online" experience were BBSes using Terminate on DOS back in the mid 90s.

When I got my CP/M to dial a telnet BBS using ZMP was almost magical to me.

But I'm still working on my dream CP/M system, which will be an eZ80 @ 50 MHz. My first attempt only ran 36 MHz because of design mistakes, but still roughly 6x faster than a 10 MHz Z80.

@raymaccarthy @tubetime PS: I have yet to implement a full XIOS for MP/M II. But since that is a lot more involved than just a CP/M 3 BIOS, I save that effort for my dream system.
I also want to port Fuzix one day.
@tubetime I do vaguely recall "ORG 0x0100" statements from Motorola 6509 assembler to get a program going? This goes back to ~ 1988 or so.
@tubetime The little built-in 40 column monitor and the big external 80 column monitor - are they different, like... instances or something? Is this a kind of MP/M? Or can you just pick one?
@tubetime congratulations. Side note: on vintage machines the correct output of first program is “Hellorld!” That’s rule established in 2021 by David Lovett.
@tubetime what terminal is this?

@tubetime

That brings back memories. Not CP/M or assembling things, but:

The eight function blocks at the bottom also appeared on the HP 150, where they were pervasive through most of the applications, and not only mapped to the function keys, but were also touchable with the built-in touchscreen of the machine.

@tubetime congrats.

From heren on forward things should get easier…

@tubetime tbh I still use ed. I sure as heck don't use it for everything, but sometimes it's just the thing.

@obot50549535 @tubetime

I suspect ed(1) and CP/M ed differ in significant ways, but I have only used one of those

@elithebearded @tubetime Oops, yes, once again I am an idiot, cp/m ed is something completely different.

@tubetime maybe only for assembler source code?

If you're at the "writing assembler by hand in a text editor" level of masochism then why not go all the way and use ed?

@smallsees @tubetime do it on a teletype! Ed is great for that.
@revk @tubetime yeah half duplex modem lines and similar teach you why ed is like it is.
@tubetime I suspect @ed1conf would have a differing opinion on the convenience.
@tubetime There‘s a lovely video about how ed is quite nice, actually: https://youtu.be/GoyNMFccbow
The little editor that could

YouTube

@0xabad1dea @tubetime @whitequark

I'll admit that 'ed' has saved the day a couple of times. Mostly when using some ancient terminal that seemed to have little support for anything but printing new lines of text to the screen..

@tubetime
Ed
Agreed
An inconvenient way to edit text that seems to assume a teletype.
I forget what I got instead.

@tubetime I'm sure that in the era of paper tape and printers this was all relatively convenient.

But by modern standards, its probably beyond horrible.

@tubetime when the only terminals I could access at night at uni were teletype terminals, ed was exactly the editor I wanted.

(Why was I there at night? The mainframe was overloaded during the day and compilations took forever or just failed.)

@tubetime Called by technology historian Peter H. Salus "the most user-hostile editor ever created".

@tubetime

Back around 1980 I got a job where I was working on an RSX 11 system with the only available editors were this thing called EDI, and this even worse thing called SOS, and they were so bad that I took the software tools implementation of Ed, and hand translated it from Ratfor to Fortran, because Ed was infinitely better than the typical command line text editor of the time.

@tubetime « convenient » is doing a lot of heavy lifting here…

I remember using ed on a 300 baud teletype terminal. I mean, it worked, and you *could* edit text files, but I put it close to pouring tabasco sauce in my eyes on the list of things I’d really rather not do.

@lauren @tubetime A: was the hard disk drive on my Concurrent CP/M-86 computer. F: was the 5.25" 720K floppy drive.
@tubetime media wear counter!?
@RueNahcMohr yeah at some point the counters hit the limit and the disk automatically goes read-only. hp didn't support this for very long.
@tubetime wut. old tech should never do that!!!!

@tubetime

fun fact that Imagedisk cannot accurately image those disks because the format only allows one sector size per track

and, as we discovered, the protocol analyzer uses one extra track to hide some information required for some of the protocol handlers to function

@tubetime can I have the scp file please?

@tubetime
That seems to be a thing done by the 91xx drives themselves, rather than something under OS control.

I never knew what the 128 byte sector was for though. Interesting!

Teledisk on a hp 150 can make images, but i don't know if those images could be written successfully with a regular PC...

@tubetime
It's beautiful, that you for sharing your work.

It's a great pallet cleanser in this dark age

@tubetime wow. Are those actually using the MMFM encoding?
@JennyFluff iirc it is still just MFM

@tubetime I am wondering as the greaseweazle host software has support for it for some HP drives.

I have not seen any of these in the wild and it's something I want to eventually support in #RecoveryWhiskers