PREPARE (SBX)
|
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"
* | ADD ALL | ADD ARR | ALTER | BACK | BARRIER | BCKFLASH | BEEP | BIN$ | CALCX | CALCY | CCOL | CHAIN | CHANGE | CLEAR | CONTINUE | COPY ARR | CREATE | DEEK | DEG | DELETE | DIV ALL | DIV ARR | DOKE | DRAW TO | DS$ | ECOL | ELEMENTS | EVAL | FILTER | FIND | FONT | FORCE | GRAD | GRID | HELP | HEX$ | HIMEM | HLIN | HLOAD | HSAVE | INFO | INIT | INPUT ARR | INVERT | LABEL | LOMEM | LOW RES | MAX | MCOL | MIN | MODE | MUL ALL | MUL ARR | NORMAL | ON DETECT | PREPARE | PRINT ARR | PROTECT | PULL | PULSE | PUSH | READ ARR | RENUMBER | REVERSE | ROTATE | SCALE | SCHR | SCOL | SCRATCH | SCREEN | SCX | SCY | SET ARR | SHOW | SORT | SPRITE | SPR LOC | SPRX | SPRY | START | SUB ALL | SUB ARR | SUM | TICK | TRANSFER | UPPER | VLIN | XVEC | YVEC | ZER ARR |