Zork on the PET at last!

From: Ethan Dicks (erd_at_infinet.com)
Date: 2002-09-30 12:26:05

I finally verified a ancient project of mine... porting Zork to
the PET.  I started 15 years ago by beginning to disassemble the
6K game engine that's on track zero of the C-64 Zork floppy.  Things
stalled using a 40-col screen and printouts.  When I finally saw
VICE, and used it on a SPARCstation with modern editors and a huge
screen, I finished the disassembly and wrote an interface library
so that the application code could call the same sorts of jump points
that are available in the C-64 Kernal.  I have versions of the ZIP
(Zork Implementation Program) for the BASIC 2.0 PET, the BASIC 4.0
PET and the VIC-20.

Last night, I got my old, original, new-in-1979, 32K BASIC 2.0
PET 2001N up and running enough to talk to a 2031.  I dropped in
a three-year-old floppy with the right ZIP on it, fired it up,
swapped the disk for a Commodore-packaged Zork II (couldn't find
my Zork I disk) and it played!  

The BASIC 4.0 version is still wonky - I still have a bug that is
probably caused by my accidentally using a zero page or other low
memory location on 80-col BASIC 4.0 PETs.  The game starts, but
you can only navigate around the rooms; you can't pick anything
up.  I've tried to not use any locations that are critical to 
the Kernal and especially to $FFD2, but I must have missed one.
The ZIP uses a lot of zero-page which is why you have to power
the machine down after playing a session, even on the C-64.  They
trash low memory and don't provide any way of restoring it.

Unfortunately for the ongoing discussion of BASIC 2.0/PET 2001
tape formats, the machine is not at 100%.  I can't read from tape
at all (the drives work on an 8032; it's not them).  I've
replaced the 6522, the 6520s and the 6520 sockets.  Time to get
out the scope.

But at least Zork works after all these years!


P.S. - there are a few details and some code at 


Visit "The Seventh Continent"

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail 2.1.4.