Suche…


Bemerkungen

Warum brauchen wir Interrupts?

Stellen wir uns vor: Unser Computer ist an eine Tastatur angeschlossen. Wir möchten etwas eingeben. Wenn wir die Taste drücken, passiert nichts, weil der Computer mit anderen Dingen zu tun hat und nicht bemerkt, dass wir etwas von ihm wollen. Wir brauchen Interrupts!

Interrupts werden durch Software ( INT 80h) oder Hardware (Tastendruck) ausgelöst, sie verhalten sich wie ein Anruf (sie springen an einen bestimmten Ort, führen Code aus und springen zurück).

Arbeiten mit Interrupts auf der Z80:

Der Z80 hat keine Interrupt-Tabelle wie moderne Prozessoren. Die Interrupts führen alle denselben Code aus. Im Interrupt-Modus 1 führen sie den Code an einem bestimmten, nicht veränderbaren Ort aus. Im Interrupt-Modus 2 führen sie den Code aus dem Zeigerregister aus, auf den ich zeigt. Der Z80 hat einen Timer, der den Interrupt alle ~ 0.007s auslöst.

EI      ;enables Interrupts
DI      ;disables Interrupts
IM 1    ;sets the Normal Interrupt Mode


IM 2    ;sets the Advanced Interrupt Mode 
LD I,$99;sets the Interrupt Pointer to $99 (just possible in IM 2)


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow