Dklab, cikkek, alapjai megszakításvektorokat

A futás egy ilyen program, akkor hallani egy véletlenszerű hangot minden egyes megnyomásakor vagy engedje el a gombokat.

4. Telepítés „nem fizetett” az IRQ rakodók

Ha létrehozott egy új feldolgozási eljárás egyike a megszakítás által generált külső eszköz (pl megszakítás, ami megfelel az IRQ kérés, mint az időzítés, billentyűzet, stb), és ez az eljárás nem a „patch”, meg kell emlékezni egy dolog. Végén ezt az eljárást, biztos, hogy végezze el a 20h a beíró parancsot a 20h port, amely lehetővé teszi, hogy a következő megszakítás ehhez a csatornához IRQ.
Íme egy példa egy ilyen helyzet Pascal. Itt mi meg a „nem fizetett” a billentyűzeten megszakítás (9-es számú), a billentyűzet funkciói természetesen átmenetileg blokkolva.

Próbálja meg eltávolítani a kimeneti érték a port. Miután az első megnyomása billentyűzet nem válaszol. És továbbra is akadályozzák elhagyása után a program.
A C-on 20 órán keresztül a kimeneti port egy függvény outportb (0x20,0x20).

5. Eszközök obespereniya garantált helyreállítása a régi megszakításvektorokat

Annak ellenére, hogy szinte sehol sem közöltek, Pascal, mint a C, lehetséges, hogy egy olyan eljárás kialakítása, amely az úgynevezett végén a program (függetlenül attól, hogy a végén, vagy a normális vész). Ez nagyon hasznos, amikor megszakításvektorokat, hiszen vissza kell állítani minden esetben a végén a program. Ilyen eljárásra van szükség, hogy a csapat visszaállítani a régi vektor majd regisztrálja a befejezését rutin. Íme néhány példa: