From: chrisg@cbmvax.commodore.com (Chris Green)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: AGA chipset registers and screenid's
Date: 25 Jan 93 14:10:53 GMT
Reply-To: chrisg@cbmvax.commodore.com (Chris Green)
Organization: Commodore, West Chester, PA

In article <1993Jan24.113304.17393@crash> rtillery@crash.cts.com (Rick Tillery) writes:
>Mark David Simmons (mds@doc.ic.ac.uk) wrote:
>: Please don't flame my curiosity but I would like to know what the new registers/
>: bits used in the AGA chipset and what they're used for (I don't want to have to
>: try to disassemble AmigaDOS 3 to find out - cos I'm curious but lazy 8-).
>: 
>: Also has anyone got a complete list of ScreenID's (names and no.s)?
>: 
>: Please (*BEG*) mail me with the information or just a location on an anonymous
>: FTP site somewhere where you know these things are to be found (I check amiga.
>: physik.unizh.ch and nic.funet.fi every day in the hope...)...
>:
>
>As an interesting observation, the AGA version of DPaint IV has a requester
>that has (among many other things) the DisplayID code for each mode, aspect
>ratio, sweep rate etc.
>
>Until I can get hold of more official info from C=, this is my best source
>of this info (I use it to hand place the correct code into the CAMG chunks
>of my IFFs so they open up the correct screen when viewed with VT).
>

	It's in <graphics/modeid.h>:

#define LORES_KEY			0x00000000
#define HIRES_KEY			0x00008000
#define SUPER_KEY			0x00008020
#define HAM_KEY				0x00000800
#define LORESLACE_KEY			0x00000004
#define HIRESLACE_KEY			0x00008004
#define SUPERLACE_KEY			0x00008024
#define HAMLACE_KEY			0x00000804
#define LORESDPF_KEY			0x00000400
#define HIRESDPF_KEY			0x00008400
#define SUPERDPF_KEY			0x00008420
#define LORESLACEDPF_KEY		0x00000404
#define HIRESLACEDPF_KEY		0x00008404
#define SUPERLACEDPF_KEY		0x00008424
#define LORESDPF2_KEY			0x00000440
#define HIRESDPF2_KEY			0x00008440
#define SUPERDPF2_KEY			0x00008460
#define LORESLACEDPF2_KEY		0x00000444
#define HIRESLACEDPF2_KEY		0x00008444
#define SUPERLACEDPF2_KEY		0x00008464
#define EXTRAHALFBRITE_KEY		0x00000080
#define EXTRAHALFBRITELACE_KEY		0x00000084
/* New for AA ChipSet (V39) */
#define HIRESHAM_KEY			0x00008800
#define SUPERHAM_KEY			0x00008820
#define HIRESEHB_KEY			0x00008080
#define SUPEREHB_KEY			0x000080a0
#define HIRESHAMLACE_KEY		0x00008804
#define SUPERHAMLACE_KEY		0x00008824
#define HIRESEHBLACE_KEY		0x00008084
#define SUPEREHBLACE_KEY		0x000080a4

/* VGA identifiers */

#define VGA_MONITOR_ID	 		0x00031000

#define VGAEXTRALORES_KEY		0x00031004
#define VGALORES_KEY			0x00039004
#define VGAPRODUCT_KEY			0x00039024
#define VGAHAM_KEY			0x00031804
#define VGAEXTRALORESLACE_KEY		0x00031005
#define VGALORESLACE_KEY		0x00039005
#define VGAPRODUCTLACE_KEY		0x00039025
#define VGAHAMLACE_KEY			0x00031805
#define VGAEXTRALORESDPF_KEY		0x00031404
#define VGALORESDPF_KEY			0x00039404
#define VGAPRODUCTDPF_KEY		0x00039424
#define VGAEXTRALORESLACEDPF_KEY	0x00031405
#define VGALORESLACEDPF_KEY		0x00039405
#define VGAPRODUCTLACEDPF_KEY		0x00039425
#define VGAEXTRALORESDPF2_KEY		0x00031444
#define VGALORESDPF2_KEY		0x00039444
#define VGAPRODUCTDPF2_KEY		0x00039464
#define VGAEXTRALORESLACEDPF2_KEY	0x00031445
#define VGALORESLACEDPF2_KEY		0x00039445
#define VGAPRODUCTLACEDPF2_KEY		0x00039465
#define VGAEXTRAHALFBRITE_KEY		0x00031084
#define VGAEXTRAHALFBRITELACE_KEY	0x00031085
/* New for AA ChipSet (V39) */
#define VGAPRODUCTHAM_KEY		0x00039824
#define VGALORESHAM_KEY			0x00039804
#define VGAEXTRALORESHAM_KEY		VGAHAM_KEY
#define VGAPRODUCTHAMLACE_KEY		0x00039825
#define VGALORESHAMLACE_KEY		0x00039805
#define VGAEXTRALORESHAMLACE_KEY	VGAHAMLACE_KEY
#define VGAEXTRALORESEHB_KEY		VGAEXTRAHALFBRITE_KEY
#define VGAEXTRALORESEHBLACE_KEY	VGAEXTRAHALFBRITELACE_KEY
#define VGALORESEHB_KEY			0x00039084
#define VGALORESEHBLACE_KEY		0x00039085
#define VGAEHB_KEY			0x000390a4
#define VGAEHBLACE_KEY			0x000390a5
/* These ModeIDs are the scandoubled equivalents of the above, with the 
 * exception of the DualPlayfield modes, as AA does not allow for scandoubling
 * dualplayfield.
 */
