★ APPLICATIONS ★ DIVERS ★ Blinkender Cursor und Tastenklick für die CPC-Computer|CPC Magazin) ★ |
Blinkender Cursor und Tastenklick (CPC Magazin) | Applications Divers |
Vier neue Befehle sorgen für einen blinkenden Cursor mit Klick. Viele Computer verfügen über einen blinkenden Cursor, dagegen besitzt der CPC464 (664, 6128) nur einen invertierenden Cursor. Ein solcher hat den Nachteil, daß man ihn bei vielen Daten auf dem Bildschirm schlecht auffinden kann, wohingegen ein blinkender sofort auffällt. Auch wenn man mit mehreren Cursorn arbeitet, fällt es schwer, den aktuellen auszumachen. Die im folgenden vorgestellte Routine beseitigt dieses Übel und erzeugt einen blinkenden Cursor. Der abgedruckte Basic-Lader installiert 4 Routinen, die über 4 RSX-Be-fehle von Basic aus gestartet werden können. Die Routinen sind auf einem CPC 464 geschrieben, laufen aber auch auf einem CPC 664 oder 6128. |Flashon [,int1,int2] Schaltet den Cursor auf Blink-Mode um. Nur der aktuelle Cursor blinkt. Alle anderen Cursor inklusive des Copycur-sors blinken nicht. Wird der Befehl ohne Operanden eingegeben, werden die Standardwerte eingesetzt. int2 (0<=int<65536) gibt die Zeitdauer an, während der der Cursor eingeschaltet ist. int1 entsprechend die Zeitdauer, während der der Cursor ausgeschaltet ist (gemessen in 1/ 50 Sekunden). Bei int 1 gleich Null ist der Blink-Mode ausgeschaltet. Doch sollte man den Befehl FLASHOFF benutzen, da bei der obigen Methode die Routine sich noch in der Normal-Takt-Liste befindet. |Flashoff Schaltet den Blink-Mode aus und löscht die Blinkroutine aus der Normal-Takt-Liste. |Clickeron [,int[,n]] Schaltet den Tastenklick ein. Bei jedem Tastendruck ertönt ein Klicken, das den Tastendruck bestätigt, int (0<=int<4096) gibt die Tonperiode an. Ist sie Null, wird kein Klicken ausgegeben. Es sollte bevorzugt die Routine Clickeroff benutzt werden, da mit obiger Methode ein Ton mit Tonperiode 0 ausgegeben wird. n(0<=n<=15) gibt die Anfangsamplitude an. Es wird die Amplituden (Lautstärke)-Hüllkurve Nr. 15 benutzt. Diese Hüllkurve (ENV 15,5,-2,1) wird bei jedem Aufruf der Routine gesetzt. Sie kann über den Basicbefehl ENV beliebig verändert werden. |Clickeroff Schaltet den Tastenklick aus und entfernt die Tastenklick-Routine aus der Schnell-Takt-Liste. Nach der Eingabe sollte das Programm vor dem Start abgespeichert werden. Treten keine Summenfehier auf, werden die Routinen an's Ende des Basic-RAMs gelegt und nehmen 248 Bytes in Anspruch. Nach der Initialisierung der RSX belegen sie nur noch 229 Bytes. Das Programm setzt automatisch das RAM-Ende (HIMEM) soweit herunter, daß die Routinen von Basic aus nicht mehr überschrieben werden können. Treten Summenfehler auf, müssen die angegebenen'Programmzeilen mit denen im Listing verglichen und berichtigt werden. Wenn das RAM-Ende verschoben wird, kann das Basic den Befehl SYMBOL-AFTER nicht mehr durchführen. Neue Zeichen müssen also vor dem Start des Basic-Laders installiert werden. Desgleichen kann és Vorkommen, daß das RAM-Ende nicht mehr verschoben werden kann. Sollte also ein MEMORY-Fehler auftreten, muß der Computer zurückgesetzt werden (RESET). Danach kann der Basic-Lader die Routinen initialisieren. Da die Routinen die Ereignisverarbeitung des Betriebssystems benutzen, können beide Routinen (Flash und Clik-ker) mit einem CALL&BCC8 (KL CHOKE OFF) ausgeschaltet werden. Eventuell andere vorhandene Ereignisse werden dabei mit ausgeschaltet. Der blinkende Cursor und der Tastenklick können auch von anderen Sprachen/Programmen (z. B. Assembler) genutzt werden, es sei denn, diese Sprache oder das Programm verwaltet die Cursordarstellung über die Routinen TXT CUR ENABLE (&BB7C) und TXT CUR DISABLE (&BB7E). Dann verändert die Flashroutine den Zustand des Cursors, wie er von der Sprache oder dem Programm gesetzt wurde. Man sollte besser keine zu kleinen Blinkperioden benutzen, das das Betriebssystem sonst in Zeitverzug gerät. Das System wird durch die Blinkroutine sowieso schon etwas verlangsamt. Die Verzögerung hängt dabei von der Blinkfrequenz ab. Je größer sie ist, desto länger wird die Verzögerung. Man sollte deshalb mit der Blinkperiode übereiner Zehntelsekunde bleiben. Christian Fibikar , CPC Magazin
|