Re: BASIC listing..

From: Spiro Trikaliotis <ml-cbmhackers_at_trikaliotis.net>
Date: Mon, 10 Jun 2013 19:27:47 +0200
Message-ID: <20130610172747.GB8630@hermes.local.trikaliotis.net>
Hello,
* On Mon, Jun 10, 2013 at 05:19:12PM +0200 silverdr@wfmh.org.pl wrote:
> 
> On 2013-06-07, at 19:53, Spiro Trikaliotis wrote:
> 
> >> Perhaps it checks only the high byte of the start address?
> > 
> > Correct. See $A7C4 in the C64 ROM and you will see that it tests the
> > high byte only.
> 
> I see that $A7C4 is part of NEWSTT, which can be executed when
> preparing to do the LIST [...]

In fact, $A7C4 is part of the interpreter loop, not of LIST.

In fact, I did not care about LIST, I was only interesed in execution of
the program.

 
> instead of pointing to 0x0000 _after_ the last EOL, why not point to
> the last byte of the last line?

As you found it yourself, after LOAD, the pointers are rewritten and
this would not work in your case.

Even on the PET (which does *not* relink the BASIC program), this would
not work, though. The interpreter intself does not care about the link
bytes (as long as no GOTO/GOSUB is involved), thus, you need the link
pointers HIGH BYTE==0 in order to end the program - or you MUST add an
"END" statement.

Regards
Spiro

       Message was sent through the cbm-hackers mailing list
Received on 2013-06-10 18:03:07

Archive generated by hypermail 2.2.0.