★ APPLICATIONS ★ DIVERS ★ Break-Utility|CPC Magazin) ★ |
RSX Break-Utility (CPC Magazin) | Applications Divers |
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:
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.- 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.ONDas Programm wird dann mit einem GOTO zur ersten Zeile gestartet. Markus Melchinger , CPC Magazin
|