Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user maak ! (Registered 2024-04-18) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Keeping a few bits of information in a hostile environment
2021-04-18 09:24
Krill

Registered: Apr 2002
Posts: 2825
Keeping a few bits of information in a hostile environment

If not reserving space in RAM, where would read-writable data be most likely to survive throughout the run-time of any random demo or game?

$D800-$DC00 is often overwritten entirely, $00/$01 in RAM are too cumbersome to access.

$DD03 (parallel port data direction register) might be good, or maybe the 2x4 CIA TOD registers at $DC08 and $DD08.

Or are they? What else could be usable for that purpose? =)
 
... 72 posts hidden. Click here to view all posts....
 
2021-05-04 13:33
Rastah Bar

Registered: Oct 2012
Posts: 336
Quoting Krill
Quoting Rastah Bar
Switching codes $00 and $ff for one of the drives might provide one bit of information.
So one type of drive would send $00 and mean "GOOD", the other would send $00 and mean "EVIL", and vice versa for $ff? How would the C-64 side know which is which? :)

By this clumsy method of trying to load a nonexisting file. The C64-side code expects a "file not found" error and when it receives $00 it knows it's dealing with a 1571 drive, while $ff means 1581.

Quoting Rastah Bar
Can't you just always upload the highscore saver right away, that is, together with the loader code?
Quote:
No, there are just 2KB of RAM in the drive, almost all of it used for load operation.

So the goal is to replace loader code by highscore saver code?

Quote:
User in this context means a person consciously using the loader library and putting loader calls all over their program, starting with "jsr install". They should know.

Oh, I see. I was thinking that the problem was something like this: someone ran a demo or played a game that installed the loader. Then he swaps disks because he now wants to play another game, which has a hiscore saver. And now your hiscore saver code has to be uploaded. Does that make any sense, or not?
2021-05-04 13:47
Krill

Registered: Apr 2002
Posts: 2825
Quoting Rastah Bar
Quoting Krill
[How would the C-64 side know which is which? :)
By this clumsy method of trying to load a nonexisting file.
Then the regular load code would also have to do this prior to loading an expected (but not guaranteed) existing file.

Quoting Rastah Bar
So the goal is to replace loader code by highscore saver code?
Yes. Swap out loader code to C-64 memory, swap in saver code, save, swap back loader code.

Quoting Rastah Bar
someone ran a demo or played a game that installed the loader. Then he swaps disks because he now wants to play another game, which has a hiscore saver. And now your hiscore saver code has to be uploaded. Does that make any sense, or not?
Running another program usually involves resetting the computer, which would cause the drive-side loader code to reset the drive as well.
2021-05-04 13:52
Rastah Bar

Registered: Oct 2012
Posts: 336
Thanks for the explanations!
2021-05-05 03:45
Cruzer

Registered: Dec 2001
Posts: 1048
Had to look up heuristics, and found this very useful definition...

2021-05-05 07:15
map

Registered: Feb 2002
Posts: 27
Quoting Krill
But then i think the simple and safe solution of having the user shuffle over the drive type from installer return values struct to save/code upload parameter struct is acceptable.
Not as elegant, of course. =)


From all mentioned approaches this one sounds the best from my point of view. Leave the responsibility to find a good spot in the memory to the integrator of the Loader. Agreed, that it is less elegant.
Maybe having the Drive code to send some identification would be a good aproach as well as mentioned before but will cost not available resources and creates overhead.
2021-05-06 15:41
Sparta

Registered: Feb 2017
Posts: 38
While waiting for Krill's saver plug-in, try out Sparkle 2's hi-score file saver! :)
2021-05-07 12:32
Zibri
Account closed

Registered: May 2020
Posts: 304
Quoting Cruzer
Had to look up heuristics, and found this very useful definition...


lol for the "useful definition", anyway:

Heuristic comes from ancient greek and it's root is the verb EURISKO which means "to find".
A heuristic algorithm is a non deterministic one, is an algorithm, usually slower but sometimes needed, which employs a search function for a predetermined pattern or behaviour. Our brain for example uses both but mainly the heuristic method.
In short, any heuristic program or line of thought, basically does an "educated guess".
2021-05-07 13:33
Krill

Registered: Apr 2002
Posts: 2825
The better your heuristics, the more (H)EUREKA! moments you'll have.
2021-05-16 18:18
Krill

Registered: Apr 2002
Posts: 2825
Meanwhile, i have actually managed to query drivetype before uploading the appropriate piece of custom code. =)

All without any extra code on 1541 side or in the resident loader portion.

So no hiding nor manual shuffling-around of those two bits required. \=D/
2021-05-16 19:09
JackAsser

Registered: Jun 2002
Posts: 1987
Quote: Meanwhile, i have actually managed to query drivetype before uploading the appropriate piece of custom code. =)

All without any extra code on 1541 side or in the resident loader portion.

So no hiding nor manual shuffling-around of those two bits required. \=D/


Ossom!!
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 - Next
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
mankeli/Extend
zscs
Krill/Plush
Bansai/BSILabs
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 The Ghost  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.9)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (9.5)
7 Onscreen 5k  (9.5)
8 Dawnfall V1.1  (9.5)
9 Quadrants  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

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