(******************************************************************************) (* GRCONST.DEF - MetaWINDOW 'Constant' and 'Type' Definitions *) (* *) (* Transcribed from GRCONST.H by Metagraphics Software Corporation *) (* *) (* PSW 06/28/91 08:30am *) (******************************************************************************) (*# module(implementation=>off, init_code=>off) *) DEFINITION MODULE GrConst; (* * Graphix * Release 3.7 * (c) Copyright 1986-1992 PMI * Green Bay, Wisconsin * (414) 468-6040 * All rights reserved * *) (**************************** Constant Definitions ****************************) CONST MS_DOS = 1; (* Operating System: Defaults to DOS *) MW_Ver3 = TRUE; (* Generational compatibility constants. *) MW_Ver4 = FALSE; (*** PENMODE & TEXTMODE RasterOp's ***) zREPz = 0; zORz = 1; zXORz = 2; zNANDz = 3; zNREPz = 4; zNORz = 5; zNXORz = 6; zANDz = 7; (*** Graphics Adaptor Definitions ***) ATI800x600 = 533; (* ATI VGAWonder *) ATI640x480X = 534; (* 640x480 256-color *) ATI1024x768F = 535; (* 1024x768 16-color *) ATT = 128; (* AT&T Std. Color & DEB Adaptors *) ATT640x400 = 128; (* 640x400 monochrome *) DEB640x200 = 129; (* 640x200 16-color *) DEB640x400 = 130; (* 640x400 16-color *) CGA = 6; (* IBM Color Graphics Adaptor (CGA) *) CGA320x200 = 4; (* 320x200 4-color *) CGA640x200 = 6; (* 640x200 2-color *) COR = 34; (* Cornerstone *) COR1600x1280V = 34; (* Vista 1600 1600x1280 mono *) COR1600x1280VA = 37; (* Vista 1600 1600x1280 no em, 2 mon *) COR1600x1280DP = 35; (* DualPage 1600x1280 mono *) COR1600x1280DPA = 36; (* DualPage 1600x1280, no JP1 *) COR1600x1280MCA = 39; (* DualPage 1600x1280 Micro Channel *) SP768x1008 = 42; (* SinglePage 768x1008 mono *) SP768x1008A = 43; (* SinglePage 768x1008 no JP1 *) COR1280x960 = 44; (* PC 1280 1280x960, mono *) COR1280x960A = 45; (* PC 1280 1280x960, mono *) COR1280x1024 = 46; (* PC 1280 1280x1024, mono *) COR1280x1024A = 47; (* PC 1280 1280x1024, mono *) CT640x480X = 537; (* Chips and Tech. 256 color *) CT1024x768 = 538; (* 1024x768, 16 color *) EGA = 512; (* IBM Enhanced Graphics Adaptor *) EGAMono = 512; (* 640x350 monochrome *) EGA320x200 = 544; (* 320x200 16-color *) EGA640x200 = 528; (* 640x200 16-color *) EGA640x350 = 560; (* 640x350 16-color (128k EGA) *) MGA640x350 = 561; (* 640x350 2-color *) EGA640x480 = 562; (* 640x480 16-color (VGA) *) MGA640x480 = 563; (* 640x480 2-color (MCGA) *) VGA320x200 = 564; (* 320x200 256-color (PS2 VGA) *) EGA640x350S = 565; (* 640x350 16-color (no bios-EGA) *) VGA640x350S = 566; (* 640x350 16-color (no bios-VGA) *) VGA640x480S = 567; (* 640x480 16-color (no bios-VGA) *) EGA640x350MP = 131; (* IBM EGA, in multi planar setting *) JRT320x200 = 569; (* 320x200 16-color IBM PCjr & Tandy 1000 *) EVA = 516; (* Tseng Labs EVA/480 *) EVA640x480 = 516; (* 640x480 16-color *) EVR = 1024; (* Everex Graphics Edge Adaptor *) EVR640x200 = 1024; (* 640x200 16-color *) EVR640x400 = 1025; (* 640x400 4-color *) EVX800x600 = 532; (* Everex EVGA EV-673 Adaptor *) EXPL320x200 = 140; (* HeadStart Explorer 320x200 16-color *) FKY1120x750 = 2200; (* Fujitsu FMR 70 16 color *) FKY640x400 = 2201; (* Fujitsu FMR 60 16 color *) FKY1120x750m = 2202; (* Fujitsu FMR 70 monochrome *) GEN = 529; (* Genoa SuperEGA HiRes *) GEN640x480 = 529; (* 640x480 16-color *) GEN800x600 = 518; (* 800x600 16-color *) GEN1024x768 = 519; (* Genoa SuperVGA HiRes-10 16-color *) GEN640x350X = 530; (* 640x350 256-color *) GEN640x480X = 531; (* 640x480 256-color *) GEN800x600V = 539; (* 800x600 16-color *) (* Genoa SuperVGA (6100/6300/6400) *) (* GEN640x350S = 582; * 640x350 256-color *) GEN640x480S = 583; (* 640x480 256-color *) GEN1024x768S = 584; (* 1024x768 16-color *) HER = 8; (* Hercules/AST Monochrome Adaptor *) HER720x348 = 8; (* 720x348 monochrome *) MDS = 2; (* MDS Genius Graphics Display *) MDS736x1008 = 2; (* 736x1008 monochrome *) NNR512x512 = 4096; (* Number Nine 512x485 256-color *) NNR1024x768 = 4097; (* 2048x4 @ 1024x768x16 *) NSI = 514; (* NSI Logic Smart EGA/Plus *) NSI800x600 = 514; (* 800x600 16-color *) OAK800x600 = 585; (* OAK OTI-067 chip set *) OAK1024x768 = 586; (* 1024x768 16 color *) OAK640x480X = 587; (* 640x480 256 color *) OCD800x600 = 571; (* Orchid Designer VGA 800x600x16 *) OCD1024x768 = 572; (* 1024x768 16 color *) OCD640x350X = 573; (* 640x350 256 color *) OCD640x480X = 574; (* 640x480 256 color *) PAR = 517; (* Paradise AutoSwitch EGA/480 *) PAR640x480 = 517; (* 640x480 16-color *) PAR800x600 = 579; (* Paradise 800x600 16-color *) PAR1024x768 = 580; (* 1024x768 16-color *) PAR640x480x = 581; (* 640x480 256-color *) SIG = 32; (* Sigma Design *) SIG640x400 = 32; (* 640x400 16-color, Color-400 *) SIG1664x1200 = 33; (* LaserView 1664x1200 monochome *) SIG1664x1200A = 38; (* 1664x1200 @0A000 *) SIG1664x1200MCA = 41; (* 1664x1200 Micro channel *) STB = 256; (* STB GraphicsPlus-II Adaptor *) STB640x352 = 256; (* 640x352 monochrome *) STB320x200 = 257; (* 320x200 16-color *) STB640x200 = 258; (* 640x200 4-color *) STB640x400 = 384; (* 640x400 monochrome *) STB800x600 = 571; (* STB VGA Extra/EM 800x600x16 *) STB1024x768 = 572; (* 1024x768 16 color *) STB640x350X = 573; (* 640x350 256 color *) STB640x480X = 574; (* 640x480 256 color *) TEC = 16; (* Tecmar Graphics-Master Adaptor *) TEC720x352 = 16; (* 720x352 monochrome *) TEC720x704 = 17; (* 720x704 monochrome *) TEC320x200 = 18; (* 320x200 16-color *) TEC640x200 = 19; (* 640x200 16-color *) TEC640x400 = 20; (* 640x400 16-color *) TEC640x350X = 575; (* Tecmar VGA/AD, 640x350 256-color *) TEC640x480X = 576; (* 640x480 256-color *) TEC800x600 = 577; (* 800x600 16-color *) TEC1024x768 = 578; (* 1024x768 16-color *) TOS = 16384; (* Toshiba 3100 *) TOS640x400 = 16384; (* 640x400 monochrome *) TRI800x600 = 588; (* Trident Impact SuperVGA, 16 color *) TRI1024x768 = 589; (* 1024x768x16 color *) TRI640x480x = 590; (* 640x480x256 color *) TRI800x600x = 591; (* 800x600x256 color *) TRI1024x768x = 592; (* 1024x768x256 color *) TARG512x482 = 8192; (* TrueVision Targa M8 512x482 256-color *) (* Tseng Labs 4000 chip set *) (* TS41024x768 = 540 This chip does not work in 128k flat mode *) TS4640x350x = 541; (* 640x350x256 *) TS4640x480x = 542; (* 640x480x256 *) TS4800x600x = 543; (* 800x600x256 *) TS41024x768x = 545; (* 1024x768x256 *) TTS = 2048; (* IBM 3270 PC *) TTS720x350 = 2048; (* 720x350 monochrome *) TTS360x350 = 2049; (* 360x350 4-color *) VESA800x600 = 526; (* V.E.S.A. std 800x600 16-color *) VGA = 520; (* Video-7 VEGA Deluxe *) VGA640x480 = 520; (* 640x480 16-color *) VGA752x410 = 521; (* 752x410 16-color *) VGA720x540 = 522; (* V7 VGA 720x540 16-color *) VGA800x600 = 523; (* 800x600 16-color (VGA) *) VGA640x480X = 525; (* V7 640x480 256-color *) VGA1024x768x2 = 527; (* 1024x768 2-color *) VGA1024x768 = 536; (* VGA 1024 i 1024x768 16-color *) WYS = 64; (* Wyse WY-700 Graphics Display *) WYS1280x800 = 64; (* 1280x800 monochrome *) WYS1280x400 = 65; (* 1280x400 monochrome *) WYS640x400 = 66; (* 640x400 monochrome *) MEC1120x750 = 610; (* NEC PC 98XA monochrome *) MEC640x400 = 611; (* NEC PC 98VM monochrome *) NEC1120x750 = 626; (* NEC PC 98XA 16-color *) NEC640x400 = 627; (* NEC PC 98VM 16-color *) (* Defines for National Design Genesis-1024/1280 *) NDI640x480x4D = 4140H; (* 640x480 16-color, digitl *) NDI640x480x4A = 4141H; (* 640x480 16-color, analog *) NDI1024x768x4J = 4148H; (* 1024x768 16-color, JVC *) NDI1024x768x4M = 4149H; (* 1024x768 16-color, Mitsu. *) NDI1280x1024x4J = 414AH; (* 1280x1024 16-color, JVC *) NDI960x720x4N = 414BH; (* 960x720 16-color, NEC XL *) (* Defines for RenaissanceGRX Rendition-II *) GRX640x480x4A = 4240H; (* 640x480 16-color, analog *) GRX800x600x4A = 4242H; (* 800x600 16-color, analog *) GRX1024x768x4A = 4246H; (* 1024x768 16-color, analog *) GRX640x480x8A = 4248H; (* 640x480 256-color, analog *) GRX800x600x8A = 424AH; (* 800x600 256-color, analog *) GRX1024x768x8A = 424CH; (* 1024x768 256-color, analog *) (* Defines for Hewlett-Packard HP82328 IGC *) HP1024x768x4 = 664AH; (* 1024x768 16-color *) (* Defines for IBM 8514A (and compatibles) *) EFF640x480x4 = 7000H; (* 640x480 16-color *) EFF640x480x8 = 7001H; (* 640x480 256-color *) EFF1024x768x4I = 7040H; (* 1024x768 16-color, intlacd *) EFF1024x768x4N = 7041H; (* 1024x768 16-color, non-inl *) EFF1024x768x8I = 7042H; (* 1024x768 256-color, intlacd *) EFF1024x768x8N = 7043H; (* 1024x768 256-color, non-inl *) EFF1280x1024x4I = 7080H; (* 1280x1024 16-color, intlacd *) EFF1280x1024x4N = 7081H; (* 1280x1024 16-color, non-inl *) EFF1280x1024x8I = 7082H; (* 1280x1024 256-color, intlacd *) EFF1280x1024x8N = 7083H; (* 1280x1024 256-color, non-inl *) CUST_LIN = CGA640x200; (* User defined linear memory *) CUST_BS = SIG640x400; (* User defined Bank select *) CUST_EGA = EGA640x350; (* User defined EGA Superset *) (*** HardCopy Constant definitions. ***) HC_ROT = 01H; (* When set, rotate pic 90 CCW *) HC_XL = 08H; (* When set, disables default background xlate *) HC_ASC = 10H; (* When set, emits ascii length, instead of hex *) (* Typically used for HP LaserJet printers *) (*** Mouse Definitions ***) COM1 = 1; (* Mouse Systems mouse, COM1 *) COM2 = 2; (* Mouse Systems mouse, COM2 *) (* MsMouse = 16; Microsoft Bus Mouse - obselete *) MsCOM1 = 17; (* Microsoft Serial Mouse, COM1 *) MsCOM2 = 18; (* Microsoft Serial Mouse, COM2 *) MsDriver = 32; (* Microsoft Mouse driver *) FKYMsDriver = 128; (* FKY Microsoft Mouse driver, uses int 99*) swRight = 1; swMiddle = 2; (* (not on 2 button mice) *) swLeft = 4; swAll = 7; Black = 0; (* all bits OFF *) White = -1; (* all bits ON *) TextPg0 = 0; GrafPg0 = 256; GrafPg1 = 257; ScrnXmin = 0; ScrnYmin = 0; cNormal = 0; (* TEXTFACE *) cBold = 1; cItalic = 2; cUnderline = 4; cStrikeout = 8; cMirrorX = 32; cMirrorY = 64; cProportional = 128; alignLeft = 0; (* TEXTALIGN - Horizontal *) alignCenter = 1; alignRight = 2; alignBaseline = 0; (* TEXTALIGN - Vertical *) alignBottom = 1; alignMiddle = 2; alignTop = 3; pathRight = 0; (* TEXTPATH definitions *) pathUp = 900; pathLeft = 1800; pathDown = 2700; capFlat = 0; (* PENCAP definitions *) capRound = 1; capSquare = 2; joinRound = 0; (* PENJOIN definitions *) joinBevel = 1; joinMiter = 2; (*** TYPE Definitions. ***) TYPE image = BYTE; point = RECORD (* "Point" structure type *) X, (* X coordinate *) Y: INTEGER (* Y coordinates *) END; adsPoint = POINTER TO point; rect = RECORD (* "Rectangle" structure type *) Xmin, (* minimum X *) Ymin, (* minimum Y *) Xmax, (* maximum X *) Ymax: INTEGER (* maximum Y *) END; polyHead = RECORD (* Polygon "header" structure *) polyBgn, (* beginning index *) polyEnd: CARDINAL; (* ending index *) polyRect: rect; (* boundry limits *) END; adsPolyHead = POINTER TO polyHead; (*%T MW_Ver3 *) event = RECORD (* Event record structure *) ASCII: CHAR; (* ASCII character code *) ScanCode: BYTE; (* Keyboard scan code *) State: CARDINAL; (* Keyboard & mouse switches *) CursorX, (* Cursor X position *) CursorY, (* Cursor Y position *) Time: INTEGER; (* System time of event *) evntData: LONGINT; (* User defined 32 bit item *) END; (*%E MW_Ver3 *) (*%T MW_Ver4 *) event = RECORD (* Event record structure *) evntASCII: CHAR; (* ASCII character code *) evntScanCode: BYTE; (* Keyboard scan code *) evntState: CARDINAL; (* Keyboard & mouse switches *) evntCursorX, (* Cursor X position *) evntCursorY, (* Cursor Y position *) evntTime: INTEGER; (* System time of event *) evntData: LONGINT; (* User defined 32 bit item *) END; (*%E MW_Ver4 *) cursor = RECORD (* Cursor Image definition *) curWidth, (* must be 16 *) curHeight, (* must be 16 *) curAlign, (* must be 0 *) curRowBytes: CARDINAL; (* must be 2 *) curBits, (* must be 1 *) curPlanes: SHORTCARD; (* must be 1 *) curData: ARRAY [0..31] OF BYTE; (* cursor data bytes *) END; patRcd = RECORD (* Pattern Image definition *) patWidth, (* must be 8 *) patHeight, (* must be 8 *) patAlign, (* must be zero *) patRowBytes: CARDINAL; (* must be equal to patBits *) patBits, (* value of 1,2,4 or 8 *) patPlanes: SHORTCARD; (* value of 1 thru 32 *) patData: ARRAY[0..31] OF BYTE;(* pattern data bytes *) END; penState = RECORD (* Pen State record structure *) psBkColor, (* Background color *) psPnColor: LONGINT; (* Pen color *) psPnLoc, (* Pen location *) psPnSize: point; (* Pen size *) psPnMode, (* Pen mode (rasterOp) *) psPnPat, (* Pen pattern index *) psPnCap, (* Pen end-cap style *) psPnJoin, (* Line join style *) psPnDash, (* Line dash style *) psPnOffset, (* Dash starting offset *) psPnLevel: CARDINAL; (* Pen visibility level *) END; dirRec = RECORD (* FILEQUERY - directory record *) reserved: ARRAY[0..20] OF BYTE; (* (DOS reserved) *) fileAttr: BYTE; (* File attribute *) fileTime: CARDINAL; (* File create time *) fileDate: CARDINAL; (* File create date *) fileSize: LONGCARD; (* File size (bytes) *) fileName: ARRAY[0..13] OF CHAR; (* "FILENAME.EXT\0" *) END; imageHeader = RECORD (* Image Header record structure *) imWidth, (* Pixel width (X) *) imHeight, (* Pixel height (Y) *) imAlign, (* Image alignment *) imRowBytes:CARDINAL; (* Bytes per row *) imBits, (* Bits per pixel *) imPlanes: SHORTCARD; (* Planes per pixel *) (* char imData[]; *) (* (image data, variable length) *) END; adsImage = POINTER TO imageHeader; dashRcd = RECORD (* DEFINEDASH data record *) nCnts, (* number of active entries, 1-8 *) cnt1, (* distance ON, 1 *) cnt2, (* distance OFF, 2 *) cnt3, (* distance ON, 3 *) cnt4, (* distance OFF, 4 *) cnt5, (* distance ON, 5 *) cnt6, (* distance OFF, 6 *) cnt7, (* distance ON, 7 *) cnt8: CARDINAL; (* distance OFF, 8 *) END; (* Write/ReadPalette *) palData = RECORD palRed, palGreen, palBlue: WORD; END; (* HardCopy Types *) (* The following allow objects of type HCInfoRec to be initialised using *) (* TopSpeed Modula-2 agregate initialisation (see HARDCOPY.MOD) *) init = ARRAY [0..1FH] OF BYTE; (* The printer init code(s). *) reset = ARRAY [0..0FH] OF BYTE; (* Printer clean up code(s) *) header = ARRAY [0..07H] OF BYTE; (* Sent before every line *) pstam = ARRAY [0..07H] OF BYTE; (* Sent after length spec *) trailer = ARRAY [0..0FH] OF BYTE; (* Sent after every line *) hcSIG = ARRAY [0..01H] OF BYTE; (* Set to 'HC' for validity check *) xlaTable = ARRAY [0..0FH] OF BYTE; (* Color translation table *) HCInfoRec = RECORD pins, (* Number of elements in print swath. *) (* Use 1 for Laser printers *) inlen: INTEGER; (* Number of bytes in following string *) init: init; (* The printer init code(s). *) rslen: INTEGER; (* Number of bytes in following string *) reset: reset; (* Printer clean up code(s) *) hdlen: INTEGER; (* Number of bytes in following string *) header: header; (* Sent before every line *) pstlen: INTEGER; (* Number of bytes in following string *) pstam: pstam; (* Sent after length spec *) trlen: INTEGER; (* Number of bytes in following string *) trailer: trailer; (* Sent after every line *) hcMode: INTEGER; (* Operational mode bits *) prtPort: INTEGER; (* System printer port, 0-3 or 80-83 *) hcSIG: hcSIG; (* Set to 'HC' for validity check *) xlatMask: INTEGER; (* Max color number in xlaTable *) xlaTable: xlaTable; (* Color translation table *) END; mapArray = ARRAY [0..7] OF INTEGER; (* CursorMap data record *) (* Sample User Definable Types: *) CCBtype = RECORD (*User Definable Clock_Communication_Block*) Timer: CARDINAL; tX, tY, tSw: INTEGER; END; MCBtype = RECORD (*User Definable Mouse_Communication_Block*) mX, mY, mSw: INTEGER; END; colrTable = ARRAY [0..15] OF LONGINT; END GrConst.