Der Kernel - Software-InterruptsNormal-asynchrone EventsAlle anderen, die 'normalen' asynchronen Der Kernel - Software-Interrupts: EventsEvents reiht der MAIN FIRMWARE JUMPBLOCK: KERNEL Weil nun Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupts wieder zugelassen, und auch die normalen Register-Verhältnisse in der Die ICs im Überblick: Die CPU Z80 Speziell Ereignisse, die während der Austastluecke bei der Bilddarstellung ausgeführt werden sollen, wird man wohl als asynchrone Der Kernel - Software-Interrupts: EventsEvents programmieren müssen. Dabei wird man oft sogar nur mit express asynchroner Behandlung zurecht-kommen. Wird ein normales, asynchrones Der Kernel - Software-Interrupts: EventsEvent aber nicht vom Interrupt-Pfad aus gekickt, sondern durch irgendeine andere Routine, während Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupts zugelassen sind (via &KERNEL: BCF2: KL EVENTBCF2 KL EVENT), so wird die zugehörige Behandlungs-Routine sofort aufgerufen, ohne den BCEF: KL INIT EVENT: EventblockEventblock erst in die 'asynchronous pending queue' einzureihen. Für die praktische Anwendung ist aber die Frage, ob ein Der Kernel - Software-Interrupts: EventsEvent nun vorher in diese Trees: ListenListe eingetragen wird oder nicht ziemlich unwichtig, da man davon normalerweise nichts mitbekommt. Das folgende Beispiel zeigt, wie man einen regelmäßigen Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupt programmiert, der mit jedem 'fast ticker' express-asynchron aufgerufen werden soll: ; Einhängen eines Der Kernel - Software-Interrupts: Express-asynchrone Eventsexpress-asynchronen Events ; mit Near Address auf dem Fast Ticker: ; ------------------------------------------- .... LD HL,FBLOCK ; Zeiger auf 'fast ticker Die Speicherkonfiguration im Schneider CPC: Blockblock' Maschinencode über HIMEM: CALLCALL #BCE3 ; KERNEL: BCE3: KL ADD FAST TICKERKL ADD FAST TICKER aufrufen .... ; ; Der 'fast ticker Die Speicherkonfiguration im Schneider CPC: Blockblock': ; FBLOCK: DEFW #0000 ; Platz für Kettungspointer in 'fast ticker Datenspeicherung und Datenstrukturen: Chainschain' DEFW #0000 ; Platz für Kettungspointer in 'pending queue' DEFB #00 ; Count auf 0 gesetzt DEFB %11000001 ; asynchron, express, near address DEFW ROUTIN ; Adresse der Behandlungs-Routine ; ROUTIN: .... ; Behandlungs-Routine Der 'fast ticker Die Speicherkonfiguration im Schneider CPC: Blockblock' besteht aus dem Platz für den Kettungspointer in der 'fast ticker Datenspeicherung und Datenstrukturen: Chainschain' und einem BCEF: KL INIT EVENT: EventblockEventblock. Der fängt mit zwei reservierten Datentypen: Bytes Genauso verhält es sich mit dem Datentypen: Bytes |