Qemu 0.14 PowerPC & Debian.

So I got this request about running Mono on the PowerPC. As it stands right now I don’t have a PowerPC box in my home to test, so I thought I’d turn to Qemu & Debian.

Qemu 0.14.0 PowerPC Debian boot

Qemu 0.14.0 PowerPC Debian boot

And yes, it surprisingly boots!

I opted for the network install, as I didn’t even know if it would work. But not only did the 32bit version of Linux for the PPC boot up, but the 64bit did as well! The flags were a little involved to get going, but it went something like this for the 32bit version:

qemu-system-ppc.exe -m 512 -boot d -hda debian-ppc.qcow2 -L pc-bios -M mac99 -net nic,model=pcnet -net user -cdrom debian-6.0.1a-powerpc-netinst.iso -boot d

And for the 64bit version:

qemu-system-ppc64.exe -L pc-bios -m 512 -hda ppc64.qcow2 -net nic,model=pcnet -net user -cdrom debian-6.0.1a-powerpc-netinst.iso -boot d

And then it’s a matter of waiting… Maybe I should have just torrented the install DVDs or something.. 😐

Qemu 0.14.0 PowerPC Debian install 33%

Qemu 0.14.0 PowerPC Debian install 33%

But booting from the hard disk produces a:

openbios panic: Unexpected exception 704

So close. Perhaps the macintosh machine type I select means the boot type isn’t PReP like for OpenBIOS to find?

I’ve also been told you can find various pre-built images here.

Programming with paintbrush.

(click to see it in action!)

Well you see, everything you type is stored in binary, right? And what we see depends on how programs interpret the binary stream. So sure it’s got a BMP header, the data payload can easily contain… text! It’s a real simple version of Steganography, mixed in with some c++.

Ok, it’s not emulation but it’s very cool!

386BSD 0.1 running on a 386sx

Looking around, I found this blog, which kind of reads under google translate where someone went ahead and booted up 386BSD 0.1 on his 386sx laptop. Sadly he doesn’t have a 80387sx so things like PS explode as it has a %f in the code…

Oh well it’s kind of fun to see things go round and round.

—-update…

I should mention I was thinking of 0.0 that didn’t include the floating point support.. Also “the fuck it crashes” is as good as any other google xlate disaster… 🙂

Win32s version tour…

Well I’ve managed to track down quite a few versions of Win32s from my various compiler CD’s So I figured it’d be somewhat interesting to run down a ‘tour’ of some of the significant versions starting with the first.

Now Microsoft Knowledge base article, KB121091 tells you which version of the win32s subsystem is installed by checking the win32s.ini or the version stamp of the WIN32S16.DLL file. Which for the most part is pretty simple. However the first version of Win32s that I could find doesn’t include either.

Win32s from October 1992.

I got this from the Windows NT October 1992 Win32 SDK. Keeping in mind that Windows 3.1 shipped in April of 1992 it’s kind of note worthy that already in October there is already a working win32s upgrade for Windows. I’d describe this release a a ‘core’ only version as all the win32s programs I have failed to run on this version. Mostly because this version lacks WINMM.DLL (the Multimedia library from NT), although the October 1992 Windows NT beta does include this dll, along with soundblaster/AdLib support!

Windows 3.1 - win32s 1992 running nt october 1992 appletts

Windows 3.1 – win32s 1992 running NT October 1992 applets

I was able to get a few of theapplets from Windows NT October 1992 running on this version of Win32s by simply expanding and copying them over.. The font selection for the digital clock was messed up, but the analog version worked fine. As you can see I got clock, freecell, notepad, solitaire and winver running. Needless to say the build 34326 is totally incorrect.

For anyone that wants to play with it, the 1992 version of Win32s is available here.

The next, and final beta from March of 1993. This one does identify itself as being build 61, which is not on the list.

Windows-3.1-win32s-March-1993-running-nt-october-1992-appletts

Windows 3.1 win32s from March 1993 running NT October 1992 applets

It’s compatibility is about par with the 1992 version, but the winver reports Windows NT version 63.10 … I’ve made it available here.

I was unable to find any 1.0 versions of Win32s. Googling around, it would appear that MathCad 4.0 shipped with the 1.0 runtime. If anyone has Mathcad 4.0 I’d love a copy of it’s Win32s 1.0!

From the same InfoWorld article, 1.1 shipped the same time as Windows NT 3.1, and 1.0 was another ‘pre-release’. But I do have to say that 1.1 includes quite a number of great utilities, and tools, unlike the other development versions.

Win32s 1.1

Win32s 1.1

Win32s 1.1 dev features

Win32s 1.1 dev features.

