home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1988 / 02 / hyperkey / makeint.inc < prev    next >
Encoding:
Text File  |  1987-11-10  |  1.6 KB  |  41 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 := Memw[Cseg-1:0003];  MsDos (Regs8088);
  29.   END;
  30. END;
  31. (* Speicherbereich freigeben. Aus PASCAL 4/87, S. 74. Fuer TSR modifiziert! *)
  32. FUNCTION MFree (Block_Segment: INTEGER): INTEGER;
  33. VAR Regs8088 : Regs8088_;
  34. BEGIN
  35.   Regs8088.ES := Block_Segment;  Regs8088.AX := $4900;  MsDos(Regs8088);
  36.   IF Odd(Regs8088.Flags) THEN MFree := Regs8088.Al
  37.   ELSE MFree := 0;
  38. END;
  39. (* ------------------------------------------------------------------------ *)
  40. (*                            Ende von MAKEINT.INC                          *)
  41.