Mit der folgenden RSX-Erweiterung, die nur auf dem Schneider-CPC-464 lauffähig ist, können Sie den Computer sich selbst programmieren lassen. So lassen sich z. B. DEF-FN-Funktionen per INPUT eingeben oder sich selbst modifizierende Programme schreiben. Sie erhalten ein lauffähiges Programm auf zwei Wegen: erstens durch Eingabe des Quellcodes und Assemblierung des Maschinenprogramms, oder zweitens durch Abtippen des Basic-Loaders, Achten Sie beim Basic-Loader aber sehr genau auf die Numerierung der Programmzeilen — Sie sehen später, warum! Nach dem Programmstart steht Ihnen ein neuer RSX-Befehl zur Verfügung: |LINE,@a$Im angegebenen String muß eine vollständige Basic-Zeile stehen:a$= “100 PRINT” a$= “150 FOR i=1 TO 10:PRINT i:NEXT”Die Stringvariable kann aufgrund des CPC-Betriebssystems also nicht direkt übergeben werden, sondern nur auf dem Umweg über den Variablenzeiger. Diese Funktion wird mit dem Klammeraffen” (ASCII-Code 64) aufgerufen. Diskettenbesitzer kennen das sicher schon vom ERA-und REN- Befehl.Ein Programm-Beispiel dafür: 10 b$= “100 INPUT x$” 20 |LINE,@b$ 30 LIST 100Der Computer hat dann die Zeile 100 in den Speicher übernommen und kann sie ausführen. So lassen sich z. B. auf sehr einfache Weise Funktionsplotter programmieren, die die darzustellende Funktion mit einem INPUT abfragen:10 INPUT “Welche Funktion”,a$ 20 a$= “40 DEF FN f(x)=”+a$ 30 |LINE,@a$ 50 FOR i=1 TO 3 60 PRINT i;FN f(i) 70 NEXT iNun noch einige Eigenheiten des Programms, die von Ihnen unbedingt beachtet werden müssen:- Bei der Ausführung des LINE- Befehls wird der Basic-Stack vom Computer gelöscht. Dort befinden sich alle offenen FOR-NEXT- und WHILE-WEND-Schleifen und Rücksprungadressen aus GOSUB-Unterprogrammen, Sie müssen also darauf achten, daß der LINE- Befehl nicht innerhalb offener Schleifen oder in Unterprogrammen ausgeführt wird. Während Sie aufgrund letzterer Einschränkung eventuell Ihre Programmstruktur verändern müssen, lassen sich Schleifen meist sehr einfach in IF-THEN-Konstruktionen verwandeln.
- Die zu programmierende Zeile muß eine höhere Zeilennummer besitzen als die Zeile, in der der LINE- Befehl steht. Das ist aber durchaus sinnvoll, da ja die neue Zeile erst noch ausgeführt werden soll.
Zurück zum Basic-Loader: Dieser ist selbst ein Beispiel für die Verwendung des LINE- Befehls. Die Zeilen 310-340 werden in Zeile 300 aus den DATA-Zeilen zwischen Zeile 530 und 560 gelesen und sofort danach ausgeführt.Für Programmierer und sonstige Interessierte einige Bemerkungen zur Funktionsweise von LINE: Das Programm übernimmt den String, der beim RSX-Aufruf angegeben wird, in den Eingabepuffer des Computers. Dieser liegt beim CPC-464 zwischen den Adressen &ACA4 und &ADA3; er ist also 255 Zeichen lang, entsprechend der maximalen Eingabelänge des Editors. Dann schaltet LINE das Basic-ROM ein und ruft die Codierungs-Routine im Basic-Interpreter auf. Diese liegt beim CPC-464 an der Adresse &E6BC. Da der Aufbau der Codier-Routinen bei den beiden Nachfolgecomputern CPC-664 und 6128 verändert wurde, lassen sich auch keine neuen Einsprungstellen angeben. Damit ist LINE nur auf dem Erstlings-Computer von Schneider lauffähig. Martin Kotulla/LM, Computer-Schau
| ★ AMSTRAD CPC ★ DOWNLOAD ★ |
CPCrulez[Content Management System] v8.732-desktop/c Page créée en 500 millisecondes et consultée 1545 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. |
|
|
|