Re: Another file question (PET)

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.