APPLICATIONSDIVERS ★ Break-Utility|CPC Magazin) ★

RSX Break-Utility (CPC Magazin)Applications Divers
★ 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 ★ 

Wer schon mit dem M 24 von Olivetti gearbeitet hat, wird eine ganz bestimmte Taste auf dem Keyboard besonders zu schätzen wissen, nämlich die, deren Betätigung augenblicklich zum Ausdruck einer Hardcopy des Bildschirms führt. Dies bietet dem User die Möglichkeit, an beliebigen Stellen eines Programms Menüs, Texte oder Grafiken zu Papier zu bringen.

Mit der folgenden RSX-Erweiterung kann nun jeder eine solche Taste auf dem CPC installieren. Es handelt sich allerdings nicht um eine neue Hardcopy-Routine, von denen es schon mehrere zum Abtippen gibt (z.B. Schneider-Magazin 4/86). Auch professionelle Hardcopy-Programrre sind auf dem Markt. Sofern man die Startadresse kennt, kann man jedes Programm dieser Art verwenden. Die felgenden Routinen verwalten ausschließlich die Abfrage der Tastatur. Als Auslöser wurde die kleine ENTER-Taste gewählt, da diese sehr selten benutzt wird und deshalb für solche Zwecke besonders geeignet ist.

Nach Start des Basic-Programms wird der Maschinencode in den SOUND-Puffer des Betriebssystems gepoked. Dieser wird nur benutzt, wenn ENT-Befehle in einem Basic-Programm auftauchen. Ansonsten steht er leer und eignet sich hervorragend als Speicher für kurze Routinen. Er befindet sich bei &B70A-&B7F9 (&B3A6-&B495 beim 664/ 6128). Der Maschinencode belegt nur etwa die Hälfte dieses Puffers. Man sollte aber darauf achten, daß ENT-Befehle nur die Folgennummern 1 -3 belegen dürfen. Der Befehl ENT 4,100,2,20 würde z.B. das Programm zerstören. Für normale Anwendungen reichen aber drei Tonhüllkurven vollkommen aus.

Durch das Programm werden folgende RSX-Befehle installiert:

  • |BREAKADR, < adr > - Festlegung der Adresse, zu welcher bei Betätigung der kleinen ENTER-Taste gesprungen werden soll.
  • |BREAK.ON - Entsichern der kleinen ENTER-Taste. Eine Betätigung dieser Taste bewirkt nun einen Sprung zu einer Routine, deren Adresse der |BREADKADR-Befehl bestimmt. Wurde dieser Befehl nicht vorher ausgeführt, wird als Adresse 0
    angenommen, und ein Druck auf die ENTER-Taste führt zu einem Reset.

Die Abfrage der Tastatur erfolgt jeweils nach 1 /50 Sekunde. Dabei wird der Scan-Puffer von &B4F5-&B4FE (&B63F-&B648 beim 664/6128) benutzt, den das Betriebssystem automatisch immer auf dem neuesten Stand hält. Die zugehörige Scan-Routine befindet sich ab &0846 im unteren ROM. Sie setzt nacheinander die Bits 0-9 des LS145-Chips auf 0, und der am I/O-Port des Soundchips anliegende Wert wird in den Scan-Puffer eingetragen. Wurde keine Taste gedrückt, so sind alle 10 Werte &FF.

Der Puffer eignet sich hervorragend zur schnellen Abfrage der Tastatur oder der Joysticks in Maschinenspracheprogrammen. Um ihn sinnvoll zu nutzen, benötigt man allerdings die Abbildung der Tastaturmatrix auf S. 65 des CPC 464 Intern. Wem die obigen Erläuterungen unklar sind, der braucht sich nicht zu ärgern. Sie sind nur für den versierten Assemblerfreak gedacht und haben bei der Anwendung der Befehlserweiterung keinerlei Bedeutung.-
|BREAK.OFF - Sichern der kleinen ENTER-Taste. Ein Druck auf diese hat nun keinerlei Auswirkung mehr.

Neben der schon angesprochenen Möglichkeit einer Hardcopy-Taste sind auch noch andere Anwendungen wie zum Beispiel Reset, Sprung in den Ready-Modus, Neustart eines Programms, Sprung zu einem Taschenrechnerprogramm oder ähnliches denkbar.

Eine besonders nützliche Anwendung ist schon in das Programm implementiert. Es handelt sich um den Befehl |SHOW, < adr > - Nach seiner Ausführung und Entsichern der ENTER-Taste mit |BREAK.ON führt jeder Druck auf die ENTER-Taste dazu, daß der Inhalt der Speicherzellen < adr > und < adr+1 > hexadezimal am linken unteren Bildschirmrand angezeigt wird. Dadurch läßt sich z.B. der Inhalt beliebiger Systemadressen während des Ablaufs eines Basic-Programms erforschen, ohne daß das Programm irgendwie beeinträchtigt wird.

Auch der Inhalt normaler Integervariablen läßt sich jederzeit abfragen. Dazu ist vor dem Start eines Basic-Programms folgendes einzugeben (falls der Inhalt von i% angezeigt werden soll):

i%=0: |SHOW, @i% :|BREAK.ON

Das Programm wird dann mit einem GOTO zur ersten Zeile gestartet.

Markus Melchinger , CPC Magazin

★ PUBLISHER: CPC Magazin
★ YEAR: 1987
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC MAGAZIN 1987
★ AUTHOR: Markus Melchinger
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» RSX-Break-Utility    (CPC  Magazin)    GERMANDATE: 2021-02-02
DL: 171
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

» RSX-Break-Utility    (CPC  Magazin)    LISTING    GERMANDATE: 2020-05-28
DL: 200
TYPE: PDF
SiZE: 90Ko
NOTE: 2 pages/PDFlib v1.6

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

Lien(s):
» Applications » Bar-CPM to execute a file (The Amstrad User)
» Applications » tBH Disc Repair
» Applications » Dischelp (Compute Mit)
» Applications » Diskman (Schneider Aktiv)
» Applications » Twenty-Copy (CPC Revue)
» Applications » Disc Manager
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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
Page créée en 309 millisecondes et consultée 868 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.