 
 BIOS
BIOS
 Die Ein-/Ausgabekanäle des BIOS
Die Ein-/Ausgabekanäle des BIOS
 Die Systemvariablen
Die Systemvariablen
Das Kochrezept, um eigene Funktionen in den Reset-Vektor einklinken zu können, lautet wie folgt:
 Die Systemvariable resvalid auf den Wert 0x31415926 setzen,
denn anderenfalls wird resvector vom BIOS gar nicht beachtet.
 
 Adresse der eigenen Funktion in den resvector-Vektor schreiben.
 
 Per jmp(a6) aus der Funktion zurückspringen.
 
Wichtig: Ein Rücksprung per rts aus der installierten Funktion ist nicht möglich, da zu diesem Zeitpunkt noch kein Stack initialisiert ist. In der Praxis könnte man z.B. so vorgehen:
RESMAGIC    equ       $31415926
_resvalid   equ       $426
_resvector  equ       $42a
            .text
install:    move.l    _resvalid,oldvalid
            move.l    #RESMAGIC,resvalid
            move.l    _resvector,oldreset
            move.l    #newreset,_resvector
            rts
            dc.b      "XBRARESV"
oldreset:   dc.l      0
newreset:   move.l    oldreset,_resvector
            move.l    oldvalid,_resvalid
            jmp       (a6)
            .bss
oldvalid:   .ds.l     1
Achtung: Damit sich mehrere Programme installieren können, muß nach Abarbeitung der Funktion eine saubere De-Installation erfolgen.
Querverweis: Systemvariablen Systemvektoren XBRA-Verfahren
 
 BIOS
BIOS
 Die Ein-/Ausgabekanäle des BIOS
Die Ein-/Ausgabekanäle des BIOS
 Die Systemvariablen
Die Systemvariablen