home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / m2 / CycloneModules.lha / modules / txt / CardRes.def < prev    next >
Text File  |  1996-08-01  |  6KB  |  195 lines

  1. (*
  2. **    Cyclone Modula-2 Interface module:
  3. **      CardRes Includes Release 40.15
  4. **
  5. **      Interface module by Marcel Timmermans
  6. **      (C) Copyright 1995-1996 Marcel Timmermans
  7. **          All Rights Reserved
  8. *)
  9.  
  10. (*$ Implementation- *)
  11. DEFINITION MODULE CardRes;
  12.  
  13. FROM SYSTEM IMPORT ADDRESS,SHORTSET,LONGSET;
  14.  
  15. FROM ExecD IMPORT ResidentPtr,InterruptPtr,Node;
  16.  
  17. IMPORT Reg;
  18.  
  19. CONST
  20.   cardName = "card.resource";
  21.  
  22. TYPE
  23. (* Structures used by the card.resource                         *)
  24.  
  25.   CardHandlePtr = POINTER TO CardHandle;
  26.   CardHandle = RECORD
  27.     cardNode     : Node;
  28.     cardRemoved  : InterruptPtr;
  29.     cardInserted : InterruptPtr;
  30.     cardStatus   : InterruptPtr;
  31.     cardFlags    : SHORTSET;
  32.   END;
  33.  
  34.   DeviceTDataPtr = POINTER TO DeviceTData;
  35.   DeviceTData = RECORD
  36.     dtSize   : LONGCARD;  (* Size in bytes        *)
  37.     dtSpeed  : LONGCARD;  (* Speed in nanoseconds *)
  38.     dtType   : SHORTCARD; (* Type of card         *)
  39.     dtFlags  : SHORTSET;  (* Other flags          *)
  40.   END;
  41.  
  42.   CardMemoryMapPtr = POINTER TO CardMemoryMap;
  43.   CardMemoryMap = RECORD
  44.     commonMemory     : ADDRESS;
  45.     attributeMemeory : ADDRESS;
  46.     ioMemory         : ADDRESS;
  47.  
  48. (* Extended for V39 - These are the size of the memory spaces above *)
  49.  
  50.     commonMemSize    : LONGCARD;
  51.     attributeMemSize : LONGCARD;
  52.     ioMemSize        : LONGCARD;
  53.   END;
  54.  
  55. CONST
  56. (* CardHandle.cah_CardFlags for OwnCard() function              *)
  57.  
  58.   resetRemove    = 0;
  59.   ifAvailable    = 1;
  60.   delayOwnerShip = 2;
  61.   postStatus     = 3;
  62.  
  63. (* ReleaseCreditCard() function flags                           *)
  64.  
  65.   removeHandle   = 0;
  66.  
  67. (* ReadStatus() return flags                                    *)
  68.  
  69.   statusbCCDET   = 6;
  70.   statusbBVD1    = 5;
  71.   statusbSC      = 5;
  72.   statusbBVD2    = 4;
  73.   statusbDA      = 4;
  74.   statusbWR      = 3;
  75.   statusbBSY     = 2;
  76.   statusbIRQ     = 2;
  77.  
  78. (* CardProgramVoltage() defines *)
  79.  
  80.   voltage0v      = 0;       (* Set to default; may be the same as 5V *)
  81.   voltage5v      = 1;
  82.   voltage12v     = 2;
  83.  
  84. (* CardMiscControl() defines *)
  85.  
  86.   enablebDigaudio = 1;
  87.   disablebWp      = 3;
  88.  
  89. (*
  90.  * New CardMiscControl() bits for V39 card.resource.  Use these bits to set,
  91.  * or clear status change interrupts for BVD1/SC, BVD2/DA, and BSY/IRQ.
  92.  * Write-enable/protect change interrupts are always enabled.  The defaults
  93.  * are unchanged (BVD1/SC is enabled, BVD2/DA is disabled, and BSY/IRQ is enabled).
  94.  *
  95.  * IMPORTANT -- Only set these bits for V39 card.resource or greater (check
  96.  * resource base VERSION)
  97.  *
  98.  *)
  99.  
  100.   intbSetClr = 7;
  101.   intbBVD1   = 5;
  102.   intbSC     = 5;
  103.   intbBVD2   = 4;
  104.   intbDA     = 4;
  105.   intbBSY    = 2;
  106.   intbIRQ    = 2;
  107.  
  108. (* CardInterface() defines *)
  109.  
  110.   interfaceAmiga0 = 0;
  111.  
  112. (*
  113.  * Tuple for Amiga execute-in-place software (e.g., games, or other
  114.  * such software which wants to use execute-in-place software stored
  115.  * on a credit-card, such as a ROM card).
  116.  *
  117.  * See documentatin for IfAmigaXIP().
  118.  *)
  119.  
  120.   cisTplAmigaXIP = 091H;
  121.  
  122. TYPE
  123.   TPAmigaXIPPtr=POINTER TO TPAmigaXIP;
  124.   TPAmigaXIP = RECORD
  125.     code      : SHORTCARD;
  126.     link      : SHORTCARD;
  127.     xipLoc    : ARRAY [0..3] OF SHORTCARD;
  128.     xipFlags  : SHORTSET;
  129.     xipResrv  : SHORTCARD;
  130.   END;
  131.  
  132. CONST
  133. (*
  134.  * The XIPFLAGB_AUTORUN bit means that you want the machine
  135.  * to perform a reset if the execute-in-place card is inserted
  136.  * after DOS has been started.  The machine will then reset,
  137.  * and execute your execute-in-place code the next time around.
  138.  *
  139.  * NOTE -- this flag may be ignored on some machines, in which
  140.  * case the user will have to manually reset the machine in the
  141.  * usual way.
  142.  *
  143.  *)
  144.  
  145.   autoRun = 0;
  146.  
  147.  
  148. PROCEDURE OwnCard(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr):LONGINT; CODE -6;
  149.  
  150. PROCEDURE ReleaseCard(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr;
  151.                       flags{Reg.D0}:LONGSET); CODE -12;
  152.  
  153. PROCEDURE GetCardMap(base{Reg.A6}:ADDRESS):CardMemoryMapPtr; CODE -18;
  154.  
  155. PROCEDURE BeginCardAccess(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr):BOOLEAN; CODE -24;
  156.  
  157. PROCEDURE EndCardAccess(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr):BOOLEAN; CODE -30;
  158.  
  159. PROCEDURE ReadCardStatus(base{Reg.A6}:ADDRESS):SHORTINT; CODE -36;
  160.  
  161. PROCEDURE CardResetRemove(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr;
  162.                           flag{Reg.D0}:LONGSET):BOOLEAN; CODE -42;
  163.  
  164. PROCEDURE CardMiscControl(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr;
  165.                           controlBits{Reg.D1}:SHORTSET):SHORTSET; CODE -48;
  166.  
  167. PROCEDURE CardAccessSpeed(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr;
  168.                            nanoSeconds{Reg.D0}:LONGCARD):LONGCARD; CODE -54;
  169.  
  170. PROCEDURE CardProgramVoltage(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr;
  171.                              voltage{Reg.D0}:LONGCARD):LONGINT; CODE -60;
  172.  
  173. PROCEDURE CardResetCard(base{Reg.A6}:ADDRESS;
  174.                         handle{Reg.A1}:CardHandlePtr):BOOLEAN; CODE -66;
  175.  
  176. PROCEDURE CopyTuple(base{Reg.A6}:ADDRESS;handle{Reg.A1}:CardHandlePtr;
  177.                     buffer{Reg.A0}:ADDRESS;tupleCode{Reg.D1}:LONGCARD;
  178.                     size{Reg.D0}:LONGCARD):BOOLEAN; CODE -72;
  179.  
  180. PROCEDURE DeviceTuple(base{Reg.A6}:ADDRESS;tupleData{Reg.A0}:ADDRESS;
  181.                       storage{Reg.A1}:DeviceTDataPtr):LONGCARD; CODE -78;
  182.  
  183. PROCEDURE IfAmigaXIP(base{Reg.A6}:ADDRESS;
  184.                      handle{Reg.A2}:CardHandlePtr):ResidentPtr; CODE -84;
  185.  
  186. PROCEDURE CardForceChange(base{Reg.A6}:ADDRESS):BOOLEAN; CODE -90;
  187.  
  188. PROCEDURE CardChangeCount(base{Reg.A6}:ADDRESS):LONGCARD; CODE -96;
  189.  
  190. PROCEDURE CardInterface(base{Reg.A6}:ADDRESS):LONGCARD; CODE -102;
  191.  
  192.  
  193.  
  194. END CardRes.
  195.