;****************************************************************************
;*
;*						MegaGraph Graphics Library
;*
;*                  Copyright (C) 1993 Kendall Bennett.
;*							All rights reserved.
;*
;* Filename:	$RCSfile: mgraph.equ $
;* Version:		$Revision: 1.1 $
;*
;* Language:	80386 Assembler
;* Environment:	IBM PC (MS DOS)
;*
;* Description:	All the equates and = directives used by the MegaGraph
;*				graphic library assembly modules are contained within this
;*				file for use by the various assembly modules.
;*
;* $Id: mgraph.equ 1.1 1993/03/03 10:45:29 kjb Exp $
;*
;* Revision History:
;* -----------------
;*
;* $Log: mgraph.equ $
;* Revision 1.1  1993/03/03  10:45:29  kjb
;* Initial revision
;*
;****************************************************************************

STRUC	RectStruc
		left		dw	?	; left co-ord of viewport
		top			dw	?	; top co-ord of viewport
		right		dw	?	; right co-ord of viewport
		bottom		dw	?	; bottom co-ord of viewport
ENDS	RectStruc

STRUC	paletteEnt
		red			db	?
		green		db	?
		blue		db	?
ENDS	paletteEnt

pal					EQU	(paletteEnt PTR es:bx)
pal_dssi			EQU (paletteEnt PTR ds:si)

; Graphics subsystem types supported

grDETECT			=	0	; Auto detect the driver
grCGA				=	1	; Standard CGA
grMCGA				=	2	; Standard MCGA
grEGA				=	3	; Standard EGA
grEGA64				=	4	; EGA with 64kb RAM
grEGAMONO			=	5	; EGA with Mono monitor
grEGA64MONO			=	6	; EGA with Mono monitor (64kb ram)
grHERCMONO			=	7	; Standard Hercules
grVGA				=	8	; Standard VGA
grSVGA				=   9	; VESA Super VGA
grSVGA_ATI			=	10	; ATI Technologies SuperVGA
grSVGA_AHEADA		=	11	; AHEAD A SuperVGA
grSVGA_AHEADB		=	12	; AHEAD B SuperVGA
grSVGA_CHIPS		=	13	; Chips & Technologies SuperVGA
grSVGA_EVEREX		=	14	; Everex SuperVGA
grSVGA_GENOA		=	15	; Genoa Systems SuperVGA (GVGA chipset)
grSVGA_OAKTECH		=	16	; OAK Technologies SuperVGA
grSVGA_PARADISE		=	17	; Paradise SuperVGA
grSVGA_TRIDENT88	=	18	; Trident 8800 SuperVGA
grSVGA_TRIDENT89	=	19	; Trident 8900 SuperVGA
grSVGA_VIDEO7		=	20	; Video7 SuperVGA
grSVGA_ET3000		=	21	; Tseng Labs ET3000 SuperVGA
grSVGA_ET4000		=	22	; Tseng Labs ET4000 SuperVGA
grSVGA_NCR			=	23	; NCR 77C22E SuperVGA
grSVGA_S3			=	24	; S3 SuperVGA
grSVGA_ACUMOS		=	25	; Acumos SuperVGA
grSVGA_AL2101		=	26	; Advance Logic AL2101 SuperVGA
grSVGA_MXIC			=	27	; MXIC 68010 SuperVGA
grSVGA_P2000		=	28	; Primus 2000 SuperVGA
grSVGA_RT3106		=	29	; RealTek 3106 SuperVGA
grSVGA_CIRRUS54		=	30	; Cirrus 5422 SuperVGA

; Internal chip ID numbers. These will be used internally by the video
; device drivers to ensure that the code will work correctly for each
; different chip ID for a particular type of video card.

grATI_18800			= 	0	; ATI 18800 chip
grATI_18800_1		=	1	; ATI 18800-1 chip
grATI_28800_2		=	2	; ATI 28800-2 chip
grATI_28800_4		=	3	; ATI 28800-4 chip
grATI_28800_5		=	4	; ATI 28800-5 chip

grCHIPS_82c451		=	0	; C&T 82c451 chip
grCHIPS_82c452		=	1	; C&T 82c452 chip
grCHIPS_82c453		=	2	; C&T 82c453 chip

grEVEREX_EvNR		=	0	; Everex normal chipset
grEVEREX_Ev236		=	1	; Everex Ev236 chipset (Trident)
grEVEREX_Ev620		=	2	; Everex Ev620 chipset (Trident)
grEVEREX_Ev629		=	3	; Everex Ev629 chipset (ET4000)
grEVEREX_Ev673		=	4	; Everex Ev673 chipset (Trident)
grEVEREX_Ev678		=	5	; Everex Ev678 chipset (Trident)

grOAK_037C			=	0	; Oak OTI-037C chipset
grOAK_067			=	1	; Oak OTI-067 chipset
grOAK_077			=	2	; Oak OTI-077 chipset

grPARA_PVGA1A		=	0	; Paradise PVGA1A chipset
grPARA_90C00		=	1	; Paradise WD90C00 chipset
grPARA_90C10		=	2	; Paradise WD90C10 chipset
grPARA_90C11		=	3	; Paradise WD90C11 chipset
grPARA_90C30		=	4	; Paradise WD90C30 chipset
grPARA_90C31		=	5	; Paradise WD90C31 chipset

grET4000_MEGAEVA	=	0	; Standard Tseng MegaEva/2 ET4000 board
grET4000_SPEEDSTAR	=	1	; Diamond Speedstar 24 ET4000 board (24 bit)
grET4000_GENOA		=	2	; Genoa 7900 ET4000 board (24 bit)

