Das hier vorgestellte Label-BASIC erweitert das BASIC des CPC 464 um die Möglichkeit, Label (symbolische Namen) verwenden zu können. Damit können Sprungziele, Unterprogramme und so weiter nicht nur über Zeilennummern, sondern auch über symbolische Namen angesprochen werden. Für die Verwendung der Label werden keine neuen (RSX-) Befehle eingeführt, sondern es werden die normalen Befehle benutzt. Es können gemischt Label und Zeilen nummern verwendet werden. Die Label werden durch den RENUM-Befehl nicht verändert und auch nicht als Fehler gemeldet. Zusätzlich wird ein neuer RSX-Befehl eingeführt, der dazu dient, die Label aus dem im Speicher befindlichen Programm zu entfernen und es wieder in ein normales BASIC-Programm umzuwandeln. Die verwendeten Label sind in Anführungszeichen (“) eingeschlossen. Zwischen den Anführungszeichen können beliebig viele Zeichen verwendet werden (soviele in die Zeile gehen) oder auch gar keins. Es können alle Zeichen, die über die Tastatur eingegeben werden können, benutzt werden — ausschließlich dem Anführungszeichen. In der jeweiligen Zeile, die durch ein Label benannt werden soll, muß das Label am Anfang der Zeile stehen. Das Label kann entweder allein in der Zeile stehen, oder es können durch einen Doppelpunkt getrennt, weitere Befehle folgen. Beispiele: 100 “Label“ 110 “Label“:INPUT a$Steht das Label allein in der Zeile, so kann das hintere Anführungszeichen entfallen. Werden zwei Zeilen mit demselben Label benannt, so wird immer auf die Zeile zugegriffen, die weiter vorne im Programm steht. Bei Befehlen, in denen ein Label benutzt werden soll, wird das Label einfach anstelle der Zeilennummer eingesetzt. Bei Befehlen, die mehrere Zeilennummern verwenden, können Label und Zeilennummern gemischt werden. Beispiele: 200 GOTO “Label“ 210 RESTORE “Label“:READ a 220 LIST “Label“ - 150 230 ON x GOSUB 10, “Label“,150Ist das Ende des Labels auch das Ende der Zeile, so kann das hintere Anführungszeichen entfallen. Bei den Befehlen AUTO, RENUM und RUN isf die Verwendung von Labein nicht möglich. Kann ein angesprochenes Label nicht gefunden werden, so wird ,,Line does not exist“ gemeldet. Der RSX-Befehl |LABEL.WEG wandelt das im Speicher befindliche Programm (mit Labein) wieder in ein normales BASIC-Programm um. In den Befehlen, die Label verwenden, werden die Label durch die Zeilennummern ersetzt. Für Label, die nicht im Programm zu finden sind, wird die Zeilennummer 0 eingesetzt. Die Label, die die Zeilen benennen, werden entfernt. Der auf ein Label folgende Doppelpunkt bleibt erhalten. Zeilen, in denen nur ein Label stand, bestehen danach nur noch aus der Zeilennummer. Der RSX-Befehl entfernt nur Label und prüft keine Syntax-Fehler. Das Listing zeigt den BASIC-Loader für das Maschinenprogramm. Er bringt das Maschinenprogramm unterhalb von HIMEN in den Speicher und setzt HIMEN entsprechend herab. Er verbindet das Maschinenprogramm mit dem BASIC-Interpreter und bindet den RSX-Befehl ein. Der BASIC-Loader löscht sich anschließend durch NEW selbst. Gerd Kluge , HC ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 094 millisecondes et consultée 95 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. |
|
|