home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / ace_basic / ace / include / graphics / modeid.h < prev    next >
C/C++ Source or Header  |  1977-12-31  |  15KB  |  367 lines

  1. #ifndef GRAPHICS_MODEID_H
  2. #define GRAPHICS_MODEID_H 1
  3. /*
  4. ** modeid.h for ACE Basic
  5. **
  6. ** Note: Translated to ACE by ConvertC2ACE
  7. **       @ MapMeadow Software, Nils Sjoholm
  8. **
  9. **
  10. ** Date: 09/01/95
  11. **
  12. **
  13. */
  14.  
  15.  
  16. #ifndef GRAPHICS_DISPLAYINFO_H
  17. #include <graphics/displayinfo.h>
  18. #endif
  19.  
  20. #define INVALID_ID          -1&
  21.  
  22. /* With all the new modes that are available under V38 and V39,  it is highly
  23.  * recommended that you use either the asl.library screenmode requester, 
  24.  * and/or the V39 graphics.library function BestModeIDA().
  25.  *
  26.  * DO NOT interpret the any of the bits in the ModeID for its meaning. For
  27.  * example,  do not interpret bit 3 (&H4) as meaning the ModeID is interlaced.
  28.  * Instead,  use GetDisplayInfoData() with DTAG_DISP,  and examine the DIPF_...
  29.  * flags to determine a ModeID's characteristics. The only exception to
  30.  * this rule is that bit 7 (&H80) will always mean the ModeID is
  31.  * ExtraHalfBright,  and bit 11 (&H800) will always mean the ModeID is HAM.
  32.  */
  33.  
  34. /* normal identifiers */
  35.  
  36. #define MONITOR_ID_MASK         &HFFFF1000
  37.  
  38. #define DEFAULT_MONITOR_ID      &H00000000
  39. #define NTSC_MONITOR_ID         &H00011000
  40. #define PAL_MONITOR_ID          &H00021000
  41.  
  42. /* the following 22 composite keys are for Modes on the default Monitor.
  43.  * NTSC & PAL "flavors" of these particular keys may be made by or'ing
  44.  * the NTSC or PAL MONITOR_ID with the desired MODE_KEY...
  45.  *
  46.  * For example,  to specifically open a PAL HAM interlaced ViewPort
  47.  * (or intuition screen),  you would use the modeid of
  48.  * (PAL_MONITOR_ID OR HAMLACE_KEY)
  49.  */
  50.  
  51. #define LORES_KEY           &H00000000
  52. #define HIRES_KEY           &H00008000
  53. #define SUPER_KEY           &H00008020
  54. #define HAM_KEY             &H00000800
  55. #define LORESLACE_KEY           &H00000004
  56. #define HIRESLACE_KEY           &H00008004
  57. #define SUPERLACE_KEY           &H00008024
  58. #define HAMLACE_KEY         &H00000804
  59. #define LORESDPF_KEY            &H00000400
  60. #define HIRESDPF_KEY            &H00008400
  61. #define SUPERDPF_KEY            &H00008420
  62. #define LORESLACEDPF_KEY        &H00000404
  63. #define HIRESLACEDPF_KEY        &H00008404
  64. #define SUPERLACEDPF_KEY        &H00008424
  65. #define LORESDPF2_KEY           &H00000440
  66. #define HIRESDPF2_KEY           &H00008440
  67. #define SUPERDPF2_KEY           &H00008460
  68. #define LORESLACEDPF2_KEY       &H00000444
  69. #define HIRESLACEDPF2_KEY       &H00008444
  70. #define SUPERLACEDPF2_KEY       &H00008464
  71. #define EXTRAHALFBRITE_KEY      &H00000080
  72. #define EXTRAHALFBRITELACE_KEY      &H00000084
  73. /* New for AA ChipSet (V39) */
  74. #define HIRESHAM_KEY            &H00008800
  75. #define SUPERHAM_KEY            &H00008820
  76. #define HIRESEHB_KEY            &H00008080
  77. #define SUPEREHB_KEY            &H000080a0
  78. #define HIRESHAMLACE_KEY        &H00008804
  79. #define SUPERHAMLACE_KEY        &H00008824
  80. #define HIRESEHBLACE_KEY        &H00008084
  81. #define SUPEREHBLACE_KEY        &H000080a4
  82. /* Added for V40 - may be useful modes for some games or animations. */
  83. #define LORESSDBL_KEY           &H00000008
  84. #define LORESHAMSDBL_KEY        &H00000808
  85. #define LORESEHBSDBL_KEY        &H00000088
  86. #define HIRESHAMSDBL_KEY        &H00008808
  87.  
  88.  
  89. /* VGA identifiers */
  90.  
  91. #define VGA_MONITOR_ID          &H00031000
  92.  
  93. #define VGAEXTRALORES_KEY       &H00031004
  94. #define VGALORES_KEY            &H00039004
  95. #define VGAPRODUCT_KEY          &H00039024
  96. #define VGAHAM_KEY          &H00031804
  97. #define VGAEXTRALORESLACE_KEY       &H00031005
  98. #define VGALORESLACE_KEY        &H00039005
  99. #define VGAPRODUCTLACE_KEY      &H00039025
  100. #define VGAHAMLACE_KEY          &H00031805
  101. #define VGAEXTRALORESDPF_KEY        &H00031404
  102. #define VGALORESDPF_KEY         &H00039404
  103. #define VGAPRODUCTDPF_KEY       &H00039424
  104. #define VGAEXTRALORESLACEDPF_KEY    &H00031405
  105. #define VGALORESLACEDPF_KEY     &H00039405
  106. #define VGAPRODUCTLACEDPF_KEY       &H00039425
  107. #define VGAEXTRALORESDPF2_KEY       &H00031444
  108. #define VGALORESDPF2_KEY        &H00039444
  109. #define VGAPRODUCTDPF2_KEY      &H00039464
  110. #define VGAEXTRALORESLACEDPF2_KEY   &H00031445
  111. #define VGALORESLACEDPF2_KEY        &H00039445
  112. #define VGAPRODUCTLACEDPF2_KEY      &H00039465
  113. #define VGAEXTRAHALFBRITE_KEY       &H00031084
  114. #define VGAEXTRAHALFBRITELACE_KEY   &H00031085
  115. /* New for AA ChipSet (V39) */
  116. #define VGAPRODUCTHAM_KEY       &H00039824
  117. #define VGALORESHAM_KEY         &H00039804
  118. #define VGAEXTRALORESHAM_KEY        VGAHAM_KEY
  119. #define VGAPRODUCTHAMLACE_KEY       &H00039825
  120. #define VGALORESHAMLACE_KEY     &H00039805
  121. #define VGAEXTRALORESHAMLACE_KEY    VGAHAMLACE_KEY
  122. #define VGAEXTRALORESEHB_KEY        VGAEXTRAHALFBRITE_KEY
  123. #define VGAEXTRALORESEHBLACE_KEY    VGAEXTRAHALFBRITELACE_KEY
  124. #define VGALORESEHB_KEY         &H00039084
  125. #define VGALORESEHBLACE_KEY     &H00039085
  126. #define VGAEHB_KEY          &H000390a4
  127. #define VGAEHBLACE_KEY          &H000390a5
  128. /* These ModeIDs are the scandoubled equivalents of the above,  with the
  129.  * exception of the DualPlayfield modes,  as AA does not allow for scandoubling
  130.  * dualplayfield.
  131.  */
  132. #define VGAEXTRALORESDBL_KEY        &H00031000
  133. #define VGALORESDBL_KEY         &H00039000
  134. #define VGAPRODUCTDBL_KEY       &H00039020
  135. #define VGAEXTRALORESHAMDBL_KEY     &H00031800
  136. #define VGALORESHAMDBL_KEY      &H00039800
  137. #define VGAPRODUCTHAMDBL_KEY        &H00039820
  138. #define VGAEXTRALORESEHBDBL_KEY     &H00031080
  139. #define VGALORESEHBDBL_KEY      &H00039080
  140. #define VGAPRODUCTEHBDBL_KEY        &H000390a0
  141.  
  142. /* a2024 identifiers */
  143.  
  144. #define A2024_MONITOR_ID        &H00041000
  145.  
  146. #define A2024TENHERTZ_KEY       &H00041000
  147. #define A2024FIFTEENHERTZ_KEY       &H00049000
  148.  
  149. /* prototype identifiers (private) */
  150.  
  151. #define PROTO_MONITOR_ID        &H00051000
  152.  
  153.  
  154. /* These monitors and modes were added for the V38 release. */
  155.  
  156. #define EURO72_MONITOR_ID       &H00061000
  157.  
  158. #define EURO72EXTRALORES_KEY        &H00061004
  159. #define EURO72LORES_KEY         &H00069004
  160. #define EURO72PRODUCT_KEY       &H00069024
  161. #define EURO72HAM_KEY           &H00061804
  162. #define EURO72EXTRALORESLACE_KEY    &H00061005
  163. #define EURO72LORESLACE_KEY     &H00069005
  164. #define EURO72PRODUCTLACE_KEY       &H00069025
  165. #define EURO72HAMLACE_KEY       &H00061805
  166. #define EURO72EXTRALORESDPF_KEY     &H00061404
  167. #define EURO72LORESDPF_KEY      &H00069404
  168. #define EURO72PRODUCTDPF_KEY        &H00069424
  169. #define EURO72EXTRALORESLACEDPF_KEY &H00061405
  170. #define EURO72LORESLACEDPF_KEY      &H00069405
  171. #define EURO72PRODUCTLACEDPF_KEY    &H00069425
  172. #define EURO72EXTRALORESDPF2_KEY    &H00061444
  173. #define EURO72LORESDPF2_KEY     &H00069444
  174. #define EURO72PRODUCTDPF2_KEY       &H00069464
  175. #define EURO72EXTRALORESLACEDPF2_KEY    &H00061445
  176. #define EURO72LORESLACEDPF2_KEY     &H00069445
  177. #define EURO72PRODUCTLACEDPF2_KEY   &H00069465
  178. #define EURO72EXTRAHALFBRITE_KEY    &H00061084
  179. #define EURO72EXTRAHALFBRITELACE_KEY    &H00061085
  180. /* New AA modes (V39) */
  181. #define EURO72PRODUCTHAM_KEY        &H00069824
  182. #define EURO72PRODUCTHAMLACE_KEY    &H00069825
  183. #define EURO72LORESHAM_KEY      &H00069804
  184. #define EURO72LORESHAMLACE_KEY      &H00069805
  185. #define EURO72EXTRALORESHAM_KEY     EURO72HAM_KEY
  186. #define EURO72EXTRALORESHAMLACE_KEY EURO72HAMLACE_KEY
  187. #define EURO72EXTRALORESEHB_KEY     EURO72EXTRAHALFBRITE_KEY
  188. #define EURO72EXTRALORESEHBLACE_KEY EURO72EXTRAHALFBRITELACE_KEY
  189. #define EURO72LORESEHB_KEY      &H00069084
  190. #define EURO72LORESEHBLACE_KEY      &H00069085
  191. #define EURO72EHB_KEY           &H000690a4
  192. #define EURO72EHBLACE_KEY       &H000690a5
  193. /* These ModeIDs are the scandoubled equivalents of the above,  with the
  194.  * exception of the DualPlayfield modes,  as AA does not allow for scandoubling
  195.  * dualplayfield.
  196.  */
  197. #define EURO72EXTRALORESDBL_KEY     &H00061000
  198. #define EURO72LORESDBL_KEY      &H00069000
  199. #define EURO72PRODUCTDBL_KEY        &H00069020
  200. #define EURO72EXTRALORESHAMDBL_KEY  &H00061800
  201. #define EURO72LORESHAMDBL_KEY       &H00069800
  202. #define EURO72PRODUCTHAMDBL_KEY     &H00069820
  203. #define EURO72EXTRALORESEHBDBL_KEY  &H00061080
  204. #define EURO72LORESEHBDBL_KEY       &H00069080
  205. #define EURO72PRODUCTEHBDBL_KEY     &H000690a0
  206.  
  207.  
  208. #define EURO36_MONITOR_ID       &H00071000
  209.  
  210. /* Euro36 modeids can be ORed with the default modeids a la NTSC and PAL.
  211.  * For example,  Euro36 SuperHires is
  212.  * (EURO36_MONITOR_ID OR SUPER_KEY)
  213.  */
  214.  
  215. #define SUPER72_MONITOR_ID      &H00081000
  216.  
  217. /* Super72 modeids can be ORed with the default modeids a la NTSC and PAL.
  218.  * For example,  Super72 SuperHiresLace (80&H600) is
  219.  * (SUPER72_MONITOR_ID OR SUPERLACE_KEY).
  220.  * The following scandoubled Modes are the exception:
  221.  */
  222. #define SUPER72LORESDBL_KEY     &H00081008
  223. #define SUPER72HIRESDBL_KEY     &H00089008
  224. #define SUPER72SUPERDBL_KEY     &H00089028
  225. #define SUPER72LORESHAMDBL_KEY      &H00081808
  226. #define SUPER72HIRESHAMDBL_KEY      &H00089808
  227. #define SUPER72SUPERHAMDBL_KEY      &H00089828
  228. #define SUPER72LORESEHBDBL_KEY      &H00081088
  229. #define SUPER72HIRESEHBDBL_KEY      &H00089088
  230. #define SUPER72SUPEREHBDBL_KEY      &H000890a8
  231.  
  232.  
  233. /* These monitors and modes were added for the V39 release. */
  234.  
  235. #define DBLNTSC_MONITOR_ID      &H00091000
  236.  
  237. #define DBLNTSCLORES_KEY        &H00091000
  238. #define DBLNTSCLORESFF_KEY      &H00091004
  239. #define DBLNTSCLORESHAM_KEY     &H00091800
  240. #define DBLNTSCLORESHAMFF_KEY       &H00091804
  241. #define DBLNTSCLORESEHB_KEY     &H00091080
  242. #define DBLNTSCLORESEHBFF_KEY       &H00091084
  243. #define DBLNTSCLORESLACE_KEY        &H00091005
  244. #define DBLNTSCLORESHAMLACE_KEY     &H00091805
  245. #define DBLNTSCLORESEHBLACE_KEY     &H00091085
  246. #define DBLNTSCLORESDPF_KEY     &H00091400
  247. #define DBLNTSCLORESDPFFF_KEY       &H00091404
  248. #define DBLNTSCLORESDPFLACE_KEY     &H00091405
  249. #define DBLNTSCLORESDPF2_KEY        &H00091440
  250. #define DBLNTSCLORESDPF2FF_KEY      &H00091444
  251. #define DBLNTSCLORESDPF2LACE_KEY    &H00091445
  252. #define DBLNTSCHIRES_KEY        &H00099000
  253. #define DBLNTSCHIRESFF_KEY      &H00099004
  254. #define DBLNTSCHIRESHAM_KEY     &H00099800
  255. #define DBLNTSCHIRESHAMFF_KEY       &H00099804
  256. #define DBLNTSCHIRESLACE_KEY        &H00099005
  257. #define DBLNTSCHIRESHAMLACE_KEY     &H00099805
  258. #define DBLNTSCHIRESEHB_KEY     &H00099080
  259. #define DBLNTSCHIRESEHBFF_KEY       &H00099084
  260. #define DBLNTSCHIRESEHBLACE_KEY     &H00099085
  261. #define DBLNTSCHIRESDPF_KEY     &H00099400
  262. #define DBLNTSCHIRESDPFFF_KEY       &H00099404
  263. #define DBLNTSCHIRESDPFLACE_KEY     &H00099405
  264. #define DBLNTSCHIRESDPF2_KEY        &H00099440
  265. #define DBLNTSCHIRESDPF2FF_KEY      &H00099444
  266. #define DBLNTSCHIRESDPF2LACE_KEY    &H00099445
  267. #define DBLNTSCEXTRALORES_KEY       &H00091200
  268. #define DBLNTSCEXTRALORESHAM_KEY    &H00091a00
  269. #define DBLNTSCEXTRALORESEHB_KEY    &H00091280
  270. #define DBLNTSCEXTRALORESDPF_KEY    &H00091600
  271. #define DBLNTSCEXTRALORESDPF2_KEY   &H00091640
  272. #define DBLNTSCEXTRALORESFF_KEY     &H00091204
  273. #define DBLNTSCEXTRALORESHAMFF_KEY  &H00091a04
  274. #define DBLNTSCEXTRALORESEHBFF_KEY  &H00091284
  275. #define DBLNTSCEXTRALORESDPFFF_KEY  &H00091604
  276. #define DBLNTSCEXTRALORESDPF2FF_KEY &H00091644
  277. #define DBLNTSCEXTRALORESLACE_KEY   &H00091205
  278. #define DBLNTSCEXTRALORESHAMLACE_KEY    &H00091a05
  279. #define DBLNTSCEXTRALORESEHBLACE_KEY    &H00091285
  280. #define DBLNTSCEXTRALORESDPFLACE_KEY    &H00091605
  281. #define DBLNTSCEXTRALORESDPF2LACE_KEY   &H00091645
  282.  
  283. #define DBLPAL_MONITOR_ID       &H000a1000
  284.  
  285. #define DBLPALLORES_KEY         &H000a1000
  286. #define DBLPALLORESFF_KEY       &H000a1004
  287. #define DBLPALLORESHAM_KEY      &H000a1800
  288. #define DBLPALLORESHAMFF_KEY        &H000a1804
  289. #define DBLPALLORESEHB_KEY      &H000a1080
  290. #define DBLPALLORESEHBFF_KEY        &H000a1084
  291. #define DBLPALLORESLACE_KEY     &H000a1005
  292. #define DBLPALLORESHAMLACE_KEY      &H000a1805
  293. #define DBLPALLORESEHBLACE_KEY      &H000a1085
  294. #define DBLPALLORESDPF_KEY      &H000a1400
  295. #define DBLPALLORESDPFFF_KEY        &H000a1404
  296. #define DBLPALLORESDPFLACE_KEY      &H000a1405
  297. #define DBLPALLORESDPF2_KEY     &H000a1440
  298. #define DBLPALLORESDPF2FF_KEY       &H000a1444
  299. #define DBLPALLORESDPF2LACE_KEY     &H000a1445
  300. #define DBLPALHIRES_KEY         &H000a9000
  301. #define DBLPALHIRESFF_KEY       &H000a9004
  302. #define DBLPALHIRESHAM_KEY      &H000a9800
  303. #define DBLPALHIRESHAMFF_KEY        &H000a9804
  304. #define DBLPALHIRESLACE_KEY     &H000a9005
  305. #define DBLPALHIRESHAMLACE_KEY      &H000a9805
  306. #define DBLPALHIRESEHB_KEY      &H000a9080
  307. #define DBLPALHIRESEHBFF_KEY        &H000a9084
  308. #define DBLPALHIRESEHBLACE_KEY          &H000a9085
  309. #define DBLPALHIRESDPF_KEY      &H000a9400
  310. #define DBLPALHIRESDPFFF_KEY        &H000a9404
  311. #define DBLPALHIRESDPFLACE_KEY      &H000a9405
  312. #define DBLPALHIRESDPF2_KEY     &H000a9440
  313. #define DBLPALHIRESDPF2FF_KEY       &H000a9444
  314. #define DBLPALHIRESDPF2LACE_KEY     &H000a9445
  315. #define DBLPALEXTRALORES_KEY        &H000a1200
  316. #define DBLPALEXTRALORESHAM_KEY     &H000a1a00
  317. #define DBLPALEXTRALORESEHB_KEY     &H000a1280
  318. #define DBLPALEXTRALORESDPF_KEY     &H000a1600
  319. #define DBLPALEXTRALORESDPF2_KEY    &H000a1640
  320. #define DBLPALEXTRALORESFF_KEY      &H000a1204
  321. #define DBLPALEXTRALORESHAMFF_KEY   &H000a1a04
  322. #define DBLPALEXTRALORESEHBFF_KEY   &H000a1284
  323. #define DBLPALEXTRALORESDPFFF_KEY   &H000a1604
  324. #define DBLPALEXTRALORESDPF2FF_KEY  &H000a1644
  325. #define DBLPALEXTRALORESLACE_KEY    &H000a1205
  326. #define DBLPALEXTRALORESHAMLACE_KEY &H000a1a05
  327. #define DBLPALEXTRALORESEHBLACE_KEY &H000a1285
  328. #define DBLPALEXTRALORESDPFLACE_KEY &H000a1605
  329. #define DBLPALEXTRALORESDPF2LACE_KEY    &H000a1645
  330.  
  331.  
  332. /* Use these tags for passing to BestModeID() (V39) */
  333.  
  334. #define SPECIAL_FLAGS (DIPF_IS_DUALPF OR DIPF_IS_PF2PRI OR DIPF_IS_HAM OR DIPF_IS_EXTRAHALFBRITE)
  335.  
  336. #define BIDTAG_DIPFMustHave &H80000001  /* mask of the DIPF_ flags the ModeID must have */
  337.                 /* Default - NULL */
  338. #define BIDTAG_DIPFMustNotHave  &H80000002  /* mask of the DIPF_ flags the ModeID must not have */
  339.                 /* Default - SPECIAL_FLAGS */
  340. #define BIDTAG_ViewPort     &H80000003  /* ViewPort for which a ModeID is sought. */
  341.                 /* Default - NULL */
  342. #define BIDTAG_NominalWidth &H80000004  /* \ together make the aspect ratio and */
  343. #define BIDTAG_NominalHeight    &H80000005  /* / override the vp->Width/Height. */
  344.                 /* Default - SourceID NominalDimensionInfo, 
  345.                  * or vp->DWidth/Height,  or (640 * 200), 
  346.                  * in that preferred order.
  347.                  */
  348. #define BIDTAG_DesiredWidth &H80000006  /* \ Nominal Width and Height of the */
  349. #define BIDTAG_DesiredHeight    &H80000007  /* / returned ModeID. */
  350.                 /* Default - same as Nominal */
  351. #define BIDTAG_Depth        &H80000008  /* ModeID must support this depth. */
  352.                 /* Default - vp->RasInfo->BitMap->Depth or 1 */
  353. #define BIDTAG_MonitorID    &H80000009  /* ModeID must use this monitor. */
  354.                 /* Default - use best monitor available */
  355. #define BIDTAG_SourceID     &H8000000a  /* instead of a ViewPort. */
  356.                 /* Default - VPModeID(vp) if BIDTAG_ViewPort is
  357.                  * specified,  else leave the DIPFMustHave and
  358.                  * DIPFMustNotHave values untouched.
  359.                  */
  360. #define BIDTAG_RedBits      &H8000000b  /* \                */
  361. #define BIDTAG_BlueBits     &H8000000c  /* END STRUCT Match up from the database */
  362. #define BIDTAG_GreenBits    &H8000000d  /* /                */
  363.                 /* Default - 4 */
  364. #define BIDTAG_GfxPrivate   &H8000000e  /* Private */
  365.  
  366. #endif /* GRAPHICS_MODEID_H */
  367.