1 #ifndef HARDWARE_CUSTOM_H 2 #define HARDWARE_CUSTOM_H 3 4 /* 5 custom-chip registers and bits 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 #pragma pack(2) 15 16 17 struct Custom 18 { 19 VOLATILE UWORD bltddat; 20 VOLATILE UWORD dmaconr; 21 VOLATILE UWORD vposr; 22 VOLATILE UWORD vhposr; 23 VOLATILE UWORD dskdatr; 24 VOLATILE UWORD joy0dat; 25 VOLATILE UWORD joy1dat; 26 VOLATILE UWORD clxdat; 27 VOLATILE UWORD adkconr; 28 VOLATILE UWORD pot0dat; 29 VOLATILE UWORD pot1dat; 30 VOLATILE UWORD potinp; 31 VOLATILE UWORD serdatr; 32 VOLATILE UWORD dskbytr; 33 VOLATILE UWORD intenar; 34 VOLATILE UWORD intreqr; 35 VOLATILE APTR dskpt; 36 VOLATILE UWORD dsklen; 37 VOLATILE UWORD dskdat; 38 VOLATILE UWORD refptr; 39 VOLATILE UWORD vposw; 40 VOLATILE UWORD vhposw; 41 VOLATILE UWORD copcon; 42 VOLATILE UWORD serdat; 43 VOLATILE UWORD serper; 44 VOLATILE UWORD potgo; 45 VOLATILE UWORD joytest; 46 VOLATILE UWORD strequ; 47 VOLATILE UWORD strvbl; 48 VOLATILE UWORD strhor; 49 VOLATILE UWORD strlong; 50 VOLATILE UWORD bltcon0; 51 VOLATILE UWORD bltcon1; 52 VOLATILE UWORD bltafwm; 53 VOLATILE UWORD bltalwm; 54 VOLATILE APTR bltcpt; 55 VOLATILE APTR bltbpt; 56 VOLATILE APTR bltapt; 57 VOLATILE APTR bltdpt; 58 VOLATILE UWORD bltsize; 59 VOLATILE UBYTE pad2d; 60 VOLATILE UBYTE bltcon0l; 61 VOLATILE UWORD bltsizv; 62 VOLATILE UWORD bltsizh; 63 VOLATILE UWORD bltcmod; 64 VOLATILE UWORD bltbmod; 65 VOLATILE UWORD bltamod; 66 VOLATILE UWORD bltdmod; 67 VOLATILE UWORD pad34[4]; 68 VOLATILE UWORD bltcdat; 69 VOLATILE UWORD bltbdat; 70 VOLATILE UWORD bltadat; 71 VOLATILE UWORD pad3b[3]; 72 VOLATILE UWORD deniseid; 73 VOLATILE UWORD dsksync; 74 VOLATILE ULONG cop1lc; 75 VOLATILE ULONG cop2lc; 76 VOLATILE UWORD copjmp1; 77 VOLATILE UWORD copjmp2; 78 VOLATILE UWORD copins; 79 VOLATILE UWORD diwstrt; 80 VOLATILE UWORD diwstop; 81 VOLATILE UWORD ddfstrt; 82 VOLATILE UWORD ddfstop; 83 VOLATILE UWORD dmacon; 84 VOLATILE UWORD clxcon; 85 VOLATILE UWORD intena; 86 VOLATILE UWORD intreq; 87 VOLATILE UWORD adkcon; 88 89 struct AudChannel 90 { 91 VOLATILE UWORD *ac_ptr; 92 VOLATILE UWORD ac_len; 93 VOLATILE UWORD ac_per; 94 VOLATILE UWORD ac_vol; 95 VOLATILE UWORD ac_dat; 96 VOLATILE UWORD ac_pad[2]; 97 } aud[4]; 98 99 VOLATILE APTR bplpt[8]; 100 VOLATILE UWORD bplcon0; 101 VOLATILE UWORD bplcon1; 102 VOLATILE UWORD bplcon2; 103 VOLATILE UWORD bplcon3; 104 VOLATILE UWORD bpl1mod; 105 VOLATILE UWORD bpl2mod; 106 VOLATILE UWORD bplcon4; 107 VOLATILE UWORD clxcon2; 108 VOLATILE UWORD bpldat[8]; 109 VOLATILE APTR sprpt[8]; 110 111 struct SpriteDef 112 { 113 VOLATILE UWORD pos; 114 VOLATILE UWORD ctl; 115 VOLATILE UWORD dataa; 116 VOLATILE UWORD datab; 117 } spr[8]; 118 119 VOLATILE UWORD color[32]; 120 VOLATILE UWORD htotal; 121 VOLATILE UWORD hsstop; 122 VOLATILE UWORD hbstrt; 123 VOLATILE UWORD hbstop; 124 VOLATILE UWORD vtotal; 125 VOLATILE UWORD vsstop; 126 VOLATILE UWORD vbstrt; 127 VOLATILE UWORD vbstop; 128 VOLATILE UWORD sprhstrt; 129 VOLATILE UWORD sprhstop; 130 VOLATILE UWORD bplhstrt; 131 VOLATILE UWORD bplhstop; 132 VOLATILE UWORD hhposw; 133 VOLATILE UWORD hhposr; 134 VOLATILE UWORD beamcon0; 135 VOLATILE UWORD hsstrt; 136 VOLATILE UWORD vsstrt; 137 VOLATILE UWORD hcenter; 138 VOLATILE UWORD diwhigh; 139 VOLATILE UWORD padf3[11]; 140 VOLATILE UWORD fmode; 141 }; 142 143 144 #ifdef ECS_SPECIFIC 145 146 #define VARVBLANK 0x1000 147 #define LOLDIS 0x0800 148 #define CSCBLANKEN 0x0400 149 #define VARVSYNC 0x0200 150 #define VARHSYNC 0x0100 151 #define VARBEAM 0x0080 152 #define DISPLAYDUAL 0x0040 153 #define DISPLAYPAL 0x0020 154 #define VARCSYNC 0x0010 155 #define CSBLANK 0x0008 156 #define CSYNCTRUE 0x0004 157 #define VSYNCTRUE 0x0002 158 #define HSYNCTRUE 0x0001 159 160 #define USE_BPLCON3 1 161 162 #define BPLCON2_ZDCTEN (1<<10) 163 #define BPLCON2_ZDBPEN (1<<11) 164 #define BPLCON2_ZDBPSEL0 (1<<12) 165 #define BPLCON2_ZDBPSEL1 (1<<13) 166 #define BPLCON2_ZDBPSEL2 (1<<14) 167 168 #define BPLCON3_EXTBLNKEN (1<<0) 169 #define BPLCON3_EXTBLKZD (1<<1) 170 #define BPLCON3_ZDCLKEN (1<<2) 171 #define BPLCON3_BRDNTRAN (1<<4) 172 #define BPLCON3_BRDNBLNK (1<<5) 173 174 #endif /* ECS_SPECIFIC */ 175 176 177 #pragma pack() 178 179 #endif /* HARDWARE_CUSTOM_H */