★ APPLICATIONS ★ DIVERS ★ Text mit Piepston ★ |
Klick RSX (CPC Magazin) | Applications Divers |
Die theoretischen Grundlagen dieser kleinen MC-Routine finden Sie in unserem Z80-Kurs in diesem Heft Oft macht sich eine langsame Textausgabe, bei der nach dem Erscheinen eines Buchstabens jeweils ein Piepston ertönt, recht gut. Diese Technik wird oft in Adventures benutzt, hat aber auch sonst einen guten Effekt. Normalerweise benutzt man zur Ausgabe der Zeichen Basic-Unterprogramme, denen dann die gewünschte Ausgabeposition auf dem Bildschirm und die auszugebenden Zeichen in einem String übermittelt werden. Dies ist jedoch etwas umständlich. Vor allem bekommt man auf diese Weise aber Probleme, Zahlen auszudrucken, besonders bei der USING-Funktion. Das hier abgedruckte, etwa 200 Byte lange Maschinenprogramm löst diese Probleme. Ferner werden auch eingetippte Zeichen mit einem Piepsen quittiert. Dies geschieht grundsätzlich für alle auf dem Bildschirm erscheinenden Zeichen, kann aber mittels RSX-Befehl ausgeschaltet werden: |KLICK.ON - Schaltet klickende Ausgabe an |KLICK.OFF - Schaltet auf normale Ausgabe (ohne Klicken) Beim Initialisieren des Programms (dazu später) ist die klickende Ausgabe automatisch eingestellt. Bei der Ausgabe von Spaces (Leerzeichen) ist bei den meisten derartigen Programmen kein Klickton zu hören. Um beide Möglichkeiten offenzuhalten, gibt es hier wieder zwei RSX-Befehle, mit deren Hilfe eine Selektion möglich ist: |SPACE.ON - Bei Leerzeichen wird geklickt |SPACE.OFF - Bei Leerzeichen wird nicht geklickt , Bei der Initialisierung wird zunächst bei Leerzeichen nicht geklickt bzw. gepiepst. Ferner muß nach jedem Buchstaben eine Warteschleife abgearbeitet werden, damit die Ausgabe nicht zu schnell erfolgt und die kleinen Piepser nicht in einen Dauerton übergehen. So wird nach der Ausgabe eines Buchstabens und des Tones von 15000 bis 0 gezählt, bevor der nächste Buchstabe abgearbeitet wird (in Maschinensprache natürlich). Selbstverständlich können Sie auch dieses verändern. Dazu dient der Befehl |WAIT, Wartezeit Wartezeit muß dabei ein Wert zwischen 0 und 65535 sein. Je höher der Wert ist, desto länger wird gewartet. Wird als Parameter 0 angegeben, so wird das als 65536 angesehen und ergibt eine extrem lange Wartezeit. Wird die Routine nicht mehr benötigt, so kann man sie mit einem Befehl abstellen. Auch |KLICK.ON, erweckt sie dann nicht mehr zum Leben. Dies hat folgenden Grund: Der Vektor für die Zeichenausgabe ist auf die Routine ge-patcht. Möchte man nun an ihre Stelle ein anderes Maschinenprogramm laden, so würde der Rechner beim ersten auszugebenden Zeichen versuchen, in die alte Routine zu springen und, da sie ja überschrieben wurde, abstürzen. Der folgende Befehl patcht den Vektor einfach zurück. Danach kann die Routine nur noch durch die Initialisierung wieder ins Leben gerufen werden. Der Befehl lautet sinnigerweise: |STOP Routine laden und initialisieren Die Routine wird durch folgende Befehle geladen: MEMORY 42399 |
|
|