home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / MODULAV2GERMAN.DMS / in.adf / Def.zoo / Expansion.def < prev    next >
Encoding:
Modula Definition  |  1988-11-06  |  3.8 KB  |  168 lines

  1. DEFINITION MODULE Expansion {"expansion.library",33};
  2.  
  3. FROM SYSTEM IMPORT
  4.  ADDRESS,BYTE,LONGSET;
  5. FROM Exec IMPORT
  6.  Node,UByte;
  7.  
  8. TYPE
  9.  ExpansionRom=RECORD
  10.   type:UByte;
  11.   product:UByte;
  12.   flags:UByte;
  13.   reserved03:UByte;
  14.   manufacturer:CARDINAL;
  15.   serialNumber:LONGCARD;
  16.   initDiagVec:CARDINAL;
  17.   reserved0c:UByte;
  18.   reserved0d:UByte;
  19.   reserved0e:UByte;
  20.   reserved0f:UByte
  21.  END;
  22.  ExpansionControl=RECORD
  23.   interrupt:UByte;
  24.   reserved11:UByte;
  25.   baseAddress:UByte;
  26.   shutup:UByte;
  27.   reserved14:UByte;
  28.   reserved15:UByte;
  29.   reserved16:UByte;
  30.   reserved17:UByte;
  31.   reserved18:UByte;
  32.   reserved19:UByte;
  33.   reserved1a:UByte;
  34.   reserved1b:UByte;
  35.   reserved1c:UByte;
  36.   reserved1d:UByte;
  37.   reserved1e:UByte;
  38.   reserved1f:UByte;
  39.  END;
  40.  
  41. CONST
  42.  slotSize=10000H;
  43.  slotMask=0FFFFH;
  44.  slotShift=16;
  45.  expansionBase=0E80000H;
  46.  expansionSize=080000H;
  47.  expansionSlots=8;
  48.  memoryBase=200000H;
  49.  memorySize=800000H;
  50.  memorySlots=128;
  51.  typrMask=0C0H;
  52.  typeBit=6;
  53.  typeSize=2;
  54.  newBoard=0C0H;
  55.  memMask=07H;
  56.  memBit=0;
  57.  memSize=3;
  58.  chainedConfig=3;
  59.  diagValid=4;
  60.  memList=5;
  61.  memSpace=7;
  62.  noShutup=6;
  63.  
  64.  intena=1;
  65.  reset=3;
  66.  int2pend=4;
  67.  int6pend=5;
  68.  int7pend=6;
  69.  interrupting=7;
  70.  
  71. TYPE
  72.  DiagArea=RECORD
  73.   config:UByte;
  74.   flags:UByte;
  75.   size:CARDINAL;
  76.   diagPoint:CARDINAL;
  77.   bootPoint:CARDINAL;
  78.   name:CARDINAL;
  79.   reserved01:CARDINAL;
  80.   reserved02:CARDINAL
  81.  END;
  82.  
  83. CONST
  84.  busWidth=0C0H;
  85.  nibbleWide=0;
  86.  byteWide=040H;
  87.  wordWide=080H;
  88.  bootTime=030H;
  89.  never=0;
  90.  configTime=010H;
  91.  bindTime=020H;
  92.  
  93. TYPE
  94.  ConfigDevPtr=POINTER TO ConfigDev;
  95.  ConfigDev=RECORD
  96.   node:Node;
  97.   flags:UByte;
  98.   pad:UByte;
  99.   rom:ExpansionRom;
  100.   boardAddr:ADDRESS;
  101.   boardSize:ADDRESS;
  102.   slotAddr:CARDINAL;
  103.   slotSize:CARDINAL;
  104.   driver:ADDRESS;
  105.   nextCD:ConfigDevPtr;
  106.   unused:ARRAY [0..3] OF LONGINT;
  107.  END;
  108.  
  109. CONST
  110.  shutup=0;
  111.  configMe=1;
  112.  
  113. TYPE
  114.  CurrentBinding=RECORD
  115.   configDev:ConfigDevPtr;
  116.   fileName:ADDRESS;
  117.   productString:ADDRESS;
  118.   toolTypes:ADDRESS;
  119.  END;
  120.  CurrentBindingPtr=POINTER TO CurrentBinding;
  121.  
  122. PROCEDURE AddConfigDev(configDev{8}:ConfigDevPtr); CODE -30;
  123. PROCEDURE AddDosNode(
  124.            bootPri{0}:LONGINT;
  125.            flags{1}:LONGSET;
  126.            deviceNode{8}:ADDRESS):LONGINT; CODE -150;
  127. PROCEDURE AllocBoardMem(
  128.            slotSpec{0}:LONGINT):LONGINT; CODE -42;
  129. PROCEDURE AllocConfigDev():ConfigDevPtr; CODE -48;
  130. PROCEDURE AllocExpansionMem(
  131.            numSlots{0}:LONGINT;
  132.            slotAlign{1}:LONGINT;
  133.            slotOffset{2}:LONGINT):LONGINT; CODE -54;
  134. PROCEDURE ConfigBoard(
  135.            board{8}:ADDRESS;
  136.            configDev{9}:ConfigDevPtr):LONGINT; CODE -60;
  137. PROCEDURE ConfigChain(baseAddr{8}:ADDRESS); CODE -66;
  138. PROCEDURE expansionUnused(); CODE -36;
  139. PROCEDURE FindConfigDev(oldConfigDev{8}:ConfigDevPtr;
  140.                         manufacturer{0}:LONGINT;
  141.                         product{1}:LONGINT); CODE -72;
  142. PROCEDURE FreeBoardMem(startSlot{0}:LONGINT;
  143.                        slotSpec{1}:LONGINT); CODE -78;
  144. PROCEDURE FreeConfigDev(configDev{8}:ConfigDevPtr); CODE -84;
  145. PROCEDURE FreeExpansionMem(startSlot{0}:LONGINT;
  146.                            numSlots{1}:LONGINT); CODE -90;
  147. PROCEDURE GetCurrentBinding(
  148.            currentBinding{8}:CurrentBindingPtr;
  149.            size{0}:LONGINT):LONGINT; CODE -138;
  150. PROCEDURE MakeDosNode(
  151.            parameterPkt{0}:ADDRESS):ADDRESS; CODE -144;
  152. PROCEDURE ObtainConfigBinding(); CODE -120;
  153. PROCEDURE ReadExpansionByte(board{8}:ADDRESS;
  154.                             offset{0}:LONGINT):BYTE; CODE -96;
  155. PROCEDURE ReadExpansionRom(
  156.            board{8}:ADDRESS;
  157.            configDev{9}:ConfigDevPtr):LONGINT; CODE -102;
  158. PROCEDURE ReleaseConfigBinding(); CODE -126;
  159. PROCEDURE RemConfigDev(configDev{8}:ConfigDevPtr); CODE -108;
  160. PROCEDURE SetCurrentBinding(
  161.            currentBinding{8}:CurrentBindingPtr;
  162.            size{0}:LONGINT); CODE -132;
  163. PROCEDURE WriteExpansionByte(board{8}:ADDRESS;
  164.                              offset{0}:LONGINT;
  165.                              byte{1}:BYTE); CODE -114;
  166.  
  167. END Expansion.
  168.