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 > Loading and saving to disk using kernel
2018-06-13 18:59
JackAsser

Registered: Jun 2002
Posts: 1997
Loading and saving to disk using kernel

Assume: Machine booted from cart. Cart ROM at $8000-$bfff. IO at $Dxxx and KERNAL at $e000-$ffff

What calls do I have to do to use KERNEL load/save?
What RAM and ZP will be trashed by this?
How will it affect my IRQs? (I have CIA1 and raster IRQs running via $0314/15)
 
... 23 posts hidden. Click here to view all posts....
 
2020-04-05 18:31
Rastah Bar

Registered: Oct 2012
Posts: 336
I saved a file with this routine from codebase:
https://codebase64.org/doku.php?id=base:saving_a_file
That works fine.

But when I want to load it again via
https://codebase64.org/doku.php?id=base:loading_a_file
it never returns from JSR $FFD5. It gets stuck in some loop at $EE30.

I'm not using any ZP adresses above $8f. But I did disable timer interrupts earlier:
lda #$7f
sta $dc0d    
sta $dd0d
lda $dc0d
lda $dd0d

Enabling them before calling the load routine doesn't seem to help. I also disabled raster IRQs before calling the routine:
sei
lda #0
sta $d01a
inc $d019
lda #$37
sta $01   ;I used $fffe and $ffff, so this should be fine

The call to the load routine is done from main.
Does anybody have an idea why the load routine doesn't return and/or suggestions what I could try?
2020-04-05 18:36
chatGPZ

Registered: Dec 2001
Posts: 11164
i'd try calling the IORESET (or whatever its called) kernal call before, if that does the trick strip it down :)
2020-04-05 19:10
Rastah Bar

Registered: Oct 2012
Posts: 336
Thanks, but calling $FDA3 (IOINIT) doesn't help.
2020-04-06 09:38
oziphantom

Registered: Oct 2014
Posts: 480
have you made an intentional or unintentional modifications to dd02/3
2020-04-06 09:57
Rastah Bar

Registered: Oct 2012
Posts: 336
Intentional no, unintentional unlikely.
2020-04-06 10:41
tlr

Registered: Sep 2003
Posts: 1736
dd02 and dd03 was my thought also initially but $fda3 resets those.

Perhaps you have fiddled with the IEC bits in $dd00 and left the bus in a bad state? The drive could be hanging waiting for something to complete perhaps?
2020-04-06 10:50
Rastah Bar

Registered: Oct 2012
Posts: 336
It looks a bit as if something went wrong while saving the file, althoug no error was returned. When I try to load the file directly from Basic after a cold start with load "*",8 or load "*",8,1 the same problem happens.
2020-04-06 13:50
tlr

Registered: Sep 2003
Posts: 1736
Well, then it was a red herring...
2020-04-06 15:28
Rastah Bar

Registered: Oct 2012
Posts: 336
It was a bug in my code that calls the save routine (as you probably already suspected). Sorry about that. Thanks for your suggestions. They still helped me.
2020-04-07 08:47
Krill

Registered: Apr 2002
Posts: 2869
Care to explain what exactly the bug was? Could help others to prevent a similar error. =)
Previous - 1 | 2 | 3 | 4 - 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
Skate/Plush
Guests online: 87
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.6)
6 Comaland 100%  (9.6)
7 Uncensored  (9.6)
8 No Bounds  (9.6)
9 Aliens in Wonderland  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 It's More Fun to Com..  (9.5)
7 Dawnfall V1.1  (9.5)
8 Birth of a Flower  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Nostalgia  (9.4)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Offence  (9.3)
Top Fullscreen Graphicians
1 Joe  (9.7)
2 Veto  (9.6)
3 Facet  (9.6)
4 The Sarge  (9.6)
5 Carrion  (9.5)

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