MEMRESTORE (TSB)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
MEMRESTORE (TSB)
Syntax: MEMRESTORE <swt>
Parameter
swt: Flag für das Zurücksetzen der Transferregister
Einordnung
Typ: Anweisung
Kontext: Einbindung einer RAM-Erweiterung (REU)
Aufgabe: Umschalter für das automatische Neuladen der Zähl- und Adressregister
Abkürzung: memresT
Token: $64 $7A $8C (100 122 140)
Verwandte Befehle
MEMLOAD - MEMREAD - MEMSAVE - MEMDEF - MEMOR - MEMLEN - MEMCONT


Dieser Artikel beschreibt das TSB-Schlüsselwort MEMRESTORE (TSB).
Es gibt kein entsprechendes Simons'-Basic-Schlüsselwort.

Typ: Anweisung
Syntax: MEMRESTORE <swt>

MEMRESTORE steuert das automatische Neuladen der Übertragungsregister nach dem REU-Transfer. Der Wert

  • 0 bedeutet "nicht neu laden" und belässt alle Register auf dem zuletzt bei der Übertragung erreichten Wert.
  • 1 stellt alle Transferregister auf die vor dem Transfer eingestellten Werte zurück.

Außerdem erlaubt MEMRESTORE mit einem gesetzten Bit 7 im <swt>-Parameter, dass die Transferbefehle (MEMLOAD und MEMSAVE) auch auf das Farb-RAM zugreifen können und nicht nur auf das freie RAM darunter (ab TSB-Version 2.20826).

Beispiel[Bearbeiten | Quelltext bearbeiten]

Programm zum Anzeigen des Directory-Inhalts der REU unter GoDot:

80 CLS: CSET 1
85 d$="0123456789012345678"
90 ls=LEN(d$): stringadresse holen
95 sa=PEEK(p)+256*PEEK(p+1)
 
100 MEMCONT 0: MEMRESTORE 1: MEMLEN LS
110 MEMPOS 0,0: MEMOR sa: MEMLOAD
120 PRINT "Directory of Drive 12: " MID$(d$,5,11): PRINT
130 nx=ASC(MID$(d$,2))+256*ASC(MID$(d$,3)): bk=ASC(MID$(d$,4))

210 FOR l=1 TO 119
230 MEMPOS l*19,0: MEMOR sa: MEMLOAD
240 p=l: IF ASC(d$)=$c0 THEN l=119: GOTO 290
245 if ASC(MID$(d$,4))=0 THEN FOR i=0 TO ls-1: POKE sa+i,$c0: NEXT: l=119: GOTO 290
250 USE" ### ",l;: PRINT MID$(d$,4) AT(28,LIN)"$" $$(ASC(d$) AND 15);
255 PRINT $$ASC(MID$(d$,3)); $$ASC(MID$(d$,2))
260 IF LIN=24 THEN WAIT 198,255: CLS: POKE 198,0
290 NEXT
300 PRINT: PRINT "Next entry at $" $$bk; $$nx; "," 120-p "entries left"
999 END

1000 PROC stringadresse holen
1010 SYS $80be d$: p=(PEEK(780)+256*PEEK(782))+1
1040 END PROC