PREPARE (SBX)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
PREPARE (SBX)
Format: PREPARE <x>
Parameter
<x>: numerischer Ausdruck, gültige Werte 0,1,2,3
Einordnung
Typ: Anweisung
Kontext: Blockgrafik
Aufgabe: Textschirm für die Eingabe von PETSCII-Grafik einrichten und das Ergebnis speichern
Abkürzung: keine
Verwandte Befehle
PUSH, PULL

Dieser Artikel beschreibt das Simons'-Basic-Extension-Schlüsselwort PREPARE.

PREPARE kann sowohl im Direktmodus als auch im Programm benutzt werden.

Der Parameter <x> bestimmt, in welchen der vier möglichen Speicher nach Drücken von CTRL +A  die Textseite gesichert wird. Legale Werte sind 0,1,2 und 3. Andere Werte erzeugen eine Fehlermeldung:

  • x<0 oder x>255: Fehler ?ILLEGAL QUANTITY ERROR
  • x>3 und x<255: Fehler ?BAD MODE ERROR.

Der Parameter wird nicht zu Beginn der PREPARE-Routine überprüft, sondern erst bei der Übergabe an PUSH nach Beenden mit CTRL +A .

Speicher[Bearbeiten | Quelltext bearbeiten]

Es wird immer der Bildschirmspeicher ab $0400 zusammen mit den Farben im Farb-RAM ab $D800 benutzt.
Die vier Bildschirmspeicher mit je 2 KByte für die Sicherung des Textbildschirms liegen unter dem Kernal. Gespeichert werden für Zeichen bzw. Farbe jeweils 40×25 = 1000 Bytes.

x Speicher Zeichen Farbe
0 $E000-$E7FF $E000-$E3E7 $E400-$E7E7
1 $E800-$EFFF $E800-$EBE7 $EC00-$EFE7
2 $F000-$F7FF $F000-$F3E7 $F400-$F7E7
3 $F800-$FFFF $F800-$FBE7 $FC00-$FFE7

Da das RAM ab $E000 unter dem Kernal auch von HIRES und MEM genutzt wird, sollte PREPARE nicht im Zusammenhang mit diesen Befehlen angewendet werden.

Editieren des Textbildschirms[Bearbeiten | Quelltext bearbeiten]

Sobald PREPARE aktiv ist, kann man Text oder niedrigauflösende Grafik auf dem Schirm platzieren.

Der Befehl steuert die Eingabe mit der Abfrage der folgenden Tasten bzw. Tastenkombinationen:

Taste Aktion
CRSR ⇓  CRSR DOWN ohne Scrollen der Zeilen nach oben
CRSR ⇑  CRSR UP ohne Scrollen der Zeilen nach unten
CRSR ⇒  CRSR RIGHT; springt vom Zeilenende in die nächste Zeile außer beim letzten Zeichen
CRSR ⇐  CRSR LEFT; springt vom Zeilenanfang in die vorige Zeile außer beim ersten Zeichen
SHIFT +CLR/HOME  CLR löscht Schirm und springt zum ersten Zeichen
CLR/HOME  HOME springt zum ersten Zeichen (oben links)
RETURN  RETURN; CR und LF
SHIFT +RETURN  springt an den Anfang der aktuellen Zeile
DEL  keine Aktion
INST  keine Aktion
CTRL +A  Beendet den PREPARE-Modus und speichert den Schirm mit Hilfe des PUSH-Befehls im mit dem Parameter <x> vorgegebenen Speicher.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Direktmodus

PREPARE 1
 Beenden mit CTRL A. Die Textseite wird im Speicher 1 gesichert.
PULL 1: WAIT 198,1
 Die Textseite wird aus dem Sicherungsspeicher geholt und bis zum Tastendruck angezeigt.

Programm

Das folgende Beispiel ist eine Erweiterung des im "SIMONS' BASIC Extension User Guide" unter PUSH aufgeführten Programms und zeigt die mögliche Verwendung von PREPARE im Programm-Modus. Nach Zeile 35 kann man im PREPARE-Modus in den Bildschirm zeichnen. Mit CTRL +A  wird ins Programm zurückgesprungen. Da PREPARE bereits ein PUSH aufruft, ist das PUSH in Zeile 40 überflüssig und mit REM deaktiviert.

10 PRINT CHR$(147)
20 COLOUR 5,15:LOW RES 10,0
30 CIRCLE 40,25,10,10,1
35 PREPARE 0
40 REM: PUSH 0
50 PRINT CHR$(147)
60 PAUSE 2
70 PULL 0:PAUSE 3

Hier könnte man den Bildschirm auf das Diskettenlaufwerk 8 speichern mit
 80 SCRSV 2,8,2,"PREPARE DEMO,S,W"