Wes Ellis./ a personal notebook
Technology. Stories. Side projects.
A few things worth writing down.
← Back to Retro Tech

Retro Tech

Installing MS-DOS 6.22 and Windows 3.1 on a Gateway 2000 486, From Floppies

A beige keyboard, a small stack of 3.5-inch floppy disks, a cassette tape and a Walkman laid out on a desk around a blank notepad.

Part 12 of the thread The retro workbench

THE SHORT VERSION4 points
  • DOS first, then Windows. Windows 3.1 is a program that runs on top of MS-DOS, not an operating system of its own.
  • Prep the drive by hand with FDISK, FORMAT C: /S and FDISK /MBR before DOS Setup, or Setup fails trying to format it.
  • Most of the 5-plus hours went to flaky floppies: dirty disks, bad writes and a Windows set that asked for disks out of order.
  • Keep HIMEM.SYS in CONFIG.SYS. Without it, Windows won't start at all.

I set up an old Gateway 2000 486 for one of my kids. That meant MS-DOS 6.22 and Windows 3.1, installed the way they shipped: from a pile of 3.5" floppies, one disk swap at a time.

It works. It boots to a C:\> prompt, you type WIN, and after a few seconds of disk chatter the Program Manager comes up in all its gray glory. Getting there took more than five hours across a few sittings, and a lot of that was the floppies, not the install.

This is the whole process, written down so I don't have to reverse-engineer it next time.

What you need

Thing Notes
The PC A Gateway 2000 486 in my case. Any 486 with a working 3.5" floppy drive, a hard drive and VGA will do.
RAM 8MB or more is comfortable.
Hard drive 40MB is enough for DOS and Windows. Older BIOSes can't see very large drives, so smaller and period-correct is easier.
MS-DOS 6.22 Three setup disks.
Windows 3.1 My Gateway set was seven disks. Most guides say six. Sets vary, so count yours.
Spare floppies For rewriting any disk that won't read, and for a boot disk.

I made my disks from images of the original media, written on a modern PC with a USB floppy drive and WinImage. That turned out to matter later.

Heads up

Windows 3.1 isn't really an operating system. It's a graphical shell that runs on top of MS-DOS. If DOS isn't installed and happy, nothing about Windows will be either. Modern Windows is one piece; this is two stacked pieces, and troubleshooting makes a lot more sense once that clicks.

Phase 1: prepare the hard drive

My first try went straight to DOS Setup, and Setup stopped with this:

Setup cannot install MS-DOS 6.22 on your computer.
An error was detected while formatting your primary hard disk partition.

The drive had no usable partition table, and Setup didn't cope. The fix is to do the drive prep by hand from the Setup disk's prompt, then run Setup.

Partition it with FDISK

Boot from DOS Setup Disk 1. If it tells you the hard disk hasn't been partitioned, press Enter to get to the A:\> prompt, then:

FDISK
  1. Choose 1, Create DOS partition or Logical DOS Drive.
  2. Choose 1, Create Primary DOS Partition.
  3. When it asks whether to use the maximum available size and make it active, answer Y.
  4. It'll ask you to reboot with the DOS disk in drive A. Do that.

Format it and make it bootable

Back at A:\> after the reboot:

FORMAT C: /S

Answer Y to the warning that everything on drive C will be lost. On a 486 this takes a few minutes. When it says Format complete and System transferred, press Enter to skip the volume label. The /S copies the DOS system files over, so the drive can boot on its own.

Rewrite the boot record

FDISK /MBR

This rewrites the master boot record without touching the partition. On a drive that's been through who knows what since 1993, it clears out anything odd left in the boot code. After this, DOS Setup ran without complaint.

Phase 2: install MS-DOS 6.22

  1. Put Setup Disk 1 back in and restart with Ctrl+Alt+Del.
  2. The MS-DOS 6.22 Setup screen comes up. The defaults are fine, including C:\DOS as the folder, so it's mostly Enter.
  3. Swap in Disk 2 and Disk 3 when it asks.
  4. Take the last disk out and let it restart.

You should land at a plain C:\> prompt. That's DOS installed. It isn't much to look at, but everything else stands on it.

Phase 3: install Windows 3.1

With Windows Disk 1 in the drive, from C:\>:

A:SETUP

Setup detects the hardware first: display (VGA on the Gateway), keyboard, mouse. On this machine every default was right, so I pressed Enter through all of it. Express Setup is the easy path; Custom lets you pick components if you're tight on space.

A few screens worth knowing about:

  • Setting up applications. Setup looks for DOS programs to add to Program Manager, and it may stop on C:\DOS\EDIT.COM and ask what it is. Pick MS-DOS Editor, which should already be highlighted.
  • Your name. It wants a name and, optionally, a company. The company can stay blank. We put in the kid's name, and it shows up in Windows from then on.
  • Printer. There's no printer on this thing, so No Printer Attached, then Install.
  • Disk swaps. It asks for Disks 2 through 7 in turn. More on that below, because it didn't go smoothly.

