( bzt | 2024. 03. 12., k – 16:08 )

átad egy második paramétert is, egy függvény címét, ami az interrupt handler közvetlen belépési pontjának címe, és a bootloaderben van implementálva

Hát ez az, ha ez a betöltőben lenne Assembly-ben implementálva, akkor egyáltalán nem lenne alkalmas a nyelv tesztelésére.

Mégegyszer, ha nem kifejezetten azt akarnánk tesztelni, hogy csakis a nyelvben rendelkezésre álló eszközökkel, magas szintű függvényekkel, Assembly nélkül megoldható-e a megszakításkezelés (ami egy tipikus példája a nyakatekert rendszerprogramozásnak, tömbátadással, függvénycím bitshifteléssel stb.), akkor nyilván én is Assembly wrappert használnék. Sőt, mi több, tuti, hogy nem megírnám, hanem Assembly makrókkal generáltatnám ki, az ISR-eket éppúgy, mint az IDT tartalmát. Interfész helyett meg egyetlen inline Assembly-vel töltetném be az IDT címét. De hát pont az a cél itt, hogy csakis a nyelv natív eszközkészletét lehessen használni, mivel arra vagyunk kíváncsiak, hogy azzal megoldható-e.

Figyeld meg, az interfész direkt csak CPU utasításokat burkol körbe, a lehető legalacsonyabb szintű. Az első draft-ban az "iretq" tényleg csak egy "iretq" utasítás volt, és volt benne "inb" meg "outb" is. Aztán úgy döntöttem, hogy még a megszakításvezérlőt se kelljen nyugtázni, mert az már nem nyelvi ismereteket, hanem meghajtóprogramozási ismereteket igényel, azért kikerült az "inb" / "outb" az interfészből, a nyugtázás meg bekerült az "iretq"-ba.