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 > Keeping a few bits of information in a hostile environment
2021-04-18 09:24
Krill

Registered: Apr 2002
Posts: 2839
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-04-28 12:33
chatGPZ

Registered: Dec 2001
Posts: 11108
doh. obviously. coffee time!
2021-04-28 17:50
Oswald

Registered: Apr 2002
Posts: 5017
"to tell their kind prior to uploading and executing "

prior uploading the drive is not in default state, to ask it its version the standard way?
2021-04-28 18:07
Krill

Registered: Apr 2002
Posts: 2839
Quoting Oswald
"to tell their kind prior to uploading and executing "

prior uploading the drive is not in default state, to ask it its version the standard way?
It's running loader drivecode, which in turn was selected after detecting the drive model.
2021-04-28 21:52
Rastah Bar

Registered: Oct 2012
Posts: 336
You can't write the bits to disk?
2021-04-29 12:19
Zibri
Account closed

Registered: May 2020
Posts: 304
well another nice place would be the CIA (or VIA in 1541) latch values.
One of the 2 can be set but not read back, so it's totally hidden. So it can be set and then retrieved just by resetting the timer.
On 1541: 1808 1809 or 1c08 1c09 will do nicely.
You can store the latching value in them then reading the MSB or writing the LSB will reset it to the value you previously set and you can read it back :D
2021-04-30 11:05
Krill

Registered: Apr 2002
Posts: 2839
Quoting Rastah Bar
You can't write the bits to disk?
The drive-side code knows the drive's type.

Quoting Zibri
well another nice place would be the CIA (or VIA in 1541) latch values.
Timer latches aren't really safe, as they will be overwritten simply by using those timers with arbitrary time-outs.
And drive-side information storage is not the problem, anything in the drive can be considered safe in this thread's context.
2021-05-01 17:37
Rastah Bar

Registered: Oct 2012
Posts: 336
I don't understand the problem very well, but maybe error codes could be used to signal drive type? F.e., let the C64 try to load a nonexisting file and let the loader return a "file not found" error code that is different for each drive type.
2021-05-01 21:46
Krill

Registered: Apr 2002
Posts: 2839
Quoting Rastah Bar
F.e., let the C64 try to load a nonexisting file and let the loader return a "file not found" error code that is different for each drive type.
Not a bad idea, but not really feasible in practice either.

The byte in question sent by the drive encodes a status/error code ($00: end of file, $ff: file not found) or $01-$fe for current highest consecutive bytestream position (for decrunching while loading with blocks coming in out of order) or $01-$fe for the block size of the file's last block (which of the two $01-$fe options is determined elsewhere).

So other no other values left. If there were, however, reducing the 3 values for a file not found error would take some extra space in the resident C-64-side loader code, plus a definitely non-existing filename would have to be chosen somehow, and then things like no disk inserted can happen, too (although malicious user error is not very relevant in practice).
2021-05-01 22:02
tlr

Registered: Sep 2003
Posts: 1714
Quote: Quoting Rastah Bar
F.e., let the C64 try to load a nonexisting file and let the loader return a "file not found" error code that is different for each drive type.
Not a bad idea, but not really feasible in practice either.

The byte in question sent by the drive encodes a status/error code ($00: end of file, $ff: file not found) or $01-$fe for current highest consecutive bytestream position (for decrunching while loading with blocks coming in out of order) or $01-$fe for the block size of the file's last block (which of the two $01-$fe options is determined elsewhere).

So other no other values left. If there were, however, reducing the 3 values for a file not found error would take some extra space in the resident C-64-side loader code, plus a definitely non-existing filename would have to be chosen somehow, and then things like no disk inserted can happen, too (although malicious user error is not very relevant in practice).


Maybe you could send a few extra bits? In Format II I send 10-bits as status. It seems much more reasonable to let the drive keep this state as it, as you note, already knows which type it is.
2021-05-01 22:13
Krill

Registered: Apr 2002
Posts: 2839
Quoting tlr
Maybe you could send a few extra bits? In Format II I send 10-bits as status.
Not really feasible either, as bytes are the atoms there, and i rather not send another byte for each block, then completely ignore it for the most common case of loading. =)

There is one spare bit in the two metadata bytes sent prior to a block's worth of data, though. But it's just one bit.
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
HBH.ZTH/Abnormal
MADMAX
Guests online: 96
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 The Ghost  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.8)
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 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (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 Crackers
1 Mr. Z  (9.9)
2 S!R  (9.9)
3 Mr Zero Page  (9.8)
4 Antitrack  (9.8)
5 OTD  (9.8)

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