That’s right, this developer version includes the CLI Visual C++ compiler (Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 8.00), along with a profiler, and codeview debugger! Also included is a demo version of the Pharlap TNT Dos Extender, which is restricted to no user DLL’s and 2MB of RAM. Although if anyone really wants a kick ass Dos Extender, use the excellent, and FREE HX Dos Extender

Once WinG is installed, Lemmings will run on 1.1, while WinDoom fails because the procedure CreateDIBSection does not exist in this version of Win32s. Which really isn’t that surprising as version 1.1 is at parity with Windows NT 3.1, and that call didn’t get implemented until Windows NT 3.5 . Another fun thing is that because of the segmentation in Windows 3.1 it seems that a lot of stack ‘issues’ and other memory collisions are found much easier under Win32s then under Windows NT (and it’s siblings). At any rate, you can find this version of Win32s here.

Next is version 1.20 which includes support for OLE 2.0 . This brings Win32s up to the level of Windows NT 3.5 . And it allows more NT applications to run on Windows 3.1, including Word 6.0 for Windows NT. The development copy of Win32s 1.20 can be found here, along with the retail version here.

The developers version of 1.25 is on the Visual C++ 2.2 disc, but it lacks dev tools and debuggers from 1.10!  The retail copy of 1.25 with OLE2 support. There apparently was some major bugs with 1.25, and there is also the all important 1.25a update, which I’ve been able to track down both the retail and the retail + OLE2 versions. I don’t have any development versions of 1.25/1.25a so no debug symbols.

And finally I was able to track down Win32s 1.30a both retail OLE 2 & the development version, along with the final version of Win32s 1.30c, development and retail OLE 2.0.

Win32s 1.30 included a Windows 95 compatible help engine. I would imagine it included some level of compatibility for Windows 95 applications too.

Of all the versions, I’ve found that 1.25a is the most well behaved, but at the same time, I’m lacking the debug build of it… I should also point out gabby.de has a great info page on various applications that’ll run on Win32s.

** As a note from the future it turns out that 1.30c build 172 can play nicely under Qemu, it turns out to need a fix, from Roy as mentioned down below.  “I can patch all 1.30.xxx versions by replacing “66 83 EF 04 E3 3B” with “66 83 EF 04 EB 3B” in win32s16.dll“.  Super thanks for that!  I mirrored the fix here.

Office 4.2 for Windows NT

At some time during the whole Windows NT vs OS/2 thing in the workplace, one of the funny things is that we all had to use Win16 versions of office, which I think we all agreed kind of sucked. Even at the time I thought it was rather sad that here is Microsoft pushing this new and exciting operating system, and the only applications that are available is a program to talk to mainframes (SNA Server), and a database (SQL Server). Oh sure there was MSMail, but there was no Word & Excel that the world was rapidly moving to, away from WordPerfect & 123.

So was I ever surprised to find out that there was a version of Microsoft Office for NT, and it at least ran on both i386 & Dec Alpha. The box claims that the PowerPC and MIPS versions will be along, but I don’t know if they ever shipped. But at the same time, it’d be hard to be touting these ‘advanced’ RISC CPU’s and all their glory, but when it comes to day to day work, they are running Word/Excel in emulation. I have the box with the coupon to redeem but I suspect MS would just laugh if I called them up asking for Word/Excel for the MIPS so I can run it on Qemu…. But I digress.

Naturally because of the day & age, the requirements are kind of laughable, but it was targeted towards Windows NT 3.5, with:

  • Microsoft Windows NT(tm) operating system 3.5 or later
  • 486 or higher
  • 16MB of memory
  • 59MB of disk space (minimum) 84MB maximum

So playing around with Win32s, I figured if i were to install say word into a VM, then xcopy it out, and try to run it, would it work? Win32s 1.10 wouldn’t run as this version didn’t include the new OLE 2.0 stuff… Which is why I suspect it won’t run on NT 3.1. Win32s 1.30c crashed and burnt in the worst way possible. Even Lemmings died on this version. damn.

But Win32s 1.25 actually ran it, along with Lemmings & Doom!

Word for NT on Windows 3.1

I can’t say it’s terribly useful, but considering how flakey Word 6.0 was on Windows 3.1, hell back in the day it’d been really nice to have a Win32 version.

Now I guess I ought to dig thru my stuff and see how many versions of both retail & debug Win32s I can find.

Lemmings demo for Win32s

Lemmings on Windows Vista

Lemmings on Windows Vista

While digging around I came across this demo of Lemmings for WinG/Win32s. And what’s great is that it runs on Windows 7 x86_64! Pretty snazzy!

