WINDOW BASIC --------------
Mit den über 70 Befehlen, die WINDOW
BASIC liefert, dürfte es in Zukunft kein
Problem mehr für Sie sein, ein erstklassiges Programm für die MAGIC DISK
zu schreiben.
Da es sich bei WINDOW BASIC um ein sehr
umfangreiches Programm handelt, fangen
wir gleich mit der Mammutanleitung an:
MWINI
Pointer für Windowverarbeitung werden
gesetzt. Nach dem Start der Basicerweiterung ist MWINI für den Direktmodus
schon gesetzt. Trotzdem muß dieser
Befehl am Anfang eines jeden WINDOWBASIC
Programms stehen, was aber die
Effektivität von WINDOW BASIC auf keinen
einschränkt.
WIN Nummer,xPos,yPos,xAusbr,yAusbr,rf,sf
Nummer: Ihnen stehen insgesamt 24 Windows zur Verfügung, die mit drei
Kennbuchstaben unterschieden werden.
A) Normales Window mit Rahmen B) Reverses Window (Platte) C) Reverses Window mit Rahmen
Nach dem Kennbuchstaben steht die Zahl, die das Window weiter charakterisiert.
0) Window ohne Text mit Rahmen 1) Window ohne Text mit Rahmen (Hintergrund wird gespeichert) 2) Window mit Text und Rahmen 3) Window mit Text und Rahmen (Hintergrund wird gespeichert) 4-7) Wie 0 bis 3 aber ohne Rahmen
Beispiele für " Nummern" wären WIN A1 oder auch WIN B7 . . .
xPos: Dies ist die Spalte, in die der
Cursor nach dem Öffnen des Windows gesetzt wird ( Wert 1 bis 36) .
yPos: Dies ist die Zeile, in die der
Cursor gesetzt wird ( Wert 2 bis 24) .
xAusbr: Breite des Bereichs im Window.
yAusbr: Höhe des Bereichs im Window.
rf: Rahmenfarbe des Windows ( Wert 0-15) .
sf: Schattenfarbe des Windows (0-15) .
VORSICHT: Bei Windows ohne Schatten, darf auch keine Schattenfarbe eingesetzt werden.
Wird ein Window mit Text geöffnet, so
ist hinter der Rahmenfarbe noch ein
Komma, ein Anführungszeichen und der
entsprechende Text anzuhängen. Der Text
wird hierbei optimiert, d. h. wenn ein
Wort über den Rand des Windows hinaus- geht, wird es in die nächste Zeile gesetzt. Wollen Sie vor dem Erreichen des
rechten Randes in die nächste Zeile
springen, so benutzen Sie " Pfeil nach
links"(<) . Achten Sie aber darauf, daß
zwischen dem letzten Zeichen und "<" eine Leerstelle vorhanden ist.
Sollte Ihr Window so definiert sein, daß
es den Bildschirm verlassen würde, so
wird eine Fehlermeldung ausgegeben. Dies
geschieht auch, wenn Ihr Wort oder Satz
das Window an Länge überragt.
Falls bei einem Direktwindow der Text
nicht in eine Basiczeile passt, so
können Sie in der nächsten Basiczeile
weiterschreiben. Sie geben lediglich
eine höhere Zeilennummer an und fügen
ein " REM+" an. Direkt anschließend
müssen Sie den Text in Anführungszeichen
eingeben. Von diesen " REM+" Zeilen
können Sie so viele benutzen, wie Sie
möchten. Werden zu viele Windows mit
dieser Zwischenspeicherung geöffnet, so
wird eine Fehlermeldung ausgegeben.
Noch etwas: Bei den Windows B und C mit
direkter Texteingabe sollten Sie am
besten ein CTRL/ RVS ON setzen, da
ansonsten das Window einen seltsamen
Eindruck auf den Betrachter macht.
WCLOSE: Das zuletzt geöffnete, zwischengespeicherte Window wird wieder
geschlossen.
FLASH " TEXT" : Ein Text, der in
Anführungszeichen hinter dem Befehl
steht, wird ab der aktuellen Cursorposition auf den Bildschirm geflasht.
TYPE Speed " TEXT" : Ein Text wird ab der
aktuellen Cursorposition auf den Bildschirm getippt. Die Variable SPEED
stellt die Geschwindigkeit dar und kann
einen Wert von 1 bis 255 annehmen.
DIR: Das Directory wird ausgegeben.
COM " Befehl" : Dieser Punkt gibt einen
Diskettenbefehl aus. Zum Beispiel:
COM" S: NAME" ; das Programm Name wird von
der Diskette gelöscht.
ACH xPos, yPos, xAusbr, yAusbr
Diesen Befehl benutzen Sie zur Auswahl
von Menüpunkten. Haben Sie also ein
Window geöffnet und CHOOSE ( ACH= ACHOOSE) gesetzt, so können Sie mit den Cursortasten oder dem Joystick einen Menüpunkt
anklicken. Mit den Variablen xPos etc.
wird wie bei WIN verfahren.
Die Zahl des angewählten Menüpunktes
wird in der Variable PO (= POSITION) gespeichert und kann mit PRINT PO ausgegeben werden. Es bietet sich auch an, ein ON PO GOTO ( GOSUB) zu benutzen.
DLOAD " NAME", adr
Ein Programm wird an eine in " adr" vorgegebene Adresse geladen, wobei alle BASICPOINTER erhalten bleiben. Auch hier
wird wieder eine Variable definiert: OK.
Wenn ein Programm vollständig und ohne
Fehler geladen wurde, so ist OK=1 .
Sollte der Rechner das Programm nicht
finden, oder sollte es sogar fehlerhaft
sein, so ist OK=0 .
DSAVE " NAME", anf, end (, neuan)
Der Speicherbereich " anf" bis " end", in
dem z. B. ein Maschinenspracheprogramm
liegen kann, wird auf Diskette
gespeichert. Achten Sie aber bitte
darauf," end" als " end+1" anzugeben
( end=8000 ; end+1=8001) .
Wenn das Programm beim Absolutladen
(,8,1) an eine andere Speicheradresse
geladen werden soll, so kann die neue
Adresse in " neuan" stehen. Auf diesem
Wege lassen sich z. B. Autostartroutinen
ohne die Benutzung des Diskmonitors
schreiben.
LOCK Nummer
Dieser Befehl dient zum Verschlüsseln
bzw. Schützen eines Basicprogramms.
Nummer Funktion
1 Die Resetfunktion wird außer Kraft gesetzt. 2 Bei einer Fehlermeldung bzw. bei Ausgabe von READY stürzt der Rechner ab. 3 Bei Eingabe von LIST versinkt Ihr Rechner in Tiefschlaf und ist nur durch Aus- und wieder Einschalten wiederzubeleben. 4 RUNSTOP/RESTORE wird ausge- schalten. 5 Der Rechner stürzt bei Eingabe von SAVE ab.
Es empfiehlt sich die LOCK-Befehle erst
bei fertigen Programmen einzubinden, da
es sonst zu Komplikationen kommen kann.
UNLOCK Nummer
Der Schutz " Nummer" wird wieder aufgehoben.
BCH fr, fs, ft
Dies ist ein weiteres CHOOSE, denn bei
diesem Befehl erscheint ein kleiner
Pfeil in der linken oberen Ecke und ein
Window in den oberen vier Zeilen, in dem
Sie mit dem Joystick in Port #2 einige
Menüpunkte auswählen können.
Es stehen Ihnen bekannte Funktionen
wie z. B. Directory oder Disk Command zur
Verfügung. Dabei ist " fr" die Rahmen-," fs" die Schattenfarbe und " ft" die
Farbe des Textes.
Dieses CHOOSE können Sie aber auch zur
Auswahl eigener Menüpunkte benutzen.
Wenn Sie ein Wort unterhalb des oberen
Windows anklicken, so optimiert der
Computer dieses Wort linksbündig und legt die Zahl in PO ab. Diese Zahl
können Sie dann mit " IF PO = . . . THEN. . ." abfragen ( es sind Zahlen von 1 bis 999 möglich) . Es ist also egal, ob Sie ein
Wort links oder rechts anklicken, es
erscheint immer derselbe Wert. Soll ein
Menüpunkt aus mehreren Wörtern bestehen, so muß zwischen diesen ein SHIFT-SPACE
anstatt einem normalen SPACE eingegeben
werden.
CCH
Dieser Befehl ähnelt BCH, doch es wird
nicht die obere Menüleiste ausgegeben.
Ferner wird ein angeklicktes Wort nicht
optimiert, d. h. die Position in PO ist
die Originalposition. So können Sie z. B.
einen Spriteeditor etc. entwerfen, ohne
eine umständliche Cursorbewegung programmieren zu müssen. Dabei kann PO
zwischen 0 und 999( !) liegen.
Möglich wäre jetzt z. B. POKE 1024+ PO, xx.
Mit dieser Anweisung bringen Sie ein Zeichen xx an die Stelle des Cursors.
BPOS fr, fs, ft
Die Variablen haben die gleiche
Bedeutung wie unter BCH.
Wenn Sie einmal erfahren möchten, welchen Wert PO nach BCH annehmen wird, so geben Sie in Ihrem Programm den
Befehl BPOS ein. BCH wird durch BPOS
ganz normal angesprungen, danach wird
aber die Position einfach auf dem
Bildschirm ausgegeben, und das Basicprogramm unterbrochen. Nun kennen Sie
den PO-Wert nach dem Anklicken eines
bestimmten Menüpunktes, und Sie können
ihn in Ihr Programm einsetzen.
CPOS
Dies entspricht dem vorhergehenden
Vorgang, nur auf CCH bezogen.
BSET hf, rf
Bei diesem Befehl stehen " hf" für die
Hintergrundund " rf" für die Rahmenfarbe. Diese Farben werden gesetzt und
für SEC ( siehe unten) gespeichert.
BCOL hf, rf
Die Variablen sind zu BSET identisch, wobei die Farben allerdings nicht
gespeichert werden.
SEC
Nehmen wir einmal an, Sie benutzen in
Ihrem Programm individuelle
Farbkombinationen, die Sie im weiteren
Ablauf ändern, um spezielle Programmteile hervorzuheben. Wenn Sie jetzt
wieder ins Hauptmenü zurückspringen, so
müssen Sie wieder die lästigen Farben
setzen. Um dieses Übel zu umgehen verwenden Sie den Befehl SEC, denn der ruft
die Farben auf, die mit BSET gesetzt wurden.
COL Nummer
Alle Zeichen auf dem Bildschirm erhalten
die Farbe " Nummer"(0-15) .
SCOP
Ein Window, das sich über den gesamten
Bildschirm erstreckt, wird geöffnet. Die
Hintergrundfarbe wird allerdings konserviert, bevor der Bildschirm gelöscht
wird.
SCCL
Das zuletzt geöffnete Window wird
geschlossen, und die zwischengespeicherte Hintergrundfarbe zurückgesetzt. Gleichzeitig wird jedes Zeichen
weiß eingefärbt.
RWAIT
Das Programm wartet, bis entweder eine
Taste, oder der Feuerknopf gedrückt
wird.
SETDN #
Dieser Befehl führt zu einer Änderung
der Device-Numer bei allen Window-Basic- Befehlen, nicht aber dem normalen LOAD
oder SAVE. So können Sie mit den Wi-Bas- Befehlen gleich mehrere Laufwerke
ansteuern.
HELP
Alle Befehle dieser Erweiterung werden
aufgelistet.
MEM
Der noch zur Verfügung stehende
Speicherplatz wird angezeigt, wobei
zwischen der Programmlänge und dem noch freien Speicherplatz unterschieden wird.
FON
Hiermit werden die Funktionstasten
belegt. Diese sind nur im Direktmodus
verwendbar und sind sonst abgeschaltet.
F1 LIST F2 PAD F3 RUN F4 MEM F5 LOAD " F6 SAVE " F7 DIR F8 HELP
FOFF
Abschalten der Funktionstastenbelegung.
KEY Nummer " TEXT"
Mit diesem Befehl können Sie Ihre
Funktionstasten nach eigenen Wünschen
definfieren. Dabei muß die Variable
" Nummer" ein Zahlenwert zwischen eins und acht annehmen. Unter " TEXT" können
Sie jede Art von Basicbefehl verwenden.
Außerdem wurde eine Erweiterung
eingebaut, so daß Sie, wenn Sie für
einen Befehl einen freien Bildschirm
benötigen, einfach ein < SHIFT/ CLR> als erste Stelle bei " TEXT" einfügen.
Geben Sie als erstes einen Pfeil nach
links ein, so wird der Befehl auf dem
Bildschirm ausgegeben und der Cursor
befindet sich direkt hinter der
Anweisung. Damit Ihr Befehl direkt
ausgegeben wird, geben Sie einfach Ihr
Kommando an, ohne irgendeinen Zusatz.
Diese Tastenbelegung können Sie mit
DSAVE " name"43302,43430 abspeichern
und mit DLOAD " name"43302 neu laden.
MKEY
Die Funktionstastenbelegung wird auf dem
Bildschirm ausgegeben.
CSAVE
Die aktuelle Cursorposition wird
zwischengespeichert. Sie können jetzt an
einer anderen Stelle Ihr Programm
editieren und mit CLOAD zur alten
Cursorposition zurückkehren.
DINPUT len, col, n$ (,xPos, yPos)
Das herkömliche INPUT des c64 läßt bei
vielen Programmierern noch Wünsche
offen." Len" definiert bei WB
( Window-Basic) die Länge der Eingabe und
darf den Wert 80 nicht überschreiten.
" Col" gibt die Farbe des Textes an, wobei weder reverse Eingaben noch
Grafikzeichen möglich sind." N$" stellt
die Variable dar, unter welcher die
Eingabe gespeichert wird.
" xPos" und " yPos" definieren den
Bereich, an dem die Frage ausgegeben
werden soll. Wenn Sie " xPos" und " yPos" nicht angeben, so verhält sich DINPUT
wie ein normales INPUT.
Wenn Sie jetzt während einer Eingabe
< SHIFT/ CLR> drücken, so verschwindet
nicht der Bildschirm, sondern die
Eingabe wird gelöscht, und der Cursor
wird an das erste Eingabefeld zurück
gesetzt.< SHIFT+ PLUS> bzw.< SHIFT+ MINUS> bringt Sie ein Wort vor bzw. zurück.
RESET
Window-Basic wird neu initalisiert, Basicprogramme bleiben aber trotzdem
erhalten.
DSTAT
Der Diskstatus wird ausgegeben.
OLD
Ein mit NEW gelöschtes Programm wird
wieder hergestellt, vorausgesetzt es
wurde noch nicht überschrieben.
RES
Sollten innerhalb eines Basicprogramms
die Zeilenpointer verbogen sein, so
setzt RES diese wieder zurück.
JMP
Dies ist ein GOTO var, wobei var hier
durch eine Variable dagestellt wird:
A=100 : GOTO A
DEL
Mit diesem Befehl lassen sich Teile
eines Programmes löschen. Beispiel:
DEL 100-200 ; die Zeilen 100 bis 200 werden gelöscht.
DEC
Es kommt ziemlich oft vor, daß man eine
JA/ NEIN-Abfrage in sein Programm einbauen möchte. Wenn Sie nun DEC
eingeben, so wird ab der Cursorposition
( YES/ NO) ausgegeben. Sie können jetzt
mit den Cursortasten oder mit dem
Joystick in Port #2 zwischen YES und NO
umschalten und das Zutreffende wählen.
Danach werden zwei Variablen ( YE, NO) definiert, die mit IF YE THEN . . . oder
IF NO THEN . . . abgefragt werden können.
PAD
Hierbei handelt es sich um einen Notizblock, den Sie mit PAD aufrufen können.
Mit Pfeil nach links gelangen Sie wieder
in das " normale" Basic zurück.
PSAVE " name"
Das mit PAD geschriebene Dokument wird
gespeichert.
PLOAD " name"
Ein zuvor gespeichertes Dokument wird
mit diesem Befehl wieder eingelesen.
SCR
WB arbeitet mit zwei Bildschirmen und
Farbspeichern, die Sie mit SCR auswählen
können.
SSAVE " name"
Der im Moment nicht sichtbare Bildschirm
wird abgespeichert.