home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 01 / sendkeys / makeint.inc < prev    next >
Encoding:
Text File  |  1987-10-26  |  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                          *)