liam_on_linux: (Default)
Interested in running DOS programs on 64-bit Windows (or x86 macOS or Linux)? Would you like to run classic DOS applications such as WordPerfect, natively and without emulation on a modern OS? Would you like to get an MS-DOS prompt back under Windows 10 on AMD64?

I found a copy of the IBM PC DOS 2000 VM from Connectix VirtualPC for Mac, and converted it into a format that VirtualBox can open and run.


This was bundled for free with Connectix VirtualPC. VirtualPC is now owned by Microsoft and is a free download.

Old versions are out there for free download, e.g. the Mac version 4.

Just the PC DOS 2000 disk image, converted to VirtualBox VDI format, compressed in Zip format, is here. It's about 10MB.

Note: this is the complete, unmodified Connectix VirtualPC DOS image. It contains DOS integration tools for VirtualPC which do not work with VirtualBox. Unfortunately, VirtualBox does not offer guest additions for DOS. You will see some minor errors as it boots due to this. How to fix them is below.

If you actually want to try this, here are a few things you will need to know.

This is PC DOS 2000, AKA PC DOS 7.01. It's PC-DOS 7 plus bugfixes and
Y2K compatibility. It is not FAT32-capable: for that, you need PC DOS 7.1. Here is how to get and install that – it too is a free download. This VHD is the ideal basis for building a PC DOS 7.1 VM and that is why I created it.

PC DOS 7 is from the same code-base as MS-DOS 6.22, but with updates. It has IBM's E editor instead of the Microsoft full-screen editor, and IBM's Rexx programming language instead of QBASIC. It does not support DoubleSpace or DriveSpace disk compression. It does include IBM's licensed-in antivirus and backup tools, but to be honest I have not investigated these. It is installed on a 2GB FAT16 partition which is the single primary active partition on the virtual hard disk, just as Connectix shipped it.

PC DOS 2000 does support power-management, but it is not enabled by default. Without it, this means that the VM will take (and waste) 100% CPU. (Unlike MS-DOS 6.22, PC DOS also has native PCMCIA card
support, but that is no use in a VM – however, it may be helpful if you want an OS for a very old laptop.) To enable power management, you should add a line to the CONFIG.SYS file that says:

device=c:\dos\power.exe

That should be enough – afterwards, your DOS VM will only take the tiny amount of CPU that it needs.
DOS needs only 32MB of RAM and will run fine in 1MB. Yes, one megabyte, not one gigabyte.

You might also want to remove the AUTOEXEC.BAT line that references a FSHARE program in the CNTX directory, as that won't work under VirtualBox. Type the following:

e autoexec.bat

Look for the line that says:

C:\CNTX\FSHARE.EXE

Insert the word REM at the beginning of the line, so it says:

REM C:\CNTX\FSHARE.EXE

Press F2 to save the file. Press F3 to exit. Reboot the VM with [Host]+[R].

PC DOS 2000 was the bundled demo virtual machine with Connectix's VirtualPC. VirtualPC is, for now, obsolete – it does not work correctly under any version of Windows after Win7. Its last hurrah was as the basis for the XP Mode feature in Win7, which did not work on Windows 8 (although there is an easy fix to run it under Win8 or 8.1) or at all under Windows 10.

(I say "obsolete for now" as the original purpose of VirtualPC was as a way to run x86 DOS and Windows on PowerMacs, which did not have x86 processors and could not natively run x86 binaries. Now that Apple is transitioning to processors with the ARM instruction set, newer Macs can again not natively run x86 binaries. Yes, there is a built-in emulator, but Rosetta 2 will not work well on a hypervisor. So, there is once again an opening in the market
for a PC emulator for Macs, if Microsoft chose to resurrect the application. I personally would like to see that – VirtualPC was a good tool and the easiest, least-complicated way to run guest OSes on top of those it ran on, simpler to use than VMware or VirtualBox.)

Yes, this does mean that there is a legal, activated copy of Windows XP Professional for free download that you can run under Win7/8/8.1. And yes, you can extract it and run it under VirtualBox if you wish. I wrote an article for the Register describing how to do that. The snag is that the activation only works for a VirtualPC VM and it will fail on any other hypervisor. You will need a license key or to crack this ancient, obsolete version of Windows. Obviously I cannot help you with that. None of this is needed for PC DOS: it has no activation, copy protection or anything like it.

