SOLVED: Re: [cc65] cl65 -t apple2 works, but cl65 -C apple2.cfg doesn't

From: Scott Alfter <scott1alfter.us>
Date: 2007-09-11 08:50:00
Ullrich von Bassewitz wrote:
> On Sun, Sep 09, 2007 at 02:31:32PM -0700, Scott Alfter wrote:
>>> Are you sure you aren't mixing different versions of the files?
>> This particular machine I think has had only 2.11.0 on it.
>                                                              
> This is what happens on my machine with a fresh 2.11.0 install:
> 
> [snipped]
> 
> As you can see, compilation works without any problems, so please recheck the
> files on your machine. I've also looked at the sources, and there is no import
> of __RAM_SIZE__ in line 13 of crt0.s (as your error message says). In fact,
> the apple startup file has never used __RAM_SIZE__ at all.

I uninstalled cc65, made sure /usr/lib/cc65 and /usr/share/doc/cc65 were gone,
and reinstalled it (using a 2.11.9 snapshot this time...date in the downloaded
tarball's filename is 3 Sep 07).  tgidemo builds without error as you
demonstrated, but I think I know now why tgidemo doesn't run.

I loaded the tgidemo binary into hexedit and searched for a ProDOS MLI OPEN
call.  This sequence would be 20 00 BF C8 03 xx xx xx xx xx: JSR $BF00,
followed by $C8 (OPEN), followed by the parameter list (3 items: two short
pointers and a char).  Searching the file for 20 00 BF C8 turned up nothing.
Searching for just 20 00 BF turned up calls to DEALLOC_INTERRUPT ($41) and
ALLOC_INTERRUPT ($40), but no other MLI calls (there was what looked like an
invalid call ($00) near the end of the file, but I think that part of the file
has data instead of code).

I then started digging around in the library source...looks like everything is
there that should be there, and from the way it's structured, any given MLI
call isn't likely to show up with the pattern I identified above, so the
aforementioned search results really don't mean much of anything.

After digging around in the TGI code (both the system-dependent and
system-independent bits), I then tried changing the mode selection in tgidemo.c
from TGI_MODE_320_200_2 to TGI_MODE_280_192_6.  It looks like mode requests
don't automatically get mapped to whatever's most similar for a given target.

Success!

Turns out that there's a newer version of tgidemo.c in the snapshot (I was
still using the version from 2.11.0) that determines if it's being built for an
Apple II and picks the appropriate mode.  That built with no warnings or
errors, and it ran without a hitch.

With all of that out of the way, now I get to start porting my 1-Wire code. :-)
I think I'm going to start by replicating the functionality of the mix of BASIC
and assembly code that I'm currently using.  A little further down the line,
I'll want to retarget some of this code to a 65C02-based controller board I've
designed (32K ROM, 8K RAM, keypad, graphical LCD, and 1-Wire controller).  It
looks like there's some info in the mailing-list archive that would be useful
here...I'll dig through it when the time comes.

Scott Alfter
scott@alfter.us

----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Tue Sep 11 08:50:13 2007

This archive was generated by hypermail 2.1.8 : 2007-09-11 08:50:17 CEST