WINDOW BASIC --------------
Mit den über 70 Befehlen, die WINDOW BASIC liefert, dürfte es in Zukunft kein Problem mehr für Sie sein, ein erst- klassiges 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 Basicer- weiterung 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 ge- setzt 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 einge- setzt 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 ge- setzt. 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 Cursor- position auf den Bildschirm geflasht. TYPE Speed "TEXT": Ein Text wird ab der aktuellen Cursorposition auf den Bild- schirm 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 Cursor- tasten 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 ausge- geben 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 aufge- hoben. 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 pro- grammieren 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 Basic- programm 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 Hintergrund- und "rf" für die Rahmen- farbe. 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 Programm- teile hervorzuheben. Wenn Sie jetzt wieder ins Hauptmenü zurückspringen, so müssen Sie wieder die lästigen Farben setzen. Um dieses Übel zu umgehen ver- wenden 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 konser- viert, bevor der Bildschirm gelöscht wird. SCCL Das zuletzt geöffnete Window wird geschlossen, und die zwischenge- speicherte Hintergrundfarbe zurückge- setzt. 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 Notiz- block, 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.