Hi!
Wo im Speicher liegt die Interrupt-Vektor-Tabelle? Wie kann ich eine Interruptbehandlungsroutine reinschreiben?
Geht dies auch mit einer Hochsprache?
(Darunter fällt auch noch C :-))

Hi!
Wo im Speicher liegt die Interrupt-Vektor-Tabelle? Wie kann ich eine Interruptbehandlungsroutine reinschreiben?
Geht dies auch mit einer Hochsprache?
(Darunter fällt auch noch C :-))
Hi,
soweit ich weiß (meine DOSe-Zeiten und TP6 sind schon eine Weile her), liegt die Interrupt-Vektor-Tabelle direkt bei $0:$0 und ist ziemlich genau 256 * 4 Byte = 1024 Byte groß.
Und die Tabelle konnte man auch modifizieren.
Unter TP6 ging es so:
Var IVT: Array [0..255] of pointer absolute $0:$0;
Schon hast Du Deine Vektortabelle. Willst Du den IntVec von der Mouse (meist $33) ändern, schreibst Du jetzt einfach:
IVT[$33] := @MyMouseHandler;
Vorher solltest Du MyMouseHander noch schreiben:
procedure MyMouseHandler; interrupt;
begin
(* Was auch immer *)
end;
Fertig (und keine Garantie auf Funktionalität)!