#define VGAEXTRALORESDBL_KEY		0x00031000
#define VGALORESDBL_KEY			0x00039000
#define VGAPRODUCTDBL_KEY		0x00039020
#define VGAEXTRALORESHAMDBL_KEY		0x00031800
#define VGALORESHAMDBL_KEY		0x00039800
#define VGAPRODUCTHAMDBL_KEY		0x00039820
#define VGAEXTRALORESEHBDBL_KEY		0x00031080
#define VGALORESEHBDBL_KEY		0x00039080
#define VGAPRODUCTEHBDBL_KEY		0x000390a0

/* a2024 identifiers */

#define A2024_MONITOR_ID		0x00041000

#define A2024TENHERTZ_KEY		0x00041000
#define A2024FIFTEENHERTZ_KEY		0x00049000

/* prototype identifiers (private) */

#define PROTO_MONITOR_ID		0x00051000


/* These monitors and modes were added for the V38 release. */

#define EURO72_MONITOR_ID		0x00061000

#define EURO72EXTRALORES_KEY		0x00061004
#define EURO72LORES_KEY			0x00069004
#define EURO72PRODUCT_KEY		0x00069024
#define EURO72HAM_KEY			0x00061804
#define EURO72EXTRALORESLACE_KEY	0x00061005
#define EURO72LORESLACE_KEY		0x00069005
#define EURO72PRODUCTLACE_KEY		0x00069025
#define EURO72HAMLACE_KEY		0x00061805
#define EURO72EXTRALORESDPF_KEY		0x00061404
#define EURO72LORESDPF_KEY		0x00069404
#define EURO72PRODUCTDPF_KEY		0x00069424
#define EURO72EXTRALORESLACEDPF_KEY	0x00061405
#define EURO72LORESLACEDPF_KEY		0x00069405
#define EURO72PRODUCTLACEDPF_KEY	0x00069425
#define EURO72EXTRALORESDPF2_KEY	0x00061444
#define EURO72LORESDPF2_KEY		0x00069444
#define EURO72PRODUCTDPF2_KEY		0x00069464
#define EURO72EXTRALORESLACEDPF2_KEY	0x00061445
#define EURO72LORESLACEDPF2_KEY		0x00069445
#define EURO72PRODUCTLACEDPF2_KEY	0x00069465
#define EURO72EXTRAHALFBRITE_KEY	0x00061084
#define EURO72EXTRAHALFBRITELACE_KEY	0x00061085
/* New AA modes (V39) */
#define EURO72PRODUCTHAM_KEY		0x00069824
#define EURO72PRODUCTHAMLACE_KEY	0x00069825
#define EURO72LORESHAM_KEY		0x00069804
#define EURO72LORESHAMLACE_KEY		0x00069805
#define EURO72EXTRALORESHAM_KEY		EURO72HAM_KEY
#define EURO72EXTRALORESHAMLACE_KEY	EURO72HAMLACE_KEY
#define EURO72EXTRALORESEHB_KEY		EURO72EXTRAHALFBRITE_KEY
#define EURO72EXTRALORESEHBLACE_KEY	EURO72EXTRAHALFBRITELACE_KEY
#define EURO72LORESEHB_KEY		0x00069084
#define EURO72LORESEHBLACE_KEY		0x00069085
#define EURO72EHB_KEY			0x000690a4
#define EURO72EHBLACE_KEY		0x000690a5
/* These ModeIDs are the scandoubled equivalents of the above, with the 
 * exception of the DualPlayfield modes, as AA does not allow for scandoubling
 * dualplayfield.
 */
#define EURO72EXTRALORESDBL_KEY		0x00061000
#define EURO72LORESDBL_KEY		0x00069000
#define EURO72PRODUCTDBL_KEY		0x00069020
#define EURO72EXTRALORESHAMDBL_KEY	0x00061800
#define EURO72LORESHAMDBL_KEY		0x00069800
#define EURO72PRODUCTHAMDBL_KEY		0x00069820
#define EURO72EXTRALORESEHBDBL_KEY	0x00061080
#define EURO72LORESEHBDBL_KEY		0x00069080
#define EURO72PRODUCTEHBDBL_KEY		0x000690a0


#define EURO36_MONITOR_ID		0x00071000

/* Euro36 modeids can be ORed with the default modeids a la NTSC and PAL.
 * For example, Euro36 SuperHires is
 * (EURO36_MONITOR_ID | SUPER_KEY)
 */

#define SUPER72_MONITOR_ID		0x00081000

