Basic-Programme im Interrupt
Bislang war die landläufige Meinung, daß sich Basic und lnterruptprogrammierung aus Geschwindigkeitsgründen ausschließen würden. Dieses Maschinenprogramm macht es möglich, Basic-Unterprogramme neben dem Hauptprogramm ablaufen zu lassen.
Geben Sie zunächst das Listing »BASIC-INT« mit dem MSE ein und speichern Sie es. Die Initialisierung der Routine erfolgt durch SYS 828, T. Dabei stellt T die Zeitdifferenz zwischen zwei Aufrufen dar und darf zwischen 0 und 65535 liegen. Diese Zeitspanne muß sp groß gewählt werden, daß das Interrupt-Programm beendet werden kann, bevor ein neuer Aufruf ausgelöst wird. Ist dies nicht der Fall, läuft der Stack über, und ein OUT OF MEMORY ERROR ausgegeben.
Aufruf in Basic: Mit »£GOSUB Zeilennummer« können Sie nun ein beliebiges Unterprogramm, dasi mit RETURN abgeschlossen sein muß, im Interrupt ablaufen lassen. Beendet wird der Interrupt durch den Befehl »£GOSUB« ohne eine anschließende Zeilennummer. Diesen Befehl müssen Sie auch immer dann eingeben, wenn Sie wechselweise mehrere Unterprogramme durch den Interrupt steuern wollen, da sonst ein korrekter Ablauf nicht gewährleistet ist.
Die Zeitdauer zwischen den Aufrufen können Sie einfach durch erneute Eingabe des SYS-Befehls mit einem anderen Wert für T bestimmen.
Die Anwendungsmöglichkeiten sind praktisch unbegrenzt. So ist es zum Beispiel möglich, eine Bildschirm-Hardcopy auszudrucken, oder Daten auf Diskette zu speichern. Beachten Sie dabei bitte, daß Sie den OPEN-Befehl immer im Hauptprogramm senden, da er extrem viel Zeit verbraucht. Die Ausgabe eines Zeichens dagegen ist im Nbrmalfall unkritisch.
Dieses Programm wird Ihnen ein völlig neues Betätigungsfeld eröffnen. Es wäre ein tolles Ergebnis, wenn uns hier sinnvolle Anwendungen erreichen würden.
(F. J Riemenschneider/og)PROGRAMM : BASIC-INT 033C 03F4 ----------------------------------- 033C : 20 FD AE 20 8A AD 20 F7 91 0344 : B7 A5 14 A6 15 85 FC 86 26 034C : FD A9 5E A2 03 8D 08 03 CC 0354 : 8E 09 03 A9 FF 85 FA 85 80 035C : FB 60 20 73 00 C9 5C F0 9F 0364 : 06 20 79 00 4C E7 A7 20 BC 036C : 73 00 C9 8D F0 03 4C 08 6C 0374 : AF 20 73 00 F0 5E 20 6B 6A 037C : A9 20 13 A6 B0 03 4C E3 EB 0384 : A8 A5 5F 38 E9 01 85 B2 00 038C : A5 60 E9 00 85 B3 A9 A1 BC 0394 : A2 03 78 8D 28 03 8E 29 AF 039C : 03 58 4C AE A7 E6 FA A5 9D 03A4 : FA C5 FC D0 48 E6 FB A5 D1 03AC : FB C5 FD D0 40 A9 FF 85 80 03B4 : FA 85 FB 68 68 A9 03 20 9D 03BC : FB A3 A5 7B 48 A5 7A 48 8E 03C4 : A5 3A 48 A5 39 48 A9 8D E5 03CC : 48 A5 B2 A6 B3 85 7A 86 C7 03D4 : 7B 4C B1 A7 78 A9 ED A2 A8 03DC : F6 8D 28 03 8E 29 03 58 F2 03E4 : A9 E4 8D 08 03 A9 A7 8D 9B 03EC : 09 03 4C AE A7 4C ED F6 E2