APPLICATIONSPROGRAMMATION ★ Der CPC 464 programmiert sich selbst! ★

RSX Line (Computer Schau)Applications Programmation
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

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 100

Der 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 i

Nun 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

★ PUBLISHER: COMPUTER SCHAU
★ YEARE: 1985 , 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR: Martin KOTULLA
 



★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Line    (Incl.  ASM  Source)    (Computer  Schau)    GERMAN    LISTINGDATE: 2023-10-30
DL: 194
TYPE: PDF
SiZE: 2965Ko
NOTE: 4 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Line Feed (Popular Computing Weekly)
» Applications » Headline
» Applications » RSX Putline (Happy Computer)
» Applications » RSX Line (SOS Programmeurs)
» Applications » Two-value simultaneous linear equations (Amstrad Computer User)
» Applications » Melody/Bass Line Generator
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 500 millisecondes et consultée 1545 fois

L'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.