From: Ethan Dicks (erd_at_infinet.com)
Date: 2002-11-18 23:04:57
> On Mon, Nov 18, 2002 at 08:28:51PM +0200, Marko Mäkelä wrote: > > Yes, I know that too well. But it's astonishing that > > the same cbmlink file or disk copier binaries work > > without patching in VIC-20, C64, C128 and in the 264 series.... > > ... the PET even for every ROM version. > > Does that mean that even within the PET series, the jump table > or zero page usage differs? The zero page usage is different between every major ROM version of PET (BASIC 1.0, BASIC 2.0, BASIC 4.0). There are some minor usage differences below $0400 between BASIC 4.0 40 col. (Fat Forty) and BASIC 4.0 80 col. What you have to remember is that way back when, people just jumped into known locations in the ROM because the ROMs didn't tend to change for 1970s microcomputers. Commodore created the Kernel jump table to stabilize the turmoil. The jump table on the PET is basically upward compatible - if an entry exists for BASIC 2.0, the same jump point will exist for BASIC 4.0. Without looking it up, I don't know if the reverse is true or not, but I suspect not... i.e., I think there are jump points in BASIC 4.0 that do *not* exist for BASIC 2.0., but mostly for DOS stuff. What I did to port Zork from the C-64 to the PET was to build a small Kernal compatibility library... at compile time, symbols defined for the target machine selectively compile what's needed to imitate a fair chunk of the file I/O calls for the C-64 Kernal. Details/examples at... http://www.penguincentral.com/retrocomputing/PET/allzip.asm http://www.penguincentral.com/retrocomputing/PET/zloader.asm Please note that the above code is tailored specifically towards getting Zork to run on the VIC-20, and various PETs while still generating a byte-exact version for the C-64. It is not completely debugged and probably only works well for BASIC 2.0 PETs (2001-N and 3001, primarily). Feel free to use it as a starting point, but some assembly required (pun intended ;-) As soon as I run across a particular folder (that I've misplaced) with a full BASIC 1.0/2.0/4.0 crossreference, I intend to resume development and debugging. Until then, all I have mananged to do is get the code working under VICE (as a model 3001) and mostly working on my flakey 2001-N. It's why I haven't released in the past four years, but given the recent topic, I might be able to spare someone else the groundwork I've already done. If you borrow from it, please give me credit. That's all I ask. -ethan -- Visit "The Seventh Continent" http://penguincentral.com/penguincentral.html Message was sent through the cbm-hackers mailing list
Archive generated by hypermail 2.1.4.