Hmm, Im moment bewirkt das deinstallieren des Interrupthandlers einen Fehler, Ich bin mir aber nicht sicher warum.
(die alte Pasca/assembler Mischung funktioniert aber problemlos) - und ja, hier ist es noch 1C, ich will erstmal dieses Problem lösen bevor ich mich auf 08 stürze (und das nächste Problem habe)
Code
{############################## Int ##################}
jmp @InstallInt
{Interrupthandler}
@Messint:
cmp Global_IntStopFlag,$FFFF
je @AlreadyStopped
mov Global_StopTotalRuns_RegLo, CX
mov Global_StopTotalRuns_RegHi, DX
@AlreadyStopped:
mov Global_IntStopFlag, $FFFF
{ cli
iret
{ call Global_OldInt}
db $ea {jmp far}
@oldint:
dw 0,0
{uninstalling the Interrupthandler}
@UninstallInt:
push ds
push es
push cs
pop ds
mov bx, Offset @oldint
lds dx, [bx]
mov ax, $251c
int $21
pop es
pop ds
ret
{Installing the Interrupthandler}
@InstallInt:
push es
mov ax,$351C
int $21
mov ax,es
mov cx,bx
pop es
push ds
push cs
pop ds
mov bx, Offset @oldint
mov [bx],cx
mov [bx+2], ax
mov dx, Offset @Messint
mov ax,$251c
int $21
pop ds
{############################## Int ##################}
Alles anzeigen