★ APPLICATIONS ★ PROGRAMMATION ★ BREAK KEY (CPC MAGAZIN) ★ |
Break Key (CPC Magazin) | Applications Programmation |
Viele Besitzer eines CPC haben im Handbuch über die Befehle EVERY und AFTER gelesen, können aber nicht so recht damit umgehen. Bei näherer Betrachtung erweisen sich diese aber als äußerst nützlich. Das Programm setzt das EVERY-Kommando zur Tastaturabfrage ein. Es werden alle 15/200 Sekunden einige Tastenkombinationen abgefragt (EVERY 15,0). Das Unterprogramm, in dem dies geschieht, wird vom Interpreter so schnell abgearbeitet, daß das Hauptprogramm kaum beeinflußt wird. Man könnte fast meinen, daß ein Multitasking vorliegt. Programmbeschreibung REM-Zeilen werden nicht angesprungen; man kann sie also getrost weglassen. In den Zeilen 130 bis 200 erfolgen die Vorbereitung des Bildschirms und das Setzen der benötigten Variablen. Anschließend gelangen die ständig sichtbaren Meldungen zur Ausgabe (210,220). Das Hauptprogramm dient nur der Demonstration. Es gibt in einer Endlosschleife Zahlen im Window#0 (m%=0) oder auf dem Drucker (m%=8) aus (290-310). Die Zeilen 340 bis 380 stellen das Unterprogramm dar, in das alle 15/200 Sekunden verzweigt wird (250). Hier werden nun folgende Tastenkombinationen abgefragt: CTRL + P leitet die Ausgabe auf den Drucker und gibt den neuen Status im Window# 1 an (340). Erneutes CTRL + P leitet sie wieder auf den Bildschirm (350). SPACE hält die Ausgabe an. Dazu wird der regelmäßige Unterprogrammaufruf gestoppt (Dummy%=remain(0)), und es erfolgt die Verzweigung in ein zweites Unterprogramm (400-440). Dieses aktualisiert zunächst die Meldung in Window#2 (400). Dann wird verhindert, daß es sofort wieder verlassen wird, weil man die Leertaste zu lange festgehalten hat (410). Zeile 420 wartet auf eine erneute Betätigung der Leertaste. Jetzt ist der gesperrte Interrupt natürlich wieder einzuschalten (EVERY 15,0 GOSUB in 360). Ein Druck auf die TAB-Taste hält das Programm an. Dies ist notwendig, da noch ein weiterer Interrupt initialisiert wurde (240). Dadurch erfolgt nach zweimaligem Betätigen von ESC ein Sprung in das Unterprogramm BREAK (460, 470). In Zeile 460 wird der Interrupt ausgeschaltet (wegen flag%=0 in Zeile 190). Ein erneuter Druck auf ESC schaltet ihn wieder ein (Zeile 470, wegen flag%=1 in Zeile 460). Sie werden feststellen, daß die Bildschirmausgabe bei gesperrtem Interrupt nicht sichtbar schneller ist. Thomas Klinkradt , CPC Magazin
|