The game play is still there, but the ‘speed up’ stuff is instant in the world of Ghz CPUs.

Oh well, it’s worth having some fun with. Here is the download.

I just remember this game when it was an Amiga thing…

Quake in FLASH!

Sure we’ve seen iD’s Doom in flash, but what about something more intense, say, Quake?

Quake in flash (actionscript)

Try it out here, The only requirement is that you have a flash 10 plugin, which supports the Alchemy VM. Source code is available here as well.

Sadly there is no networking play, perhaps it’s a limitation that you need a socket server to allow inbound connections from flash..? Maybe if I can get Alchemy to build anything under x86_64 maybe I’ll play with it… But no promises.

There is a new Dec Alpha emulator out there…

EmuVM‘s AlphaVM!

Currently it emulates an AlphaServer DS20, with up to 4 disks, a CD-ROM, two serial consoles and pcap’d ethernet.

AlphaVM

The UI is pretty self explanatory, however I was unable to boot either OpenBSD, nor Digital UNIX 4.0b (no wonder they support .e onward…) on it. I suspect it’s mainly targeted to VMS users as the Itanium is inching towards a silent death.

The requirements for this version are;

  • The emulator runs on x86 or x64 architecture. The appropriate build is chosen by the product installer. We recommend an x64 system. On x86 the performance is lower. Some features are supported only in x64 (for instance SMP trial ). These limitations arise due to the fact that Alpha AXP is itself a 64-bit system.

 

  • On x64 host system the CPU must support the instruction CMPXCHG16B. Note, that this instruction is not supported by older AMD CPUs, which are rare.

 

 

  • There must be at least two cores. There must be at least 3 cores for the SMP trial.
  • We recommend at least 2GB memory.
  • OS is Windows7, or later. The product may run on Vista x64, but it has not been tested there yet. The product will definitely not run on earlier versions.
  • The installer installs .NET framework client profile. The .NET framework is not included in the installation package of AlphaVM, but rather the downloader is included. You can download and install the framework prior to the product installation. The framework is used for the launcher GUI implementation.
  • The ‘tested’ installed OS’s are…
  • OpenVMS (starting from 7.1-2)
  • DigitalUNIX/Tru64 (starting from 4.0e)
  • Linux (tested with Debian Linux 5.0.6)

 

Windows NT July 1992 Preview

So I got my hands on another early Windows NT preview. This one is so rough around the edges, it’s more of an alpha then a beta. It’s even reflected in the bootup screen.

Bootup Bluescreen

Well, what has changed from the 1991 releases? Plenty, the registry is coming along quite a bit, but there is no integrated setup program at this point. I almost wonder if this build was meant to be internal only, as it does drop stuff about your Microsoft badge ID. No, really!

Freaky, isn’t it?

Winver showing Build 297

In this build 297, and it includes the OS/2 & MS-DOS/WOW subsystems. The POSIX subsystem is absent, further cementing the idea that it was included much later to target Windows NT at government contracts with a POSIX check-box. I’ve only done some simple testing with the MS-DOS compatibility and it was ‘ok’ but nothing too solid. I didn’t have any luck with the OS/2 stuff, maybe I’m just doing it wrong. One thing is for sure, if it’s this rickety in 1992, they were nowhere near ready in 1991!

I guess if you paid for it, you can put your name all over it!

Another fun touch is who it’s registered to. I guess since Bill is footing the bill for NT, it’s all his anyways.

Broken boot.

With that being said, the installation which involves a batch script dos2nt.bat is very touchy, it does require few files to manually edit. I’ve found it works best with a d drive to swap to, but for the most part NT cann’t find itself properly and you wind up with a blank desktop, stemming from the “An error has occurred in the registry. The Program Manager’s settings and groups can not be accessed.” error. Since NT at this point is far more closer to Windows 3.1, then 1991’s builds being closer to Windows 3.0, the famed game reversi is missing…

However the administrative tools is in NT now, the logon/logoff and locking works. NT at this point is transitioning from an OS running a 32bit version of Windows 3.0 into a fleshed out operating system.

Shutting down.

SDL_Mixer

While building SDL_Mixer on MinGW I ran into this nice error…

Makefile:65: *** multiple target patterns. Stop.

Turns out the version of bash on my MinGW (3.1.0(1)-release) is screwed up. So the solution is to upgrade to at least bash, version 3.1.17(1)-release…

Which means…
*libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
*libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
*bash-3.1.17-3-msys-1.0.13-bin.tar.lzma

Phew, wasn’t that fun?

Ok, maybe it was more of a pain in the middle of it, while I broke my msys install in the middle of it..