Serweb 0.3

So a while back when I installed a copy of Windows NT 3.1, and put it on the internet, I looked high and low for a web server. Somehow I found this small web server, Serweb by Gus Estrella, which seemed to fit the bill. However one thing that I did notice after a while is that it had a tendency to crash, and it’d require manual intervention to hit an ‘ok’ dialog box. The other stumbling block, was that it was a Win16 application, and Windows NT 3.1 only supports a single WOW instance…. So running Serweb and Netscape always led to issues…

Then the other day, I actually found the source code to serweb! So the first thing I did was to remove the message box function that was preventing me from letting this thing ‘just run’. Well that was cool, but I wondered if this thing was from 1993, meaning it’s MFC dependencies shouldn’t be that involved it may even port to a Win32 application.

So with a few tweaks, mostly in the resource scripts, I was able to rebuild serweb as a win32 application! For the 2-3 people who care about this kind of thing, you can download it here.

I would suspect it’d run on the Dec Alpha or the MIPS, but I haven’t even tried to build it there, as I run NT 4.0 on both of those platforms, and I end up using the IIS that is available.

Serweb 0.3 on WindowsNT 3.1

Serweb 0.3 on WindowsNT 3.1

I do have to admit, I’m kinda surprised that Visual C++ 1.0 for Win32 could handle this… I’ve had pretty mixed results with it, but oddly enough converting a MFC Win16 to a Win32 MFC app seemed somewhat straight forward. It’s probably more so to Gus Estrella’s work then anything I did…!

Some Java & Javascript

Well I found this program, Dioscuri quite interesting… It’s a PC emulator written in JAVA!

It’s very interesting in how it’s trying to be accurate hardware wise, although holding down keys tends to cause it to crash…. 😐

Maybe a later version will work, but for what it’s worth, here is the title screen from Battle Tech.

battletech

The best game of 1988!

Naturally, any machine with a good JVM ought to be able to run this… But I’ve always found Java to be such a moving target….

Another thing I came across was this fantastic i8080 emulator coded in javascript. And it’s setup to play space invaders!

On Chrome, or Firefox it should perform at a reasonable rate. Internet explorer users are in the cold, as IE doesn’t have a javascript canvas. Sorry. But here is what you are missing out on.

javascript space invaders

Complete with i8080 emulator in Javascirpt!

 

This is some really neat stuff (to me) anyways.

MS-DOS Player…

You’ll probably need to run this through translate.google.com, this this site, by Takeda Toshiya, has this nifty utility that’ll run some MS-DOS programs at the command prompt from Windows x64!

It’s best geared towards command line utilities, but it seems to work fine for little (old) stuff.. nothing too fancy though the CPU core is taken from MAME’s i86 (which looks heavily influenced from pcemu).

Today is a slow internet day.

IBM 370 emulation on MS-DOS!

Where there is some flap going on in the Hercules mainframe emulation package, which caught my eye… I was wondering what other mainframe emulators are out there for the PC?

Sadly the answer is not a heck of a lot… There is sim390, which is geared to running the MUSIC/SP operating system, however the author died a few years ago, and it seems that there will not be any more releases, nor any source release.

There is also this old program, PC/370. And it provides an environment much like DOSBox, in that it traps and emulates MVS OS calls, and executes mainframe code on your PC!

PC/370 is old though, the last version was released around 1988! However it’ll run on dosbox just fine, and FAST too! I was clocking over 6million operations a second on one of the benchmarks!

While also looking around at PC/370, I came across this site, which includes a full PDF copy of the book “Mainframe Assembler Programming”. Special thanks goes to Bill Qualls for making this great resource available!

A special note, if you try to unzip the pc370.zip file, it’s so old that there is some encoding method not 100% supported by a bunch of modern unzip programs.. You may need to unzip with real pkzip.

A neat feature of PC/370 is that you can use the PC graphic modes… like the simple demo plot XY…

PC/370 plot XY

PC/370 plot XY

Anyways, that’s about it!

Some random updates…

I just got back from a trip, so here is a quick shot of the 8″ diskette of Zork 1 for CP/M… I put it against my keyboard for some sense of scale.. It’s MASSIVE.

Zork 1 on an 8" floppy disk

Zork 1 on an 8″ floppy disk

I also found this Infocom interpeter written in Turbo Pascal, written by Martin Korth. It was written for Turbo Pascal 4.0, but I’ve built it with 5.5 and 7.0 without issues.

A friend of mine pointed me towards this new emulator PCE that looks very promising.. It boots off real IBM ROMS! Right now it’s 8086/80186 capable, but it’s still VERY cool.

Word is the author is working on Sparc32, ARM & PPC emulation… It looks very cool.

Thats about it for me!

Toledo 8080 emulator!

While googling around on various i8080 CPU emulators, I came across this post, from the 19th IOCCC. Best of Show winner, Óscar Toledo.

Simply put, it’s amazing, 3.5kb of source that emulates not only an 8080 CPU, but a basic environment capable of running CP/M.

That’s right. 3.5k!!

I’ve found it runs great with either the SUA/SFU environment for Windows, and Linux x86.

Toledo2 running on Vista's SUA Unix emulation.

Toledo2 running on Vista’s SUA Unix emulation.

Anyways it doesn’t work on the Sparc QEMU thing, nor my m68k NeXT cube… But hell it’s amazing to watch this thing in action. If you have the right setup you should check it out!

Also today, a copy of Zork 1 for CP/M on 8″ diskette arrived! I’ll have to take some photos of it later.

Doom for UnixWare

Doom on UnixWare

Doom on UnixWare

