★ APPLICATIONS ★ DIVERS ★ TOOLBASIC PLUS ★ |
Toolbasic Plus | Applications Divers |
Das Tüpfelchen auf dem »|« »Toolbasic Plus« ist ein mächtiges Instrument zur Programmentwicklung. Seine neuen Programmstrukturen helfen sowohl dem Neuling als auch den Fans unserer Basic-Erweiterung »Toolbasic« aus der Ausgabe 4/86. Das Listing des Monats April (Happy-Computer Ausgabe 4/86) war der Auslöser für die Idee, dem Erfolg noch eins draufzusetzen. » Toolbasic Plus« ist aber nicht nur gemeinsam mit »Toolbasic« einzusetzen; es arbeitet auch vollkommen unabhängig. Was bringt es nun an Neuerungen? Die herausragenden Fähigkeiten sind sicher zwei neue Schleifenformen, die das Locomotive-Basic der Schneider CPCs erheblich aufwerten; REPEAT-UNTIL und DO-LOOP. Dazu kommen zwei Befehle, die sonst nur die CPC-Modelle 664 und 6128 besitzen. Mit diesen (|GPEN und |GPAPER) lassen sich jetzt auch auf dem CPC 464 die Hinter- und Vordergrundfarben für Grafikbefehle festlegen. Auch eine Text-Hardcopy, die auf nahezu allen Druckern arbeitet, fehlt nicht. Geradezu fantastisch sind die letzten vier Befehle. |SLOW verlangsamt den Ablauf aller Basic-Programme. Zwar funktioniert das prinzipiell auch bei Maschinencode-Programmen, jedoch gibt es dort Ausnahmen (meist Interrupt-bedingt). IMC erlaubt die Einbindung kleiner Maschinencode-Routinen (maximal 64 Byte Länge) in Basic-Programme ohne Verwendung von DATA-Zeilen. Mit |SWAP tauschen Sie in Zukunft die Inhalte zweier Stringvariablen und vermeiden so — beispielsweise in Sortier-Routinen — die gefürchtete Garbage-Collection. |ACCEPT schließlich ersetzt den unkomfortablen Input-Befehl. Trotz dieser enormen Leistungsfähigkeit bleibt noch genügend Raum im Speicher für zukünftige Erweiterungen, Der Bereich von 9A00 bis 9DFF hex steht zur freien Verfügung. Wie für alle RSX-Erweiterungen gilt auch hier, daß die neuen Befehle von einem senkrechten Strich angeführt werden müssen. Sie erzeugen ihn durch gleichzeitigen Druck der Tasten SHIFT und @. Hier nun eine ausführliche Erläuterung der Wirkungsweise und Syntax der Befehle: |SLOW,verzögerung Dieser Befehl verlangsamt jedes Basic- und fast jedes Maschinencode-Programm. Je höher Sie die Verzögerung wählen (maximal 255), desto langsamer ist der Ablauf. Bei gemeinsamem Einsatz mit »Toolbasic 1.1« darf die größte Verzögerung jedoch nur den Wert 240 erreichen, da diese Erweiterung die Interruptkette verlängert und somit die Geschwindigkeit drosselt. |SLOW, 230 |MC,wertl,... ,wert32 ruft eine Maschinencode-Routine von Basic aus auf, wobei das Programm aus den 32 Werten hinter dem Kommando besteht und maximal 64 Byte lang sein darf (je-der Wert muß aus zwei Bytes bestehen). Am Ende des Programms muß kein »RET« (C9 hex) stehen, |MC,&3e4l,&cd5a,&bb00 |GPEN,farbe setzt die Vordergrundfarbe für den Grafikmodus (ähnlich dem Befehl GRAPHICS PEN beim CPC 664/6128) |GPAPER,färbe bestimmt die Hintergrundfarbe für den Grafikmodus (ähnlich GRAPHICS PAPER beim CPC 664/6128). |LINE,xl,y1,x2 ,y2[, färbe] zieht eine Linie vom Punkt mit den Koordinaten xl, yl zum Punkt x2, y2 Wahlweise geben Sie die Zeichenfarbe an, |TEXTCOPY gibt alle auf dem Bildschirm sichtbaren Zeichen auf den Drucker aus, Die Zeichen dürfen jedoch nur zwischen ASCII 20 und 7f hex Liegen. Inverse Zeichen werden berücksichtigt, Zeichen in anderen Farben jedoch nicht. |SWAP,@a$,@b$ tauscht die Inhalte zweier Strings miteinander. Dieser Befehl hat den Vorteil, daß kein String-»Müll« auftrift und somit keine Garbage-Collection. Er eignet sich daher besonders für Sortierroutinen. |ACCEPT,window, @vergleich$, lange,@eingabe$ Dieser Befehl ersetzt INPUT vollständig, wobei kerne Cursorbewegungen und Unterbrechungen mehr möglich sind. Außerdem lassen sich die Anzahl der einzugebenden Zeichen und die erlaubten Zeichen vorgeben (vergleich$= "" bedeutet: alle Tasten sind erlaubt). a$=space$(40): b$=".0123456789": |ACCEPT,0,@b$,40,@a$ |REPEAT beginnt die REPEAT-UNTIL-Schleife |UNTIL,bedingung bildet das Ende der REPEAT-UNTIL-Schleife Diese Schleife wird bis zum Druck der Leertaste durchlaufen, 10 |REPEAT:x+i:PRINT x Diese Schleife arbeitet der Computer mindestens 200 mal ab. Danach können Sie sie mit der Leertaste beenden. Die REPEAT-UNTIL-Schleife unterscheidet sich von der WHILE-WEND-Schleife dadurch, daß sie mindestens einmal durchlaufen wird» denn die Bedingung steht erst am Ende der Schleife |REPEAT:|UNTIL,inkey$=" " entspricht etwa WHILE inkey$< >" ":WEND |DO beginnt die DO-LOOP-Schleife. |LOOP beendet sie 10 |DO:|LOOP ist eine Endlosschleife, die nur mit ESC zu verlassen ist. |EXIT ist der einzige Weg, die DO-LOOP-Schleife ordnungsgemäß zu verlassen. Sobald der Interpreter ein |EXIT findet, sucht er das Ende der Schleife und fährt dahinter mit der Programm-Abarbeitung fort, 10 |DO:x=x+1 |
|