1 #ifndef RESOURCES_CARD_H
    2 #define RESOURCES_CARD_H
    3 
    4 /*
    5 	card.resource include (V50)
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_TYPES_H
   11 # include <exec/types.h>
   12 #endif
   13 
   14 #ifndef EXEC_NODES_H
   15 # include <exec/nodes.h>
   16 #endif
   17 
   18 #ifndef EXEC_INTERRUPTS_H
   19 # include <exec/interrupts.h>
   20 #endif
   21 
   22 #pragma pack(2)
   23 
   24 
   25 #define CARDRESNAME  "card.resource"
   26 
   27 
   28 /* Values for cah_CardNode.ln_Type */
   29 
   30 #define CNT_68KCARDHANDLE  0
   31 #define CNT_PPCCARDHANDLE  1
   32 
   33 
   34 /* Structures used by card.resource */
   35 
   36 struct CardHandle
   37 {
   38 	struct Node       cah_CardNode;
   39 	struct Interrupt *cah_CardRemoved;
   40 	struct Interrupt *cah_CardInserted;
   41 	struct Interrupt *cah_CardStatus;
   42 	UBYTE             cah_CardFlags;
   43 };
   44 
   45 struct PPCCardHandle
   46 {
   47 	struct Node       cah_CardNode;
   48 	struct Interrupt *cah_CardRemoved;
   49 	struct Interrupt *cah_CardInserted;
   50 	struct Interrupt *cah_CardStatus;
   51 	UBYTE             cah_CardFlags;
   52 	UBYTE             cah_PPCType;
   53 	struct Interrupt *cah_PPCCardRemoved;
   54 	struct Interrupt *cah_PPCCardInserted;
   55 	struct Interrupt *cah_PPCCardStatus;
   56 };
   57 
   58 struct DeviceTData
   59 {
   60 	ULONG dtd_DTsize;
   61 	ULONG dtd_DTspeed;
   62 	UBYTE dtd_DTtype;
   63 	UBYTE dtd_DTflags;
   64 };
   65 
   66 struct CardMemoryMap
   67 {
   68 	UBYTE *cmm_CommonMemory;
   69 	UBYTE *cmm_AttributeMemory;
   70 	UBYTE *cmm_IOMemory;
   71 
   72 /*** V39 ***/
   73 
   74 	ULONG cmm_CommonMemSize;
   75 	ULONG cmm_AttributeMemSize;
   76 	ULONG cmm_IOMemSize;
   77 };
   78 
   79 
   80 /* OwnCard() CardHandle.cah_CardFlags flags */
   81 
   82 #define CARDB_RESETREMOVE     0
   83 #define CARDF_RESETREMOVE     (1<<CARDB_RESETREMOVE)
   84 
   85 #define CARDB_IFAVAILABLE     1
   86 #define CARDF_IFAVAILABLE     (1<<CARDB_IFAVAILABLE)
   87 
   88 #define CARDB_DELAYOWNERSHIP  2
   89 #define CARDF_DELAYOWNERSHIP  (1<<CARDB_DELAYOWNERSHIP)
   90 
   91 #define CARDB_POSTSTATUS      3
   92 #define CARDF_POSTSTATUS      (1<<CARDB_POSTSTATUS)
   93 
   94 
   95 /* ReleaseCreditCard() flags */
   96 
   97 #define CARDB_REMOVEHANDLE    0
   98 #define CARDF_REMOVEHANDLE    (1<<CARDB_REMOVEHANDLE)
   99 
  100 
  101 /* ReadStatus() return flags */
  102 
  103 #define CARD_STATUSB_CCDET    6
  104 #define CARD_STATUSF_CCDET    (1<<CARD_STATUSB_CCDET)
  105 
  106 #define CARD_STATUSB_BVD1     5
  107 #define CARD_STATUSF_BVD1     (1<<CARD_STATUSB_BVD1)
  108 
  109 #define CARD_STATUSB_SC       5
  110 #define CARD_STATUSF_SC       (1<<CARD_STATUSB_SC)
  111 
  112 #define CARD_STATUSB_BVD2     4
  113 #define CARD_STATUSF_BVD2     (1<<CARD_STATUSB_BVD2)
  114 
  115 #define CARD_STATUSB_DA       4
  116 #define CARD_STATUSF_DA       (1<<CARD_STATUSB_DA)
  117 
  118 #define CARD_STATUSB_WR       3
  119 #define CARD_STATUSF_WR       (1<<CARD_STATUSB_WR)
  120 
  121 #define CARD_STATUSB_BSY      2
  122 #define CARD_STATUSF_BSY      (1<<CARD_STATUSB_BSY)
  123 
  124 #define CARD_STATUSB_IRQ      2
  125 #define CARD_STATUSF_IRQ      (1<<CARD_STATUSB_IRQ)
  126 
  127 
  128 /* CardProgramVoltage() defines */
  129 
  130 #define CARD_VOLTAGE_0V   0
  131 #define CARD_VOLTAGE_5V   1
  132 #define CARD_VOLTAGE_12V  2
  133 
  134 
  135 /* CardMiscControl() defines */
  136 
  137 #define CARD_ENABLEB_DIGAUDIO  1
  138 #define CARD_ENABLEF_DIGAUDIO  (1<<CARD_ENABLEB_DIGAUDIO)
  139 
  140 #define CARD_DISABLEB_WP       3
  141 #define CARD_DISABLEF_WP       (1<<CARD_DISABLEB_WP)
  142 
  143 
  144 /* New CardMiscControl() bits for V39 card.resource */
  145 
  146 #define CARD_INTB_SETCLR  7
  147 #define CARD_INTF_SETCLR  (1<<CARD_INTB_SETCLR)
  148 
  149 #define CARD_INTB_BVD1    5
  150 #define CARD_INTF_BVD1    (1<<CARD_INTB_BVD1)
  151 
  152 #define CARD_INTB_SC      5
  153 #define CARD_INTF_SC      (1<<CARD_INTB_SC)
  154 
  155 #define CARD_INTB_BVD2    4
  156 #define CARD_INTF_BVD2    (1<<CARD_INTB_BVD2)
  157 
  158 #define CARD_INTB_DA      4
  159 #define CARD_INTF_DA      (1<<CARD_INTB_DA)
  160 
  161 #define CARD_INTB_BSY     2
  162 #define CARD_INTF_BSY     (1<<CARD_INTB_BSY)
  163 
  164 #define CARD_INTB_IRQ     2
  165 #define CARD_INTF_IRQ     (1<<CARD_INTB_IRQ)
  166 
  167 
  168 /* CardInterface() defines */
  169 
  170 #define CARD_INTERFACE_AMIGA_0  0
  171 
  172 
  173 #define CISTPL_AMIGAXIP  0x91
  174 
  175 struct TP_AmigaXIP
  176 {
  177 	UBYTE TPL_CODE;
  178 	UBYTE TPL_LINK;
  179 	UBYTE TP_XIPLOC[4];
  180 	UBYTE TP_XIPFLAGS;
  181 	UBYTE TP_XIPRESRV;
  182 };
  183 
  184 #define XIPFLAGSB_AUTORUN  0
  185 #define XIPFLAGSF_AUTORUN  (1<<XIPFLAGSB_AUTORUN)
  186 
  187 
  188 #pragma pack()
  189 
  190 #endif /* RESOURCES_CARD_H */