Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File3.3 Einklinken in den Reset-Vektor TOS 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