Emulating A Hard Drive With The Raspberry Pi

[Chris] recently moved a vintage IBM 5150 – the original PC – into his living room. While this might sound odd to people who are not part of the Hackaday readership, it actually makes a lot of sense; this PC is a great distraction-free writing workstation, vintage gaming machine, and looks really, really cool. It sat unused for a while, simply because [Chris] didn’t want to swap out piles of floppies, and he doesn’t have a hard drive or controller card for this machine. After reviewing what other retrocomputer fans have done in this situation, he emulated a hard drive with a Raspberry Pi.

The traditional solution to the ‘old PC without a hard drive’ problem is the XTIDE project. XTIDE is a controller card that translates relatively new IDE cards (or an emulated drive on another computer) as a hard drive on the vintage PC, just like a controller card would. Since a drive can be emulated by another computer, [Chris] grabbed the closest single board computer he had on hand, in this case a Raspberry Pi.

After burning an EPROM with XTIDE to drive an old network card, [Chris] set to work making the XTIDE software function on the Raspberry Pi side of things. The hardware on the modern side of the is just a Pi and a USB to RS232 adapter, set to a very low bitrate. Although the emulated drive is slow, it is relatively huge for computer of this era: 500 Megabytes of free space. It makes your head spin to think of how many vintage games and apps you can fit on that thing!

35 thoughts on “Emulating A Hard Drive With The Raspberry Pi

  1. its one of those I took A and B and followed instructions in the manual “hack”
    I was expecting Pee GPIO used to emulate 8bit ISA card :(
    or he could rewrite XTIDE bios to add LPT communication with HDD. LPT drives were fairly popular back in the day (CD-Roms, ZIP drives, FDD)

  2. Wow manual jumper setting on that board. I remember running into issue back in the day when hard drive didn’t have integrated controller board. You had MFM or RLL board and 2 cables (3 if you have 2 hard drives) and had to set everything manually. One wrong setting and nothing works right.

    And formatting a 5MB hard drive took forever!!!

      1. Ugh, memories I had hoped to repress forever.
        I had a 1985 vintage IBM XT machine with a whopping 256K of RAM and a GIGANTIC 10 mb hard drive. It actually was still pretty big (20mb was considered the “upgrade” size at that time) by 1991 when I bought the thing for $30. That and the Hercules monochrome on a greeeeeeen 12″ monitor. Not exactly a high-end setup (though it retailed for $5000 in 1985, the original invoice was still stuck to the bottom of the case).
        We’ve come a long way. Yeah, I’m not going back to that if I can help it.

  3. My first hard drive was a 5 megabyte, 5.25″ full height Tandon MFM, in a 5150 PC. With its stepper motor actuator and built in safety system, I couldn’t get it to do anything until someone gave me a floppy with a park.com program that simply forced the drive to move the heads until the external tab on the motor hit the Track 0 switch. From then on it worked perfectly.

    Who remembers having to run a drive parking program every time before flipping the Big Red Switch to turn off their computer? Sure you could just shut it off but that was playing with fire, and head crashes and other bad things.

  4. Is there any projects with modern hardware that could provide the same distraction free writing platform?

    An 8-bit atmega with SD card and really basic text editor proram?

    Hmm, sounds like a really good new project :)

    1. (It’s too early in the morning, I hit Report Comment accidentally instead of Reply.)

      Yes, sounds like a really good new project. But if you just thought of it now, I’ve got you beat. I’ve been considering it for the last year or two. :)

        1. I thought I read someone had done this already with an Arduino, but I can’t find it now.

          Anyway, the simplest seems like a Raspberry Pi model A with no GUI, just command line & text editor. No network on board and only one USB port, so you can only plug in your keyboard. :) I guess you use a hub if you want a USB stick… and you can still use that old TV for a monitor.

          Though, really, any old computer or laptop would work if you just install a basic system and disable the network interface and are disciplined about it… having to sneakernet everything in and out makes you think about it more. I used to use an old Mac for this when I was younger, had an SE/30 in my room with a text editor, hypercard, and some old games.

  5. Surely a bit of case modding would have freed the slot that is covered by the second plate from the SixPakPlus, making it possible to add an old SCSI card or something?
    The hack is ingenious, but it’s basically sacrificing a good com port for slow disk speeds even though there is a free slot that has a myriad of options to add storage.

    1. He was trying to do something unique though.

      If he were going for efficient and easy then why try to find a working SCSI drive? He already has the xtide ROM on the network card. He could just add a ‘dumb’ ISA-IDE card and any old IDE drive. For bonus points skip the IDE drive, get a 99 cent Ebay special IDE to CF adapter and use a CF card.

      1. I though he was just trying to get an old machine a bit useful. Not especially do something unique. And unique as it is, I don’t think of it much more that a daisy chained IT Rube-Goldberg device.

        The xtide hack would be more interesting if it used the NIC bios feature with a fast ISA storage card that normally did not support xtide. Or some net-boot hack..( there is a 1.44 disk for that! )…

  6. Ahhh, the flashbacks to 5150’s and ISA card with jumpers… those were the days! Had it not been for a 5150 and a PC jr. getting trashed out (and subsequently rescued by yours truly) when I was in grade school, my entry into the world of computing would have been significantly delayed. I still remember the joy in removing the screws and opening the cases, removing various boards, reconfiguring, learning by experimenting, rebuilding into a single more capable machine, etc… it was a wonderful time to be me (being broke-ass poor notwithstanding, at least I had parents who didn’t mind me hauling crap home and taking it apart on the living room floor!). For those systems, I even had to go to Radio Shack to get the right connectors to go from the DE-9 graphics port to the 5 pin DIN plug on the monitor, soldering a cable between them, then blindly experimenting in switching the wire/pin combos around to get a proper connection through to the 10″ Amber Monochrome monitor which I also salvaged & repaired… Had it not been for those systems, I wouldn’t have learned GW Basic either. Never did much with it, but it was a good basis for the later programming languages I was exposed to.

    Most of all, I still remember that “warm electronics” smell… you don’t get that same smell any more, I’m guessing we’ve probably swapped out old carcinogens for new not-yet-discovered ones, but danged if the old ones didn’t smell better!

    Thanks for posting this project. While my 5150 and PC jr. long ago went to that toxic graveyard (no doubt in Southeast Asia), I still remember them with fondness, and projects like this make their memories a little more real to me.

    1. My first DOS-Based PC was a Laser Compact XT with 512 K of Memory and a single floppy. Cost me $1200 in 1990, came with a CGA monitor and a Star printer. I upgraded it to 640K and added a second floppy with a homemade cable. I also learned GW-Basic, later progressed to Visual Basic though I hated the loss of Peek and Poke commands.

      For the next few years I collected a number of used 286-based computers. It was way more economical; to ride the trailing edge, at least until the internet hit. Then a decent PC became mandatory.

  7. IDE or ATA (for PC-AT Attachment) was originally designed for the 16 bit ISA bus. A rather short lived version designed for the IBM PC-XT and clones was made, with drives as “large” as 40 megabytes. They require special 8 bit ISA controllers.

    The XT-IDE project is for 8 bit ISA controllers able to use standard ATA drives. This has been done before. http://www.minuszerodegrees.net/manuals/JDR/JDR%20MCT-IDE-8.pdf

    Why not clone that controller? ISTR some others like it were made.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.