/* Super72 modeids can be ORed with the default modeids a la NTSC and PAL.
 * For example, Super72 SuperHiresLace (800x600) is
 * (SUPER72_MONITOR_ID | SUPERLACE_KEY).
 * The following scandoubled Modes are the exception:
 */
#define SUPER72LORESDBL_KEY		0x00081008
#define SUPER72HIRESDBL_KEY		0x00089008
#define SUPER72SUPERDBL_KEY		0x00089028
#define SUPER72LORESHAMDBL_KEY		0x00081808
#define SUPER72HIRESHAMDBL_KEY		0x00089808
#define SUPER72SUPERHAMDBL_KEY		0x00089828
#define SUPER72LORESEHBDBL_KEY		0x00081088
#define SUPER72HIRESEHBDBL_KEY		0x00089088
#define SUPER72SUPEREHBDBL_KEY		0x000890a8


/* These monitors and modes were added for the V39 release. */

#define DBLNTSC_MONITOR_ID		0x00091000

#define DBLNTSCLORES_KEY		0x00091000
#define DBLNTSCLORESFF_KEY		0x00091004
#define DBLNTSCLORESHAM_KEY		0x00091800
#define DBLNTSCLORESHAMFF_KEY		0x00091804
#define DBLNTSCLORESEHB_KEY		0x00091080
#define DBLNTSCLORESEHBFF_KEY		0x00091084
#define DBLNTSCLORESLACE_KEY		0x00091005
#define DBLNTSCLORESHAMLACE_KEY		0x00091805
#define DBLNTSCLORESEHBLACE_KEY		0x00091085
#define DBLNTSCLORESDPF_KEY		0x00091400
#define DBLNTSCLORESDPFLACE_KEY		0x00091404
#define DBLNTSCLORESDPF2_KEY		0x00091440
#define DBLNTSCLORESDPF2LACE_KEY	0x00091444
#define DBLNTSCHIRES_KEY		0x00099000
#define DBLNTSCHIRESFF_KEY		0x00099004
#define DBLNTSCHIRESHAM_KEY		0x00099800
#define DBLNTSCHIRESHAMFF_KEY		0x00099804
#define DBLNTSCHIRESLACE_KEY		0x00099005
#define DBLNTSCHIRESHAMLACE_KEY		0x00099805
#define DBLNTSCHIRESEHB_KEY		0x00099080
#define DBLNTSCHIRESEHBFF_KEY		0x00099084
#define DBLNTSCHIRESEHBLACE_KEY		0x00099085
#define DBLNTSCHIRESDPF_KEY		0x00099400
#define DBLNTSCHIRESDPFLACE_KEY		0x00099404
#define DBLNTSCHIRESDPF2_KEY		0x00099440
#define DBLNTSCHIRESDPF2LACE_KEY	0x00099444

#define DBLPAL_MONITOR_ID		0x000a1000

#define DBLPALLORES_KEY			0x000a1000
#define DBLPALLORESFF_KEY		0x000a1004
#define DBLPALLORESHAM_KEY		0x000a1800
#define DBLPALLORESHAMFF_KEY		0x000a1804
#define DBLPALLORESEHB_KEY		0x000a1080
#define DBLPALLORESEHBFF_KEY		0x000a1084
#define DBLPALLORESLACE_KEY		0x000a1005
#define DBLPALLORESHAMLACE_KEY		0x000a1805
#define DBLPALLORESEHBLACE_KEY		0x000a1085
#define DBLPALLORESDPF_KEY		0x000a1400
#define DBLPALLORESDPFLACE_KEY		0x000a1404
#define DBLPALLORESDPF2_KEY		0x000a1440
#define DBLPALLORESDPF2LACE_KEY		0x000a1444
#define DBLPALHIRES_KEY			0x000a9000
#define DBLPALHIRESFF_KEY		0x000a9004
#define DBLPALHIRESHAM_KEY		0x000a9800
#define DBLPALHIRESHAMFF_KEY		0x000a9804
#define DBLPALHIRESLACE_KEY		0x000a9005
#define DBLPALHIRESHAMLACE_KEY		0x000a9805
#define DBLPALHIRESEHB_KEY		0x000a9080
#define DBLPALHIRESEHBFF_KEY		0x000a9084
#define DBLPALHIRESEHBLACE_KEY 		0x000a9085
#define DBLPALHIRESDPF_KEY		0x000a9400
#define DBLPALHIRESDPFLACE_KEY		0x000a9404
#define DBLPALHIRESDPF2_KEY		0x000a9440
#define DBLPALHIRESDPF2LACE_KEY		0x000a9444

-- 
*-------------------------------------------*---------------------------*
|Chris Green - Graphics Software Engineer   - chrisg@commodore.COM      f
|                  Commodore-Amiga          - uunet!cbmvax!chrisg       n
|My opinions are my own, and do not         - icantforgettheimpression  o
|necessarily represent those of my employer.- youmadeyouleftaholeinthe  r
|"A screaming comes across the sky..."      - backofmyhead              d
*-------------------------------------------*---------------------------*
Newsgroups: comp.sys.amiga.programmer