MEM
Aus C64-Wiki
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort MEM.
Typ: Anweisung
Syntax: MEM
Mit MEM verwirft man den ROM-Zeichensatz des C64 und verlegt ihn an die Speicherposition $E000, an der er mittels DESIGN editierbar ist. Diese Position liegt in der VIC-Speicherbank 3 ($C000 bis $FFFF), daher muss auch der Bildschirmspeicher verschoben werden. Er beginnt nach Anwendung von MEM an der Speicherstelle $CC00.
Da der DESIGN-Befehl zur Festlegung neuer Zeichen nicht dafür gedacht ist, einen kompletten Zeichensatz umzudefinieren (damit wäre der BASIC-Speicher bereits gefüllt und es bliebe kein Platz für das eigentliche Programm), sondern nur einzelne Zeichen, ist es sinnvoll, neue Zeichensätze mit geeigneten Editoren zu erstellen und dann innerhalb von Simons' Basic nach $E000 zu laden. Das unten stehende TSB-Beispielprogramm zeigt, wie das am besten erledigt werden sollte.
Der Anzeigemodus für geänderte Zeichensätze wird mit NRM wieder ausgeschaltet.
5 PRINT "{clear}{ctrl-n}Back at normal Basic..." AT(0,7)"option10:list" 10 IF PEEK($0288)<>204 THEN MEM : i8=PEEK(186): DIM a$(2): LOAD "zeichensatz",i8,1 15 a$(0)="{neun Zeichen für INSERT}" 20 f=11: PRINT "{clear}{ctrl-n}";: COLOUR 0,1,f 30 FILL 0,0,40,25,96,f 40 PRINT " DESK FILE MISC BASIC " 50 INSERT a$(0),5,7,27,15,f 80 PRINT AT(12,7)"Welcome to TSB!" 85 PRINT AT(12,10)"If you notice any" 90 PRINT AT(10,11)"'similarities', they" 100 PRINT AT(8,12)"are absolutely intended." 110 PRINT AT(8,17)"(Please Press Any Key !)" 120 DO NULL 510 PRINT "{clear}Type NRM to return to normal Basic." 520 PRINT AT(0,4)"nrm" AT(0,1)"" Kommentar: Die Zeile 5 sieht man erst, wenn das Programm beendet wurde. In Zeile 10 wird getestet, ob der MEM-Befehl bereits aktiv ist (in $0288 steht der Ort des Bildschirmspeichers - 204 entspricht hex $CC). Wenn nicht, wird MEM ausgeführt und der Zeichensatz vom aktuellen Laufwerk geladen. Der Rest erzeugt das, was im Beispielbild zu sehen ist. Das Programm geht im Original noch etwas weiter, es ist auf der TSB-Diskette unter dem Namen "insert.dmo" zu finden.
