Das Schneider CPC Systembuch

Die Abteilungen des Betriebssystems

Der Kernel - Software-Interrupts

Express-asynchrone Events

'express asynchronous Der Kernel - Software-Interrupts: Eventsevents' (Port B - Input: &F5xx: Bits 1, 2 und 3:
Port C - Output: &F6xx: Bit 6 und 7:
Bit 6 und
Datenbreite: Bits
Port B - Input: &F5xx: Bit 0:
Port B - Input: &F5xx: Bit 4:
Port B - Input: &F5xx: Bit 5:
Port B - Input: &F5xx: Bit 6:
Port B - Input: &F5xx: Bit 7:
Port C - Output: &F6xx: Bit 4:
Port C - Output: &F6xx: Bit 5:
Bit
7 gesetzt) sind Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupts der Dringlichkeitsstufe Eins: Nur bei solchen Ereignissen wird die zugehörige Behandlungs-Routine SOFORT aufgerufen, sobald der MAIN FIRMWARE JUMPBLOCK: KERNEL
Die Firmware des Schneider CPC: KERNEL
Kernel
ihr Eintreffen erkannt hat, und nicht erst in die 'asynchronous pending queue' eingereiht. Nur diese Der Kernel - Software-Interrupts: EventsEvents werden noch bei ausgeschaltetem Hardware-Interrupt bearbeitet. Das hat mehrere Konsequenzen:

So sollte die Behandlungs-Routine so kurz wie überhaupt nur möglich sein. ROM-Konfiguration: RestartsRestarts etc. dürfen nicht benutzt werden, weil die allesamt Alle noch folgenden Anschlüsse fallen unter die Rubrik STEUER- oder auch CONTROLBUS:: INT - InterruptInterrupts wieder zulassen würden.

Deshalb darf man für express asynchrone Der Kernel - Software-Interrupts: EventsEvents auch keine 'far address' angeben: Die würde ja mittels ROM-Konfiguration: RestartsRestart 3 aufgerufen! Hier darf man nur eine 'near address', ohne Angabe der Die Speicherkonfiguration im Schneider CPC: ROM-KonfigurationROM-Konfiguration benutzen. Damit muss die Behandlungs-Routine gezwungenermassen im zentralen RAM (oder Betriebssytem-ROM) liegen.

Allgemein gilt für asynchrone Der Kernel - Software-Interrupts: EventsEvents, dass sie die meisten Routinen des Betriebssystems nicht aufrufen dürfen, weil diese nicht re-entrant (vielfach aufrufbar) sind.

Für die Behandlungs-Routinen aller Der Kernel - Software-Interrupts: EventsEvents gelten die folgen Ein- und Aussprungs-Bedingungen (Achtung: Die Angaben hierzu im Die Firmware des Schneider CPCFirmware Manual stimmen nicht!):

    Ein/Ausgabe-Bedingungen für jede Event-Behandlungs-Routinen
    ------------------------------------------------------------

    (1) 'near address': Eingaben:    DE zeigt auf Datentypen: Bytes
Datenbreite: Bytes
Byte
5 des BCEF: KL INIT EVENT: EventblockEventblocks. Evtl. benötigte Variablen: lokale Variablenlokale Variablen für die Routine liegen ab Datentypen: Bytes
Datenbreite: Bytes
Byte
7, also ab DE+2. Ausgaben: IX und IY dürfen nicht verändert werden.   (2) 'far address': Eingaben: HL zeigt auf Datentypen: Bytes
Datenbreite: Bytes
Byte
4 des BCEF: KL INIT EVENT: EventblockEventblocks. Evtl. benötigte Variablen: lokale Variablenlokale Variablen liegen also ab HL+3. Bei Speicheraufteilung durch ein Vordergrund-Programm: Hintergrund-ROMsHintergrund-ROMs zeigt IY auf die Unterkante des über Die Aufteilung des RAM durch den Basic-Interpreter: Chaos über HIMEMHIMEM für das Erläuterung zu den Anschlüssen 40 bis 45: 42 - ROMEN (0)ROM reservierten Speicherbereiches. Ausgaben: IX und IY dürfen nicht verändert werden.

Valid HTML   Valid CSS