I’d never actually built Doom from source before… It was more involved then Quake, or maybe I’ve done Quake too many times? Anyways one thing that stuck out to me, is that you HAD to define NORMALINUX, or it wouldn’t pick up wad files or much of anything…

I guess other then that, I didn’t even try for sound… As a matter of fact, I think I’m pretty much done with UnixWare, but at the same point it’s a little more ‘fun’ then I found it.

UnixWareDoom.tar.gz

Some notes on UnixWare

A long while back, I got this UnixWare 7 kit on ebay.. So I figured it was as good a time as any other to install it and give it a whirl…

Now one cool thing is that 7.1 will install on Virtual PC 2007, and runs quite nice.. The one trick is to not give it too much memory. I found that 1GB of ram made it run horribly, while 256MB had it running great.

Another weird thing is that if you suspend the VM for any reason, the network will stop working. The only fix is to reboot the VM. Also

Also the C compiler, while not the most feature rich one out there is amazingly fast.. It builds Quake in around 5 seconds, once all the source is ‘fixed’. Also if you want to build any X11 programs, be sure to install the linux compatibility, or have a handy source of X11 headers to grab, as for some reason my UW7 didn’t include them.. ?

So yes, with a bunch of tweaks from the SUN source version of QuakeWorld, here it is:

Quake-on-UnixWare

Quake 1 for UnixWare 7.

And naturally it’ll run Dungeon as well with some f2c magic. The only caveat is that you can’t build the libf2c with any optimizations or it’ll crash or give really strange results….

Dungeon 2.5.6 on UnixWare

Dungeon 2.5.6 on UnixWare

Dungeon 2.5.6 on UnixWare.

Other then that, UnixWare is just another SYSV wrapped up in CDE. But I do recall it being used in the call center world, in conjunction with some seriously old unix machines (think NCR 386!), mostly doing voicemail and other stuff. I think it was the UnixWare 2.x stuff that all included that PC emulation software that could run Windows with the Netware client.. OH the horrors of someone loading up that and lotus notes to check mail on the VM server.. people did notice!!!!!!

I’m not sure if people still use UnixWare with Avaya G3’s anymore.. I know the G3’s were busy moving to linux, but I don’t know about all the support stuff, so for all I know CMS & friends still run on Solaris/UnixWare.

It’s a shame UnixWare got a bad rep from the SCO lawsuits, as it’s a pretty fast & responsive Unix, and too bad they never did get it ported to the Itanium & x64. I mean it’s still not too late, but I suspect the required investment to make it happen is just too great.

CPM/86

I’ve never messed with CPM/86, as by the time it was free’d it was a dead end 8086 OS. Like all CP/M OS’s it doesn’t support directories, or have that large of a base of applications, as CP/M was primarily a 8080/Z80 OS… (I can only imagine how many CP/M 86 apps there are…!).

Anyways some strange googling led me to this 8080 emulator for CP/M 86 written by David Evans.

Well that’s certainly interesting, all I remembered about 8080 CP/M emulation back in the days is that most of them required a NEC V20 CPU, as the V20 had some hooks for emulating a Z80. I guess in many ways, the same was true of the 8086/8088. So I figured this would be a great time to give this thing a shot.

The first thing you’ll need is a copy of CP/M 86, and for this I’d recommend this version, as it’s been setup for IBM AT’s, and also it has a definition for a program, 22disk to copy files onto the CP/M disk, as CP/M doesn’t use FAT, and is incompatible with MS-DOS.

To build and use the whole thing, I’m using Virtual PC, although I’ve tested the end product under Qemu.

Unzipping 144cpm86.zip into a directory, you can simply run ‘makedisk’ and it’ll fireup the disk copy program, and ask you how many copies to make, and it’ll then write out your CP/M 86 diskette. You can boot it up once it’s done to make sure it works….

CP/M 86

CP/M 86

Ok now boot back to MS-DOS, and now we’ll want to get a CP/M 8080 program to run, and I’ll just choose zork1 from this archive. (They also have zork for the 8086 version of CP/M, but mine locks up, and the CP/M 86 seems to lack something like ansi.sys..?)

Now extract 22DSK139.ZIP, and delete the file cpmdisks.def . Next copy in the file 144cpm86.def from the CP/M 86 archive. Now we simply run:

GENINDEX 144CPM86.DEF CPMDISKS.DEF

Now we can run ‘cmenu’ as an interface to the CP/M 86 diskette. The first time you run it, you must go through steps 1&2. Since we deleted the existing definitions there is only the 1.44MB format, so you can’t choose wrong, hit enter a few times and it’ll set it up. Next under option #2, just answer ‘a’ (without quotes!) and that’ll have the a drive setup to read/write the CP/M diskette. Test this by choosing option six, and hitting enter. Verify that you can see the directory.

Now extract the file 8080.cmd from 86emulat.zip. Next extract all the zork files from zork123_80.zip. Now launch cmenu again from 22disk, and then choose option four. simply type in 8080.cmd , then hit enter to accept it using the same MS-DOS name. Now run option four again, and now you can use wildcards, enter zork*.* .

Ok, now we have transfered our emulator, and the test programs, you can reboot your VM with the floppy in the drive. Qemu users will have to specify “-no-fd-bootchk” to bypass the signature check as CP/M 86 (and MS-DOS 1.x) don’t have this ‘feature’.

Now with CP/M 86 booted up, type in “8080”.

This will launch the 8080 emulator, and print it’s banner. Now we just type in ‘zork1.com’ to start the zork1 game.

After a minor pause, Zork 1 should now be running!

8080 Zork1 on CP/M 86

8080 Zork1 on CP/M 86

And for anyone who doesn’t want to jump through so many hoops.. here is my CP/M 86 boot diskette with the files already transfered.