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 > Saving routines
2018-10-13 21:02
Thundax

Registered: Oct 2013
Posts: 4
Saving routines

Heyz,

I am trying to put a loader and saver in my codework for a game, but it's quite a challenge.

The loaders are no problem at all... They work fine.
The saver is a huge problem at the moment, though.

I need the saver to save files including the ability to overwrite files (for hiscores etc.). It would be great if it would be a fast loader and even better when it's also an irq-loader.

Here is what I tried:

- Plushdos 1-bit saver: Saving works fine (as the only save solution that works for me now), but overwriting a file isn't possible with this saver (also in the manual). I don't have a seperate scratch routine which works, so the saver isn't that useful when I can't overwrite any files.

- Plushdos 1/2-bit disksystem: Saving is only possible by tracks/sectors. I try to understand how tracks/sectors work, and I think I should be able to put the savefiles on fixed tracks/sectors, but I don't know how to edit the tracks/sectors of a file. Dirmaster has the ability to view the file properties but editing tracks/sectors doesn't work. I tried to use the BAM-editor, but I can't change/don't know how to change the tracks/sectors of a file. Beside of that I don't even know if the saver in the 2-bit disksystem can overwrite at all. So that's even a question.

- I tried basic IO kernal for saving, like on codebase: http://codebase64.org/doku.php?id=base:saving_a_file . I put this code 1-on-1 in C64 assembler and tried to run it. But nothing happens at all. Just a small second and it reaches the end of the code and saved nothing... Why isn't this even working?

- Googled a lot, but couldn't find anything additional useful for my problem.


Btw, I'm using an Ultimate II+, but that should run fine I guess.. Certainly with basic IO stuff...

So my main question:
How can I easily load and save (preferrable fast and irq) files with the ability to overwrite files? Preferrably by only filenames and without tracks/sector sh1t?

Hope some of you have an answer to this. It's driving me mad and takes me a couple of days now. I need to get this solved otherwise I can't release it at all... :(

Please answer in common simple easy accessible english :) I'm not a tech wizkid :P Sample routines or common loaders/savers with explanation which do the trick would be great instead of (deep) technical discussions which I don't understand.

Eventually on #C-64

Thanks in advance!
The one who gives me the working solution gets a free LED bouncing ball @X! :D

Grtz, Thundax
2018-10-13 21:13
JackAsser

Registered: Jun 2002
Posts: 2014
I can help you with kernel save. Just implemented it in EotB. Please PM with a link to you code so that I csn see how your environment is.
2018-10-13 22:56
Krill

Registered: Apr 2002
Posts: 2980
Quoting Thundax
- Plushdos 1-bit saver: Saving works fine (as the only save solution that works for me now), but overwriting a file isn't possible with this saver (also in the manual). I don't have a seperate scratch routine which works, so the saver isn't that useful when I can't overwrite any files.
Sending a scratch command to the drive is fairly easy, and it should also be possible to play a tune while doing that. (Interrupt delay is something like 30 or $30 rasterlines max., IIRC.)

I can help you set that up. But depending on what you want to save, the T/S approach might be ok, too. Maybe i should write that saver plugin for the new loader at some point. :)
2018-10-13 23:26
MagerValp

Registered: Dec 2001
Posts: 1078
https://csdb.dk/release/?id=78121&show=summary#summary
2018-10-14 00:28
Thundax

Registered: Oct 2013
Posts: 4
Thank you for your replies.

Jackasser: Thanks for messaging me. Awaiting your answer.

Krill: Thanks a lot for your help. It would be very cool if there comes out a new version of the fast 1-bit irq saver with overwrite function. :D

Magervalp: Thanks for the link. I already was looking at that one, but as far as I can see it only saves files by tracks/sectors and not even new files? I don't know how to work with tracks/sectors yet, and it's certainly not flexible. So I doubt if it's still a solution for me atm... :s

Myself: Well, found a bug in my code for the basic IO kernal save routine... That one works now, but it isn't a fastsaver neither an irq saver.. So that one is a last workaround if other options are out... :s
2018-10-14 07:48
JackAsser

Registered: Jun 2002
Posts: 2014
Regarding save with overwrite just prepend with @0: like ”@0:name” as filename
2018-10-14 08:05
Martin Piper

Registered: Nov 2007
Posts: 722
https://github.com/martinpiper/C64Public/blob/master/BerzerkRed..

SaveHiScore

IRQ saver used in Berzerk Redux.

Example drive init usage here
https://github.com/martinpiper/C64Public/blob/master/IRQDisk/Te..
2018-10-14 11:29
Moloch

Registered: Jan 2002
Posts: 2928
Not a good idea to use save with replace (@0:filename) as the patch from Commodore was only applied to newer models of the 1541
2018-10-14 11:59
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: Not a good idea to use save with replace (@0:filename) as the patch from Commodore was only applied to newer models of the 1541

Oh dang!
2018-10-14 12:38
oziphantom

Registered: Oct 2014
Posts: 490
It can easily be migtigated if need be. see https://www.atarimagazines.com/compute/issue65/save_with_replac..

Basically you either reset the drive, or if you have control over such things make sure all operations just before it, specify the drive number. So if you do load"0:yourfiles" you will be safe. There is a test program in above, not sure if you always have to do the 0: or if it is just before.

This needs to be tested.. off to get the old roms for testing..
2018-10-14 13:57
oziphantom

Registered: Oct 2014
Posts: 490
I can't get it to happen in VICE
 
... 15 posts hidden. Click here to view all posts....
 
Previous - 1 | 2 | 3 - 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
wil
A3/AFL
Laurikka
algorithm
Guests online: 95
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

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