grS3_911			=	0	; S3 86c911 SuperVGA chip
grS3_924			=	1	; S3 86c924 SuperVGA chip
grS3_801_805		=	2	; S3 86c801/86c805 SuperVGA chip
grS3_928			=	4	; S3 86c928 SuperVGA chip

grCIRRUS_5422		=	0	; Cirrus 5422 SuperVGA chip

; Video DAC types

grVGADAC			=	0	; Normal VGA DAC
grHCDAC				=	1	; HiColor 15 bit DAC
grHC2DAC			=	2	; HiColor 16 bit DAC
grTCDAC				=	3	; TrueColor 24 bit DAC

; Number of colors is current video mode

gr16Color			=	0	; 16 color video mode
gr256Color			=	1	; 256 color video mode
gr32kColor			=	2	; 32k color video mode
gr16mColor			=	3	; 16m color video mode

; Graphics modes supported.

grEGA_320x200x16	= 	0	; 320x200 16 color 8 page
grEGA_640x200x16	= 	1	; 640x200 16 color 4 page
grEGA_640x350x16	= 	2	; 640x350 16 color 2 page

grVGA_640x400x16	= 	3	; 640x400 16 color 2 page
grVGA_640x480x16	= 	4	; 640x480 16 color 1 page
grVGA_320x200x256	= 	5	; 320x200 256 color 1 page

grVGAX_320x200x256	=	6	; 320x200 256 color 4 page
grVGAX_320x240x256	= 	7	; 320x240 256 color 3 page
grVGAX_320x400x256	= 	8	; 320x400 256 color 2 page
grVGAX_320x480x256	= 	9	; 320x480 256 color 1 page
grVGAX_360x200x256	= 	10	; 360x200 256 color 3 page
grVGAX_360x240x256	= 	11	; 360x240 256 color 3 page
grVGAX_360x400x256	= 	12	; 360x400 256 color 1 page
grVGAX_360x480x256	= 	13	; 360x480 256 color 1 page

grSVGA_800x600x16	= 	14	; 800x600 16 color 1 page
grSVGA_1024x768x16	= 	15	; 1024x768 16 color 1 page
grSVGA_1280x1024x16	= 	16	; 1280x1024 16 color 1 page

grSVGA_640x350x256	=	17	; 640x350 256 color 1 page
grSVGA_640x400x256	= 	18	; 640x400 256 color 1 page
grSVGA_640x480x256	= 	19	; 640x480 256 color 1 page
grSVGA_800x600x256	= 	20	; 800x600 256 color 1 page
grSVGA_1024x768x256	= 	21	; 1024x768 256 color 1 page
grSVGA_1280x1024x256=	22	; 1280x1024 256 color 1 page

grSVGA_320x200x32k	=	23	; 320x200 32,768 color 1 page
grSVGA_640x350x32k	= 	24	; 640x350 32,768 color 1 page
grSVGA_640x400x32k	=	25	; 640x400 32,768 color 1 page
grSVGA_640x480x32k	= 	26	; 640x480 32,768 color 1 page
grSVGA_800x600x32k	= 	27	; 800x600 32,768 color 1 page
grSVGA_1024x768x32k	=	28	; 1024x768 32,768 color 1 page
grSVGA_1280x1024x32k=	29	; 1280x1024 32,768 color 1 page

grSVGA_320x200x16m	=	30	; 320x200 16 million color 1 page
grSVGA_640x350x16m	= 	31	; 640x350 16 million color 1 page
grSVGA_640x400x16m	=	32	; 640x400 16 million color 1 page
grSVGA_640x480x16m	= 	33	; 640x480 16 million color 1 page
grSVGA_800x600x16m	= 	34	; 800x600 16 million color 1 page
grSVGA_1024x768x16m	=	35	; 1024x768 16 million color 1 page
grSVGA_1280x1024x16m=	36	; 1280x1024 16 million color 1 page
grMAXMODE			=	36	; Maximum video mode

; GraphResult error codes.

grOK				=	0	; No error
grNoInit			=	-1	; Graphics driver has not been installed
grNotDetected		=	-2	; Graphics hardware was not detected
grFileNotFound		=	-3	; Graphics driver file was not found
grBadDriver			=	-4	; File loaded was not a graphics driver
grLoadMem			=	-5	; Not enough memory to load graphics driver
grInvalidMode		=	-6	; Invalid graphics mode for selected driver
grInvalidDriver 	=	-7	; Driver number is invalid
grError				=	-8	; General graphics error
grInvalidName		=	-9	; Invalid drive name
grNoMem				=	-10	; Not enough memory to perform operation
grNotSupported		=	-11	; Graphics card is not supported
grNoModeSupport		=	-12 ; Selected video mode is not supported by hard.

; Boolean values

true				=	1
false				=	0

; Pen styles

SOLID_PAT			=	0
OPAQUE_PAT			=	1
TRANSPARENT_PAT		=	2
PIXMAP_PAT			=	3

; Write modes

REPLACE_MODE		=	0
AND_MODE			=	1
OR_MODE				=	2
XOR_MODE			=	3

; Text drawing directions

TXT_LEFT			=	0
TXT_UP				=	1
TXT_RIGHT			=	2
TXT_DOWN			=	3

; Palette rotation directions

PAL_ROTATE_UP		=	0
PAL_ROTATE_DOWN		=	1

; Image header size

IMAGE_HEADER_SIZE	=	8
