Compaq MS-DOS 3.1

In support of my two Compaq Portables (II and III), I got myself a copy of the official Compaq 3.1 version of MS-DOS and BASIC. At least for the Compaq Portable II, my understanding is that this is the latest version (oddly, apart from MS-DOS 6.0) that it can run. I had a version of these disks already from the net, but those were in German—these disks are not. I also scanned in the manuals and the box. Links to the disk images (360k .img files) and the manuals are below. I’ve successfully booted from them and briefly used them from within VirtualBox, so they should be ok. Next up will be to create real floppies from the images and install the system on the Compaq Portables, but one thing at a time.

Compaq msdos basic box front thumb Compaq msdos basic box side thumb Compaq msdos basic box back thumb
Compaq msdos basic box labels thumb
Msdos v3 reference guide Basic v3 reference guide

Links to the scans:

Booting the Compaq Portable II

A while back I got my hands on a Compaq Portable II, notable for being one of the first “luggable” PCs. Not the very earliest (as one might imagine from the name, there was a predecessor even from Compaq), but close enough to be interesting yet developed enough to be able to actually do things.

Cpii arrives

When I first got it, I did something that you shouldn’t do: I turned it on. The screen worked, but it showed me an error message (“102-System Board Failure”). So, I did what I pretty much always do. I completely disassembled it. I will probably go through a more detailed photo essay of the features of this machine later, here’s just a couple of quick summary notes.

The case comes off, revealing a pretty carefully caged machine. It is intended to be able to withstand being lugged around.

Cpii uncovered

It has four available slots, and they were all filled. They include a 1200 baud Hayes modem, a QIC-20 tape interface card, a (CGA?) graphics card, and a multifunction card that at least handles the floppy and hard drives, and also seems to have some external ports (printer maybe?).

Cpii slotsoutside

However, even when I’d removed all of the cards except the video card, I was still getting “102-System Board Failure”).

Cpii sysfail

So, I kept going, took everything all the way apart, and put it back together. Something in that process did some good, since I was then faced with a much more friendly-looking “162-System Options Not Set-(Run Setup)” and “Insert DIAGNOSTIC diskette in drive A:”.

Cpii insertdiag

Home free! Except, I didn’t know if I had any bootable PC disks. This is a 360K drive, for one thing, so only the smallest disks would work. And I have pretty much been concentrating on Apple stuff, I only have three PC 5.25″ drives apart from the one in the Compaq, and the only interface I have to them is my Kryoflux USB board. So, now the question was: how do I create a bootable floppy? And this was really a harder problem than I thought it would be.

The Kryoflux is capable of writing, but the software is still under development, and most of the attention has focused on Amiga disks. So, pretty much the only option I had was to convert a disk image to their internal IPF format first, and then write it out.

Furthermore, the Compaq Portable II doesn’t have a BIOS setup screen, the way you set the BIOS parameters is by booting a special Diagnostic disk. So I needed to get my hands on that. A little bit of searching around revealed that I could get a copy of the program that can create the diagnostic disk from a link on the Compaq Portable III page at

It turns out that these images contain an EXE file that will unpack and then create the disks—if you have a 360K drive installed. Neither Parallels nor VirtualBox was willing to tell the QRST (Quick Release Sector Transfer) program what it wanted to hear about the capabilities of the attached drives. So, I couldn’t use this program to create the disks unless I could somehow get that program onto a disk I could boot the Compaq from.

Cpii qrstfail

The problem is that, although there is an internal hard drive, it wasn’t recognized at all, so I’d have to fit everything onto a 360K floppy, which was impossible. It needs space to unpack the disk images. So, that wasn’t going to work either.

Finally, after a lot of flailing around on the web, I found a page on that has already-made images of the Diagnostic disk and the Compaq flavor of DOS 3.1. I am now hosting those files as well: Compaq Portable II setup diskette (360K), Compaq Portable II DOS 3.1 disk 1 of 2 (360K), Compaq Portable II DOS 3.1 disk 2 of 2 (360K). But even then, the problem wasn’t solved, since these images need another program to unpack them. That program is CopyQM, which I am also now hosting but probably shouldn’t be—if I am not mistaken, it was pulled from the internet a while back as being still a going concern, but without any real replacement. I can’t remember now where I found it, but I did, and now there’s another copy on the internet linked from here as well. So, then I had to go back into VirtualBox and in a more modern Windows (that allows folder sharing), I was able to unpack the disks onto a 1.2MB disk image (which I got by downloading a FreeDOS boot disk from this page of boot disks), which VirtualBox allowed me to attach and which CopyQM allowed me to write to.

So now I had the disk images, in .img format. I just had to turn those into real 5.25″ floppies. In order to convert these into the IPF file format that the Kryoflux can write, I made use of KeirF’s Disk Utilities, which contain a program called disk-analyse that allows conversion of .img files into .ipf files. I had to compile it myself (./configure, make, sudo make install), but it compiled fine under Mountain Lion. Yet it still took a lot of fiddling. The disk-analyse program complains if the disk isn’t exactly the right size, and in fact I never did get it to work exactly as it was supposed to. What I did is this: I took the 1.2MB image and went in with a hex editor (0xED) and chopped off the bytes in the image beyond 360K, so the image would be the right size. Then I ran the following command:

disk-analyse -f ibm_pc_dd cp2setup.img cp2setup.ipf

This bombed out with an error as follows:

T0-79: IBM-PC DD
T80-167: Unformatted
disk-analyse(78653) malloc: *** error for object 0x101dd6000: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6

However, it did in the process write a 360K .ipf file, which, happily, was sufficient for the Kryoflux write program to do its thing. So, then I connected up the Kryoflux and did this:

dtc -w -wi1 -fcp2setup.ipf

And the drive chugged away until it had written the disk. And I wrote the DOS 3.1 disks this way as well. Then I went over to the Compaq Portable II and tried them out—and they were not recognized at all. After scratching my head for a little while, I decided to take the Compaq Portable II’s own drive out and hook it up to the Kryoflux, so that it would be writing on the drive that later needed to read the images. Another round of writing and disk-chugging and I had three more disks made, and then I moved the drive back to the Compaq Portable II to try it out.

And, this time, it worked!

Cpii setupscreen

Cpii setupsummary

This done, I was now able to boot from the DOS 3.1 disks, which, it turns out, are in German.

Cpii dos31boot

That accomplished, I formatted the internal hard drive (maybe I should have tried to save it, but I could see no easy way to do so). Looks like a 20MB drive.

Cpii formatdrive

And then I copied the contents of all three floppies onto it. And now, it boots, in German, from its own internal drive.

Cpii boots

So, finally, success. I’ll reassemble it later, that’s enough for one day.

[Addendum: In the unlikely event somebody else is going to try to do this very same thing, here is a zip file containing the various images I used. The .dsk files are the original ones I got from, which need to be converted with CopyQM, the .ima files are the 1.2MB images that resulted from using CopyQM on the .dsk files, the .img files are the .ima files chopped down to 360K, and the .ipf files are the images converted to Kryoflux format to allow them to be written out.]