home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Include / Exec / Interrupts.i < prev    next >
Text File  |  1990-08-28  |  1KB  |  66 lines

  1. {
  2.     Interrupts.i for PCQ Pascal
  3. }
  4.  
  5. {$I "Include:Exec/Nodes.i"}
  6. {$I "Include:Exec/Lists.i"}
  7.  
  8. type
  9.     Interrupt = record
  10.     is_Node    : Node;
  11.     is_Data : Address;    { Server data segment }
  12.     is_Code    : Address;    { Server code entry }
  13.     end;
  14.     InterruptPtr = ^Interrupt;
  15.  
  16.     IntVector = record        { For EXEC use ONLY! }
  17.     iv_Data    : Address;
  18.     iv_Code    : Address;
  19.     iv_Node    : NodePtr;
  20.     end;
  21.     IntVectorPtr = ^IntVector;
  22.  
  23.     SoftIntList = record    { For EXEC use ONLY! }
  24.     sh_List    : List;
  25.     sh_Pad    : Short;
  26.     end;
  27.     SoftIntListPtr = ^SoftIntList;
  28.  
  29. const
  30.     SIH_PRIMASK    = $F0;
  31.  
  32. { this is a fake INT definition, used only for AddIntServer and the like }
  33.  
  34.     INTB_NMI    = 15;
  35.     INTF_NMI    = $0080;
  36.  
  37. Procedure AddIntServer(intNum : Integer; Int : InterruptPtr);
  38.     external;
  39.  
  40. Procedure Cause(Int : InterruptPtr);
  41.     external;
  42.  
  43. Procedure Disable;
  44.     External;
  45.  
  46. Procedure Enable;
  47.     External;
  48.  
  49. Procedure Forbid;
  50.     external;
  51.  
  52. Procedure Permit;
  53.     external;
  54.  
  55. Procedure RemIntServer(intNum : Integer; Int : InterruptPtr);
  56.     external;
  57.  
  58. Function SetIntVector(intNum : Integer; Int : InterruptPtr) : InterruptPtr;
  59.     external;
  60.  
  61. Function SuperState() : Address;
  62.     external;
  63.  
  64. Procedure UserState(s : Address);
  65.     external;
  66.