Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > safe zero page addresses
2003-02-08 11:07
Nightlord

Registered: Jan 2003
Posts: 131
safe zero page addresses

can anybody verify me about whether it is safe to use zero page adresses $14 to $60 considering that no basic code will be run

or are there any more addresses in zero page that are safe to use during assembly coding (besides the $fb-$fe)

thanx
2003-02-08 12:41
Graham
Account closed

Registered: Dec 2002
Posts: 990
hard to say, depends on what kernal routines you use. if it's just I/O routines you use, it should work. same for floating point routines...
2003-02-08 12:44
Graham
Account closed

Registered: Dec 2002
Posts: 990
a small list of zeropage adresses which are free to use:

$92-$96 (only if no datasette is used)
$A3-$B1 (only if no RS-232 and datasette is used)
$F7-$FA (only if no RS-232 is used)
$FB-$FE (always)
2003-02-08 13:41
cadaver

Registered: Feb 2002
Posts: 1153
I've lived by the rule that at least $02-$7f is OK with ASM programs, as these are all Basic interpreter variables.
2003-02-08 23:40
Stryyker

Registered: Dec 2001
Posts: 465
Why don't people get the Programmers Reference Guide or AAY64 or something and test? Too easy? :)
2003-02-08 23:42
cadaver

Registered: Feb 2002
Posts: 1153
You mean like, change some ZP locations, see if kernal IO still works? A bit unreliable I'd say. Though I agree 100%about the C64 PRG suggestion :)
2003-02-08 23:51
cadaver

Registered: Feb 2002
Posts: 1153
Ahm, a little correction.. the PRG zeropage descriptions were better than I remembered :) Anyway, I mean that care must be taken when one starts choosing locations above $90 or so, because it might be just luck that things still work..
2003-02-09 10:25
Nightlord

Registered: Jan 2003
Posts: 131
well i have the programming guide and checked the zero page map before. but mine (which is a turkish translation) only has one line explanations for each address. it does not tell which kernal routines or internal hardware buffers are connected to those addresses. maybe the english original version has more info which i will surely check.
so i apologize from people that think i am wasting forum space by this question but i do not think it is a good idea to develop code that uses a potentially unsafe range of locations for its variables. and trying to test those locations by saving data in there and then doing kernal calls and then checking the data integrity should be rather painstaking.
instead i choose to bring it up here so that whole internet can learn from the answers i get. i think that is the point of a coding forum. and it works like this in every sw engineering forum througout the world no matter how many sw engineering books are around.
2003-02-09 10:37
Stryyker

Registered: Dec 2001
Posts: 465
Try the english version - a text version should be available at http://project64.c64.org/ or so.
2003-02-09 15:21
Nightlord

Registered: Jan 2003
Posts: 131
oh man thanx a lot... the project 64 site should solve all my problems. i did not know of that site.... thanx everyone...
2003-02-10 13:44
TDJ

Registered: Dec 2001
Posts: 1879
WIsh I found a site that would solve all my problems :)
2003-02-11 03:37
Stryyker

Registered: Dec 2001
Posts: 465
http://www.ampland.com/ will help solve your troubles TDJ. Just take matters into your own hands.
2003-07-28 21:52
Cruzer

Registered: Dec 2001
Posts: 1048
If you don't use any kernal routines and have turned off the kernal irqs, all zeropage addresses except $00 and $01 can be used without problems. But notice that most of the zeropage will be overwritten when you reset the 'puter.
2003-07-29 10:58
Stryyker

Registered: Dec 2001
Posts: 465
With some luck you could use $0 or $1 too. I never go it finely tuned but at times could get a sprite to chang appearance using sprite at $0000
2003-07-29 12:16
Cruzer

Registered: Dec 2001
Posts: 1048
I have never experimented much with using $00/01, so I don't really know what the problems are excactly, other than switching randomly between rom/ram/etc., but I suspect changing $00 can halt the CPU or something. It sure would be kewl with a nice full page of "fast memory". Why the f*** didn't CBM put these control registers in $dxxx like the rest?!?

Btw, another problem that usually occurs is if when the music player uses zp-addresses. I usually switch $d018 to $04, so the zeropage shows up on top of the screen, and then play the music to see if any chars are changing. If that's the case you can still use the whole zp, as long as you copy the bytes used by the player somwhere else after calling the player, and then copy them back b4 calling it again.
2003-07-29 12:52
Graham
Account closed

Registered: Dec 2002
Posts: 990
@cruzer:

think of it! $0000/$0001 for the processor port is actually one of the better solutions. if you put it at $Dxxx this would mean that you split the C64 memory + lose one bitmap (remember: the processor port cannot be mapped away!). same with the C128 solution where they put the MMU registers at $FF00+
2003-07-29 13:03
Oswald

Registered: Apr 2002
Posts: 5017
ohyeah, in the VIC article or somewhere else, its written down how to write/read mem locations $00/$01, u can read it
by sprite and bitmap collision detection, and you have to make the vic to read from $00/$01 exactly one cycle after the cpu has written sumth there, or sumth similar :)
2003-07-30 10:53
Stryyker

Registered: Dec 2001
Posts: 465
If you can't find it there, try http://www.funet.fi/pub/cbm/documents/chipdata/64doc
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Alakran_64
Sentinel/Excess/TREX
CA$H/TRiAD
Mike
MuZZa/The Codeblasters
Guests online: 83
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Wafer Demo  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Organizers
1 Burglar  (9.9)
2 Sixx  (9.8)
3 hedning  (9.7)
4 Irata  (9.7)
5 MWS  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.046 sec.