Doping für Basic-Programme Fast so schnell wie Assembler werden ihre Basic-Programme mit »BW-COM«. Dieser Compiler zum Abtippen läuft auf dem Schneider CPC 464. Welcher Computerbesitzer hat sich nicht schon gefragt, wie er seine Programme schneller machen kann. Vor der Losung Assembler schreckt man aber dann meist doch wegen des großen Zeitaufwands beim Editieren zurück. Man müßte doch die Vorteile von Assembler (schnell, kurze Programme) mit dem Vorteil von Basic (einfach erlernbar, leicht zu editieren) kombinieren können. Aus dieser Idee heraus entstand der vorliegende Compiler. Einschränkungen in der Syntax nimmt man in Basic gerne in Kauf, wenn die compilierten Programme dadurch kürzer und schneller werden. Manche Compiler verarbeiten den kompletten Befehlssatz, bringen dann aber weit weniger Geschwindigkeitsvorteile als Compiler, die nur eine beschränkte Syntax erlauben. Den vollständigen Befehlssatz finden Sie in dem nebenstehenden Kasten. - A steht dabei für Ausdruck, zum Beispiel PEEK(x+10)—PEEK (DEEK(y+v)) oder y
- C steht für Konstante zum Beispiel 25001 oder 10 V steht für Variable, zum Beispiel t (immer nur ein Zeichen!) oder w
- n$ steht für String, zum Beispiel meier oder pgm1
Von den Rechenfunktionen sind bei der nicht erweiterten Version lediglich»+« und»—«erlaubt Weiterhin darf pro Zeile nur ein Befehl stehen, also kein Doppelpunkt. Variablennamen dürfen nur ein Zeichen lang sein. Die Rechenergebnisse dürfen nur im Integerbereich liegen.»BW-COM« ist besonders für kleine Unterprogramme die in normale Basic-Programme eingebunden werden sollen, geeignet. Mittels »DATA 25000« (statt COM) wird eine Datei (Name »DATA«) erstellt die das Assemblerprogramm (Beginn 25000) enthält (samt Einleseschleife). Mit CALL 25000 kann es von einem darumherum geschriebenen normalen Basic-Programm benutzt werden. Eine Besonderheit muß an dieser Stelle erwähnt werden: Mit »CALL C.g.t1.h5...« werden die Integer-Werte der Variablen g,t1 und h5 an das Assemblerprogramm übergeben. Im Assembler-Quellprogramm findet man diese Werte als Vorbesetzung für die Variablen z,y.x. also der erste Wert nach CALL C ist z, der zweite y, der dritte x. der vierte w und so weiter Alle im Quellprogramm verwendeten Variablen müssen mit CALL vorbesetzt werden (zum Beispiel mit 0). Einzige Möglichkeit. dies zu umgehen, ist, in die erste Programmzeile (des Quellprogrammes) den Befehl »BASIS« zu schreiben. Das ist bei den nachfolgend erwähnten CP/M-Programmen immer notwendig. Wird »DATA« mit dem Wert 256 ausgeführt, erstellt »BW-COM« eine unterCP M ausführbare Datei »pgm.com«. Da »BW-COM« systemspezifische Firmwarecalls verwendet, ist eine Übertragung auf andere CP'M-Computer leider nicht möglich. In bestimmten Fällen kann es durch Unterschiede zwischen CP/M und Amsdos (zum Beispiel Moduswahl) ebenfalls zu Fehlem kommen: dem Anwender sei hier ein Versuch empfohlen. | Grafik: | CLS CLG ORIGIN A,A MOVE A,A MOVER A,A DRAW A,A DRAWR A,A PLOT A,A TAG TAGOFF TEST (0) | löscht Bildschirm löscht Grafikfenster Grafiksprung setzen absolut Grafikcursor relativ Grafikcursor Linie nach AA ziehen relative Linie ziehen Punkt absolut setzen schreiben auf Graf .-Pos. TAG ausschalten Punktfarbe an Graf -Pos | | Text: | PAPER A PEN A LOCATE A,A PRINT CHR$(A) GETV | Schreibfiachenfarbe Schreibstiftfarbe Textcursor setzen druckt Zeichen, ein Befehl holt Zeichen von der Tastatur | | Sonstige: | REM GOTO C GOSUB C RETURN END PEEK (A) DEEK (A) POKE A.A DOKE A,A DI EI MODE A FOR V=A TO A NEXT BASIS IF A=A THEN GOTO I F A< A THEN GOTO | Bemerkung springt zur Zeile springt zu Unterprogramm verläßt Unterprogramm beendet Programm Wert der Speicherstelle A = PEEK (A)+256-PEEK(A+1) schreibt Wert von A in A Doppel POKE (analog DEEK) sperrt Unterbrechung ertaubt Unterbrechung wählt Modus A definiert Schleife beendet Schleife setzt Variabienzeiger Spruno bei Gleichheit Sprung bei Ungleichheit (außer GOTO ist nur GOSUB erlaubt!) | | Direkt: | NEW COM RUN LIST LIST#8 SAVE ”n$" LOAD "n$" MERGE "n$" DATA,C CAT | löscht Programm compiliert Programm startet compiliertes Programm listet auf Bildschirm listet auf Drucker speichert (Quei-) Programm holt (Quell-) Programm fügt Programmteil an schreibt das Assembler programm in Form von Datazerfen auf Disk oder Tape holt Catalog |
Das Speicherfonmat (mit SAVE und LOAD) ist voll zum normalen Schneider-Basic-Format kompatibel. Basic-Quellprogramme können also auch ohne »BW-COM« erstellt oder geladen werden Lediglich beim Abspeichem (ohne »BW-COM«) muß »,A« den Fiienamen folgen, da das ASCII Format verwendet wird. Basic-Quellprogramme laufen unter Schneider-Basic nur. wenn keine abweichende Syntax (zum Beispiel DEEK(a)) verwendet wurde Umgekehrt gilt das gleiche Einige Besonderheiten zum Schluß: Da kein STEP- Befehl existiert, kann man sich durch Manipulation der Laufvariablen behelfen, ein negativer STEP ist aber auch so nicht möglich. FOR-NEXT-Schleifen laufen nur mit einem Startwert größer Null richtig. Negative Konstanten können im Quellprogramm nicht verwendet werden Der END- Befehl in einem Unterprogramm wirkt wie RETURN Längere Programme (über 50 Zeilen) sollte man in Programmsegmente zerlegen und gesondert kompilieren. Im Eingabeeditor, in dem man nach RUN »BW-COM» landet kann man bei der Quellprogramm-Erstellung Jen »Copy-Cursor« voll verwenden. Dieser Editor ähnelt dem Schneider-Editor so stark, daß man schon aufpassen muß. wo nan sich befindet Das Basic-Quellprogramm steht außer lach NEW und LOAD nach jeder Operation noch zur Verfügung. Berthold Weber/hg/hl , Happy Computer 7/Juli 1985
| ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.732-desktop/c Page créée en 182 millisecondes et consultée 1915 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|
|