While writing my post on the KCS Power PC board I tried out Microsoft Windows 3.0 on the Power PC Board and was not impressed with the result. The main reason for me to try this out was that KCS at the time advertised the Power PC Board as a means of running Windows on an Amiga. I managed to install Windows successfully but it ran so slow that it was practically unusable.
My interest in this endeavour flared up again while writing the PiStorm post. My hope was that the added grunt of the PiStorm would make the Amiga part of the Power PC Board, the part that updates the screen, run much faster and make Windows run more smoothly on the Power PC Board. This idea did not go far since the Power PC Board software can't find the PC Board hardware when the PiStorm is installed. This could be to do with using the LazarusStorm, I have not tried the Power PC Board software with the PiStorm directly installed in the CPU socket, but has more likely to do with the way the PiStorm manages the Amiga's address space.
Then just after finishing the post on Emu68 I realised that I could give running Microsoft Windows on my Amiga 500 another try. Never mind trying to get the Power PC Board to work, I thought that with the amount of speed offered by Emu68 a pure software based emulator like Transformer or PC-Task may actually be able to pull this off.
Originally PC-Task was sold as a commercial software product. However, in 2010 the creator of the software (Chris Hames) declared the PC-Task software to be free and he allows it to be used and distributed for free as long as it is not sold. The last release of PC-Task, version 4.4, can therefore be legally downloaded from Aminet. On Aminet a guide can also be found which has information on running MS-DOS as well as Windows software in the emulator.
PC-Task 4.4 has two different executables, one is the "interpretive" version and the other is the "dynamic" version. The first version reads and executes the x86 instructions one by one. This is not the fastest way of doing it, but is the most compatible. The second version will read the x86 code and convert it into 680x0 code and then keeps that code in cache so that the next time it is run it does not need to be translated. This of course will speed up loops and other recurring code quite a lot, but needs a lot of memory for caching.
The emulated CPU is an Intel 80486, which means that PC-Task should be able to run much newer PC software than my trusty old Power PC Board as that only has a NEC V30 processor. PC-Task also emulates a number of different graphic card standards from MDA all the way up to SVGA. In real use this emulation is limited by the Amiga 500's chip set that can only produce 16 colours when at 640x512, where a real SVGA card will usually support 800x600 or 1024x768 at 256 colours.
Hard disk emulation is also present and uses a file on the Amiga side which serves as the hard disk for the PC side. Two of these files can be used at the same time; one for the PC's "C" drive and one for the "D" drive. The hard disk files can be created from the settings GUI of the emulator, I created one of 80MB and named it "harddisk0".
Unlike the KCS PC Power Board, PC-Task will multi-task with the Workbench while running on its own screen. The Workbench screen is simply behind PC-Task's screen. Switching between the two screens is as simple as pressing [left-Amiga]+[M].
After creation of the new empty hard disk image the operating system needs to be installed in order to make the emulated system bootable. For this I booted from the first of the three MS-DOS 5 installation disks. The installer program then partitioned the emulated hard disk, formatted it and installed MS-DOS version 5 on it. These three installation disks are the same disks I used for the Power PC board installation. It sometimes comes in handy not to clean up my desk too often.
Text based programs like QBasic work smoothly, as does the hard disk access. This was not really surprising; in the past I have used PC-Task on my Amiga 1200 with a 50 MHz 68030 accelerator and even then most text based MS-DOS software was fast enough to be usable. With the additional speed of Emu68 this was bound to run better rather than worse. Of course I also ran the speed test of Norton's "system information" program. The screenshot for the interpretive version of PC-Task is shown below:
The dynamic version takes a little longer to start, but then produces a value of 388.5. This is a good example of how the dynamic version works; it takes a bit longer to compile the x86 code into 68000 code but then the compiled code will run considerably faster.
Initially I used the same pile of disks that I used before to install Windows 3.0, but then I realised that I was no longer limited to 8086 code so I could go up to Windows 3.1, which requires at least a 80286. It is also the first version of Windows that I used professionally (in the 3.11 Windows for Workgroups version) as part of the development team working on the Maycom Digicorder. It may not give me the same feeling of nostalgia as working with the Amiga but I found out that I do still have a soft spot for Windows 3.1x.
In any case, installation went smoothly. Instead of writing images to disks I copied the contents of all installation disks into one directory on the virtual hard disk and ran the setup from there. This was made easy with PC-Task's "PCTCrossMount" program on the Amiga, which makes the PC's virtual hard disk show up as a mounted volume on the Amiga. Don't do this while the virtual PC is running as having both the Amiga and the PC access the hard disk at the same time is likely to cause corruption.
Initially Windows crashed after showing the logo at startup. I then remembered reading (in the guide that I downloaded from Aminet) that Windows needs to be started with the "/s" option. This tells Windows to run in "standard" mode (80286 compatible), without the option it will start in "enhanced" mode, which is for 80386 and higher. The enhanced mode allows Windows to run multiple MS-DOS programs at the same time, which is not supported by the standard mode. Even though PC-Task emulates a 80486 it seems to have issues running the 80386 enhanced mode code. I also needed to use the interpretive version of PC-Task since the dynamic version never made it past the startup logo.
With Windows running in standard mode it runs quite smoothly. It has been a long while since I have used a PC of that era to run Windows 3.1 so it is hard to say for me if the Emu68 runs it as smooth, or less so. In any case, it runs more than smooth enough for me to play a game of solitaire and mine sweeper. The dragging and dropping of the cards in solitaire works a treat, there is nothing there that distracts or makes it feel emulated.
Photos, or it didn't happen, or in other words, time for some screen shots. The fist one shows what Windows 3.1 looks like just after starting it. I would like to mention that the screen is using interlaced mode, and this makes the letters more difficult to read on the screenshot than they are when looking at the monitor.
Of course it is now possible to play a game of Windows Solitaire. I mean, this must have been Microsoft's most played game for quite a long time. Especially in offices around the world. I personally prefer Freecell, but that did not come with this version of Windows..
The next one shows that while playing Solitaire I switched over to the Workbench screen using [left-Amiga]+[M] and then pulled the Workbench screen down to reveal PC-Task just running behind it. This shows how PC-Task is running as just another Amiga program with its own screen and is not taking over the Amiga.
Playing simple card games is all well and good, but what about running actual Windows software on this setup? As a little test I clicked on the "Read Me" icon in the "Main" window of the Program Manager. This opened a document with some formatting in it (like bold and italics) with Microsoft Write. Scrolling through the document and editing it worked fine and smooth enough to be perfectly usable.
At this point I started to get visions of installing the 16 bit version of Visual C++ and see how well that would work. But the thought of having to transfer all that data to the 500 first so that I could install it on PC-Task's virtual hard disk stopped me. At the moment I'm using a serial cable at 57600 Baud to transfer files from my PC to the Amiga 500 and that just takes too long when it is more than just a few disks...
The fact that my OCS Amiga 500 does not go further than 640x512 by 16 colours is also something that limits the use of Windows. Most programs for Windows 3.1 do expect something along the line of 800x600 so on this setup things look a bit cramped. The flickering of the interlaced mode gets annoying too.
So all in all I'm (once more!) looking forward to a PiStorm32 on my 1200, which has a flicker fixer installed and thanks to AGA will be able to do higher resolutions at more colours as well. There is a good chance that I'll be revisiting Windows 3.1 on PC-Task at some point in the future when the PiStorm32 and matching Emu68 have been released and I have been able to get my impatient hands on them..