Program Indirects, what are they?
Moderator: Moderators
- freshlamb
- Vic 20 Dabbler
- Posts: 76
- Joined: Sun Apr 04, 2004 5:38 pm
- Website: http://www.rufnoiz.com
- Location: Prince Albert SK Can
Program Indirects, what are they?
I was looking for another place in RAM that one could store 40 or 50 bytes (aside from the cassette buffer), and found Program Indirects at 673 to 767. I was wondering what these actually hold. Are they for GOSUBS and the like, or do they just hold operations during Cassette LOADing. I found that using the first few bytes while loading a chained program will return a CAN'T CONTINUE error, so I am leaning toward the latter. I just want to make sure these bytes are untouched while BASIC is running. Thanks for any help on this.
From Compute!'s Mapping the VIC:
I've used this area a lot for small ML routines, I usually avoid using 673-678 though, so the code will be compatible with the C64 since it uses those few bytes.
I haven't had any problem using this area before, so you should be ok to use it. Not sure why you would get the "CAN'T CONTINUE" error unless the loader is also using those bytes for something else.
Code: Select all
673-767 $2A1-2FF USRVCTRS
(user storage)
User indirect vectors or other storage area.
Ninety-four bytes of memory are available in this area to the
user for 47 user-program indirect link addresses or for any other
purpose. This is an excellent area to store a short ML routine without
having to alter BASIC'S pointers.
Note that locations 673-678 ($2A1-2A6) are used in the Commodore 64,
so refrain from using these if you're writing a program
meant for both the VIC-20 and the Commodore 64.
I haven't had any problem using this area before, so you should be ok to use it. Not sure why you would get the "CAN'T CONTINUE" error unless the loader is also using those bytes for something else.
Ray..
- freshlamb
- Vic 20 Dabbler
- Posts: 76
- Joined: Sun Apr 04, 2004 5:38 pm
- Website: http://www.rufnoiz.com
- Location: Prince Albert SK Can
Just to clarify, I had problems when I stored stuff right at 673. When I left that byte and the next zeroed, and stored a little ML at 675, it SEEMED to be OK. I just want to be certain this area wasn't used. I think these two responces make me feel confident this area is safe. Thank you both so much.
btw/ Jeff thanks for this awesome site, and although I have mostly lurked here for 9 years, I have ALWAYS appreciated it. I hope someday I feel I have something worthwhile I can contribute to the community.
btw/ Jeff thanks for this awesome site, and although I have mostly lurked here for 9 years, I have ALWAYS appreciated it. I hope someday I feel I have something worthwhile I can contribute to the community.