home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Expansion.def < prev    next >
Text File  |  1994-05-25  |  9KB  |  261 lines

  1. |##########|
  2. |#MAGIC   #|CLABLNCE
  3. |#PROJECT #|"IMPORTALL"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx-x-x--x---x-x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|xx---xxxxx------
  9. |##########|
  10. (* $A- *)
  11. DEFINITION MODULE Expansion;
  12.  
  13. FROM System IMPORT LONGSET, Register, SysStringPtr;
  14. FROM Dos    IMPORT DeviceNodePtr, DosEnvec, DosEnvecPtr;
  15. FROM Exec   IMPORT Interrupt, Library, LibraryPtr, List, Node,
  16.                    SignalSemaphore;
  17.  
  18.  
  19. TYPE
  20.   ERomTypeFlags       = (er_mem0,er_mem1,er_mem2,chainedConfig,
  21.                          diagValid,memList,er_type0,er_type1);
  22.   ERomTypeFlagSet     = SET OF ERomTypeFlags;
  23.   ExpansionRomFlags   = (erf0,erf1,erf2,erf3,zorro3,extended,noShutup,
  24.                          memSpace);
  25.   ExpansionRomFlagSet = SET OF ExpansionRomFlags;
  26.   ExpansionRom        = RECORD
  27.                           type          : ERomTypeFlagSet;
  28.                           product       : SHORTCARD;
  29.                           flags         : ExpansionRomFlagSet;
  30.                           reserved03    : SHORTCARD;
  31.                           manufacturer  : CARDINAL;
  32.                           serialNumber  : LONGCARD;
  33.                           initDiagVec   : CARDINAL;
  34.                           reserved0c    : SHORTCARD;
  35.                           reserved0d    : SHORTCARD;
  36.                           reserved0e    : SHORTCARD;
  37.                           reserved0f    : SHORTCARD
  38.                         END;
  39.  
  40.   InterruptFlags      = (if0,intena,if2,reset,int2pend,int6pend,int7pend,
  41.                          interrupting);
  42.   InterruptFlagSet    = SET OF InterruptFlags;
  43.   ExpansionControl    = RECORD
  44.                           interrupt   : InterruptFlagSet;
  45.                           z3HighBase  : SHORTCARD;
  46.                           baseAddress : SHORTCARD;
  47.                           shutup      : SHORTCARD;
  48.                           reserved14  : SHORTCARD;
  49.                           reserved15  : SHORTCARD;
  50.                           reserved16  : SHORTCARD;
  51.                           reserved17  : SHORTCARD;
  52.                           reserved18  : SHORTCARD;
  53.                           reserved19  : SHORTCARD;
  54.                           reserved1a  : SHORTCARD;
  55.                           reserved1b  : SHORTCARD;
  56.                           reserved1c  : SHORTCARD;
  57.                           reserved1d  : SHORTCARD;
  58.                           reserved1e  : SHORTCARD;
  59.                           reserved1f  : SHORTCARD;
  60.                         END;
  61.  
  62.  
  63. CONST
  64.   slotSize            = $10000;
  65.   slotMask            = $FFFF;
  66.   slotShift           = 16;
  67.  
  68.   expansionBase       = $00E80000;
  69.   z3ExpansionBase     = $FF000000;
  70.   expansionSize       = $00080000;
  71.   expansionSlots      = 8;
  72.   memoryBase          = $00200000;
  73.   memorySize          = $00800000;
  74.   memorySlots         = 128;
  75.   z3ConfigArea        = $40000000;
  76.   z3ConfigAreaEnd     = $7FFFFFFF;
  77.   z3SizeGranularity   = $00080000;
  78.  
  79. TYPE
  80.   ConfigFlags         = (cf0,cf1,cf2,cf3,configTime,bindTime,byteWide,
  81.                          wordWide);
  82.   ConfigFlagSet       = SET OF ConfigFlags;
  83.   DiagArea            = RECORD
  84.                           config        : ConfigFlagSet;
  85.                           flags         : SHORTCARD;
  86.                           size          : CARDINAL;
  87.                           diagPoint     : CARDINAL;
  88.                           bootPoint     : CARDINAL;
  89.                           name          : CARDINAL;
  90.                           reserved01    : CARDINAL;
  91.                           reserved02    : CARDINAL
  92.                         END;
  93.  
  94. CONST
  95.   busWidth            = ConfigFlagSet:{byteWide,wordWide};
  96.   nibbleWide          = ConfigFlagSet:{};
  97.  
  98.   bootTime            = ConfigFlagSet:{configTime,bindTime};
  99.   never               = ConfigFlagSet:{};
  100.  
  101. TYPE
  102.   ConfigDevFlags      = (shutup,configMe,badMemory,cdf3,cdf4,cdf5,cdf6,
  103.                          cdf7);
  104.   ConfigDevFlagSet    = SET OF ConfigDevFlags;
  105.   ConfigDevPtr        = POINTER TO ConfigDev;
  106.   ConfigDev           = RECORD OF Node
  107.                           flags       : ConfigDevFlagSet;
  108.                           pad         : SHORTCARD;
  109.                           rom         : ExpansionRom;
  110.                           boardAddr   : ANYPTR;
  111.                           boardSize   : LONGCARD;
  112.                           slotAddr    : CARDINAL;
  113.                           slotSize    : CARDINAL;
  114.                           driver      : ANYPTR;
  115.                           nextCD      : ConfigDevPtr;
  116.                           unused      : ARRAY [0..3] OF LONGINT;
  117.                         END;
  118.  
  119. TYPE
  120.   CurrentBindingPtr   = POINTER TO CurrentBinding;
  121.   CurrentBinding      = RECORD
  122.                           configDev     : ConfigDevPtr;
  123.                           fileName      : SysStringPtr;
  124.                           productString : SysStringPtr;
  125.                           toolTypes     : POINTER TO SysStringPtr;
  126.                         END;
  127.  
  128.   BootNodeFlags       = (startProc,bnf1,bnf2,bnf3,bnf4,bnf5,bnf6,bnf7,
  129.                          bnf8);
  130.   BootNodeFlagSet     = SET OF BootNodeFlags;
  131.  
  132.   BootNodePtr         = POINTER TO BootNode;
  133.   BootNode            = RECORD OF Node
  134.                           flags       : BootNodeFlagSet;
  135.                           deviceNode  : ANYPTR
  136.                         END;
  137.  
  138.   ExpansionBaseFlags  = (clogged,shortmem,badmem,dosflag,kickback33,
  139.                          kickback36,silentStart);
  140.   ExpansionBaseFlagSet= SET OF ExpansionBaseFlags;
  141.  
  142.   ExpansionBasePtr    = POINTER TO ExpansionBaseType;
  143.   ExpansionBaseType   = RECORD OF Library
  144.                           flags       : ExpansionBaseFlagSet;
  145.                           private01   : SHORTCARD;
  146.                           private02   : LONGCARD;
  147.                           private03   : LONGCARD;
  148.                           private04   : CurrentBinding;
  149.                           private05   : List;
  150.                           mountList   : List;
  151.                         END;
  152.  
  153. CONST
  154.   errOk           = 0;
  155.   errLastboard    = 40;
  156.   errNoexpansion  = 41;
  157.   errNomemory     = 42;
  158.   errNoboard      = 43;
  159.   errBadmem       = 44;
  160.  
  161. TYPE
  162.   ParameterPktPtr = POINTER TO ParameterPkt;
  163.   ParameterPkt    = RECORD
  164.                       dosName   : SysStringPtr;
  165.                       execName  : SysStringPtr;
  166.                       unit      : LONGCARD;
  167.                       flags     : LONGSET;
  168.                       env       : DosEnvec;
  169.                     END;
  170.  
  171. VAR ExpansionBase : ExpansionBasePtr;
  172.  
  173.  
  174. LIBRARY ExpansionBase BY -30
  175.   PROCEDURE AddConfigDev(configDev IN A0 : ConfigDevPtr);
  176.  
  177. LIBRARY ExpansionBase BY -36
  178.   PROCEDURE AddBootNode(bootPri    IN D0 : SHORTINT;
  179.                         flags      IN D1 : LONGSET;
  180.                         deviceNode IN A0 : DeviceNodePtr;
  181.                         configDev  IN A1 : ConfigDevPtr):BOOLEAN;
  182.  
  183. LIBRARY ExpansionBase BY -42
  184.   PROCEDURE AllocBoardMem(slotSpec IN D0 : LONGINT);
  185.  
  186. LIBRARY ExpansionBase BY -78
  187.   PROCEDURE FreeBoardMem(startSlot IN D0 : LONGCARD;
  188.                          slotSpec  IN D1 : LONGCARD);
  189.  
  190.  
  191. LIBRARY ExpansionBase BY -54
  192.   PROCEDURE AllocExpansionMem(numSlots   IN D0 : LONGINT;
  193.                               slotAlign  IN D1 : LONGINT;
  194.                               slotOffset IN D2 : LONGINT):LONGINT;
  195.  
  196. LIBRARY ExpansionBase BY -90
  197.   PROCEDURE FreeExpansionMem(startSlot IN D0 : LONGINT;
  198.                              numSlots  IN D1 : LONGINT);
  199.  
  200. LIBRARY ExpansionBase BY -60
  201.   PROCEDURE ConfigBoard(board     IN A0 : ANYPTR;
  202.                         configDev IN A1 : ConfigDevPtr);
  203.  
  204. LIBRARY ExpansionBase BY -66
  205.   PROCEDURE ConfigChain(baseAddr IN A0 : ANYPTR);
  206.  
  207.  
  208. LIBRARY ExpansionBase BY -48
  209.   PROCEDURE AllocConfigDev():ConfigDevPtr;
  210.  
  211. LIBRARY ExpansionBase BY -72
  212.   PROCEDURE FindConfigDev(oldConfigDev IN A0 : ConfigDevPtr;
  213.                           manufacturer IN D0 : LONGINT;
  214.                           product      IN D1 : LONGINT):ConfigDevPtr;
  215.  
  216. LIBRARY ExpansionBase BY -84
  217.   PROCEDURE FreeConfigDev(configDev IN A0 : ConfigDevPtr);
  218.  
  219. LIBRARY ExpansionBase BY -108
  220.   PROCEDURE RemConfigDev(configDev IN A0 : ConfigDevPtr);
  221.  
  222. LIBRARY ExpansionBase BY -96
  223.   PROCEDURE ReadExpansionByte(board  IN A0 : ANYPTR;
  224.                               offset IN D0 : LONGINT):SHORTINT;
  225.  
  226. LIBRARY ExpansionBase BY -114
  227.   PROCEDURE WriteExpansionByte(board  IN A0 : ANYPTR;
  228.                                offset IN D0 : LONGCARD;
  229.                                byte   IN D1 : SHORTCARD);
  230.  
  231.  
  232. LIBRARY ExpansionBase BY -102
  233.   PROCEDURE ReadExpansionRom(board     IN A0 : ANYPTR;
  234.                              configDev IN A1 : ConfigDevPtr);
  235.  
  236.  
  237. LIBRARY ExpansionBase BY -120 PROCEDURE ObtainConfigBinding;
  238.  
  239. LIBRARY ExpansionBase BY -126 PROCEDURE ReleaseConfigBinding;
  240.  
  241.  
  242. LIBRARY ExpansionBase BY -132
  243.   PROCEDURE SetCurrentBinding(currentBinding IN A0 : CurrentBindingPtr;
  244.                               bindingSize    IN D0 : INTEGER);
  245.  
  246. LIBRARY ExpansionBase BY -138
  247.   PROCEDURE GetCurrentBinding(currentBinding IN A0 : CurrentBindingPtr;
  248.                               bindingSize    IN D0 : INTEGER):LONGINT;
  249.  
  250.  
  251. LIBRARY ExpansionBase BY -144
  252.   PROCEDURE MakeDosNode(parmPacket IN A0 : ParameterPktPtr):DeviceNodePtr;
  253.  
  254. LIBRARY ExpansionBase BY -150
  255.   PROCEDURE AddDosNode(bootPri    IN D0 : SHORTINT;
  256.                        flags      IN D1 : LONGSET;
  257.                        deviceNode IN A0 : DeviceNodePtr):BOOLEAN;
  258.  
  259. END Expansion.
  260.  
  261.