home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / ExecBase.i < prev    next >
Text File  |  1991-09-08  |  3KB  |  127 lines

  1. {
  2.     ExecBase.i for PCQ Pascal
  3. }
  4. {$I "Include:Exec/Lists.i"}
  5. {$I "Include:Exec/Interrupts.i"}
  6. {$I "Include:Exec/Libraries.i"}
  7. {$I "Include:Exec/Tasks.i"}
  8.  
  9. type
  10.     ExecBase = record
  11.     LibNode    : Library;
  12.     SoftVer    : Short;        { kickstart release number     }
  13.     LowMemChkSum    : Short;
  14.     ChkBase    : Integer;        { system base pointer complement }
  15.     ColdCapture     : Address;    { coldstart soft vector     }
  16.     CoolCapture    : Address;
  17.     WarmCapture    : Address;
  18.     SysStkUpper    : Address;    { system stack base (upper bound) }
  19.     SysStkLower    : Address;    { top of system stack (lower bound) }
  20.     MaxLocMem    : Integer;
  21.     DebugEntry    : Address;
  22.     DebugData    : Address;
  23.     AlertData    : Address;
  24.     MaxExtMem    : Address;    { top of extended mem, or null if none }
  25.  
  26.     ChkSum        : Short;
  27.  
  28. {***** Interrupt Related **************************************}
  29.  
  30.     IntVects    : Array [0..15] of IntVector;
  31.  
  32. {***** System Variables ***************************************}
  33.  
  34.     ThisTask    : TaskPtr; { pointer to current task }
  35.     IdleCount    : Integer;    { idle counter }
  36.     DispCount    : Integer;    { dispatch counter }
  37.     Quantum        : Short;    { time slice quantum }
  38.     Elapsed        : Short;    { current quantum ticks }
  39.     SysFlags    : Short;    { misc system flags }
  40.     IDNestCnt    : Byte;        { interrupt disable nesting count }
  41.     TDNestCnt    : Byte;        { task disable nesting count }
  42.  
  43.     AttnFlags    : Short;    { special attention flags }
  44.     AttnResched    : Short;    { rescheduling attention }
  45.  
  46.     ResModules    : Address;    { resident module array pointer }
  47.     TaskTrapCode    : Address;
  48.     TaskExceptCode    : Address;
  49.     TaskExitCode    : Address;
  50.     TaskSigAlloc    : Integer;
  51.     TaskTrapAlloc    : Short;
  52.  
  53.  
  54. {***** System Lists *******************************************}
  55.  
  56.     MemList,
  57.     ResourceList,
  58.     DeviceList,
  59.     IntrList,
  60.     LibList,
  61.     PortList,
  62.     TaskReady,
  63.     TaskWait    : List;
  64.  
  65.     SoftInts    : Array [0..4] of SoftIntList;
  66.  
  67. {***** Other Globals ******************************************}
  68.  
  69.     LastAlert    : Array [0..3] of Integer;
  70.  
  71.  
  72.  
  73.     { these next two variables are provided to allow
  74.     ** system developers to have a rough idea of the
  75.     ** period of two externally controlled signals --
  76.     ** the time between vertical blank interrupts and the
  77.     ** external line rate (which is counted by CIA A's
  78.     ** "time of day" clock).  In general these values
  79.     ** will be 50 or 60, and may or may not track each
  80.     ** other.  These values replace the obsolete AFB_PAL
  81.     ** and AFB_50HZ flags.
  82.     }
  83.  
  84.     VBlankFrequency        : Byte;
  85.     PowerSupplyFrequency    : Byte;
  86.  
  87.     SemaphoreList        : List;
  88.  
  89.     { these next two are to be able to kickstart into user ram.
  90.     ** KickMemPtr holds a singly linked list of MemLists which
  91.     ** will be removed from the memory list via AllocAbs.  If
  92.     ** all the AllocAbs's succeeded, then the KickTagPtr will
  93.     ** be added to the rom tag list.
  94.     }
  95.  
  96.     KickMemPtr    : Address;    { ptr to queue of mem lists }
  97.     KickTagPtr    : Address;    { ptr to rom tag queue }
  98.     KickCheckSum    : Address;    { checksum for mem and tags }
  99.  
  100.     ExecBaseReserved : Array [0..9] of Byte;
  101.     ExecBaseNewReserved : Array [0..19] of Byte;
  102.     end;
  103.     ExecBasePtr = ^ExecBase;
  104.  
  105. {****** AttnFlags }
  106.  
  107. const
  108.  
  109. {  Processors and Co-processors: }
  110.     AFB_68010    = 0;    { also set for 68020 }
  111.     AFB_68020    = 1;
  112.     AFB_68881    = 4;
  113.  
  114.     AFF_68010    = 1;
  115.     AFF_68020    = 2;
  116.     AFF_68881    = 16;
  117.  
  118. { These two bits used to be AFB_PAL and AFB_50HZ.  After some soul
  119. ** searching we realized that they were misnomers, and the information
  120. ** is now kept in VBlankFrequency and PowerSupplyFrequency above.
  121. ** To find out what sort of video conversion is done, look in the
  122. ** graphics subsytem.
  123. }
  124.  
  125.     AFB_RESERVED8    = 8;
  126.     AFB_RESERVED9    = 9;
  127.