How to install Windows 1.x-2.x in QEMU
Windows 1.0 is an operating system created by Microsoft, released on November 20, 1985. It is the first major release of Microsoft Windows and introduced some features and programs still present in Windows today. There were four versions of Windows 1.0. Windows 2.0 was released on December 9, 1987, and was the second major release of Windows. It added overlapping windows and protected mode to Windows, among other things. There were several versions of Windows 2.0. Support ended for both operating systems in December 2001, making Windows 1.01 the longest outright supported version.
This page describes, in detail, how to install Windows 1.x/2.x in the QEMU software. None of these instructions require root/Administrator privileges, unless you are restricted from writing to files/downloading files.
Running Windows 1.x isn't really recommended since there's virtually no software for it (although there are some interesting gems - like Aldus PageMaker, and Micrografx In*a*Vision), on top of the fact that the mouse doesn't work at all in QEMU unless you use a driver from Windows 2.03. Although Windows 1.04 includes an IBM Mouse driver, and QEMU can emulate a serial mouse with the "
-serial msmouse" option, it is not compatible with Windows 1.
To get the mouse to work, copy a mouse.drv from a Windows 2 installation and place it into your Windows 1 installation. Then the mouse will work and function as expected.
It is recommended to use Windows 1.01, though if you don't use a QWERTY keyboard, you should use Windows 1.03 for better compatibility.
Before you start
You will first want to replace MOUSE.DRV in Disk 1 with a copy from Windows 2.03, to ensure that the mouse works correctly. On Windows, WinImage can be used to do this.
Make an image by opening the Terminal (or Command Prompt) and typing this:
qemu-img create -f qcow2 DOS.img 32M
You should see an output like this:
Alternatively you can install Windows 1 onto a floppy disk, but this isn't recommended.
MS-DOS is required to install all versions of Windows 1.x. You can install whatever version of MS-DOS you want, as long as its at least 2.0. However, it is recommended running it on MS-DOS 3.30 for the best compatibility. MS-DOS 6.22 also works, but seems to be more unstable with it.
Now we run the following command:
qemu-system-i386 -m 1M -hda DOS.img -fda /path/to/DOS/disk1.img -net none -vga std -name "DOS (x86)" -monitor stdio -display sdl -rtc base=localtime
Don't enable KVM or HAXM or any kind of acceleration, as Windows 1 will instantly crash if its running too fast. We also don't enable the network since its rather pointless, though it is possible to install a packet driver to use the internet from DOS.
Windows 1 is not its own OS like Windows NT is - you need to install MS-DOS first. MS-DOS 2.0 is required to run Windows 1. For this tutorial, we will be using MS-DOS 3.30. You can grab MS-DOS 3.30 from here. MS-DOS 6.22 will also work - we will cover how to run it there later.
Installing MS-DOS 3.30
Installing MS-DOS 3.30 is confusing if you haven't done it before but its pretty simple. To install it, boot the system and make sure DOS Disk 1 is inserted, if its not, press and hold CTRL + ALT + 2 to enter the serial console and type "
change floppy0 /location/to/msdos/disk1.img" (obviously replacing the path). Then type
boot_set a and finally
When you are booted into MS-DOS you will see something like this:
fdisk and a screen like this should appear.
Create a primary DOS partition, and when it asks you to use the maximum size for a DOS partition press Y and hit enter. Press and hold CTRL + ALT + 2 again to get to the serial console and type
boot_set a. Then hit CTRL + ALT + 1 If it rebooted and says "missing operating system" go back to the serial console and type
Now we need to format the hard drive so type
format c:, hit Y, press enter. Now it should be usable. Type
sys c: and you should get a message that says "System transferred".
a:, and then type
copy *.* c:. Go to the serial console again and type
change floppy0 /location/to/msdos/disk2.img and
boot_set c. Run the same copy command again.
Once this is done, if everything went well, you should be in DOS 3.30.
Running Windows 1 in DOS 6.22
Some users may not want to install DOS 3.30, since its much older and far more complicated to install. Windows 1 will NOT work in DOS 6.22 unless you use the
setver command. Install Windows 1 normally, then do the following:
config.sysand make sure that
device=C:\DOS\SETVER.EXEis somewhere in there.
- Then type
setver WIN100.BIN 3.30.
Then Windows 1 should work.
Installing Windows 1.0x
After DOS is installed, start QEMU like this:
qemu-system-i386 -m 1M -hda DOS.img -net none -vga std -name "Windows 1.0 (x86)" -monitor stdio -display sdl -rtc base=localtime
Once MS-DOS is installed we can now install Windows 1.01 or any other version. The install is extremely simple and is completely command-line. Switch to the serial console and set the floppy to Disk 1 of Windows 1 just like we did with MS-DOS earlier. The setup will ask you questions about your computer, make sure to answer the following:
- Keyboard: United States - (unless you're using non-QWERTY keyboard)
- Mouse: Microsoft Mouse (Bus/Serial) - This will display even after you replaced the mouse.drv file so pick this
- Graphics: EGA (more than 64K) with Enhanced Color Display
- No printer device
Then just proceed with the file copying, its really simple. Change the floppies when it asks you. It should boot into Windows 1, and the mouse should function.
Windows 1.01 has some pretty interesting software. A very interesting note about Windows 1 is that it was actually the first version of Windows that could use overlapping windows, though Windows 2 was the first version where the default apps took advantage of this feature. This was done to prevent a lawsuit by Apple.
Here's some examples and download links (provided by ToastyTech):
- WineMine (minesweeper)
- Balance of Power (roleplaying game)
- Aldus PageMaker
- Micrografx Draw
- PC Paintbrush (Windows 3.x paintbrush for Windows 1)
Installing Windows 2.0x
After DOS is installed, start QEMU like this:
qemu-system-i386 -m 1M -hda DOS.img -net none -vga std -name "Windows 2.0 (x86)" -monitor stdio -display sdl -rtc base=localtime
Follow the instructions above to install MS-DOS 3.30 and then proceed with Windows 2.0 install. You will have to use the same trick as Windows 1 to run this under DOS 5 - see "Running Windows 1 in DOS 6.22" for more info.
There are several versions of Windows 2: Windows 2.01, 2.02, 2.03, 2.10, and 2.11. Windows 2.01, 2.02 and 2.03 can still install and run from a floppy - Windows 2.10 and above need a hard disk.
You can run whichever version you want, Windows 2.11 is recommended since its the newest. It does NOT matter if its the 286, 386, or 8086 versions, they'll all run fine in QEMU
Just like with installing MS-DOS, switch to the serial console and set the floppy of Disk 1 to whichever Windows 2 version you're using, the install is extremely simple and is done entirely through the command line. The setup will ask you questions about your PC, answer the following:
- Computer: IBM AT (or 100% compatible)
- Make sure the display adapter is set to "VGA", keyboard is set to "United States keyboard" (unless you're in Europe or want to use another keyboard), and the mouse is set to "Microsoft Mouse (Bus or Serial".
- If you want to use the high memory area and you're on a DOS version newer than 5.0, edit config.sys, remove the "DOS=HIGH" line and restart the system.
- Press E to set extended memory to available
- "C" to Continue Setup and skip installing printer
- Set your country
- Finish off the rest of the setup
- And finally, enjoy!
Windows 2.x has some extremely interesting software. Notably, the first version of Microsoft Word and Excel were launched on this OS, as well as Corel Draw and a couple of other programs.
- Microsoft Excel 2.0
- Microsoft Word 1.0
- Microsoft Project 1.0
- Metz Desktop Navigator 2.53
- PC Paintbrush For Windows 1.22
- Corel Draw 1.10d
- Kermit Terminal
- More Interesting Windows 2 shareware
- Omnis 5 Database
- MicroGrafx Designer 2.0