When it's done, it tells you to remove the floppies and restart. Do that, and the machine boots back to DOS. That's normal. To start Windows:

C:\WINDOWS\WIN

Once C:\WINDOWS is in your PATH, which the default AUTOEXEC.BAT below takes care of, plain WIN works from anywhere. On a 486 it takes five to ten seconds before Program Manager and File Manager appear.

Where the afternoon actually went

These two problems took up more of the day than the installs themselves.

"Not ready reading drive A"

Not ready reading drive A
Abort, Retry, Fail?

Over and over, on some of the Windows disks. Thirty-year-old floppy drives and freshly written disks don't always get along. What I tried, in the order I'd try it again:

  1. Pull the disk and reseat it firmly until it clicks. Give the surface a gentle wipe with a soft, lint-free cloth first.
  2. Rewrite the image. On the modern PC with the USB floppy drive: WinImage, open the .img, then Disk, Format and Write Disk. A bad write looks exactly like a bad drive.
  3. Try a different floppy. If one disk keeps failing and the rest are fine, the physical disk is probably bad. Write the image to a new one.
  4. Suspect the drive last. If every disk fails, clean the drive heads (isopropyl alcohol on a dry swab) and, failing that, look for a replacement drive.

Work through them in that order. The cheap fixes come first for a reason.

Tip

Number every floppy with a marker the moment you write it. With seven Windows disks, three DOS disks and a few rewrites of each, you will lose track otherwise.

Setup keeps asking for the same disk

Setup asked for Disk 2, I gave it Disk 2, and it asked for Disk 2 again. The images I used didn't have the files split across the disks the way this Setup expected. What got me through:

  • Try the next numbered disk when one gets refused, then the previous one.
  • Keep them in order and work outward from the number it's asking for.

It's more disk juggling than anyone wants, but it finishes. If you're getting images from an archive, expect that some sets are mislabeled.

Windows won't start after WIN

If you get Bad command or file name, or it seems to hang:

  • Check it's actually there: DIR C:\WINDOWS should list WIN.COM, WIN.INI and SYSTEM.INI.
  • Use the full path, C:\WINDOWS\WIN.
  • Check CONFIG.SYS has the HIMEM.SYS line. Windows 3.1 won't load without it.

The config files I ended up with

CONFIG.SYS

DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH,UMB
DEVICE=C:\DOS\EMM386.EXE NOEMS
FILES=40
STACKS=9,256
BUFFERS=20
LASTDRIVE=Z
Line What it does
HIMEM.SYS The extended memory manager. Required for Windows 3.1.
DOS=HIGH,UMB Loads part of DOS above the first 640K, and lets drivers use upper memory. More free conventional memory for programs.
EMM386.EXE NOEMS Provides the upper memory blocks without setting aside expanded memory. Old DOS games that want EMS need this changed.
FILES=40 How many files can be open at once.
STACKS=9,256 Memory set aside for hardware interrupts.
BUFFERS=20 Disk buffers.
LASTDRIVE=Z Makes drive letters up to Z available.

AUTOEXEC.BAT

@ECHO OFF
C:\DOS\SMARTDRV.EXE /X
PROMPT $P$G
PATH C:\DOS;C:\WINDOWS
SET TEMP=C:\DOS

SMARTDRV is the disk cache, and /X turns off write-behind caching, which is the safer choice on a machine that might get switched off at the wall. PROMPT $P$G puts the current folder in the prompt, so you see C:\WINDOWS> instead of just C>.

Booting straight into Windows, or not

If you want it to go straight to Windows, add WIN as the last line of AUTOEXEC.BAT. EDIT C:\AUTOEXEC.BAT opens the MS-DOS Editor; Alt+F gets you the File menu for Save and Exit.

I left it booting to DOS. Being able to stay at the prompt makes troubleshooting easier, and typing WIN is part of the fun. If you do set it to auto-start, remember that when "Starting MS-DOS..." appears you can press F5 to skip CONFIG.SYS and AUTOEXEC.BAT for one boot, or F8 to step through them line by line.

What I'd do differently

  • Test in a virtual machine first. VirtualBox or 86Box, with the same images, would have shown me the disk-order problem before I was sitting on the floor with a stack of floppies.
  • Skip floppies where you can. A floppy drive emulator that reads images from a USB stick or SD card, or a CF card on an IDE adapter prepared on another PC, takes the flakiest part out of the process. DOS 6.22 also includes INTERLNK and INTERSVR for copying files between two PCs over a parallel or serial cable, which is a lovely period-correct option.
  • Back up the images. Original floppies are 30-some years old. Once you have images that install cleanly, keep them in two places. I file mine the same way I file a classic Mac archive.
  • Keep it clean and patient. Dust is the enemy of floppy drives, and a 486 does everything slowly. Let each phase finish before touching the next.

It's the oldest machine on the bench, a decade before the Optiplex GX280 XP box. The next step up the timeline is a Windows 98 machine stocked with the software of 1999. And if you like your old machines with the right screen attached, the '90s CRT TV is the same kind of project.