Zoeken…


Opmerkingen

Waarom hebben we onderbrekingen nodig

Laten we ons voorstellen: onze computer is verbonden met een toetsenbord. We willen iets invoeren. Als we op de toets drukken, gebeurt er niets omdat de computer met verschillende dingen te maken heeft en niet merkt dat we iets van hem willen. We hebben onderbrekingen nodig!

Onderbrekingen worden geactiveerd door software ( INT 80h) of hardware (toetsdruk), ze gedragen zich als een oproep (ze springen naar een specifieke locatie, voeren code uit en springen weer terug).

Werken met interrupts op de Z80:

De Z80 heeft geen Interrupt-tabel zoals moderne processors. De onderbrekingen voeren allemaal dezelfde code uit. In Interrupt Mode 1 voeren ze de code uit op een specifieke onveranderlijke locatie. In Interrupt Mode 2 voeren ze de code uit van het Pointer register waar I naar verwijst. De Z80 heeft een timer, die de Interrupt alle ~ 0.007s activeert.

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow