unit Graphics;

INTERFACE
uses Exec, Hardware, Utility;


type
	PLANEPTR = pointer;
	pPoint = ^tPoint;
	tPoint = record
		x: integer;
		y: integer;
		end;

	Point = tPoint;
	DisplayInfoHandle = pointer;
	pLayer = ^tLayer;
	pClipRect = ^tClipRect;
	pRastPort = ^tRastPort;
	pRectangle = ^tRectangle;
	tRectangle = record
		MinX: integer;
		MinY: integer;
		MaxX: integer;
		MaxY: integer;
		end;

	pBitMap = ^tBitMap;
	pLayer_Info = ^tLayer_Info;
	pRegion = ^tRegion;
	tLayer = record
		front: pLayer;
		back: pLayer;
		ClipRect: pClipRect;
		rp: pRastPort;
		bounds: tRectangle;
		reserved: array [0..3] of byte;
		priority: word;
		Flags: word;
		SuperBitMap: pBitMap;
		SuperClipRect: pClipRect;
		Window: pointer;
		Scroll_X: integer;
		Scroll_Y: integer;
		cr: pClipRect;
		cr2: pClipRect;
		crnew: pClipRect;
		SuperSaveClipRects: pClipRect;
		_cliprects: pClipRect;
		LayerInfo: pLayer_Info;
		Lock: tSignalSemaphore;
		BackFill: pHook;
		reserved1: long;
		ClipRegion: pRegion;
		saveClipRects: pRegion;
		Width: integer;
		Height: integer;
		reserved2: array [0..17] of byte;
		DamageList: pRegion;
		end;

	pcollTable = ^tcollTable;
	tcollTable = record
		collPtrs: array [0..15] of pointer;
		end;

	pRegionRectangle = ^tRegionRectangle;
	tRegion = record
		bounds: tRectangle;
		RegionRectangle: pRegionRectangle;
		end;

	pViewPort = ^tViewPort;
	pcprlist = ^tcprlist;
	pView = ^tView;
	tView = record
		ViewPort: pViewPort;
		LOFCprList: pcprlist;
		SHFCprList: pcprlist;
		DyOffset: integer;
		DxOffset: integer;
		Modes: word;
		end;

	pTTextAttr = ^tTTextAttr;
	tTTextAttr = record
		tta_Name: STRPTR;
		tta_YSize: word;
		tta_Style: byte;
		tta_Flags: byte;
		tta_Tags: pTagItem;
		end;

	pQueryHeader = ^tQueryHeader;
	tQueryHeader = record
		StructID: long;
		DisplayID: long;
		SkipID: long;
		Length: long;
		end;

	pVSprite = ^tVSprite;
	pBob = ^tBob;
	tVSprite = record
		NextVSprite: pVSprite;
		PrevVSprite: pVSprite;
		DrawPath: pVSprite;
		ClearPath: pVSprite;
		OldY: integer;
		OldX: integer;
		Flags: integer;
		Y: integer;
		X: integer;
		Height: integer;
		Width: integer;
		Depth: integer;
		MeMask: integer;
		HitMask: integer;
		ImageData: pinteger;
		BorderLine: pinteger;
		CollMask: pinteger;
		SprColors: pinteger;
		VSBob: pBob;
		PlanePick: shortint;
		PlaneOnOff: shortint;
		VUserExt: integer;
		end;

	pDisplayInfo = ^tDisplayInfo;
	tDisplayInfo = record
		Header: tQueryHeader;
		NotAvailable: word;
		PropertyFlags: long;
		Resolution: Point;
		PixelSpeed: word;
		NumStdSprites: word;
		PaletteRange: word;
		SpriteResolution: Point;
		pad: array [0..3] of byte;
		reserved: array [0..1] of long;
		end;

	tRegionRectangle = record
		Next: pRegionRectangle;
		Prev: pRegionRectangle;
		bounds: tRectangle;
		end;

	pAnalogSignalInterval = ^tAnalogSignalInterval;
	tAnalogSignalInterval = record
		asi_Start: word;
		asi_Stop: word;
		end;

	pDimensionInfo = ^tDimensionInfo;
	tDimensionInfo = record
		Header: tQueryHeader;
		MaxDepth: word;
		MinRasterWidth: word;
		MinRasterHeight: word;
		MaxRasterWidth: word;
		MaxRasterHeight: word;
		Nominal: tRectangle;
		MaxOScan: tRectangle;
		VideoOScan: tRectangle;
		TxtOScan: tRectangle;
		StdOScan: tRectangle;
		pad: array [0..13] of byte;
		reserved: array [0..1] of long;
		end;

	pExtendedNode = ^tExtendedNode;
	tExtendedNode = record
		xln_Succ: pNode;
		xln_Pred: pNode;
		xln_Type: byte;
		xln_Pri: shortint;
		xln_Name: pbyte;
		xln_Subsystem: byte;
		xln_Subtype: byte;
		xln_Library: longint;
		xln_Init: pointer;
		end;

	pMonitorSpec = ^tMonitorSpec;
	pViewExtra = ^tViewExtra;
	tViewExtra = record
		n: tExtendedNode;
		View: pView;
		Monitor: pMonitorSpec;
		end;

	pTextFontExtension = ^tTextFontExtension;
	pTextFont = ^tTextFont;
	tTextFont = record
		case integer of
		0: (
		tf_Message: tMessage;
		tf_YSize: word;
		tf_Style: byte;
		tf_Flags: byte;
		tf_XSize: word;
		tf_Baseline: word;
		tf_BoldSmear: word;
		tf_Accessors: word;
		tf_LoChar: byte;
		tf_HiChar: byte;
		tf_CharData: pointer;
		tf_Modulo: word;
		tf_CharLoc: pointer;
		tf_CharSpace: pointer;
		tf_CharKern: pointer;
		);
		1: (
		__: tNode;
		tf_Extension: pTextFontExtension;
		);
		end;

	pTmpRas = ^tTmpRas;
	pAreaInfo = ^tAreaInfo;
	pGelsInfo = ^tGelsInfo;
	tRastPort = record
		Layer: pLayer;
		BitMap: pBitMap;
		AreaPtrn: pword;
		TmpRas: pTmpRas;
		AreaInfo: pAreaInfo;
		GelsInfo: pGelsInfo;
		Mask: byte;
		FgPen: shortint;
		BgPen: shortint;
		AOlPen: shortint;
		DrawMode: shortint;
		AreaPtSz: shortint;
		linpatcnt: shortint;
		dummy: shortint;
		Flags: word;
		LinePtrn: word;
		cp_x: integer;
		cp_y: integer;
		minterms: array [0..7] of byte;
		PenWidth: integer;
		PenHeight: integer;
		Font: pTextFont;
		AlgoStyle: byte;
		TxFlags: byte;
		TxHeight: word;
		TxWidth: word;
		TxBaseline: word;
		TxSpacing: integer;
		RP_User: ppointer;
		longreserved: array [0..1] of long;
		wordreserved: array [0..6] of word;
		reserved: array [0..7] of byte;
		end;

	pTextAttr = ^tTextAttr;
	tTextAttr = record
		ta_Name: STRPTR;
		ta_YSize: word;
		ta_Style: byte;
		ta_Flags: byte;
		end;

	pColorMap = ^tColorMap;
	pCopList = ^tCopList;
	pUCopList = ^tUCopList;
	pRasInfo = ^tRasInfo;
	tViewPort = record
		Next: pViewPort;
		ColorMap: pColorMap;
		DspIns: pCopList;
		SprIns: pCopList;
		ClrIns: pCopList;
		UCopIns: pUCopList;
		DWidth: integer;
		DHeight: integer;
		DxOffset: integer;
		DyOffset: integer;
		Modes: word;
		SpritePriorities: byte;
		ExtendedModes: byte;
		RasInfo: pRasInfo;
		end;

	pColorFontColors = ^tColorFontColors;
	pColorTextFont = ^tColorTextFont;
	tColorTextFont = record
		ctf_TF: tTextFont;
		ctf_Flags: word;
		ctf_Depth: byte;
		ctf_FgColor: byte;
		ctf_Low: byte;
		ctf_High: byte;
		ctf_PlanePick: byte;
		ctf_PlaneOnOff: byte;
		ctf_ColorFontColors: pColorFontColors;
		ctf_CharData: array [0..7] of pointer;
		end;

	pSpecialMonitor = ^tSpecialMonitor;
	tMonitorSpec = record
		ms_Node: tExtendedNode;
		ms_Flags: word;
		ratioh: longint;
		ratiov: longint;
		total_rows: word;
		total_colorclocks: word;
		DeniseMaxDisplayColumn: word;
		BeamCon0: word;
		min_row: word;
		ms_Special: pSpecialMonitor;
		ms_OpenCount: word;
		ms_transform: pointer;
		ms_translate: pointer;
		ms_scale: pointer;
		ms_xoffset: word;
		ms_yoffset: word;
		ms_LegalView: tRectangle;
		ms_maxoscan: pointer;
		ms_videoscan: pointer;
		DeniseMinDisplayColumn: word;
		DisplayCompatible: long;
		DisplayInfoDataBase: tList;
		DisplayInfoDataBaseSemaphore: tSignalSemaphore;
		ms_reserved00: long;
		ms_reserved01: long;
		end;

	pMonitorInfo = ^tMonitorInfo;
	tMonitorInfo = record
		Header: tQueryHeader;
		Mspc: pMonitorSpec;
		ViewPosition: Point;
		ViewResolution: Point;
		ViewPositionRange: tRectangle;
		TotalRows: word;
		TotalColorClocks: word;
		MinRow: word;
		Compatibility: integer;
		pad: array [0..35] of byte;
		DefaultViewPosition: Point;
		PreferredModeID: long;
		reserved: array [0..1] of long;
		end;

	tColorFontColors = record
		cfc_Reserved: word;
		cfc_Count: word;
		cfc_ColorTable: pword;
		end;

	tSpecialMonitor = record
		spm_Node: tExtendedNode;
		spm_Flags: word;
		do_monitor: pointer;
		reserved1: pointer;
		reserved2: pointer;
		reserved3: pointer;
		hblank: tAnalogSignalInterval;
		vblank: tAnalogSignalInterval;
		hsync: tAnalogSignalInterval;
		vsync: tAnalogSignalInterval;
		end;

	pViewPortExtra = ^tViewPortExtra;
	tViewPortExtra = record
		n: tExtendedNode;
		ViewPort: pViewPort;
		DisplayClip: tRectangle;
		end;

	pSimpleSprite = ^tSimpleSprite;
	tSimpleSprite = record
		posctldata: pword;
		height: word;
		x: word;
		y: word;
		num: word;
		end;

	pTextExtent = ^tTextExtent;
	tTextExtent = record
		te_Width: word;
		te_Height: word;
		te_Extent: tRectangle;
		end;

	pDBufPacket = ^tDBufPacket;
	tDBufPacket = record
		BufY: integer;
		BufX: integer;
		BufPath: pVSprite;
		BufBuffer: pinteger;
		end;

	pcopinit = ^tcopinit;
	tcopinit = record
		vsync_hblank: array [0..1] of word;
		diwstart: array [0..3] of word;
		diagstrt: array [0..3] of word;
		sprstrtup: array [0..31] of word;
		wait14: array [0..1] of word;
		norm_hblank: array [0..1] of word;
		genloc: array [0..3] of word;
		jump: array [0..3] of word;
		wait_forever: array [0..1] of word;
		sprstop: array [0..3] of word;
		end;

	pIsrvstr = ^tIsrvstr;
	tIsrvstr = record
		is_Node: tNode;
		Iptr: pIsrvstr;
		code: pointer;
		ccode: pointer;
		Carg: longint;
		end;

	pBitScaleArgs = ^tBitScaleArgs;
	tBitScaleArgs = record
		bsa_SrcX: word;
		bsa_SrcY: word;
		bsa_SrcWidth: word;
		bsa_SrcHeight: word;
		bsa_XSrcFactor: word;
		bsa_YSrcFactor: word;
		bsa_DestX: word;
		bsa_DestY: word;
		bsa_DestWidth: word;
		bsa_DestHeight: word;
		bsa_XDestFactor: word;
		bsa_YDestFactor: word;
		bsa_SrcBitMap: pBitMap;
		bsa_DestBitMap: pBitMap;
		bsa_Flags: long;
		bsa_XDDA: word;
		bsa_YDDA: word;
		bsa_Reserved1: longint;
		bsa_Reserved2: longint;
		end;

	pAnimOb = ^tAnimOb;
	pAnimComp = ^tAnimComp;
	tAnimOb = record
		NextOb: pAnimOb;
		PrevOb: pAnimOb;
		Clock: longint;
		AnOldY: integer;
		AnOldX: integer;
		AnY: integer;
		AnX: integer;
		YVel: integer;
		XVel: integer;
		YAccel: integer;
		XAccel: integer;
		RingYTrans: integer;
		RingXTrans: integer;
		AnimORoutine: pointer;
		HeadComp: pAnimComp;
		AUserExt: integer;
		end;

	tcprlist = record
		Next: pcprlist;
		start: pword;
		MaxCount: integer;
		end;

	ppSimpleSprite = ^pSimpleSprite;
	pGfxBase = ^tGfxBase;
	tGfxBase = record
		LibNode: tLibrary;
		ActiView: pView;
		copinit: pcopinit;
		cia: plongint;
		blitter: plongint;
		LOFlist: pword;
		SHFlist: pword;
		blthd: pbltnode;
		blttl: pbltnode;
		bsblthd: pbltnode;
		bsblttl: pbltnode;
		vbsrv: tInterrupt;
		timsrv: tInterrupt;
		bltsrv: tInterrupt;
		TextFonts: tList;
		DefaultFont: pTextFont;
		Modes: word;
		VBlank: shortint;
		Debug: shortint;
		BeamSync: integer;
		system_bplcon0: integer;
		SpriteReserved: byte;
		bytereserved: byte;
		Flags: word;
		BlitLock: integer;
		BlitNest: integer;
		BlitWaitQ: tList;
		BlitOwner: pTask;
		TOF_WaitQ: tList;
		DisplayFlags: word;
		SimpleSprites: ppSimpleSprite;
		MaxDisplayRow: word;
		MaxDisplayColumn: word;
		NormalDisplayRows: word;
		NormalDisplayColumns: word;
		NormalDPMX: word;
		NormalDPMY: word;
		LastChanceMemory: pSignalSemaphore;
		LCMptr: pword;
		MicrosPerLine: word;
		MinDisplayColumn: word;
		ChipRevBits0: byte;
		crb_reserved: array [0..4] of byte;
		monitor_id: word;
		hedley: array [0..7] of long;
		hedley_sprites: array [0..7] of long;
		hedley_sprites1: array [0..7] of long;
		hedley_count: integer;
		hedley_flags: word;
		hedley_tmp: integer;
		hash_table: plongint;
		current_tot_rows: word;
		current_tot_cclks: word;
		hedley_hint: byte;
		hedley_hint2: byte;
		nreserved: array [0..3] of long;
		a2024_sync_raster: plongint;
		control_delta_pal: integer;
		control_delta_ntsc: integer;
		current_monitor: pMonitorSpec;
		MonitorList: tList;
		default_monitor: pMonitorSpec;
		MonitorListSemaphore: pSignalSemaphore;
		DisplayInfoDataBase: pointer;
		lapad: integer;
		ActiViewCprSemaphore: pSignalSemaphore;
		UtilityBase: plong;
		ExecBase: plong;
		end;

	tAreaInfo = record
		VctrTbl: pinteger;
		VctrPtr: pinteger;
		FlagTbl: pshortint;
		FlagPtr: pshortint;
		Count: integer;
		MaxCount: integer;
		FirstX: integer;
		FirstY: integer;
		end;

	tTextFontExtension = record
		tfe_MatchWord: word;
		tfe_Flags0: byte;
		tfe_Flags1: byte;
		tfe_BackPtr: pTextFont;
		tfe_OrigReplyPort: pMsgPort;
		tfe_Tags: pTagItem;
		tfe_OFontPatchS: pword;
		tfe_OFontPatchK: pword;
		end;

	pPLANEPTR = ^PLANEPTR;
	tBitMap = record
		BytesPerRow: word;
		Rows: word;
		Flags: byte;
		Depth: byte;
		pad: word;
		Planes: array [0..7] of PLANEPTR;
		end;

	tBob = record
		Flags: integer;
		SaveBuffer: pinteger;
		ImageShadow: pinteger;
		Before: pBob;
		After: pBob;
		BobVSprite: pVSprite;
		BobComp: pAnimComp;
		DBuffer: pDBufPacket;
		BUserExt: integer;
		end;

	pNameInfo = ^tNameInfo;
	tNameInfo = record
		Header: tQueryHeader;
		Name: array [0..31] of byte;
		reserved: array [0..1] of long;
		end;

	tUCopList = record
		Next: pUCopList;
		FirstCopList: pCopList;
		CopList: pCopList;
		end;

	tAnimComp = record
		Flags: integer;
		Timer: integer;
		TimeSet: integer;
		NextComp: pAnimComp;
		PrevComp: pAnimComp;
		NextSeq: pAnimComp;
		PrevSeq: pAnimComp;
		AnimCRoutine: pointer;
		YTrans: integer;
		XTrans: integer;
		HeadOb: pAnimOb;
		AnimBob: pBob;
		end;

	pCopIns = ^tCopIns;
	tCopIns = record
		OpCode: integer;
		case integer of
		0: (
		NXTLIST: pCopList;
		);
		1: (
		VWAITPOS: integer;
		HWAITPOS: integer;
		);
		2: (
		DESTADDR: integer;
		DESTDATA: integer;
		);
		end;

	tClipRect = record
		Next: pClipRect;
		prev: pClipRect;
		lobs: pLayer;
		BitMap: pBitMap;
		bounds: tRectangle;
		_p1: pointer;
		_p2: pointer;
		reserved: longint;
		end;

	tRasInfo = record
		Next: pRasInfo;
		BitMap: pBitMap;
		RxOffset: integer;
		RyOffset: integer;
		end;

	tGelsInfo = record
		sprRsrvd: shortint;
		Flags: byte;
		gelHead: pVSprite;
		gelTail: pVSprite;
		nextLine: pinteger;
		lastColor: ppinteger;
		collHandler: pcollTable;
		leftmost: integer;
		rightmost: integer;
		topmost: integer;
		bottommost: integer;
		firstBlissObj: pointer;
		lastBlissObj: pointer;
		end;

	tColorMap = record
		Flags: byte;
		Type_: byte;
		Count: word;
		ColorTable: pointer;
		cm_vpe: pViewPortExtra;
		TransparencyBits: pword;
		TransparencyPlane: byte;
		reserved1: byte;
		reserved2: word;
		cm_vp: pViewPort;
		NormalDisplayInfo: pointer;
		CoerceDisplayInfo: pointer;
		cm_batch_items: pTagItem;
		VPModeID: long;
		end;

	tLayer_Info = record
		top_layer: pLayer;
		check_lp: pLayer;
		obs: pClipRect;
		FreeClipRects: tMinList;
		Lock: tSignalSemaphore;
		gs_Head: tList;
		longreserved: longint;
		Flags: word;
		fatten_count: shortint;
		LockLayersCount: shortint;
		LayerInfo_extra_size: word;
		blitbuff: pinteger;
		LayerInfo_extra: pointer;
		end;

	tTmpRas = record
		RasPtr: pshortint;
		Size: longint;
		end;

	pRect32 = ^tRect32;
	tRect32 = record
		MinX: longint;
		MinY: longint;
		MaxX: longint;
		MaxY: longint;
		end;

	tCopList = record
		Next: pCopList;
		_CopList: pCopList;
		_ViewPort: pViewPort;
		CopIns: pCopIns;
		CopPtr: pCopIns;
		CopLStart: pword;
		CopSStart: pword;
		Count: integer;
		MaxCount: integer;
		DyOffset: integer;
		end;



