Hallo!
In der C64 Wiki habe ich dieses Programm gefunden, um einen benutzerdefinierten Speicherbereich per SAVE aus BASIC zu sichern:
Code
- 10 REM ### SPEICHERROUTINE FUER 49152 BIS 53247 ($C000 BIS $CFFF) ###
- 11 PRINT CHR$(147)"SPEICHERN (J/N)?"
- 12 GET A$: IF A$="N" THEN END
- 13 IF A$<>"J" GOTO 12
- 20 LA=0:HA=160:LE=0:HE=208:NA$="MSV1"
- 21 AL=PEEK(43):AH=PEEK(44):EL=PEEK(45):EH=PEEK(46):VL=PEEK(55):VH=PEEK(56)
- 22 PRINTCHR$(147);
- 23 PRINT"POKE43,"AL":POKE44,"AH":POKE45,"EL":POKE46,"EH;
- 24 PRINT":POKE55,"VL":POKE56,"VH":RUN"
- 25 PRINT"POKE43,"LA":POKE44,"HA":POKE45,"LE":POKE46,"HE;
- 26 PRINT":POKE55,255:POKE56,255":PRINT"SAVE"CHR$(34)NA$CHR$(34)",8,1"
- 27 POKE631,19:POKE632,17:POKE633,17:POKE634,13:POKE635,145:POKE636,145
- 28 POKE637,13:POKE638,19:POKE639,13
- 29 POKE 198,9:END
Ich brüte nun schon einige Zeit darüber und habe, denke ich, auch verstanden wie es funktioniert. Aber eine Sache irritiert mich doch sehr:
Und zwar wird dort geschrieben, dass der Bereich von 49152 bis 53247 gesichert wird.
Wenn ich aber die per LA und LE bzw. LE und HE übergebenen Adressen ausrechne, dann komme ich auf 40960 für den Anfang und 53248 für das Ende.
???