Hi folks, On Oct 29, 2021, at 4:19 PM, Ethan Dicks <ethan.dicks_at_gmail.com> wrote: > On Fri, Oct 29, 2021 at 6:32 PM Marc Rintsch <marc_at_rintsch.de> wrote: >> On 29.10.21 23:50, André Fachat wrote: >>> Doesn't BASIC recalculate the pointer when it loads the file? So it does >>> not matter what the link address is on disk. >>> Or for what these bytes were used when saved... >> >> Yes, the actual values in the saved file don't matter. So if >> compatibility with the tokenised format is important one must >> recalculate those values. > > I believe that's true for the VIC-20 and C-64 but not for the PET. > I.e., you can load a program with pointers from any base address into > a VIC-20 or C-64 and just "RUN", but the PET will load at the load > address and not recalculate (nor repoint). As far as I am aware, this is correct... _mostly_. I believe the distinction is something like, if you do a {LOAD "file",unit} the above behaviours apply; if, on the other hand, you do a {LOAD "file",unit,1} then newer-model BASICs will blindly honour the load address stored in the file (extremely useful for machine-language code). The two behaviours are made less obscure via new keywords in BASICs 4.7 and 7 (the BLOAD and DLOAD commands). Analyzing the exact behaviour of a bare LOAD command, vs. one which explicitly states the normally-implied secondary address of zero, vs. one with a secondary address of one, is greatly complicated by the distinction between how a specific version of BASIC interprets it and how any specific IEEE-488 or Commodore Serial Bus device will interpret it. G.Received on 2021-10-31 03:00:03
Archive generated by hypermail 2.3.0.