Eine Frage: Ich benutze Dreamload als Schnelllader.
Zwischen den Ladezyklen möchte ich auch mal eine Datei speichern, da laufe ich allerdings in eine Art Endlosschleife. Dreamload ist mit
jsrLdLoc + 6
abgeschaltet. Laut Doku sollte ich dann Kernal-Routinen (wie das Speichern) wieder ausführen können. Da es ein Spiel ist, habe ich natürlich einiges abgeschaltet.
Was genau braucht ein Kernal-Save aktiviert, bzw. restauriert, damit es funktioniert? Bestimmte Interrupt-Quellen? Bestimmte Werte in der Zeropage?
$01 steht auf $37, $ba = 8.
So sieht der Code aus. Soweit ich sehen kann, bleibt das in KERNAL.OPEN drin stehen
Code
- lda #SAVEGAME_DELETE_FILENAME_END - SAVEGAME_DELETE_FILENAME
- ldx #<SAVEGAME_DELETE_FILENAME
- ldy #>SAVEGAME_DELETE_FILENAME
- jsr KERNAL_SETNAM
- lda #$0F ; file number 15
- tay ; secondary address 15
- ldx DRIVE_NUMBER
- jsr KERNAL.SETLFS
- jsr KERNAL.OPEN
- ; if carry set, the file could not be opened
- bcs .ErrorDelete