Dungeon for the SHARP x68000 (on NetBSD)

Dungeon on the x68000

Its been a while since I’ve added a new port of Dungeon (zork!) so here we go!

Building f2c was a snap on the x68000, it just took a while..

Getting data into the VM was easy, just make an ISO image, and mount it.. Getting data out was.. a challenge, as the floppy doesn’t work under NetBSD, and it didn’t seem to want to see my other hard disks, just my root.  Well thankfully it’s virtual so I just did a:

tar -cvf /dev/sd0c dungeon.tar.gz

NEVER do that on a real machine kids!!!

Anyways here you go, for anyone who loves zork & the m68k!

Video of Fortran Dungeon…

I forget how I got linked back to this, but I figured in the new year vogue, I’d make a video to show how … convaluted it is to build dungeon via f2c.


As you can see, first I have to compile f2c as a Windows QuickWin exe as the MS-DOS version just runs out of memory without some kind of DOS Extender, and Windows 3.0 makes a suitable extender..

Next, I had to make a ‘list’ program that then exectued f2c against the Fortran converting them to C.  Then finally I just compile the libf2c components, then statically add in the Dungeon source that was just converted.  There is some ‘out of range’ case statement, not sure why, but it works… as you can see.

It builds/runs in 286 enhanced mode and beyond..  Obviously the more memory the better.

This was on Qemu 0.15.0 with MS-DOS 4.01 & Windows 3.0

jDosBox

So while looking for some Win32s nonsense, I stumbled onto RGB Classic Games, and they have this interesting thing to run dos games online. A quick glimmer of the DOSBox logo flashes by.. So I fire up doom and quickly exit and…

Yes it’s DOSBox.

But in my browser.. A little tearing it apart, and it’s actually a port of DOSBox to JAVA!

Seeing it can run 80386 code, namely DOS4G/W, I figured it’d be interesting to see how it’d handle Microsoft PowerStation Fortran & PharLap TNT.

You can try it if you feel inclined here.

I’ve got to stop watching the blogger stats…

Because then I see something like this come my way as a query from google:

“is there a version of colossal cave adventure that runs on 64 bit systems”

Well I certainly can’t let that one go unanswered.

So whomever you are stranger, here it is. Well for Win64 x86_64 machines.

This is built using f2c on MinGW64. I’ll spare you the details, but it compiled, and fired up and I got lost in the woods… So I assume it is working…..

For those of you not in the know, colossal cave adventure, or sometimes known simply as ‘adventure’ is the grand daddy of all text adventure games.

As mentioned in this timeline of adventure versions, adventure was written by Willie Crowther and expanded by Don Woods. This version, the Kenneth Plotkin version was derived from Kevin Black’s DOS version and Bob Supnik’s Decus versions.

With that said, there is a tonne of INT2 and INT4 casting, which I’ve just removed as I’m passing it through f2c. I suppose I could have seen about fixing the variables, but I just fixed the ones f2c and gcc really complained about. Included in the download is the modified source, and the original source, so anyone can take a look at it.

Naturally Wikipedia has a most excellent article on the history of adventure, check it out.

Colossal Cave in 64bits!

Colossal Cave in 64bits!

Enjoy!

NetBSD 0.9

Well by some strange google search I actually found a site in Russia that had NetBSD 0.9 for the i386! Wasting no time, I mirrored the site on my VPS, then spent some time late last night trying to figure out how to boot this thing, but to no avail. Qemu, Virtual BOX and Virtual PC, could not boot the disk images correctly, while BOCHS was running into all kinds of errors related to the 0.9 kernel’s floppy, and hard disk errors with 1.0’s handling of the hard disk.

So for the heck of it, I tried it on VMWare Fusion for OS X, and lo, it booted the NetBSD 0.9 kernel floppy! So I went ahead, and made all the diskettes for the release, and went ahead and installed it on VMWare. Now while VMWare may be able to install NetBSD, it doesn’t emulate peripherals like NE2000’s so networking would involve PPP or SLIP over the COM port, which sounds like a lot of work, looking back to my adventure with SLIP a while back, that I’m not looking to redo anytime soon.

So with my installed VMDK (the disk file VMWare uses), I used the qemu utility qemu-img to convert it to a compressed qcow2 image, then booted up Qemu with the image.

And it worked!

So with that in hand, I rebuilt Qemu to remove the NE2000 on 0x300/IRQ 9, and then rebuilt the NetBSD kernel to remove all the devices I don’t need/care about (SCSI,NFS,MATH EMULATION,etc..) and reconfigured the NE2000 to be on 0x320 IRQ 10, to match Qemu, and then ran the whole thing together, configured the network, and it seemed to be working fine.

From there it was a matter of transferring the disk image back to VMWare, I copied in the source code for lynx and ircII-4.4 then transfered it back to Qemu. And yes they worked as expected!

The only thing remaining in my flight of adventure was to build f2c, and see if it’d run Dungeon.

xx

Yes it runs Dungeon!

So with all of that out of the way, for anyone that wants to run it, I’ve uploaded my work on my sourceforge project page.

Now I just need to find myself a copy of NetBSD 0.8, and spend some more time with 386 BSD 0.0 & the hard disk parameters to see if I can get that to cleanly install.

In the meantime, feel free to load up NetBSD 0.9, fire up irc and say hi.

NetBSD 1.2 & the MicroVAX II

So I’ve been working on some instructions to install the first NetBSD I could find that would run on SIMH’s MicroVAX II… Think of it as a lineage continuation from the 4.3 BSD to the Net/2. Anyways the 1.2 install proved to be.. .difficult to say the least, however once it’s installed I found a weird snag, that NetBSD 1.2 doesn’t seem to have curses…. And I though curses was one of those things that made any BSD a BSD.

I haven’t put together an install just yet, I figure I’ll have to download ncurses over, and build with that but I just don’t have the time today, so I’m leaving things where they are for now. Although I did manage to get a bunch more other stuff built, which I’ve posted package tapes on my sourceforge page here. And if anyone is that motivated they can always follow the above instructions, and install their own NetBSD 1.2 VAX, although I’m not holding my breath.. lol

Also I noticed that NetBSD 1.2 doesn’t have any fortran, so I built f2c, and managed to get dungeon running. woo!

Yep, it runs Dungeon!

Oh well it’s all good fun from 1996.

MCC Linux 0.97 & dungeon

Interestingly enough it seems that the ancient linux circa 0.01 – 0.10 not only didn’t have FPU emulation, but didn’t support FPU instructions at all… Or I could be doing something wrong with gcc 1.40 as there isn’t a libm, nor does it inline the math… So anything with floating point is out. So with a bit of digging around for an ancient distro, I found a Linux 0.97 version of MCC. It’s incredibly small, as things were back then. So I’ve installed it, altered the kernel to default to a US keyboard map, (Sorry to people in the UK), and tried to squeeze the disk image down to something not too big. And I’ve included the f2c components and a build of dungeon.

Another f2c platform!

For anyone interested, I’ve uploaded my MCC image, it’s just under 6 megabytes. WOW how the times have changed!!!!

Again special thanks to Jiong Zhao’s most excellent oldlinux.org.

With that said, I’ve also just gotten a note from Artyom that his SunOS patches have been sent upstream to Qemu, so hopefully they’ll be downstream any day!