home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 04 / comedit / makeint.inc < prev    next >
Encoding:
Text File  |  1988-01-12  |  1.4 KB  |  33 lines

  1. (* ----------------------------------------------------------------------- *)
  2. (*                               MAKEINT.INC                               *)
  3. (*                   Prozeduren zur Interrupt-Handhabung.                  *)
  4. TYPE  IntEntry_ = RECORD  Offset, Segment : INTEGER;  END;
  5. CONST IntKeyBoard = $16;
  6. (*                            Interrupt-Vektor holen:                      *)
  7. PROCEDURE IntGet (IntNr : Byte; VAR Segment, Offset : Integer);
  8. VAR Regs8088 : Regs8088_;
  9. BEGIN
  10.   WITH Regs8088 DO BEGIN
  11.     Ah:= $35;  Al:= IntNr;  MsDos (Regs8088);  Segment:= Es;  Offset:= Bx;
  12.   END;
  13. END;
  14. (*                            Interrupt-Vektor setzen:                     *)
  15. PROCEDURE IntSet (IntNr : Byte; Segment, Offset : INTEGER);
  16. VAR Regs8088 : Regs8088_;  SaveDs : INTEGER ABSOLUTE Cseg:$00A0;
  17. BEGIN
  18.   SaveDs:= Dseg;
  19.   WITH Regs8088 DO BEGIN
  20.     Ah:= $25;  Al:= IntNr;  Ds:= Segment;  DX:= Offset;  MsDos (Regs8088);
  21.   END;
  22. END;
  23. (*                       Interrupt-Routine resident machen:                *)
  24. PROCEDURE MakeResident;
  25. VAR Regs8088 : Regs8088_;
  26. BEGIN
  27.   WITH Regs8088 DO BEGIN
  28.     Ah:= $31;  Dx:= Seg (HeapPtr^) - Cseg + ((Ofs (HeapPtr^)+15) SHR 4);
  29.     MsDos (Regs8088);
  30.   END;
  31. END;
  32. (* ----------------------------------------------------------------------- *)
  33. (*                           Ende von MAKEINT.INC                          *)