• zero page allocation for Forth

    From chitselb@3:770/3 to All on Thu Aug 10 12:48:53 2017
    If you needed 141 bytes of zero page on a C-64, what addresses would you use? BASIC is switched out, Kernal is still switched in, so anything BASIC uses can be reallocated. Having it all be contiguous so I can go in and out of BASIC is
    important too.

    On a PET (4.0 ROM) I'm just using $00-$8C (everything below jiffy clock) and there's a little ML routine ('aloha') to swap the half page in and out, but I want to port PETTIL to the C=64

    --- SoupGate-Win32 v1.05
    * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)
  • From Harry Potter@3:770/3 to chitselb on Thu Aug 10 17:08:56 2017
    On Thursday, August 10, 2017 at 3:48:55 PM UTC-4, chitselb wrote:
    If you needed 141 bytes of zero page on a C-64, what addresses would you use?
    BASIC is switched out, Kernal is still switched in, so anything BASIC uses can
    be reallocated. Having it all be contiguous so I can go in and out of BASIC is
    important too.

    On a PET (4.0 ROM) I'm just using $00-$8C (everything below jiffy clock) and
    there's a little ML routine ('aloha') to swap the half page in and out, but I want to port PETTIL to the C=64

    On a C64, the BASIC ROM uses ZP addresses $02-$8F, but you can use kernal ZP locations you don't need in your program. For example, $83-$8B and $AE-$B6 are
    used for tape and RS232 and $F7-$FF are for RS232 and free space. Does this help?

    --- SoupGate-Win32 v1.05
    * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)
  • From chitselb@3:770/3 to Harry Potter on Thu Aug 10 18:40:23 2017
    On Thursday, August 10, 2017 at 8:08:57 PM UTC-4, Harry Potter wrote:
    On Thursday, August 10, 2017 at 3:48:55 PM UTC-4, chitselb wrote:
    If you needed 141 bytes of zero page on a C-64, what addresses would you
    use? BASIC is switched out, Kernal is still switched in, so anything BASIC uses can be reallocated. Having it all be contiguous so I can go in and out of
    BASIC is important
    too.

    On a PET (4.0 ROM) I'm just using $00-$8C (everything below jiffy clock)
    and there's a little ML routine ('aloha') to swap the half page in and out, but
    I want to port PETTIL to the C=64

    On a C64, the BASIC ROM uses ZP addresses $02-$8F, but you can use kernal ZP
    locations you don't need in your program. For example, $83-$8B and $AE-$B6 are
    used for tape and RS232 and $F7-$FF are for RS232 and free space. Does this help?

    It looks like what they did is put the memory mapping I/O port at $00-$01 and moved everything up by two? Does it still have the problem of occasionally pooping on address $10 ? There are a couple of places in the PET ROM where writes to $10 occur e.g.
    B3D8 STA $10 , even though Raeto's "Programming the PET/CBM" book says no, it is unused

    --- SoupGate-Win32 v1.05
    * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)
  • From Harry Potter@3:770/3 to chitselb on Fri Aug 11 07:42:13 2017
    On Thursday, August 10, 2017 at 9:40:24 PM UTC-4, chitselb wrote:
    It looks like what they did is put the memory mapping I/O port at $00-$01 and
    moved everything up by two? Does it still have the problem of occasionally pooping on address $10 ? There are a couple of places in the PET ROM where writes to $10 occur e.g.
    B3D8 STA $10 , even though Raeto's "Programming the PET/CBM" book says no, it is unused

    I don't think the C64 has the $10 bug. Try it! :)

    --- SoupGate-Win32 v1.05
    * Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)