★ APPLICATIONS ★ DIVERS ★ Blinkender Cursor ★![]() |
| Flash (CPC Amstrad International) | Applications Divers |
Es gibt Computer, deren Cursor ständig blinkt Andere, wie etwa der Schneider, haben einen »ruhigen« Cursor. Beide Arten haben ihre Vorund Nachteile. Ein blinkender Cursor zum Beispiel ist in einem vollgeschriebenem Textfeld viel leichter erkennbar. Häufig findet man aber das Blinken ziemlich irritierend. Das folgende Programm bietet nun jedem die Möglichkeit, den Cursor nach dem eigenen Geschmack einzurichten. Es stellt einen zusätzlichen Befehl FLASH zur Verfügung, mit dessen Hilfe man den Cursor auf eine beliebige Frequenz einstellen kann. Entwickelt wurde das Programm auf einem CPC 464, es müßte aber auf einem CPC 664 oder einem 6128 auch laufen. Die genaue Form des Befehls ist: :Flash,n n ist dabei ein beliebiger numerischer Ausdruck, mit 0 < = n < 65536. Danach blinkt der Cursor, wobein die Dauer einer Hell- oder Dunkelperiode ist, gemessen in 1/50 Sekunden. n=0 stellt das Blinken vollständig ab. Der Doppelpunkt steht für den senkrechten Strich, chr$(&7C) (erreichbar mit SHIFT "Klammeraffe").
Das Ladeprogramm legt die Maschinenroutine unmittelbar unter HIMEM ab, setzt die absoluten Sprungziele richtig ein und reduziert HIMEM entsprechend. Der BASIC-Speicherplatz wird um nur 107 Byte verkleinert. Die Methode ist im Prinzip folgende: Das Betriebssystem pflegt eine Liste von sogenannten »Ereignissen«, die 50 mal in der Sekunde »angestoßen« werden. Ein Ereignis besteht im wesentlichen aus einer Ereignisroutine und einem Ereignisblock. Dieser enthält Systeminformationen über das jeweilige Ereignis. Beim Eintragen eines Ereignisses in die obige Liste, gibt man zusätzlich einen sogenannten Zähler und einen Wiederanlaufwert an. Der Anstoß eines Ereignisses, der, wie erwähnt, alle fünfzigstel Sekunden stattfindet bewirkt nun folgendes:
Beim Aufruf des Befehls FLASH (dieser wird als RSX = Resident System Extension eingebunden) wird nun das Ereignis (mit dem übergebenen Wert n als Zählerund Wiederanlauf-wert) in die Liste eingetragen oder (n=0) aus ihr entfernt. Zum Ein- und Ausschalten des Cursors: Die Firmware stellt hierzu zwei Paare von Routinen zur Verfügung:
Die hohen Werte bei den schnellen Blinkperioden rühren daher, daß das Betriebssystem z.B. bei FLASH, 1 alle 8 Cursor 50 mal in der Sekunde aus- oder einschalten muß. Dennoch dürften die Werte bei einer vernünftigen Periode von 20 bis 30 akzeptabel sein. Für längere Berechnungen empfiehlt es sich dennoch, das Blinken (mit FLASH,0) abzustellen. Der Copycursor ist vom Blinken übrigens nicht betroffen. Dadurch kann man ihn leicht vom normalen Cursor unterscheiden.
|