const
	HIRES_KEY = $8000;
	LORESLACEDPF_KEY = $404;
	VGAPRODUCTDPF_KEY = $39424;
	VTAG_BATCH_CM_GET = $8000001C;
	FSF_BOLD = 2;
	VTAG_BATCH_CM_CLR = $8000000D;
	TO_MONITOR = 0;
	FSF_EXTENDED = 8;
	FSF_COLORFONT = $40;
	HSYNCTRUE = 1;
	VIEW_EXTRA_TYPE = 1;
	STANDARD_COLORCLOCKS = $E2;
	REQUEST_A2024 = 8;
	VGA_VSSTOP = $235;
	VGALORESLACE_KEY = $39005;
	VGAEXTRALORESLACEDPF_KEY = $31405;
	BPLCON3_ZDCLKEN = 4;
	BORDER_NOTRANSPARENCY = 8;
	RIGHTHIT = 8;
	DIPF_IS_LACE = 1;
	DBUFFER = 4;
	VARBEAM = $80;
	CSBLANK = 8;
	VGA70_VSSTOP = $388;
	BROADCAST_HBSTOP = $27;
	DIPF_IS_PANELLED = $400;
	VPF_AGNUS = $20;
	COLORMAP_TRANSPARENCY = 1;
	VTAG_VPMODEID_GET = $80000020;
	GELGONE = $400;
	ALERTLAYERSNOMEM = $83010000;
	CTB_MAPCOLOR = 0;
	VTAG_VPMODEID_CLR = $80000022;
	A2024TENHERTZ_KEY = $41000;
	SAVEBOB = 1;
	NTSC = 1;
	VTAG_CHROMA_PLANE_GET = $8000001A;
	LORES_KEY = 0;
	SUPERLACEDPF_KEY = $8424;
	VTAG_BORDERNOTRANS_SET = $80000007;
	VGA_VSSTRT = $153;
	HAMLACE_KEY = $804;
	GFXB_HR_AGNUS = 0;
	VTAG_BORDERBLANK_GET = $80000017;
	VARCSYNC = $10;
	EXTEND_VSTRUCT = $1000;
	CPR_NT_SHT = $4000;
	STANDARD_NTSC_ROWS = $106;
	VGA70_BEAMCON = $1A8A;
	FPB_DISKFONT = 1;
	CTF_MAPCOLOR = 1;
	VTAG_BORDERBLANK_CLR = $80000004;
	VTAG_BATCH_CM_SET = $8000000E;
	HAM = $800;
	BORDER_BLANKING = 4;
	VGA70_VSSTRT = $2A6;
	BROADCAST_HBSTRT = 1;
	MCOMPAT_SELF = 1;
	VGAEXTRALORES_KEY = $31004;
	SAVEPRESERVE = $1000;
	GFXF_HR_AGNUS = 1;
	DI_AVAIL_NOCHIPS = 1;
	HIRESDPF_KEY = $8400;
	FPF_DISKFONT = 2;
	VARHSYNC = $100;
	VSYNCTRUE = 2;
	CR_NEEDS_NO_CONCEALED_RASTERS = 1;
	DIW_VRTCL_POS_SHIFT = 7;
	AREAOUTLINE = 8;
	NEWLAYERINFO_CALLED = 1;
	VTAG_BATCH_ITEMS_ADD = $8000001F;
	CSCBLANKEN = $400;
	VPF_TENHZ = $20;
	STANDARD_XOFFSET = 9;
	STANDARD_MONITOR_MASK = 3;
	DIPF_IS_BEAMSYNC = $800;
	PAL = 4;
	VTAG_VPMODEID_SET = $80000021;
	PFB_FINE_SCROLL_SHIFT = 4;
	STANDARD_YOFFSET = 0;
	VGA_TOTAL_ROWS = $20C;
	BROADCAST_VBSTOP = $1C40;
	SUPER_KEY = $8020;
	VGALORESLACEDPF_KEY = $39405;
	CT_COLORMASK = $F;
	DISPLAYDUAL = $40;
	HOLDNMODIFY = $800;
	VTAG_CHROMA_PLANE_SET = $8000000A;
	USE_BPLCON3 = 1;
	STANDARD_PAL_ROWS = $138;
	VGA70_TOTAL_ROWS = $1C1;
	VTAG_USERCLIP_GET = $80000023;
	LEFTHIT = 4;
	BROADCAST_HSSTOP = $17;
	VTAG_BORDERBLANK_SET = $80000005;
	VTAG_USERCLIP_CLR = $80000025;
	VGAPRODUCTLACEDPF2_KEY = $39465;
	VIEWPORT_EXTRA_TYPE = 2;
	MUSTDRAW = 8;
	LORESDPF_KEY = $400;
	CR_NEEDS_NO_LAYERBLIT_DAMAGE = 2;
	BROADCAST_VBSTRT = 0;
	B2SWAP = 1;
	CPR_NT_SYS = $2000;
	RINGTRIGGER = 1;
	B2NORM = 0;
	VPOSRLOF = $8000;
	SPRITE_ATTACHED = $80;
	VTAG_BITPLANEKEY_GET = $80000016;
	EXTRA_HALFBRITE = $80;
	NTSC_MONITOR_NAME = 'ntsc.monitor';
	BROADCAST_HSSTRT = 6;
	VGALORES_KEY = $39004;
	VGAEXTRALORESDPF_KEY = $31404;
	VTAG_BITPLANEKEY_CLR = $80000002;
	VARVSYNC = $200;
	PF2PRI = $40;
	VGAHAMLACE_KEY = $31805;
	LAYERSIMPLE = 1;
	FPB_WIDEDOT = 4;
	CT_COLORFONT = 1;
	VTAG_VIEWPORTEXTRA_GET = $80000013;
	BPLCON2_ZDBPEN = $800;
	DEFAULT_MONITOR_NAME = 'default.monitor';
	FPB_REMOVED = 7;
	EXTRAHALFBRITELACE_KEY = $84;
	VTAG_USERCLIP_SET = $80000024;
	COLORON = $200;
	ANFRACSIZE = 6;
	FSB_TAGGED = 7;
	FPB_TALLDOT = 3;
	FPF_WIDEDOT = $10;
	VGA_COLORCLOCKS = $71;
	DISPLAYNAMELEN = $20;
	SUPERDPF_KEY = $8420;
	GENLOC = 2;
	FPB_PROPORTIONAL = 5;
	MODE_640 = $8000;
	STANDARD_DENISE_MIN = $5D;
	BROADCAST_VSSTOP = $54C;
	HAM_KEY = $800;
	A2024_MONITOR_ID = $41000;
	FPF_REMOVED = $80;
	VTAG_COERCE_DISP_GET = $80000011;
	BPLCON2_ZDCTEN = $400;
	VGA70_COLORCLOCKS = $71;
	BACKSAVED = $100;
	NOCROSSFILL = $20;
	VP_HIDE = $2000;
	STANDARD_DENISE_MAX = $1C7;
	B2BOBBER = 2;
	FRST_DOT = 1;
	FSF_TAGGED = $80;
	FPF_TALLDOT = 8;
	PAL_MONITOR_NAME = 'pal.monitor';
	HIRESLACEDPF2_KEY = $8444;
	FPF_PROPORTIONAL = $20;
	VTAG_BATCH_ITEMS_GET = $8000001D;
	DUALPF = $400;
	STANDARD_HBSTOP = $2C;
	VGA_MONITOR_NAME = 'vga.monitor';
	DIPF_IS_GENLOCK = $80;
	OVERLAY = 4;
	FPB_REVPATH = 2;
	VTAG_BITPLANEKEY_SET = $80000003;
	BDRAWN = $200;
	VGA70_MONITOR_NAME = 'vga70.monitor';
	BROADCAST_BEAMCON = $808;
	DIPF_IS_HAM = 8;
	BUSERFLAGS = $FF;
	VTAG_VIEWPORTEXTRA_SET = $80000014;
	BITCLR = 0;
	BROADCAST_VSSTRT = $2A6;
	DIW_VRTCL_POS = $1FF;
	FSB_ITALIC = 2;
	FPF_REVPATH = 4;
	DIW_HORIZ_POS = $7F;
	SS_GRAPHICS = 2;
	FROM_MONITOR = 1;
	RATIO_FIXEDPART = 4;
	VGALORESDPF_KEY = $39404;
	BOBNIX = $800;
	PFA_FINE_SCROLL = $F;
	ONE_DOT = 2;
	TA_DeviceDPI = $80000001;
	VTAG_END_CM = 0;
	STANDARD_HBSTRT = 6;
	DIPF_IS_ECS = $10;
	INVALID_ID = $FFFFFFFF;
	TE0B_NOREMFONT = 0;
	DISPLAYPAL = $20;
	DFTCH_MASK = $FF;
	COMPLEMENT = 2;
	FSF_ITALIC = 4;
	MAXFONTMATCHWEIGHT = $7FFF;
	VTAG_COERCE_DISP_SET = $80000012;
	SPRITES = $4000;
	ISLESSX = 1;
	MONITOR_SPEC_TYPE = 4;
	REQUEST_SPECIAL = 4;
	DIPF_IS_PAL = $20;
	LORESLACEDPF2_KEY = $444;
	VGAPRODUCTDPF2_KEY = $39464;
	FSB_UNDERLINED = 0;
	USER_COPPER_CLIP = $20;
	ISLESSY = 2;
	REQUEST_NTSC = 1;
	DI_AVAIL_NOTWITHGENLOCK = 4;
	LOLDIS = $800;
	COLORPLANE_TRANSPARENCY = 2;
	VSPRITE = 1;
	FPB_ROMFONT = 0;
	TE0F_NOREMFONT = 1;
	VTAG_BATCH_ITEMS_SET = $8000001E;
	COPPER_WAIT = 1;
	VGAEXTRALORESLACEDPF2_KEY = $31445;
	VGAEXTRAHALFBRITELACE_KEY = $31085;
	LAYERBACKDROP = $40;
	FSF_UNDERLINED = 1;
	BITSET = $8000;
	COPPER_MOVE = 0;
	STANDARD_VBSTOP = $1066;
	BOBUPDATE = $200;
	FPF_ROMFONT = 1;
	VIDEOCONTROL_BATCH = $10;
	DBLPF = $400;
	INTERLACE = 4;
	VGAHAM_KEY = $31804;
	ISGRTRX = 4;
	STANDARD_HSSTOP = $1C;
	DIPF_IS_DRAGGABLE = $200;
	ISGRTRY = 8;
	VGAPRODUCTLACE_KEY = $39025;
	OUTSTEP = $2000;
	LAYER_CLIPRECTS_LOST = $100;
	SUPERLACEDPF2_KEY = $8464;
	EXTRAHALFBRITE_KEY = $80;
	SUSERFLAGS = $FF;
	CT_GREYFONT = 2;
	BPLCON2_ZDBPSEL0 = $1000;
	REQUEST_PAL = 2;
	VTAG_NORMAL_DISP_GET = $8000000F;
	BPLCON2_ZDBPSEL1 = $2000;
	SPECIAL_MONITOR_TYPE = 3;
	STANDARD_VBSTRT = $122;
	DIPF_IS_PF2PRI = 4;
	BPLCON2_ZDBPSEL2 = $4000;
	JAM1 = 0;
	BPLCON3_EXTBLNKEN = 1;
	BOBISCOMP = 2;
	JAM2 = 1;
	PLNCNTSHFT = $C;
	STANDARD_HSSTRT = $B;
	LAYERSMART = 2;
	DTAG_NAME = $80003000;
	DIPF_IS_EXTRAHALFBRITE = $1000;
	HIRESDPF2_KEY = $8440;
	GFXB_BIG_BLITS = 0;
	TOPHIT = 1;
	BORDERHIT = 0;
	MIN_NTSC_ROW = $15;
	GFXB_HR_DENISE = 1;
	VTAG_NEXTBUF_CM = $8000000C;
	VGA_DENISE_MIN = $3B;
	VGALORESLACEDPF2_KEY = $39445;
	VTAG_CHROMA_PEN_GET = $80000019;
	BPLCON3_BRDNBLNK = $20;
	DIPF_IS_DUALPF = 2;
	SAVEBACK = 2;
	ANIMHALF = $20;
	GFXF_BIG_BLITS = 1;
	LMN_REGION = $FFFFFFFF;
	VTAG_CHROMA_PEN_CLR = $80000008;
	SUPERHIRES = $20;
	GENLOCK_AUDIO = $100;
	STANDARD_VSSTOP = $3AA;
	VGA70_DENISE_MIN = $3B;
	MONITOR_ID_MASK = $FFFF1000;
	TODA_SAFE = 8;
	EXTENDED_MODE = $1000;
	MCOMPAT_NOBODY = $FFFFFFFF;
	GFXF_HR_DENISE = 2;
	LAYERSUPER = 4;
	VTAG_NORMAL_DISP_SET = $80000010;
	VARVBLANK = $1000;
	PF_FINE_SCROLL_MASK = $F;
	VGA_HBSTOP = $1E;
	GRAPHICSNAME = 'graphics.library';
	STANDARD_VIEW_X = $81;
	HIRESLACE_KEY = $8004;
	VGAPRODUCTLACEDPF_KEY = $39425;
	PROTO_MONITOR_ID = $51000;
	LACE = 4;
	STANDARD_VIEW_Y = $2C;
	VGA70_HBSTOP = $1E;
	LORESDPF2_KEY = $440;
	LAYERUPDATING = $10;
	GENLOCK_VIDEO = 2;
	HIRES = $8000;
	DTAG_DIMS = $80001000;
	MIN_PAL_ROW = $1D;
	STANDARD_VSSTRT = $2A6;
	RATIO_UNITY = $10;
	PFBA = $40;
	MIN_VGA_ROW = $1D;
	DIPF_IS_SPRITES = $40;
	VGAEXTRALORESDPF2_KEY = $31444;
	VGAEXTRAHALFBRITE_KEY = $31084;
	STANDARD_NTSC_BEAMCON = 0;
	VGA_HBSTRT = 8;
	DTAG_DISP = $80000000;
	MIN_VGA70_ROW = $23;
	FPB_DESIGNED = 6;
	VTAG_CHROMA_PEN_SET = $80000009;
	VTAG_CHROMAKEY_GET = $80000015;
	VGA70_HBSTRT = 8;
	DIPF_IS_WB = $100;
	VTAG_CHROMAKEY_CLR = $80000000;
	VTAG_ATTACH_CM_GET = $8000001B;
	NTSC_MONITOR_ID = $11000;
	BPLCON3_BRDNTRAN = $10;
	COLORMAP_TYPE_V1_2 = 0;
	LORESLACE_KEY = 4;
	VGAPRODUCT_KEY = $39024;
	SUPERDPF2_KEY = $8460;
	FPF_DESIGNED = $40;
	COLORMAP_TYPE_V1_4 = 1;
	DEFAULT_MONITOR_ID = 0;
	VGA_VBSTOP = $CCD;
	VGAEXTRALORESLACE_KEY = $31005;
	A2024FIFTEENHERTZ_KEY = $49000;
	VGA70_VBSTOP = $F73;
	MCOMPAT_MIXED = 0;
	VSOVERFLOW = $800;
	STANDARD_PAL_BEAMCON = $20;
	VGA_HSSTOP = $1C;
	HIRESLACEDPF_KEY = $8404;
	VPF_A2024 = $40;
	BOTTOMHIT = 2;
	PLNCNTMSK = 7;
	DI_AVAIL_NOMONITOR = 2;
	BWAITING = $100;
	INVERSVID = 4;
	VGA70_HSSTOP = $1C;
	CPRNXTBUF = 2;
	PAL_MONITOR_ID = $21000;
	VTAG_CHROMAKEY_SET = $80000001;
	VGA_VBSTRT = 0;
	SUPERLACE_KEY = $8024;
	VGA_MONITOR_ID = $31000;
	BOBSAWAY = $400;
	VTAG_ATTACH_CM_SET = $8000000B;
	VGALORESDPF2_KEY = $39444;
	BLITMSG_FAULT = 4;
	COLORMAP_TYPE_V36 = 1;
	VGA70_VBSTRT = 0;
	BPLCON3_EXTBLKZD = 2;
	VGA_HSSTRT = $E;
	DTAG_MNTR = $80002000;
	FSB_BOLD = 1;
	CSYNCTRUE = 4;
	CPR_NT_LOF = $8000;
	SPECIAL_BEAMCON = $1A88;
	FS_NORMAL = 0;
	FSB_EXTENDED = 3;
	FSB_COLORFONT = 6;
	VTAG_BORDERNOTRANS_GET = $80000018;
	VGA70_HSSTRT = $E;
	LAYERREFRESH = $80;
	CT_ANTIALIAS = 4;
	VTAG_BORDERNOTRANS_CLR = $80000006;




IMPLEMENTATION
end.
