Tuesday, October 12, 2010

My IBM 5155 Zip Drive adventure

The IBM 5155 "Portable"

One of my favorite retro treasures is my IBM 5155 Portable PC. It is a very nice unit, almost brand-new looking. It's also mostly in stock configuration, the only addition being some expansion cards installed for RAM and I/O. The system was gifted to me years ago by a friend who swore she dragged it around on airplanes back in the day. This surprised me because (a) it's REALLY heavy, and (b) it doesn't show any signs of travel wear and tear. It was a very nice gift and I've had a good amount of fun playing with it.

Still, with two floppy drives, there's only so much you can do. Another friend of mine years ago had given me a pile of mid-80s PC software (with books and licenses and everything) to use in my retro collection, but a lot of it is difficult or impossible to really enjoy without a hard drive. For instance, "dbXL", a clone of dBase III Plus, can work on a floppy system, but really wants a hard drive.

First mass storage attempt: FAIL

A few years back, I purchased a "hard card" (hard disk on an expansion card) in the hopes I could add a hard drive to the 5155, while still keeping the unit minty fresh. The hard card was cheap, but some research should have preceded that purchase - the 5155 is quite limited on physical space in the card slot area, and my new hard disk card wouldn't fit.

How about a compromise?

Recently, I saw an Iomega Zip Drive available for free on Freecycle. This got me thinking - I wonder if I could use a parallel Zip drive on my 5155? It's got a parallel port! But it is old... After doing some checking and finding that it might be possible, I indicated an interest in that Zip drive on Freecycle, but it was gone already. Checking eBay and Craigslist, I found devices that I could purchase, but something (my pocketbook, maybe?) told me to hang on. Sure enough, some more units popped up on Freecycle. Not only did I wind up with a parallel port model, but also a USB model (which would come in VERY handy, more on that in a bit).

I realized the Zip drive wouldn't be as fast as a hard drive, even an old hard drive. However, the Zip drive would give me basically unlimited storage, which would be cool. So, it's a compromise, and one that I'd happily live with if I could get it to work. I mean, if I was after speed, would I be using a 5155? :-)

The famous "Chicken And The Egg"

OK - so now, I've got a parallel Zip drive, and an IBM 5155 with no drivers for a Zip drive. Once I get the Zip drive working, I can easily move files to/from the 5155. But until I do?

Step 0 - Test the parallel Iomega drive

It was really easy to test the USB Iomega drive - it was plug and play with Windows XP, and worked great. The parallel drive was harder. For this, I actually went into Linux, and used some old and magic Linux kernel module incantations that I found on the web. It took a little fighting and some trial/error, but it worked - proving that the parallel Iomega drive was not broken. Basically, I didn't want to work at hooking it up to the 5155 until I was sure it actually functioned... OK, full speed ahead.

Step 1 - find the drivers

For some reason, Iomega doesn't make it easy to find their old DOS drivers. But they are still on their FTP site. So, I got the latest DOS version.

Step 2 - get those drivers to the 5155

Whenever in doubt, fall back to basics - in this case, the serial port. I hooked a null model cable between my 5155 and my Windows box, loaded Procomm Plus on the 5155, HyperTerminal on the XP box, and moved the files. (Thanks Walter, for that pile of DOS software!)

Step 3 - Fail

Iomega drivers - at least the version I got - require an 80286 or above. They've apparently got some real mode instructions. Since the 5155 is essentially an XT crammed into a portable case, of course it has an 8088. Now, some helpful folks on the Vintage Computer Forums let me know that a NEC V20 (8088 drop-in compatible upgrade) would probably help me out, but I didn't want to soup-up my 5155 with a non-stock chip. Next?

Step 4 - Success with Palmzip drivers

If I haven't said so lately, I really do love the Vintage Computer Forums. The folks over there pointed me to the Palmzip drivers, written by a fine gentleman named Klaus Peichl. The Palmzip drivers allow the use of an Iomega Zip drive with an 8088, but they do more than that - they include partitioning, formatting and copying utilities, and an automatic check to see if your parallel port is capable of bidirectional (faster) operation (mine isn't). They also fall back to 33MB partitions automatically if you're using DOS 4.x or below. Awesome! Klaus makes a time-limited demo version available to let you see if you like the software, and to test your hardware for compatibility. I downloaded the demo, moved the software to the 5155 (via serial port again), and it lit up the first time!

Once I had payed my 8 Euros (a little over 11 U.S. dollars), Klaus quickly sent me the fully registered version, which also worked great and removed the restrictions.

The Wide-Open (but somewhat Slow) Spaces

Along with the Zip drives that were given to me, I also got 41 Zip cartridges. That's 4.1 GB! This is enough for a lifetime of DOS software. I am cruising with dBase(ish), Turbo Pascal 3 and 5.5, Microsoft QuickC, and other cool DOS software.

The speed was about what I expected - it's not as fast as the hard drive solutions I've used on the old 8088 machines. When I'm waiting for software to come up, I do yearn a bit for a Western Digital controller and Seagate ST-251 drive with optimal interleave configured. However, my 5155 remains safely stock, and now there is space to play with. I'm quite happy.

Eventually, I might look around to see if there are any ECP or EPP 8-bit parallel cards. This would speed up my experience.

One More Hurdle - DOS 6.22

Using PC DOS 3.3, I was wondering, where'd my EDIT.COM go? Well, it's not there! Among the other software I have is a set of MS-DOS 6.22 disks on 3.5" media. Hmm, now how do I get a DOS 6.22 5.25" boot disk?

First, I tried moving the DOS 6.22 files to the ZIP drive, and ran SETUP.EXE with the /F option. This didn't work - it told me that my floppy had insufficient space. Drat! It says in the online docs (from Microsoft) that it works with a 5.25 drive, but no go.

Next, I had a brainstorm - if I could get a 5.25" disk image file, I could use something like RAWRITE for DOS to make a real floppy.

So, I loaded Bochs - an open-source x86 emulator. I booted Bochs from a 3.5" DOS 6.22 disk image, and created a virtual 5.25 B: drive image, which I then prepared with FORMAT B: /S. This resulted in a MS-DOS 6.22 5.25" virtual disk image. I took this image, along with RAWRITE.EXE, moved it to the PC 5155 with my newly-built Zip drive process, and used RAWRITE to create the real disk. It booted!

Tricking-out the Environment

From there, I loaded the Palmzip drivers to the 6.22 boot disk, and moved the 6.22 files to a Zip drive itself. I set the COMSPEC so it would look for COMMAND.COM on the Zip drive, and I set the paths properly so all my software was accessible.

Thanks to the help of many people, including Klaus, the folks at the Vintage Computer Forums, Walter (who gave me the pile of DOS software) and Kristen (who gave me the 5155), I now have a fully-functional, true-Blue IBM 5155, MS-DOS 6.22 environment with LOTS of storage space. I'm partying like it's 1984!

Now, if you'll excuse me, I've got to go wake up some dBase III Plus brain cells...