APPLICATIONSPROGRAMMATION ★ EDIT-LIST (CPC AMSTRAD INTERNATIONAL) ★

Edit-List (CPC Amstrad International)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 ★ 

Das vorliegende MC-Programm simuliert die drei BASIC-Befehle EDIT., LIST, und LIST , – , welche auf Rechnern, wie z. B. dem EGC Colour-Genie, vorhanden sind.

Diese Befehle veranlassen den Rechner entweder, von ihm als fehlerhaft erkannte Programmzeilen im EDIT-Modus auf den Bildschirm zu bringen, oder die Fehlerzeile bzw. den Programmbereich ab der Fehlerzeile zu listen, und das alles ohne Eingabe der Zeilennummer. Diese Befehle erhöhen den Komfort der Fehlerbehandlung doch beträchtlich, da das ausgesprochen lästige Eintippen von Zeilen nummem nahezu vollkommen entfällt.

Bei der Konzeption des Programms habe ich folgende Anforderungen gestellt:

  1. Auf das doch etwas umständliche Einrichten von RSX-Befehlen soll verzichtet werden.
  2. Der Rechner soll die Befehle bei Auftreten eines Fehlers nicht automatisch ausführen, sondern sie sollten dem Anwender per Tastendruck zur Verfügung stehen; nicht jede als fehlerhaft erkannte Zeile enthält nämlich auch den Fehler, so daß in diesen Fällen ein automatisches Editieren nicht sonderlich sinnvoll ist.
  3. Nach Änderung einiger ROM-Adressen sollte das Programm auch auf dem CPC 664/6128 lauffahig sein.

Um dem Rechnern, die den genannten Befehlen entsprechenden Eigenschaften zu verleihen, müssen folgende Dinge bekannt sein (mit den in Klammern angegebenen Adressen für den 664/6128 dürfte das Programm auch für diese Computer zu verwenden sein):

  1. Die Adresse der Fehlerzeile. Sie liegt im Vektor &ADA6 (&AD8C/&AD8C).
  2. Die ROM-Routine »Zeilennummer holen«. Sie befindet sich an der Adresse &DDD9 (&DEBD/&DEB8) und lädt in Kenntnis der Zeilenadresse die Zeilennummer ins Register HL.
  3. Die ROM-Routine »Programmbereichlisten« beginnt bei &E10D (&E1E8/&E1E3). Die Register BC und DE müssen die Start- bzw. Endzeilennummer enthalten.
  4. Die Eingabeschleife, in die der Rechner immer nach Durchführung der ihm aufgetragenen Befehle springt (z.B., um sich mit READY zu melden), beginnt bei &C064 (&C058/ &C058). Auch bei Auftreten eines Fehlers läuft er nach vorheriger Ausgabe der Fehlermeldung in die Eingabeschleife. Erst dort wird entschieden, ob es sich bei dem aufgetretenen Fehler um einen SYNTAX-ERROR handelt, d.h., ob der Inhalt der Adresse &ADAA (&AD90/&AD90), welche die Fehlernummer enthält, gleich &02 ist, also gleich der Nummer für den SYNTAX-ERROR. Trifft dies zu, so wird die Fehlerzeile im EDIT-Modus ausgegeben, sofern sich der Rechner im Programmodus befindet. Auch darüber wird in der Eingabeschleife entschieden, und zwar nur dann, wenn ein SYNTAX-ERROR vorliegt (aus diesem Grunde erscheinen Programmzeilen mit anderen Fehlern normalerweise auch nicht im EDIT-Modus auf dem Bildschirm). Ob nun der Programmodus vorliegt, wird in diesem Falle anhand des Inhalts der Adresse &ADAA (&AD90/&AD90; Adresse der Fehlerzeile) geklärt. Ist der Wert größer Null, so ist aus der Sicht des Rechners der Programmodus eingeschaltet.

Mit diesem Wissen ist es leicht, den Rechner davon zu überzeugen, daß jede Fehlerzeile auf dem Bildschirm zu erscheinen hat. Da bei Auftreten eines Fehlers während des Programmablaufs der Inhalt von &ADAA immer von Null verschieden ist, muß von dem Maschinenprogramm aus die Speicherzelle &ADA6 (&AD8C/&AD8C) immer nur mit dem Wert &02 des SYNTAX-ERRORs belegt werden. Auf diese Weise »sieht« der Rechner immer einen SYNTAX-ERROR und muß, da er sich immer im Programmodus glaubt, jede Fehlerzeile editieren.

Nach diesen Ausführungen muß zum Assemblerlistung m.E. nur noch soviel gesagt werden, daß das Freischalten des oberen ROMs (für alle Rechner gleich: CALL &B900) eine absolute Notwendigkeit ist, da sich der Rechner ansonsten im RAM verfängt und abstürz!. Im übrigen kann das MC-Programm durch eine etwas effektivere Programmierung durchaus um einige Bytes kürzer gehalten werden, aus Gründen der Übersichtlichkeit habe ich aber darauf verzichtet.

Wer den Basic-Lader benutzt, möge bitte die übliche Reihenfolge Abtippen — Abspeichern — Ausprobieren einhalten. Soll das Programm an einer anderen Stelle als &A000 installiert werden, sind die mit dem Label LIST1 verbundenen Adressen entsprechend zu ändern, ebenso das Memory und die CALLs bei der Tastenbelegung. Die Bedienung des Programms ist sehr einfach, nach dem Laden mit RUN “stehen die Befehle auf den Zahlen 7, 8 und 9 des Tastenblocks zur Verfügung, und zwar in Form von z.B. KEY 135“CALL&A000“+CHR$(13) für "LIST“. Ein Umdefinieren ist natürlich jedem freigestellt.

Wichtiger Hinweis: Wird vor Benutzen der Befehle im Direktmodus ein Fehler verursacht, werden die Adressen &ADAA und &ADA6 auf Null gesetzt. Die Befehle verlieren dann ihre Wirkung solange, bis wieder ein Fehler im Programmodus auftritt.

(Michael Heyl) , CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1987
★ CONFIG (464 ONLY): 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC AMSTRAD INTERNATIONAL-SONDERHEFT
★ AUTHOR: Michael HEYL
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Edit-List    (CPC  Amstrad  International-Sonderheft  5)    LISTING    GERMANDATE: 2024-03-04
DL: 13
TYPE: PDF
SiZE: 116Ko
NOTE: Supplied by archive.org ; 1 page/PDFlib v1.6

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

Lien(s):
» Applications » Editor-Assembler
» Applications » Sprite Editor pour Amstrad Cent pour Cent (Alain  Massoumipour)
» Applications » Memedit (Popular Computing Weekly)
» Applications » Editeur Langage Machine (CPC Revue)
» Applications » Editeur de Sprites et Basic Plus (CPC Revue)
» Applications » Progedit (The Amstrad User)
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.7-desktop/c
Page créée en 319 millisecondes et consultée 80 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.