Microsoft acquired Connectix in 2003 and VirtualPC provided the basis for Microsoft Hyper-V (just as QEMU provides the basis for KVM on Linux) – file formats, management tools and so on. In theory, VirtualBox can attach a Hyper-V virtual hard disk to a VirtualBox VM and boot from it, but in my testing, this did not work with this ~20-year-old Apple VirtualPC file. I had to use command-line tools to convert it to VMware format, and then from VMware format to native VirtualBox format. Apart from testing, that is all I have done.

For my own use, I have of course slightly tweaked and updated the VM. I have configured memory management, added a few useful tools from from a WinME boot diskette:

  • the MS IDE CD device driver

  • the MS mouse driver

  • the MS full-screen editor

  • the MS SCANDISK disk-checking tool

... and a few more, simply because I'm more familiar with them. I've disabled the Connectix guest additions but I have not replaced them – I run it under Linux, where I can just mount the disk image to get files on or off it. I also have a modernized version with the FAT32-capable PC DOS 7.1.

If you are interested in these changes, please leave a comment on the blog and I will help you reproduce them for yourself. Please also let me know of any errors, corrections, additional info or any help you want with getting this working.

You can log in to LiveJournal to comment with any OpenID, including Facebook, Twitter or Google accounts.


I emphasize that this is an unmodified disk image. I have not in any way altered the contents of the VM image, just converted it from one format to another. These files remain the property of their original copyright holders.
liam_on_linux: (Default)
So, once upon a time, there was a software PC emulator for the Mac. That's old PowerMacs running classic MacOS.

It was called SoftPC, by a British company called Insignia. SoftPC was a PC emulator for non-x86 computers. Unix workstation with RISC chips, basically. Some of the early RISC workstations were so much faster than PCs, you could run a usable emulation of a DOS PC and so run a few DOS apps.

It grew up to be a package called SoftWindows -- you can download it for free these days.

A bit later, the Acorn Archimedes came out -- a home computer fast enough to do the same thing. Acorn wrote their own, called, appropriately, "PC Emulator". Here's the manual [PDF], a compatibility list, and a contemporary write-up. (The latter is mainly about a follow-on product, but my original Archie was too low-spec to run that.)

I used it to take work home with me from my first ever job. The emulation gave me a slow PC but with very fast graphics and disk. It was certainly usable.

Later Insignia ported SoftPC to the Mac when PowerMacs became as powerful as the early UNIX machines (but 10× cheaper.)  SoftWindows was SoftPC enhanced with emulated (native Mac binary) device drivers to make Windows (and only Windows) run quicker. But since Windows is mainly what people needed, it did OK.

Fun fact: RISC versions of Windows NT (for MIPS, Alpha and PowerPC) ran 16-bit DOS apps and Win16 binaries via a licensed, embedded version of the Insignia SoftPC technology.

SoftWindows did so well that pioneering Mac vendor Connectix wrote their own version, Virtual PC. They'd already done other emulators so a PC one didn't seem so hard.

SoftWindows and Virtual PC were the two main rival products for Mac users who wanted occasional access to PC programs.

When VMware released their eponymous product, Connectix paid close attention.

VMware worked by trapping Ring 0 code (kernel code, stuff that directly manipulated the hardware) and running it through a CPU emulator -- on the native PC. This enabled x86 PCs to run virtualised x86 PCs. Before then, this needed special hardware (dedicated CPU instructions for virtualisation) that SPARC and POWER had but the x86 didn't. Indeed, the pundits had said it was impossible on x86.

Connectix thought "huh, we have a PC emulator already. We can do that." So they ported VirtualPC to the real PC. It was cheaper and easier to use than VMware.

Source: me. I interviewed the founder of Connectix, Jon Garber. He flew to the UK to meet me personally. Fun times.

As virtualisation took off, Intel added hardware virtualisation instructions to its chips. AMD did the same.

So the software emulators weren't needed any more -- it was much simpler to write one using the hardware facilities. That's exactly what KVM on Linux is.

But you need something to create the VM, manage virtual disks etc.

KVM uses the existing QEMU emulator for this.

Microsoft decided it wanted a hypervisor, so it bought Connectix and used those bits of VirtualPC. The rest was made a free download -- it's what runs XP Mode for Windows 7.

Microsoft Hyper-V is VirtualPC, integrated into Windows and minus the emulation engine that's no longer needed.

So, at different times and in different versions of the same product, Microsoft licensed and incorporated both SoftPC and VirtualPC.

June 2025

S M T W T F S
1234567
891011121314
15161718192021
22 232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 08:44 pm
Powered by Dreamwidth Studios