Window Basic-Anleitung 2.Teil -------------------------------
SLOAD "name" Ein Bildschirm wird in den momentan nicht sichtbaren Bildschirm geladen. CODE "text" Ein Basicprogramm wird inklusive Text codiert, um es Programmschändern unmöglich zu machen, in Ihren Programmen herumzupfuschen. PASS "text" Dieser Befehl wurde entwickelt, um nicht jedesmal CODE eingeben zu müssen. Zuerst wird das Programm automatisch mit CODE codiert. Dann wird eine neue Startzeile eingefügt, was zur Folge hat, daß das Listen des Programms etwas eigenartig verläuft. Wird das Programm schließlich gestartet, so wird nach dem Code gefragt und das Programm wird so schnell wie möglich dekodiert (vorausgesetzt der Code stimmt!). MODINI Wenn Sie die Modultechnik (siehe unten) in Ihrem Programm verwenden möchten, so muß in der ersten Zeile nicht nur MWINI, sondern auch MODINI stehen. BSAVE "name" Ein Basicprogramm wird als Modul mit dem Namen "BM/name" abgespeichert. Sie können auch Teile eines Hauptprogrammes herausnehmen, indem Sie nach "name" noch z1-z2 oder z- anhängen (diese Eingaben laufen wie beim List-Befehl ab!). MODULE "name" Ein mit BSAVE abgespeichertes Modul wird hinter das eigentliche Basicprogramm geladen und angehängt. Alle vorher definierten Variablen und Strings bleiben dabei erhalten. Wenn Sie das Modul geladen haben, können Sie es mit GOTO xxx ansprechen. Achten Sie aber darauf, daß Zeilennummern, die im Modul enthalten sind, nicht vom Hauptprogramm benötigt werden. Mit MODULE können Sie eine Menge Speicherplatz sparen, denn Sie brauchen nur Ihre Hauptroutinen und alles, was selten benötigt wird, legen Sie in Modulen ab. Hier kommen vor allem die Adventurefreaks auf ihre Kosten, denn diese können ein gutes Eingabemenü mit ACH, BCH und DINPUT anfertigen, und die einzelnen Räume lassen sich mit MODULE leicht und vor allen Dingen schnell nachladen. Ob ein Modul gefunden wurde oder nicht, läßt sich wieder mit OK abfragen, ok? Was machen Sie aber, wenn Sie ein Programm mit 10 Modulen angefertigt haben und nach einem halben Jahr ein 11. anfügen wollen. Noch 'mal alles umschreiben? Nein, das macht man mit: MODDIR zf, rf, tf Die Variablen haben die gleiche Bedeutung wie bei BCH, da dies mit aufgerufen wird. Es werden nun alle Module, die sich auf der Diskette befinden aufgelistet, und Sie können das gewünschte Modul anklicken. Der Name des Moduls wird nun in MO$ abgelegt und kann ganz einfach mit MODULE MO$ eingelesen werden. Bei Stringdefinitionen sollten Sie allerdings Acht geben: Das 64'er Basic setzt die Pointer bei direkter String- belegung (z.B. A$="test") auf das Basic-PRG herab. Wenn Sie nun ein neues Modul laden, verschwindet der String von dieser Stelle. Definieren Sie diesen nun aber als A$=""+"test", so legt das Basic den String im Stringspeicher ab. Bei sämtlichen anderen Stringoperationen, wie MID$ oder A$+B$ wird dies sowieso durchgeführt. Nur bei direkten Definitionen müssen Sie ""+"...." verwenden. WSPEED sp Die Geschwindigkeit, in der die Windows geöffnet werden, kann hier modifiziert werden, wobei "sp" zwischen 1 und 255 liegen darf. DCH fr, fs, ft (Variablen siehe BCH) Die Funktionsweise ist der von BCH ähnlich, nur der Pfeil wird nicht immer in die linke obere Ecke gesetzt. ECH Wie CCH, aber auch hier bleiben die alten Pfeilpositionen erhalten. FCH Wie DCH, nur die obere Menüleiste wird nicht mehr ausgegeben. Somit können Sie sich eine eigene Menüleiste anlegen und diese mit FCH abfragen. SV var, len (xPos, yPos) Hier wird eine Variable "var" rechtsbündig in einem Feld der Länge "len" ab der aktuellen Cursorposition ausgegeben. "xPos" und "yPos" geben wieder die Bildschirmposition an. NWAIT NWAIT ist eine Erweiterung des GETA$:IFA$=""THEN...-Befehls. Er wird folgendermaßen benutzt:
NWAIT: IF OK THEN...
PS Part n$ pos (,len) Dies ist eine Alternative zu LEFT$, MID$ und RIGHT$, bei denen unglücklicherweise immer ein neuer String angelegt wird und somit der freie Speicher stetig kleiner wird (Freiheit für den Speicher!). PS umgeht dies, indem der String gesucht und der gewünschte Teil direkt und ohne Neubelegung ausgegeben wird. "Part" darf die Buchstaben L (Left$), M (Mid$) oder R (Right$) annehmen. "Pos" ist gegenüber den Basicbefehlen gleich geblieben, bei M muß allerdings noch die Länge an- gegeben werden. SCH Die dritte Zeile von oben wird in den sich dort befindenden Farbtönen nach rechts gescrollt. Sie können so ein Window, daß sich über die ganze Breite des Bildschirms erstrecken muß, öffnen und den Text in selbigem scrollen.
!I n,xPos,yPos,XA,YA,spp,P,F,c1(,c2,c3)
Ein Sprite wird eingeschaltet. Alle lästigen POKEreien entfallen hierbei, denn "n" stellt die Nummer (1-6) des einzuschaltenden Sprites dar und "xPos" bzw. "yPos" sind die Koordinaten des Sprites, wobei "yPos" auch über 255 liegen darf. XA und YA stehen für die Vergrößerungen. Wenn XA vergrößert werden soll, so muß dort ein "Y" stehen. Soll es nicht vergrößert werden, so verwenden Sie "N" (YES/NO). "SPP" ist der Spritepointer, der einen Wert von 13-15 bzw. 32-255 annehmen darf. "P" steht für Priorität. Bei einem "S" hat das Sprite Vorrang vor den Zeichen, und bei einem "C" ist das ganze umgekehrt. Bei "F" gibt es auch zwei Möglichkeiten: Entweder Sie entscheiden sich für Multicolor, dann geben Sie "M" ein, oder Sie wählen "N" für den Normal- modus. "C1" ist die Hauptfarbe des Sprites, "C2" und "C3" die anderen Multicolorfarben. !M DIR, sp, dis, n1, n2, n3 ... Ein Sprite wird mit der Geschwindigkeit "sp" (0-255) um die Entfernung "dis" in die Richtung "DIR" verschoben. Als DIR dürfen Sie U(P), D(OWN), R(IGHT) oder L(EFT) verwenden. Es sind auch Kombinationen wie z.B. RU oder LD möglich. "n" stellt wieder die Nummer des Sprites dar, wobei auch mehrere Sprites bewegt werden können. !S spb Mit diesem Befehl können Sie ein Sprite auf einfache Weise definieren. "spp" ist der Spriteblock, in dem das Sprite stehen soll, also auch gleichzeitig der Spritepointer. Sie können den Sprite auf einer 24*21 Matrix editieren. "*" stellt einen gesetzten Punkt dar und "." einen ungesetzten. Beispiel:
10 !S 13 20 REM! ********........********
Das REM! ist genauso wichtig, wie die Erfüllung der 24*21 Matrix. Sollte einer dieser Teile fehlerhaft sein, so funktioniert gar nichts. Die REM! Zeile muß direkt auf die !S spb Zeile folgen. REON Die Tastenwiederholung wird eingeschaltet, wodurch sich z.B. die Spritedefintion leichter ausführen läßt. REOFF Dieser Befehl hebt REON wieder auf. KILL WINDOWBASIC verabschiedet sich nach einer Sicherheitsabfrage. MERGE "name" Ein Basicprogramm wird an das sich im Speicher befindende Programm angehängt. Achten Sie auch hier auf die Zeilennummerierung. RENUM pa (,st(,na)) Dieser Befehl führt eine Zeilenum- nummerierung durch. Beispiel:
RENUM 100-200, 15, 50
Die Zeilen 100 bis 200 werden mit der Schrittweite 15 neu nummeriert. 50 ist die neue Zeilennummer, ab der die alte Zeile durchnummeriert wird. Die Variablen "st" und "pa" können aber auch entfallen. Dann würde die Schrittweite 10 betragen. PHI Der gerade gesetzte Interrupt wird zwischengespeichert, und der IRQ auf $31 gesetzt (normaler Zustand). PLI Der zwischengespeicherte Interrupt wird zurückgesetzt. FIND text Ein Basicprogramm wird nach dem Begriff "text" durchsucht und der Fund inklusive Zeile ausgegeben. SOFF Der Bildschirm wird ausgeschaltet. SON Der Bildschirm wird wieder einge- schaltet. BASSET hi Mit diesem Befehl läßt sich der Basic- anfang verändern. Sie können ihn z.B. auf $100 heraufsetzen, um vor dem Programm noch Sprites abzulegen oder sogar einen eigenen Zeichensatz zu benutzen. "hi" ist das High-Byts der neuen Anfangsadresse. LBAS hi "name" LBAS setzt den Basicspeicher herauf und lädt ein Programm mit dem Namen "name" an die neue Startadresse. Dies war der letzte der unsagbar vielen Befehle. Ich weiß zwar nicht wie es Ihnen geht, aber ich bin froh, endlich das Ende erreicht zu haben.
(om)