home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / M2V11-1.LHA / modula / amiga / ModeID.def < prev    next >
Encoding:
Text File  |  1993-11-03  |  13.0 KB  |  377 lines

  1. DEFINITION FOR C MODULE ModeID ;
  2.  
  3. FROM Graphics IMPORT DIPF_IS_DUALPF, DIPF_IS_PF2PRI, DIPF_IS_HAM,
  4.              DIPF_IS_EXTRAHALFBRITE ;
  5.  
  6. CONST
  7.   INVALID_ID = -1 ;
  8.  
  9. (* With all the new modes that are available under V38 and V39, it is highly  *)
  10. (* recommended that you use either the asl.library screenmode requester,      *)
  11. (* and/or the V39 graphics.library function BestModeIDA().              *)
  12. (*                                          *)
  13. (* DO NOT interpret the any of the bits in the ModeID for its meaning. For    *)
  14. (* example, do not interpret bit 3 (0x4) as meaning the ModeID is interlaced. *)
  15. (* Instead, use GetDisplayInfoData() with DTAG_DISP, and examine the DIPF_... *)
  16. (* flags to determine a ModeID's characteristics. The only exception to          *)
  17. (* this rule is that bit 7 (0x80) will always mean the ModeID is          *)
  18. (* ExtraHalfBright, and bit 11 (0x800) will always mean the ModeID is HAM.    *)
  19.  
  20.   (* normal identifiers *)
  21.  
  22.   MONITOR_ID_MASK        = 0FFFF1000H ;
  23.  
  24.   DEFAULT_MONITOR_ID        = 000000000H ;
  25.   NTSC_MONITOR_ID        = 000011000H ;
  26.   PAL_MONITOR_ID        = 000021000H ;
  27.  
  28. (* the following 22 composite keys are for Modes on the default Monitor. *)
  29. (* NTSC & PAL "flavors" of these particular keys may be made by or'ing     *)
  30. (* the NTSC or PAL MONITOR_ID with the desired MODE_KEY...         *)
  31. (*                                     *)
  32. (* For example, to specifically open a PAL HAM interlaced ViewPort     *)
  33. (* (or intuition screen), you would use the modeid of             *)
  34. (* (PAL_MONITOR_ID | HAMLACE_KEY)                     *)
  35.  
  36.   LORES_KEY            = 000000000H ;
  37.   HIRES_KEY            = 000008000H ;
  38.   SUPER_KEY            = 000008020H ;
  39.   HAM_KEY            = 000000800H ;
  40.   LORESLACE_KEY            = 000000004H ;
  41.   HIRESLACE_KEY            = 000008004H ;
  42.   SUPERLACE_KEY            = 000008024H ;
  43.   HAMLACE_KEY            = 000000804H ;
  44.   LORESDPF_KEY            = 000000400H ;
  45.   HIRESDPF_KEY            = 000008400H ;
  46.   SUPERDPF_KEY            = 000008420H ;
  47.   LORESLACEDPF_KEY        = 000000404H ;
  48.   HIRESLACEDPF_KEY        = 000008404H ;
  49.   SUPERLACEDPF_KEY        = 000008424H ;
  50.   LORESDPF2_KEY            = 000000440H ;
  51.   HIRESDPF2_KEY            = 000008440H ;
  52.   SUPERDPF2_KEY            = 000008460H ;
  53.   LORESLACEDPF2_KEY        = 000000444H ;
  54.   HIRESLACEDPF2_KEY        = 000008444H ;
  55.   SUPERLACEDPF2_KEY        = 000008464H ;
  56.   EXTRAHALFBRITE_KEY        = 000000080H ;
  57.   EXTRAHALFBRITELACE_KEY    = 000000084H ;
  58.  
  59.   (* New for AA ChipSet (V39) *)
  60.  
  61.   HIRESHAM_KEY            = 000008800H ;
  62.   SUPERHAM_KEY            = 000008820H ;
  63.   HIRESEHB_KEY            = 000008080H ;
  64.   SUPEREHB_KEY            = 0000080A0H ;
  65.   HIRESHAMLACE_KEY        = 000008804H ;
  66.   SUPERHAMLACE_KEY        = 000008824H ;
  67.   HIRESEHBLACE_KEY        = 000008084H ;
  68.   SUPEREHBLACE_KEY        = 0000080A4H ;
  69.  
  70.   (* Added for V40 - may be useful modes for some games or animations. *)
  71.  
  72.   LORESSDBL_KEY            = 000000008H ;
  73.   LORESHAMSDBL_KEY        = 000000808H ;
  74.   LORESEHBSDBL_KEY        = 000000088H ;
  75.   HIRESHAMSDBL_KEY        = 000008808H ;
  76.  
  77.  
  78.   (* VGA identifiers *)
  79.  
  80.   VGA_MONITOR_ID        = 000031000H ;
  81.  
  82.   VGAEXTRALORES_KEY        = 000031004H ;
  83.   VGALORES_KEY            = 000039004H ;
  84.   VGAPRODUCT_KEY        = 000039024H ;
  85.   VGAHAM_KEY            = 000031804H ;
  86.   VGAEXTRALORESLACE_KEY        = 000031005H ;
  87.   VGALORESLACE_KEY        = 000039005H ;
  88.   VGAPRODUCTLACE_KEY        = 000039025H ;
  89.   VGAHAMLACE_KEY        = 000031805H ;
  90.   VGAEXTRALORESDPF_KEY        = 000031404H ;
  91.   VGALORESDPF_KEY        = 000039404H ;
  92.   VGAPRODUCTDPF_KEY        = 000039424H ;
  93.   VGAEXTRALORESLACEDPF_KEY    = 000031405H ;
  94.   VGALORESLACEDPF_KEY        = 000039405H ;
  95.   VGAPRODUCTLACEDPF_KEY        = 000039425H ;
  96.   VGAEXTRALORESDPF2_KEY        = 000031444H ;
  97.   VGALORESDPF2_KEY        = 000039444H ;
  98.   VGAPRODUCTDPF2_KEY        = 000039464H ;
  99.   VGAEXTRALORESLACEDPF2_KEY    = 000031445H ;
  100.   VGALORESLACEDPF2_KEY        = 000039445H ;
  101.   VGAPRODUCTLACEDPF2_KEY    = 000039465H ;
  102.   VGAEXTRAHALFBRITE_KEY        = 000031084H ;
  103.   VGAEXTRAHALFBRITELACE_KEY    = 000031085H ;
  104.  
  105.   (* New for AA ChipSet (V39) *)
  106.  
  107.   VGAPRODUCTHAM_KEY        = 000039824H ;
  108.   VGALORESHAM_KEY        = 000039804H ;
  109.   VGAEXTRALORESHAM_KEY        = VGAHAM_KEY ;
  110.   VGAPRODUCTHAMLACE_KEY        = 000039825H ;
  111.   VGALORESHAMLACE_KEY        = 000039805H ;
  112.   VGAEXTRALORESHAMLACE_KEY    = VGAHAMLACE_KEY ;
  113.   VGAEXTRALORESEHB_KEY        = VGAEXTRAHALFBRITE_KEY ;
  114.   VGAEXTRALORESEHBLACE_KEY    = VGAEXTRAHALFBRITELACE_KEY ;
  115.   VGALORESEHB_KEY        = 000039084H ;
  116.   VGALORESEHBLACE_KEY        = 000039085H ;
  117.   VGAEHB_KEY            = 0000390A4H ;
  118.   VGAEHBLACE_KEY        = 0000390A5H ;
  119.  
  120. (* These ModeIDs are the scandoubled equivalents of the above, with the *)
  121. (* exception of the DualPlayfield modes, as AA does not allow for    *)
  122. (* scandoubling dualplayfield.                        *)
  123.  
  124.   VGAEXTRALORESDBL_KEY        = 000031000H ;
  125.   VGALORESDBL_KEY        = 000039000H ;
  126.   VGAPRODUCTDBL_KEY        = 000039020H ;
  127.   VGAEXTRALORESHAMDBL_KEY    = 000031800H ;
  128.   VGALORESHAMDBL_KEY        = 000039800H ;
  129.   VGAPRODUCTHAMDBL_KEY        = 000039820H ;
  130.   VGAEXTRALORESEHBDBL_KEY    = 000031080H ;
  131.   VGALORESEHBDBL_KEY        = 000039080H ;
  132.   VGAPRODUCTEHBDBL_KEY        = 0000390A0H ;
  133.  
  134.   (* a2024 identifiers *)
  135.  
  136.   A2024_MONITOR_ID        = 000041000H ;
  137.  
  138.   A2024TENHERTZ_KEY        = 000041000H ;
  139.   A2024FIFTEENHERTZ_KEY        = 000049000H ;
  140.  
  141.   (* prototype identifiers (private) *)
  142.  
  143.   PROTO_MONITOR_ID        = 000051000H ;
  144.  
  145.  
  146.   (* These monitors and modes were added for the V38 release. *)
  147.  
  148.   EURO72_MONITOR_ID        = 000061000H ;
  149.  
  150.   EURO72EXTRALORES_KEY        = 000061004H ;
  151.   EURO72LORES_KEY        = 000069004H ;
  152.   EURO72PRODUCT_KEY        = 000069024H ;
  153.   EURO72HAM_KEY            = 000061804H ;
  154.   EURO72EXTRALORESLACE_KEY    = 000061005H ;
  155.   EURO72LORESLACE_KEY        = 000069005H ;
  156.   EURO72PRODUCTLACE_KEY        = 000069025H ;
  157.   EURO72HAMLACE_KEY        = 000061805H ;
  158.   EURO72EXTRALORESDPF_KEY    = 000061404H ;
  159.   EURO72LORESDPF_KEY        = 000069404H ;
  160.   EURO72PRODUCTDPF_KEY        = 000069424H ;
  161.   EURO72EXTRALORESLACEDPF_KEY    = 000061405H ;
  162.   EURO72LORESLACEDPF_KEY    = 000069405H ;
  163.   EURO72PRODUCTLACEDPF_KEY    = 000069425H ;
  164.   EURO72EXTRALORESDPF2_KEY    = 000061444H ;
  165.   EURO72LORESDPF2_KEY        = 000069444H ;
  166.   EURO72PRODUCTDPF2_KEY        = 000069464H ;
  167.   EURO72EXTRALORESLACEDPF2_KEY    = 000061445H ;
  168.   EURO72LORESLACEDPF2_KEY    = 000069445H ;
  169.   EURO72PRODUCTLACEDPF2_KEY    = 000069465H ;
  170.   EURO72EXTRAHALFBRITE_KEY    = 000061084H ;
  171.   EURO72EXTRAHALFBRITELACE_KEY    = 000061085H ;
  172.  
  173.   (* New AA modes (V39) *)
  174.  
  175.   EURO72PRODUCTHAM_KEY        = 000069824H ;
  176.   EURO72PRODUCTHAMLACE_KEY    = 000069825H ;
  177.   EURO72LORESHAM_KEY        = 000069804H ;
  178.   EURO72LORESHAMLACE_KEY    = 000069805H ;
  179.   EURO72EXTRALORESHAM_KEY    = EURO72HAM_KEY ;
  180.   EURO72EXTRALORESHAMLACE_KEY    = EURO72HAMLACE_KEY ;
  181.   EURO72EXTRALORESEHB_KEY    = EURO72EXTRAHALFBRITE_KEY ;
  182.   EURO72EXTRALORESEHBLACE_KEY    = EURO72EXTRAHALFBRITELACE_KEY ;
  183.   EURO72LORESEHB_KEY        = 000069084H ;
  184.   EURO72LORESEHBLACE_KEY    = 000069085H ;
  185.   EURO72EHB_KEY            = 0000690A4H ;
  186.   EURO72EHBLACE_KEY        = 0000690A5H ;
  187.  
  188. (* These ModeIDs are the scandoubled equivalents of the above, with the    *)
  189. (* exception of the DualPlayfield modes, as AA does not allow for    *)
  190. (* scandoubling dualplayfield.                        *)
  191.  
  192.   EURO72EXTRALORESDBL_KEY    = 000061000H ;
  193.   EURO72LORESDBL_KEY        = 000069000H ;
  194.   EURO72PRODUCTDBL_KEY        = 000069020H ;
  195.   EURO72EXTRALORESHAMDBL_KEY    = 000061800H ;
  196.   EURO72LORESHAMDBL_KEY        = 000069800H ;
  197.   EURO72PRODUCTHAMDBL_KEY    = 000069820H ;
  198.   EURO72EXTRALORESEHBDBL_KEY    = 000061080H ;
  199.   EURO72LORESEHBDBL_KEY        = 000069080H ;
  200.   EURO72PRODUCTEHBDBL_KEY    = 0000690A0H ;
  201.  
  202.  
  203.   EURO36_MONITOR_ID        = 000071000H ;
  204.  
  205. (* Euro36 modeids can be ORed with the default modeids a la NTSC and PAL. *)
  206. (* For example, Euro36 SuperHires is                      *)
  207. (* (EURO36_MONITOR_ID | SUPER_KEY)                      *)
  208.  
  209.   SUPER72_MONITOR_ID        = 000081000H ;
  210.  
  211. (* Super72 modeids can be ORed with the default modeids a la NTSC and PAL. *)
  212. (* For example, Super72 SuperHiresLace (800x600) is               *)
  213. (* (SUPER72_MONITOR_ID | SUPERLACE_KEY).                   *)
  214. (* The following scandoubled Modes are the exception:               *)
  215.  
  216.   SUPER72LORESDBL_KEY        = 000081008H ;
  217.   SUPER72HIRESDBL_KEY        = 000089008H ;
  218.   SUPER72SUPERDBL_KEY        = 000089028H ;
  219.   SUPER72LORESHAMDBL_KEY    = 000081808H ;
  220.   SUPER72HIRESHAMDBL_KEY    = 000089808H ;
  221.   SUPER72SUPERHAMDBL_KEY    = 000089828H ;
  222.   SUPER72LORESEHBDBL_KEY    = 000081088H ;
  223.   SUPER72HIRESEHBDBL_KEY    = 000089088H ;
  224.   SUPER72SUPEREHBDBL_KEY    = 0000890A8H ;
  225.  
  226.  
  227.   (* These monitors and modes were added for the V39 release. *)
  228.  
  229.   DBLNTSC_MONITOR_ID        = 000091000H ;
  230.  
  231.   DBLNTSCLORES_KEY        = 000091000H ;
  232.   DBLNTSCLORESFF_KEY        = 000091004H ;
  233.   DBLNTSCLORESHAM_KEY        = 000091800H ;
  234.   DBLNTSCLORESHAMFF_KEY        = 000091804H ;
  235.   DBLNTSCLORESEHB_KEY        = 000091080H ;
  236.   DBLNTSCLORESEHBFF_KEY        = 000091084H ;
  237.   DBLNTSCLORESLACE_KEY        = 000091005H ;
  238.   DBLNTSCLORESHAMLACE_KEY    = 000091805H ;
  239.   DBLNTSCLORESEHBLACE_KEY    = 000091085H ;
  240.   DBLNTSCLORESDPF_KEY        = 000091400H ;
  241.   DBLNTSCLORESDPFFF_KEY        = 000091404H ;
  242.   DBLNTSCLORESDPFLACE_KEY    = 000091405H ;
  243.   DBLNTSCLORESDPF2_KEY        = 000091440H ;
  244.   DBLNTSCLORESDPF2FF_KEY    = 000091444H ;
  245.   DBLNTSCLORESDPF2LACE_KEY    = 000091445H ;
  246.   DBLNTSCHIRES_KEY        = 000099000H ;
  247.   DBLNTSCHIRESFF_KEY        = 000099004H ;
  248.   DBLNTSCHIRESHAM_KEY        = 000099800H ;
  249.   DBLNTSCHIRESHAMFF_KEY        = 000099804H ;
  250.   DBLNTSCHIRESLACE_KEY        = 000099005H ;
  251.   DBLNTSCHIRESHAMLACE_KEY    = 000099805H ;
  252.   DBLNTSCHIRESEHB_KEY        = 000099080H ;
  253.   DBLNTSCHIRESEHBFF_KEY        = 000099084H ;
  254.   DBLNTSCHIRESEHBLACE_KEY    = 000099085H ;
  255.   DBLNTSCHIRESDPF_KEY        = 000099400H ;
  256.   DBLNTSCHIRESDPFFF_KEY        = 000099404H ;
  257.   DBLNTSCHIRESDPFLACE_KEY    = 000099405H ;
  258.   DBLNTSCHIRESDPF2_KEY        = 000099440H ;
  259.   DBLNTSCHIRESDPF2FF_KEY    = 000099444H ;
  260.   DBLNTSCHIRESDPF2LACE_KEY    = 000099445H ;
  261.   DBLNTSCEXTRALORES_KEY        = 000091200H ;
  262.   DBLNTSCEXTRALORESHAM_KEY    = 000091A00H ;
  263.   DBLNTSCEXTRALORESEHB_KEY    = 000091280H ;
  264.   DBLNTSCEXTRALORESDPF_KEY    = 000091600H ;
  265.   DBLNTSCEXTRALORESDPF2_KEY    = 000091640H ;
  266.   DBLNTSCEXTRALORESFF_KEY    = 000091204H ;
  267.   DBLNTSCEXTRALORESHAMFF_KEY    = 000091A04H ;
  268.   DBLNTSCEXTRALORESEHBFF_KEY    = 000091284H ;
  269.   DBLNTSCEXTRALORESDPFFF_KEY    = 000091604H ;
  270.   DBLNTSCEXTRALORESDPF2FF_KEY    = 000091644H ;
  271.   DBLNTSCEXTRALORESLACE_KEY    = 000091205H ;
  272.   DBLNTSCEXTRALORESHAMLACE_KEY    = 000091A05H ;
  273.   DBLNTSCEXTRALORESEHBLACE_KEY    = 000091285H ;
  274.   DBLNTSCEXTRALORESDPFLACE_KEY    = 000091605H ;
  275.   DBLNTSCEXTRALORESDPF2LACE_KEY    = 000091645H ;
  276.  
  277.   DBLPAL_MONITOR_ID        = 0000A1000H ;
  278.  
  279.   DBLPALLORES_KEY        = 0000A1000H ;
  280.   DBLPALLORESFF_KEY        = 0000A1004H ;
  281.   DBLPALLORESHAM_KEY        = 0000A1800H ;
  282.   DBLPALLORESHAMFF_KEY        = 0000A1804H ;
  283.   DBLPALLORESEHB_KEY        = 0000A1080H ;
  284.   DBLPALLORESEHBFF_KEY        = 0000A1084H ;
  285.   DBLPALLORESLACE_KEY        = 0000A1005H ;
  286.   DBLPALLORESHAMLACE_KEY    = 0000A1805H ;
  287.   DBLPALLORESEHBLACE_KEY    = 0000A1085H ;
  288.   DBLPALLORESDPF_KEY        = 0000A1400H ;
  289.   DBLPALLORESDPFFF_KEY        = 0000A1404H ;
  290.   DBLPALLORESDPFLACE_KEY    = 0000A1405H ;
  291.   DBLPALLORESDPF2_KEY        = 0000A1440H ;
  292.   DBLPALLORESDPF2FF_KEY        = 0000A1444H ;
  293.   DBLPALLORESDPF2LACE_KEY    = 0000A1445H ;
  294.   DBLPALHIRES_KEY        = 0000A9000H ;
  295.   DBLPALHIRESFF_KEY        = 0000A9004H ;
  296.   DBLPALHIRESHAM_KEY        = 0000A9800H ;
  297.   DBLPALHIRESHAMFF_KEY        = 0000A9804H ;
  298.   DBLPALHIRESLACE_KEY        = 0000A9005H ;
  299.   DBLPALHIRESHAMLACE_KEY    = 0000A9805H ;
  300.   DBLPALHIRESEHB_KEY        = 0000A9080H ;
  301.   DBLPALHIRESEHBFF_KEY        = 0000A9084H ;
  302.   DBLPALHIRESEHBLACE_KEY    = 0000A9085H ;
  303.   DBLPALHIRESDPF_KEY        = 0000A9400H ;
  304.   DBLPALHIRESDPFFF_KEY        = 0000A9404H ;
  305.   DBLPALHIRESDPFLACE_KEY    = 0000A9405H ;
  306.   DBLPALHIRESDPF2_KEY        = 0000A9440H ;
  307.   DBLPALHIRESDPF2FF_KEY        = 0000A9444H ;
  308.   DBLPALHIRESDPF2LACE_KEY    = 0000A9445H ;
  309.   DBLPALEXTRALORES_KEY        = 0000A1200H ;
  310.   DBLPALEXTRALORESHAM_KEY    = 0000A1A00H ;
  311.   DBLPALEXTRALORESEHB_KEY    = 0000A1280H ;
  312.   DBLPALEXTRALORESDPF_KEY    = 0000A1600H ;
  313.   DBLPALEXTRALORESDPF2_KEY    = 0000A1640H ;
  314.   DBLPALEXTRALORESFF_KEY    = 0000A1204H ;
  315.   DBLPALEXTRALORESHAMFF_KEY    = 0000A1A04H ;
  316.   DBLPALEXTRALORESEHBFF_KEY    = 0000A1284H ;
  317.   DBLPALEXTRALORESDPFFF_KEY    = 0000A1604H ;
  318.   DBLPALEXTRALORESDPF2FF_KEY    = 0000A1644H ;
  319.   DBLPALEXTRALORESLACE_KEY    = 0000A1205H ;
  320.   DBLPALEXTRALORESHAMLACE_KEY    = 0000A1A05H ;
  321.   DBLPALEXTRALORESEHBLACE_KEY    = 0000A1285H ;
  322.   DBLPALEXTRALORESDPFLACE_KEY    = 0000A1605H ;
  323.   DBLPALEXTRALORESDPF2LACE_KEY    = 0000A1645H ;
  324.  
  325.  
  326.   (* Use these tags for passing to BestModeID() (V39) *)
  327.  
  328.   SPECIAL_FLAGS = DIPF_IS_DUALPF+DIPF_IS_PF2PRI+DIPF_IS_HAM+
  329.             DIPF_IS_EXTRAHALFBRITE ;
  330.  
  331.   BIDTAG_DIPFMustHave    = 080000001H ;
  332.                   (* mask of the DIPF_ flags the ID must have   *)
  333.                 (* Default - NULL                  *)
  334.  
  335.   BIDTAG_DIPFMustNotHave = 080000002H ;
  336.                   (* mask of the DIPF_flags the ID must not have*)
  337.                 (* Default - SPECIAL_FLAGS              *)
  338.  
  339.   BIDTAG_ViewPort    = 080000003H ;
  340.                   (* ViewPort for which a ModeID is sought.     *)
  341.                 (* Default - NULL *)
  342.  
  343.   BIDTAG_NominalWidth    = 080000004H ;    (* \ together make the aspect ratio *)
  344.                       (*  } and                *)
  345.   BIDTAG_NominalHeight    = 080000005H ;    (* / override the vp->Width/Height. *)
  346.  
  347.                 (* Default - SourceID NominalDimensionInfo, *)
  348.                 (* or vp->DWidth/Height, or (640 * 200),    *)
  349.                 (* in that preferred order.            *)
  350.  
  351.   BIDTAG_DesiredWidth    = 080000006H ;    (* \ Nominal Width and Height of the *)
  352.   BIDTAG_DesiredHeight    = 080000007H ;  (* / returned ModeID.             *)
  353.                     (* Default - same as Nominal         *)
  354.  
  355.   BIDTAG_Depth        = 080000008H ;
  356.                   (* ModeID must support this depth.         *)
  357.                 (* Default - vp->RasInfo->BitMap->Depth or 1 *)
  358.  
  359.   BIDTAG_MonitorID    = 080000009H ;
  360.                   (* ModeID must use this monitor.    *)
  361.                 (* Default - use best monitor available *)
  362.  
  363.   BIDTAG_SourceID    = 08000000AH ;
  364.                   (* instead of a ViewPort.              *)
  365.                 (* Default - VPModeID(vp) if BIDTAG_ViewPort  *)
  366.                 (* is specified, else leave the DIPFMustHave  *)
  367.                 (* and DIPFMustNotHave values untouched.      *)
  368.  
  369.   BIDTAG_RedBits    = 08000000BH ;    (* \                  *)
  370.   BIDTAG_BlueBits    = 08000000CH ;    (*  } Match up from the database *)
  371.   BIDTAG_GreenBits    = 08000000DH ;    (* /                 *)
  372.                     (* Default - 4             *)
  373.  
  374.   BIDTAG_GfxPrivate    = 08000000EH ;    (* Private *)
  375.  
  376. END ModeID.
  377.