home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------------------------ *)
- (* MAKEINT.INC *)
- (* Prozeduren zur Interrupt-Handhabung. *)
- TYPE IntEntry_ = RECORD Offset, Segment : INTEGER; END;
- CONST IntKeyBoard = $16;
- (* Interrupt-Vektor holen: *)
- PROCEDURE IntGet (IntNr: Byte; VAR Segment, Offset : Integer);
- VAR Regs8088 : Regs8088_;
- BEGIN
- WITH Regs8088 DO BEGIN
- Ah:= $35; Al:= IntNr; MsDos (Regs8088); Segment:= Es; Offset:= Bx;
- END;
- END;
- (* Interrupt-Vektor setzen: *)
- PROCEDURE IntSet (IntNr: Byte; Segment, Offset : INTEGER);
- VAR Regs8088 : Regs8088_; SaveDs : INTEGER ABSOLUTE Cseg:$00A0;
- BEGIN
- SaveDs:= Dseg;
- WITH Regs8088 DO BEGIN
- Ah:= $25; Al:= IntNr; Ds:= Segment; DX:= Offset; MsDos (Regs8088);
- END;
- END;
- (* Interrupt-Routine resident machen: *)
- PROCEDURE MakeResident;
- VAR Regs8088 : Regs8088_;
- BEGIN
- WITH Regs8088 DO BEGIN
- Ah:= $31; Dx:= Seg (HeapPtr^) - Cseg + ((Ofs (HeapPtr^)+15) SHR 4);
- MsDos (Regs8088);
- END;
- END;
- (* ------------------------------------------------------------------------ *)
- (* Ende von MAKEINT.INC *)