home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 04 / scrtimer / makeint.inc < prev    next >
Encoding:
Text File  |  1988-01-25  |  1.3 KB  |  38 lines

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