home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / cbm / os-include.lha / os-include / graphics / modeid.h < prev    next >
C/C++ Source or Header  |  1993-10-15  |  14KB  |  364 lines

  1. #ifndef GRAPHICS_MODEID_H
  2. #define GRAPHICS_MODEID_H
  3. /*
  4. **    $VER: modeid.h 39.9 (27.5.93)
  5. **    Includes Release 40.15
  6. **
  7. **    include define file for graphics display mode IDs.
  8. **
  9. **    (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef GRAPHICS_DISPLAYINFO_H
  14. #include <graphics/displayinfo.h>
  15. #endif
  16.  
  17. #define INVALID_ID            ~0
  18.  
  19. /* With all the new modes that are available under V38 and V39, it is highly
  20.  * recommended that you use either the asl.library screenmode requester,
  21.  * and/or the V39 graphics.library function BestModeIDA().
  22.  *
  23.  * DO NOT interpret the any of the bits in the ModeID for its meaning. For
  24.  * example, do not interpret bit 3 (0x4) as meaning the ModeID is interlaced.
  25.  * Instead, use GetDisplayInfoData() with DTAG_DISP, and examine the DIPF_...
  26.  * flags to determine a ModeID's characteristics. The only exception to
  27.  * this rule is that bit 7 (0x80) will always mean the ModeID is
  28.  * ExtraHalfBright, and bit 11 (0x800) will always mean the ModeID is HAM.
  29.  */
  30.  
  31. /* normal identifiers */
  32.  
  33. #define MONITOR_ID_MASK            0xFFFF1000
  34.  
  35. #define DEFAULT_MONITOR_ID        0x00000000
  36. #define NTSC_MONITOR_ID            0x00011000
  37. #define PAL_MONITOR_ID            0x00021000
  38.  
  39. /* the following 22 composite keys are for Modes on the default Monitor.
  40.  * NTSC & PAL "flavors" of these particular keys may be made by or'ing
  41.  * the NTSC or PAL MONITOR_ID with the desired MODE_KEY...
  42.  *
  43.  * For example, to specifically open a PAL HAM interlaced ViewPort
  44.  * (or intuition screen), you would use the modeid of
  45.  * (PAL_MONITOR_ID | HAMLACE_KEY)
  46.  */
  47.  
  48. #define LORES_KEY            0x00000000
  49. #define HIRES_KEY            0x00008000
  50. #define SUPER_KEY            0x00008020
  51. #define HAM_KEY                0x00000800
  52. #define LORESLACE_KEY            0x00000004
  53. #define HIRESLACE_KEY            0x00008004
  54. #define SUPERLACE_KEY            0x00008024
  55. #define HAMLACE_KEY            0x00000804
  56. #define LORESDPF_KEY            0x00000400
  57. #define HIRESDPF_KEY            0x00008400
  58. #define SUPERDPF_KEY            0x00008420
  59. #define LORESLACEDPF_KEY        0x00000404
  60. #define HIRESLACEDPF_KEY        0x00008404
  61. #define SUPERLACEDPF_KEY        0x00008424
  62. #define LORESDPF2_KEY            0x00000440
  63. #define HIRESDPF2_KEY            0x00008440
  64. #define SUPERDPF2_KEY            0x00008460
  65. #define LORESLACEDPF2_KEY        0x00000444
  66. #define HIRESLACEDPF2_KEY        0x00008444
  67. #define SUPERLACEDPF2_KEY        0x00008464
  68. #define EXTRAHALFBRITE_KEY        0x00000080
  69. #define EXTRAHALFBRITELACE_KEY        0x00000084
  70. /* New for AA ChipSet (V39) */
  71. #define HIRESHAM_KEY            0x00008800
  72. #define SUPERHAM_KEY            0x00008820
  73. #define HIRESEHB_KEY            0x00008080
  74. #define SUPEREHB_KEY            0x000080a0
  75. #define HIRESHAMLACE_KEY        0x00008804
  76. #define SUPERHAMLACE_KEY        0x00008824
  77. #define HIRESEHBLACE_KEY        0x00008084
  78. #define SUPEREHBLACE_KEY        0x000080a4
  79. /* Added for V40 - may be useful modes for some games or animations. */
  80. #define LORESSDBL_KEY            0x00000008
  81. #define LORESHAMSDBL_KEY        0x00000808
  82. #define LORESEHBSDBL_KEY        0x00000088
  83. #define HIRESHAMSDBL_KEY        0x00008808
  84.  
  85.  
  86. /* VGA identifiers */
  87.  
  88. #define VGA_MONITOR_ID            0x00031000
  89.  
  90. #define VGAEXTRALORES_KEY        0x00031004
  91. #define VGALORES_KEY            0x00039004
  92. #define VGAPRODUCT_KEY            0x00039024
  93. #define VGAHAM_KEY            0x00031804
  94. #define VGAEXTRALORESLACE_KEY        0x00031005
  95. #define VGALORESLACE_KEY        0x00039005
  96. #define VGAPRODUCTLACE_KEY        0x00039025
  97. #define VGAHAMLACE_KEY            0x00031805
  98. #define VGAEXTRALORESDPF_KEY        0x00031404
  99. #define VGALORESDPF_KEY            0x00039404
  100. #define VGAPRODUCTDPF_KEY        0x00039424
  101. #define VGAEXTRALORESLACEDPF_KEY    0x00031405
  102. #define VGALORESLACEDPF_KEY        0x00039405
  103. #define VGAPRODUCTLACEDPF_KEY        0x00039425
  104. #define VGAEXTRALORESDPF2_KEY        0x00031444
  105. #define VGALORESDPF2_KEY        0x00039444
  106. #define VGAPRODUCTDPF2_KEY        0x00039464
  107. #define VGAEXTRALORESLACEDPF2_KEY    0x00031445
  108. #define VGALORESLACEDPF2_KEY        0x00039445
  109. #define VGAPRODUCTLACEDPF2_KEY        0x00039465
  110. #define VGAEXTRAHALFBRITE_KEY        0x00031084
  111. #define VGAEXTRAHALFBRITELACE_KEY    0x00031085
  112. /* New for AA ChipSet (V39) */
  113. #define VGAPRODUCTHAM_KEY        0x00039824
  114. #define VGALORESHAM_KEY            0x00039804
  115. #define VGAEXTRALORESHAM_KEY        VGAHAM_KEY
  116. #define VGAPRODUCTHAMLACE_KEY        0x00039825
  117. #define VGALORESHAMLACE_KEY        0x00039805
  118. #define VGAEXTRALORESHAMLACE_KEY    VGAHAMLACE_KEY
  119. #define VGAEXTRALORESEHB_KEY        VGAEXTRAHALFBRITE_KEY
  120. #define VGAEXTRALORESEHBLACE_KEY    VGAEXTRAHALFBRITELACE_KEY
  121. #define VGALORESEHB_KEY            0x00039084
  122. #define VGALORESEHBLACE_KEY        0x00039085
  123. #define VGAEHB_KEY            0x000390a4
  124. #define VGAEHBLACE_KEY            0x000390a5
  125. /* These ModeIDs are the scandoubled equivalents of the above, with the
  126.  * exception of the DualPlayfield modes, as AA does not allow for scandoubling
  127.  * dualplayfield.
  128.  */
  129. #define VGAEXTRALORESDBL_KEY        0x00031000
  130. #define VGALORESDBL_KEY            0x00039000
  131. #define VGAPRODUCTDBL_KEY        0x00039020
  132. #define VGAEXTRALORESHAMDBL_KEY        0x00031800
  133. #define VGALORESHAMDBL_KEY        0x00039800
  134. #define VGAPRODUCTHAMDBL_KEY        0x00039820
  135. #define VGAEXTRALORESEHBDBL_KEY        0x00031080
  136. #define VGALORESEHBDBL_KEY        0x00039080
  137. #define VGAPRODUCTEHBDBL_KEY        0x000390a0
  138.  
  139. /* a2024 identifiers */
  140.  
  141. #define A2024_MONITOR_ID        0x00041000
  142.  
  143. #define A2024TENHERTZ_KEY        0x00041000
  144. #define A2024FIFTEENHERTZ_KEY        0x00049000
  145.  
  146. /* prototype identifiers (private) */
  147.  
  148. #define PROTO_MONITOR_ID        0x00051000
  149.  
  150.  
  151. /* These monitors and modes were added for the V38 release. */
  152.  
  153. #define EURO72_MONITOR_ID        0x00061000
  154.  
  155. #define EURO72EXTRALORES_KEY        0x00061004
  156. #define EURO72LORES_KEY            0x00069004
  157. #define EURO72PRODUCT_KEY        0x00069024
  158. #define EURO72HAM_KEY            0x00061804
  159. #define EURO72EXTRALORESLACE_KEY    0x00061005
  160. #define EURO72LORESLACE_KEY        0x00069005
  161. #define EURO72PRODUCTLACE_KEY        0x00069025
  162. #define EURO72HAMLACE_KEY        0x00061805
  163. #define EURO72EXTRALORESDPF_KEY        0x00061404
  164. #define EURO72LORESDPF_KEY        0x00069404
  165. #define EURO72PRODUCTDPF_KEY        0x00069424
  166. #define EURO72EXTRALORESLACEDPF_KEY    0x00061405
  167. #define EURO72LORESLACEDPF_KEY        0x00069405
  168. #define EURO72PRODUCTLACEDPF_KEY    0x00069425
  169. #define EURO72EXTRALORESDPF2_KEY    0x00061444
  170. #define EURO72LORESDPF2_KEY        0x00069444
  171. #define EURO72PRODUCTDPF2_KEY        0x00069464
  172. #define EURO72EXTRALORESLACEDPF2_KEY    0x00061445
  173. #define EURO72LORESLACEDPF2_KEY        0x00069445
  174. #define EURO72PRODUCTLACEDPF2_KEY    0x00069465
  175. #define EURO72EXTRAHALFBRITE_KEY    0x00061084
  176. #define EURO72EXTRAHALFBRITELACE_KEY    0x00061085
  177. /* New AA modes (V39) */
  178. #define EURO72PRODUCTHAM_KEY        0x00069824
  179. #define EURO72PRODUCTHAMLACE_KEY    0x00069825
  180. #define EURO72LORESHAM_KEY        0x00069804
  181. #define EURO72LORESHAMLACE_KEY        0x00069805
  182. #define EURO72EXTRALORESHAM_KEY        EURO72HAM_KEY
  183. #define EURO72EXTRALORESHAMLACE_KEY    EURO72HAMLACE_KEY
  184. #define EURO72EXTRALORESEHB_KEY        EURO72EXTRAHALFBRITE_KEY
  185. #define EURO72EXTRALORESEHBLACE_KEY    EURO72EXTRAHALFBRITELACE_KEY
  186. #define EURO72LORESEHB_KEY        0x00069084
  187. #define EURO72LORESEHBLACE_KEY        0x00069085
  188. #define EURO72EHB_KEY            0x000690a4
  189. #define EURO72EHBLACE_KEY        0x000690a5
  190. /* These ModeIDs are the scandoubled equivalents of the above, with the
  191.  * exception of the DualPlayfield modes, as AA does not allow for scandoubling
  192.  * dualplayfield.
  193.  */
  194. #define EURO72EXTRALORESDBL_KEY        0x00061000
  195. #define EURO72LORESDBL_KEY        0x00069000
  196. #define EURO72PRODUCTDBL_KEY        0x00069020
  197. #define EURO72EXTRALORESHAMDBL_KEY    0x00061800
  198. #define EURO72LORESHAMDBL_KEY        0x00069800
  199. #define EURO72PRODUCTHAMDBL_KEY        0x00069820
  200. #define EURO72EXTRALORESEHBDBL_KEY    0x00061080
  201. #define EURO72LORESEHBDBL_KEY        0x00069080
  202. #define EURO72PRODUCTEHBDBL_KEY        0x000690a0
  203.  
  204.  
  205. #define EURO36_MONITOR_ID        0x00071000
  206.  
  207. /* Euro36 modeids can be ORed with the default modeids a la NTSC and PAL.
  208.  * For example, Euro36 SuperHires is
  209.  * (EURO36_MONITOR_ID | SUPER_KEY)
  210.  */
  211.  
  212. #define SUPER72_MONITOR_ID        0x00081000
  213.  
  214. /* Super72 modeids can be ORed with the default modeids a la NTSC and PAL.
  215.  * For example, Super72 SuperHiresLace (800x600) is
  216.  * (SUPER72_MONITOR_ID | SUPERLACE_KEY).
  217.  * The following scandoubled Modes are the exception:
  218.  */
  219. #define SUPER72LORESDBL_KEY        0x00081008
  220. #define SUPER72HIRESDBL_KEY        0x00089008
  221. #define SUPER72SUPERDBL_KEY        0x00089028
  222. #define SUPER72LORESHAMDBL_KEY        0x00081808
  223. #define SUPER72HIRESHAMDBL_KEY        0x00089808
  224. #define SUPER72SUPERHAMDBL_KEY        0x00089828
  225. #define SUPER72LORESEHBDBL_KEY        0x00081088
  226. #define SUPER72HIRESEHBDBL_KEY        0x00089088
  227. #define SUPER72SUPEREHBDBL_KEY        0x000890a8
  228.  
  229.  
  230. /* These monitors and modes were added for the V39 release. */
  231.  
  232. #define DBLNTSC_MONITOR_ID        0x00091000
  233.  
  234. #define DBLNTSCLORES_KEY        0x00091000
  235. #define DBLNTSCLORESFF_KEY        0x00091004
  236. #define DBLNTSCLORESHAM_KEY        0x00091800
  237. #define DBLNTSCLORESHAMFF_KEY        0x00091804
  238. #define DBLNTSCLORESEHB_KEY        0x00091080
  239. #define DBLNTSCLORESEHBFF_KEY        0x00091084
  240. #define DBLNTSCLORESLACE_KEY        0x00091005
  241. #define DBLNTSCLORESHAMLACE_KEY        0x00091805
  242. #define DBLNTSCLORESEHBLACE_KEY        0x00091085
  243. #define DBLNTSCLORESDPF_KEY        0x00091400
  244. #define DBLNTSCLORESDPFFF_KEY        0x00091404
  245. #define DBLNTSCLORESDPFLACE_KEY        0x00091405
  246. #define DBLNTSCLORESDPF2_KEY        0x00091440
  247. #define DBLNTSCLORESDPF2FF_KEY        0x00091444
  248. #define DBLNTSCLORESDPF2LACE_KEY    0x00091445
  249. #define DBLNTSCHIRES_KEY        0x00099000
  250. #define DBLNTSCHIRESFF_KEY        0x00099004
  251. #define DBLNTSCHIRESHAM_KEY        0x00099800
  252. #define DBLNTSCHIRESHAMFF_KEY        0x00099804
  253. #define DBLNTSCHIRESLACE_KEY        0x00099005
  254. #define DBLNTSCHIRESHAMLACE_KEY        0x00099805
  255. #define DBLNTSCHIRESEHB_KEY        0x00099080
  256. #define DBLNTSCHIRESEHBFF_KEY        0x00099084
  257. #define DBLNTSCHIRESEHBLACE_KEY        0x00099085
  258. #define DBLNTSCHIRESDPF_KEY        0x00099400
  259. #define DBLNTSCHIRESDPFFF_KEY        0x00099404
  260. #define DBLNTSCHIRESDPFLACE_KEY        0x00099405
  261. #define DBLNTSCHIRESDPF2_KEY        0x00099440
  262. #define DBLNTSCHIRESDPF2FF_KEY        0x00099444
  263. #define DBLNTSCHIRESDPF2LACE_KEY    0x00099445
  264. #define DBLNTSCEXTRALORES_KEY        0x00091200
  265. #define DBLNTSCEXTRALORESHAM_KEY    0x00091a00
  266. #define DBLNTSCEXTRALORESEHB_KEY    0x00091280
  267. #define DBLNTSCEXTRALORESDPF_KEY    0x00091600
  268. #define DBLNTSCEXTRALORESDPF2_KEY    0x00091640
  269. #define DBLNTSCEXTRALORESFF_KEY        0x00091204
  270. #define DBLNTSCEXTRALORESHAMFF_KEY    0x00091a04
  271. #define DBLNTSCEXTRALORESEHBFF_KEY    0x00091284
  272. #define DBLNTSCEXTRALORESDPFFF_KEY    0x00091604
  273. #define DBLNTSCEXTRALORESDPF2FF_KEY    0x00091644
  274. #define DBLNTSCEXTRALORESLACE_KEY    0x00091205
  275. #define DBLNTSCEXTRALORESHAMLACE_KEY    0x00091a05
  276. #define DBLNTSCEXTRALORESEHBLACE_KEY    0x00091285
  277. #define DBLNTSCEXTRALORESDPFLACE_KEY    0x00091605
  278. #define DBLNTSCEXTRALORESDPF2LACE_KEY    0x00091645
  279.  
  280. #define DBLPAL_MONITOR_ID        0x000a1000
  281.  
  282. #define DBLPALLORES_KEY            0x000a1000
  283. #define DBLPALLORESFF_KEY        0x000a1004
  284. #define DBLPALLORESHAM_KEY        0x000a1800
  285. #define DBLPALLORESHAMFF_KEY        0x000a1804
  286. #define DBLPALLORESEHB_KEY        0x000a1080
  287. #define DBLPALLORESEHBFF_KEY        0x000a1084
  288. #define DBLPALLORESLACE_KEY        0x000a1005
  289. #define DBLPALLORESHAMLACE_KEY        0x000a1805
  290. #define DBLPALLORESEHBLACE_KEY        0x000a1085
  291. #define DBLPALLORESDPF_KEY        0x000a1400
  292. #define DBLPALLORESDPFFF_KEY        0x000a1404
  293. #define DBLPALLORESDPFLACE_KEY        0x000a1405
  294. #define DBLPALLORESDPF2_KEY        0x000a1440
  295. #define DBLPALLORESDPF2FF_KEY        0x000a1444
  296. #define DBLPALLORESDPF2LACE_KEY        0x000a1445
  297. #define DBLPALHIRES_KEY            0x000a9000
  298. #define DBLPALHIRESFF_KEY        0x000a9004
  299. #define DBLPALHIRESHAM_KEY        0x000a9800
  300. #define DBLPALHIRESHAMFF_KEY        0x000a9804
  301. #define DBLPALHIRESLACE_KEY        0x000a9005
  302. #define DBLPALHIRESHAMLACE_KEY        0x000a9805
  303. #define DBLPALHIRESEHB_KEY        0x000a9080
  304. #define DBLPALHIRESEHBFF_KEY        0x000a9084
  305. #define DBLPALHIRESEHBLACE_KEY            0x000a9085
  306. #define DBLPALHIRESDPF_KEY        0x000a9400
  307. #define DBLPALHIRESDPFFF_KEY        0x000a9404
  308. #define DBLPALHIRESDPFLACE_KEY        0x000a9405
  309. #define DBLPALHIRESDPF2_KEY        0x000a9440
  310. #define DBLPALHIRESDPF2FF_KEY        0x000a9444
  311. #define DBLPALHIRESDPF2LACE_KEY        0x000a9445
  312. #define DBLPALEXTRALORES_KEY        0x000a1200
  313. #define DBLPALEXTRALORESHAM_KEY        0x000a1a00
  314. #define DBLPALEXTRALORESEHB_KEY        0x000a1280
  315. #define DBLPALEXTRALORESDPF_KEY        0x000a1600
  316. #define DBLPALEXTRALORESDPF2_KEY    0x000a1640
  317. #define DBLPALEXTRALORESFF_KEY        0x000a1204
  318. #define DBLPALEXTRALORESHAMFF_KEY    0x000a1a04
  319. #define DBLPALEXTRALORESEHBFF_KEY    0x000a1284
  320. #define DBLPALEXTRALORESDPFFF_KEY    0x000a1604
  321. #define DBLPALEXTRALORESDPF2FF_KEY    0x000a1644
  322. #define DBLPALEXTRALORESLACE_KEY    0x000a1205
  323. #define DBLPALEXTRALORESHAMLACE_KEY    0x000a1a05
  324. #define DBLPALEXTRALORESEHBLACE_KEY    0x000a1285
  325. #define DBLPALEXTRALORESDPFLACE_KEY    0x000a1605
  326. #define DBLPALEXTRALORESDPF2LACE_KEY    0x000a1645
  327.  
  328.  
  329. /* Use these tags for passing to BestModeID() (V39) */
  330.  
  331. #define SPECIAL_FLAGS (DIPF_IS_DUALPF | DIPF_IS_PF2PRI | DIPF_IS_HAM | DIPF_IS_EXTRAHALFBRITE)
  332.  
  333. #define BIDTAG_DIPFMustHave    0x80000001    /* mask of the DIPF_ flags the ModeID must have */
  334.                 /* Default - NULL */
  335. #define BIDTAG_DIPFMustNotHave    0x80000002    /* mask of the DIPF_ flags the ModeID must not have */
  336.                 /* Default - SPECIAL_FLAGS */
  337. #define BIDTAG_ViewPort        0x80000003    /* ViewPort for which a ModeID is sought. */
  338.                 /* Default - NULL */
  339. #define BIDTAG_NominalWidth    0x80000004    /* \ together make the aspect ratio and */
  340. #define BIDTAG_NominalHeight    0x80000005    /* / override the vp->Width/Height. */
  341.                 /* Default - SourceID NominalDimensionInfo,
  342.                  * or vp->DWidth/Height, or (640 * 200),
  343.                  * in that preferred order.
  344.                  */
  345. #define BIDTAG_DesiredWidth    0x80000006    /* \ Nominal Width and Height of the */
  346. #define BIDTAG_DesiredHeight    0x80000007    /* / returned ModeID. */
  347.                 /* Default - same as Nominal */
  348. #define BIDTAG_Depth        0x80000008    /* ModeID must support this depth. */
  349.                 /* Default - vp->RasInfo->BitMap->Depth or 1 */
  350. #define BIDTAG_MonitorID    0x80000009    /* ModeID must use this monitor. */
  351.                 /* Default - use best monitor available */
  352. #define BIDTAG_SourceID        0x8000000a    /* instead of a ViewPort. */
  353.                 /* Default - VPModeID(vp) if BIDTAG_ViewPort is
  354.                  * specified, else leave the DIPFMustHave and
  355.                  * DIPFMustNotHave values untouched.
  356.                  */
  357. #define BIDTAG_RedBits        0x8000000b    /* \                 */
  358. #define BIDTAG_BlueBits        0x8000000c    /* } Match up from the database */
  359. #define BIDTAG_GreenBits    0x8000000d    /* /                */
  360.                 /* Default - 4 */
  361. #define BIDTAG_GfxPrivate    0x8000000e    /* Private */
  362.  
  363. #endif /* GRAPHICS_MODEID_H */
  364.