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 zanhä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 Stringbelegung ( 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 angegeben 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 Normalmodus." 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 Zeilenumnummerierung 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 eingeschaltet.
BASSET hi
Mit diesem Befehl läßt sich der Basicanfang 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)