Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File11.21.5.15 mxk_evnt_mIO TOS Name: »evnt_mIO« Parameter: d0 = long ticks_50hz a0 = void *unsel d1 = int cnt bzw. a0 = APPL *ap Beschreibung: evnt_mIO() ermöglicht es, auf MEHRERE externe Ereignisse zu warten, z.B. wird diese Funktion von Fselect verwendet (mehrere Dateien!). Vorgehensweise: 1. Für n Ereignisse eine Langwort-Tabelle der Länge 2*n anlegen. 2. Für jedes Ereignis die Aufräumroutine (unselect- Routine) eintragen, (dahinter folgt ein optionaler Langwortparameter) und den Interrupt aufsetzen. Die Reihenfolge ist wichtig, es muß verhindert werden, daß die unselect-Adresse den Rückgabewert des bereits eingetroffenen Interrupts überschreibt, ggf. Interrupts sperren. 3. evnt_mIO aufrufen. Die Parameter sind wie bei evnt_IO, in d1.w wird aber die Anzahl der Ereignisse übergeben, a0 ist der Tabellenanfang. 4. evnt_mIO() liefert keinen Rückgabewert. Die Tabelle muß durchsucht und die Interrupts deinstalliert werden (z.B. die unselect-Routinen aufrufen), dabei kann überprüft werden, welche Interrupts bereits eingetroffen sind. 5. evnt_emIO mit der aktuellen Applikation aufrufen. Dieser Aufruf stellt sicher, daß nach Deinstallieren aller Interrupts deren jetzt nutzlose Nachrichten an die Applikation gelöscht werden. Auf die Ereignisse evnt_(m)IO wartende Applikationen erscheinen im Programm-Manager als wartend auf "io" (Input/Output) oder "io ti" (Input/Output mit Timeout). Gruppe: Kernelfunktionen Querverweis: -