MEMSAVE (TSB)
MEMSAVE (TSB) | |
Syntax: | MEMSAVE |
Parameter | |
keine | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Einbindung einer RAM-Erweiterung (REU) |
Aufgabe: | Ablegen von Speicherbereichen des C64 in einer REU |
Abkürzung: | mem sA |
Token: | $64 $7A $94 (100 122 148) |
Verwandte Befehle | |
MEMLOAD - MEMREAD - MEMDEF - MEMOR - MEMPOS - MEMLEN - MEMCONT - MEMRESTORE |
Dieser Artikel beschreibt das TSB-Schlüsselwort MEMSAVE (TSB).
Es gibt kein entsprechendes Simons'-Basic-Schlüsselwort.
Typ: Anweisung Syntax: MEMSAVE
MEMSAVE legt einen vorher festgelegten Speicherbereich des C64 (MEMOR) von einer festgelegten Länge (MEMLEN) an einer ebenso festgelegten Adresse in einer REU (MEMPOS) ab. Der Befehl beachtet dabei die Einstellungen zur Transfer-Art (MEMCONT) und zum Autoload der Adress- und Zählregister der REU (MEMRESTORE). MEMDEF fasst diese MEM-Einzelbefehle zusammen.
Beispiele[Bearbeiten | Quelltext bearbeiten]
Die folgenden Beispiele zeigen, wie mit Hilfe von MEMSAVE und MEMLOAD Bilder geladen werden, bei denen dies wegen ihrer Formate nicht mit SCRLD möglich ist.
Art Studio[Bearbeiten | Quelltext bearbeiten]
100 f$="christmasday.art" 105 if a=0 then div: print "loading: ";f$ 110 if a=0 then a=1: load f$,8,0,$4000 120 fehler 130 print: print ff;fb$;sp;se: pause 1 140 if ff>0 then end 150 image=$4c00 160 memdef 9000,$4000,image,3: memsave 170 screenload 180 cset 2: do null 190 nrm: colour 11,12 200 end 210 : 220 proc fehler 230 open 1,8,15 240 input#1,ff,fb$,sp,se 250 close 1 260 end proc 290 : 500 proc screenload 510 memdef 8000,$e000,image,3: memload 520 memdef 1000,$c000,image+8000,3: memload 530 end proc
In diesem Programm wird das Art-Studio-Bild "christmasday.art" geladen. Art-Studio-Bilder liegen im Hires-Format vor. Sie beginnen mit 8000 Bytes Bitmap, worauf 1000 Bytes Farben folgen. Die Bilddaten werden komplett geladen (Zeile 110) und ab der Adresse $4000 im Speicher des C64 abgelegt. Von dort transferiert sie das Programm mit MEMSAVE in die REU, hier an die Adresse $4C00 in Bank 3 (Zeile 160). Das Unterprogramm "screenload" holt nun die Teile für die Bitmap (Zeile 510) und die Farbe (Zeile 520) aus der REU in den C64, so dass das Bild in TSB angezeigt werden kann (Zeile 180).
Koala Painter[Bearbeiten | Quelltext bearbeiten]
100 f$="outrunmemo.koa" 110 if a=0 then div: print "loading: ";f$ 120 if a=0 then a=1: load f$,8,0,$4000 130 fehler 140 if ff>0 then print ff;fb$: call fertig 150 image=$4c00 160 memdef 10001,$4000,image,3: memsave 170 screenload 180 cset 2: multi on: do null 190 proc fertig 200 div: nrm: colour 11,12,0 210 end 220 : 250 proc fehler 260 open 1,8,15 270 input#1,ff,fb$,sp,se 280 close 1 290 end proc 300 : 500 proc screenload 510 memdef 8000,$e000,image,3: memload 520 memdef 1000,$c000,image+8000,3: memload 530 memdef 1000,$d800,image+9000,3,128: memload 540 memdef 1,$d021,image+10000,3,128: memload 550 end proc
Dieses Beispiel lädt das Koala-Painter-Bild "outrunmemo.koa". Koala-Bilder besitzen ein Multicolor-Format. Sie bestehen aus 8000 Bytes Bitmap, 1000 Bytes Farben im Video-RAM, 1000 Bytes Farb-RAM und einem Byte für die Hintergrundfarbe. Die Bilddaten werden komplett geladen (Zeile 120) und ab der Adresse $4000 im Speicher des C64 abgelegt. Von dort transferiert sie das Programm mit MEMSAVE in die REU, hier an die Adresse $4C00 in Bank 3 (Zeile 160). Das Unterprogramm "screenload" holt nun die Teile für die Bitmap (Zeile 510), die Farbe aus dem Video-RAM (Zeile 520), die Farbe aus dem Farb-RAM (Zeile 530) und die Hintergrundfarbe (Zeile 540) aus der REU in den C64, so dass das Bild in TSB angezeigt werden kann (Zeile 180). Für den Zugriff auf das Farb-RAM ist der 5. Parameter von MEMDEF (siehe MEMRESTORE) mit gesetztem Bit 7 angegeben (Zeile 530). Im Gegensatz zum Hires-Modus muss man bei Multicolor beachten, dass das Farb-RAM auch vom Textmodus benutzt wird.
$$ | %% | AT | CALL | CENTER | CHECK | COLD | COLOR | COPY | CLS | CSET | D! | D!PEEK | D!POKE | DIR | DISK | DISPLAY | DIV | DO | DO NULL | DRAW TO | DUMP | DUP | ELSE | ERROR | EXEC | FETCH | FIND | GRAPHICS | INSERT | INST | JOY | KEY | KEYGET | LIN | MAP | MEMCLR | MEMCONT | MEMDEF | MEMLEN | MEMLOAD | MEMOR | MEMPEEK | MEMPOS | MEMREAD | MEMRESTORE | MEMSAVE | MERGE | MOB ON/OFF | MOBCOL | MOD | MOVE | MULTI | NRM | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PLACE | RENUMBER | RESUME | RETRACE | SCRLD | SCRSV | SOUND | TEXT | TRACE | USE | WAVE | X!