home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-06-29 | 107.7 KB | 3,261 lines |
- (***************************************************************************
-
- $RCSfile: Graphics.mod $
- Description: Interface to graphics.library
-
- Created by: fjc (Frank Copeland)
- $Revision: 3.8 $
- $Author: fjc $
- $Date: 1995/06/04 23:13:14 $
-
- Includes Release 40.15
-
- (C) Copyright 1985-1993 Commodore-Amiga, Inc.
- All Rights Reserved
-
- Oberon-A interface Copyright © 1994-1995, Frank Copeland.
- This file is part of the Oberon-A Interface.
- See Oberon-A.doc for conditions of use and distribution.
-
- ***************************************************************************)
-
- <* STANDARD- *>
-
- MODULE [2] Graphics;
-
- IMPORT
- SYS := SYSTEM, Kernel, e := Exec, h := Hardware, u := Utility,
- s := Sets;
-
- (**
- ** All pointers are declared forward here for convenience.
- *)
-
- TYPE
-
- RectanglePtr * = POINTER TO Rectangle;
- Rect32Ptr * = POINTER TO Rect32;
- PointPtr * = POINTER TO Point;
- BitMapPtr * = POINTER TO BitMap;
- ExtendedNodePtr * = POINTER TO ExtendedNode;
- AnalogSignalIntervalPtr * = POINTER TO AnalogSignalInterval;
- SpecialMonitorPtr * = POINTER TO SpecialMonitor;
- MonitorSpecPtr * = POINTER TO MonitorSpec;
- QueryHeaderPtr * = POINTER TO QueryHeader;
- DisplayInfoPtr * = POINTER TO DisplayInfo;
- DimensionInfoPtr * = POINTER TO DimensionInfo;
- MonitorInfoPtr * = POINTER TO MonitorInfo;
- NameInfoPtr * = POINTER TO NameInfo;
- VSpritePtr * = POINTER TO VSprite;
- BobPtr * = POINTER TO Bob;
- AnimCompPtr * = POINTER TO AnimComp;
- DBufPacketPtr * = POINTER TO DBufPacket;
- AnimObPtr * = POINTER TO AnimOb;
- CollTablePtr * = POINTER TO CollTable;
- AreaInfoPtr * = POINTER TO AreaInfo;
- TmpRasPtr * = POINTER TO TmpRas;
- GelsInfoPtr * = POINTER TO GelsInfo;
- RastPortPtr * = POINTER TO RastPort;
- CopInsPtr * = POINTER TO CopIns;
- CopInsCLPtr * = POINTER TO CopInsCL;
- CprlistPtr * = POINTER TO Cprlist;
- CopListPtr * = POINTER TO CopList;
- CopList13Ptr * = POINTER TO CopList13;
- UCopListPtr * = POINTER TO UCopList;
- ViewPortPtr * = POINTER TO ViewPort;
- ViewPtr * = POINTER TO View;
- ViewExtraPtr * = POINTER TO ViewExtra;
- ViewPortExtraPtr * = POINTER TO ViewPortExtra;
- RasInfoPtr * = POINTER TO RasInfo;
- ColorMapPtr * = POINTER TO ColorMap;
- LayerInfoPtr * = POINTER TO LayerInfo;
- LayerPtr * = POINTER TO Layer;
- ClipRectPtr * = POINTER TO ClipRect;
- RegionRectanglePtr * = POINTER TO RegionRectangle;
- RegionPtr * = POINTER TO Region;
- SimpleSpritePtr * = POINTER TO SimpleSprite;
- TextAttrPtr * = POINTER TO TextAttr;
- TTextAttrPtr * = POINTER TO TTextAttr;
- TextFontPtr * = POINTER TO TextFont;
- TextFontExtensionPtr * = POINTER TO TextFontExtension;
- ColorFontColorsPtr * = POINTER TO ColorFontColors;
- ColorTextFontPtr * = POINTER TO ColorTextFont;
- TextextentPtr * = POINTER TO Textextent;
- IsrvstrPtr * = POINTER TO Isrvstr;
- BitScaleArgsPtr * = POINTER TO BitScaleArgs;
- CopListDummyPtr * = POINTER TO CopListDummy;
- PaletteExtraPtr * = POINTER TO PaletteExtra;
- DBufInfoPtr * = POINTER TO DBufInfo;
- ExtSpritePtr * = POINTER TO ExtSprite;
-
-
- (*
- ** $VER: gfx.h 39.5 (19.3.92)
- **
- ** general graphics library definitions
- *)
-
- TYPE
-
- RectangleBase *= RECORD END;
-
- Rectangle * = RECORD (RectangleBase)
- minX *, minY * : INTEGER;
- maxX *, maxY * : INTEGER;
- END; (* Rectangle *)
-
- Rect32 * = RECORD
- minX *, minY * : LONGINT;
- maxX *, maxY * : LONGINT;
- END; (* Rect32 *)
-
- Point * = RECORD
- x *, y * : INTEGER;
- END; (* Point *)
-
- PLANEPTR * = e.APTR;
-
- BitMap * = RECORD
- bytesPerRow * : e.UWORD;
- rows * : e.UWORD;
- flags * : s.SET8;
- depth * : SHORTINT;
- pad * : e.UWORD;
- planes * : ARRAY 8 OF PLANEPTR;
- END; (* BitMap *)
-
- CONST
-
- (* flags for AllocBitMap, etc. *)
- bmbClear * = 0;
- bmbDisplayable * = 1;
- bmbInterleaved * = 2;
- bmbStandard * = 3;
- bmbMinPlanes * = 4;
-
- (* the following are for GetBitMapAttr() *)
- bmaHeight * = 0;
- bmaDepth * = 4;
- bmaWidth * = 8;
- bmaFlags * = 12;
-
- (*
- ** $VER: gfxnodes.h 39.0 (21.8.91)
- **
- ** graphics extended node definintions
- *)
-
- TYPE
-
- ExtendedNodeBase *= RECORD (e.NodeBase) END;
- ExtendedNodeBasePtr *= POINTER TO ExtendedNodeBase;
-
- ExtendedNode * = RECORD (ExtendedNodeBase)
- node * : e.Node;
- subsystem * : SHORTINT;
- subtype * : SHORTINT;
- library * : LONGINT;
- init * : e.PROC;
- END; (* ExtendedNode *)
-
- CONST
-
- ssGraphics * = 02H;
-
- viewExtraType * = 1;
- viewPortExtraType * = 2;
- specialMonitorType * = 3;
- monitorSpecType * = 4;
-
-
- (*
- ** $VER: monitor.h 39.7 (9.6.92)
- **
- ** graphics monitorspec definintions
- *)
-
- TYPE
-
- MonitorSpec * = RECORD (ExtendedNodeBase)
- node * : ExtendedNode;
- flags * : s.SET16;
- ratioh * : LONGINT;
- ratiov * : LONGINT;
- totalRows * : e.UWORD;
- totalColorClocks * : e.UWORD;
- deniseMaxDisplayColumn * : e.UWORD;
- beamCon0 * : e.UWORD;
- minRow * : e.UWORD;
- special * : SpecialMonitorPtr;
- openCount * : e.UWORD;
- transform * : e.PROC;
- translate * : e.PROC;
- scale * : e.PROC;
- xoffset * : e.UWORD;
- yoffset * : e.UWORD;
- legalView * : Rectangle;
- maxoscan * : e.PROC; (* maximum legal overscan *)
- videoscan * : e.PROC; (* video display overscan *)
- deniseMinDisplayColumn * : e.UWORD;
- displayCompatible * : e.ULONG;
- displayInfoDataBase * : e.List;
- displayInfoDataBaseSemaphore * : e.SignalSemaphore;
- mrgCop * : e.PROC;
- loadView * : e.PROC;
- killView * : e.PROC;
- END; (* MonitorSpec *)
-
- CONST
-
- toMonitor * = 0;
- fromMonitor * = 1;
- standardXOffset * = 9;
- standardYOffset * = 0;
-
- msbRequestNTSC * = 0;
- msbRequestPAL * = 1;
- msbRequestSpecial * = 2;
- msbRequestA2024 * = 3;
- msbDoubleSprites * = 4;
-
- (* obsolete, v37 compatible definitions follow *)
- requestNTSC * = 1;
- requestPAL * = 2;
- requestSpecial * = 4;
- requestA2024 * = 8;
-
- defaultMonitorName * = "default.monitor";
- ntscMonitorName * = "ntsc.monitor";
- palMonitorName * = "pal.monitor";
- standardMonitorMask * = requestNTSC + requestPAL;
-
- standardNTSCRows * = 262;
- standardPALRows * = 312;
- standardColorClocks * = 226;
- standardDeniseMax * = 455;
- standardDeniseMin * = 93;
- standardNTSCBeamCon * = {};
- standardPALBeamCon * = {h.displayPAL};
-
- specialBeamcon * =
- { h.varVBlank, h.loLDis, h.varVSync,
- h.varHSync, h.varBeam, h.csBlank, h.vSyncTrue };
-
- minNTSCRow * = 21;
- minPALRow * = 29;
- standardViewX * = 81H;
- standardViewY * = 2CH;
- standardHBstrt * = 06H;
- standardHSstrt * = 0BH;
- standardHSstop * = 1CH;
- standardHBstop * = 2CH;
- standardVBstrt * = 0122H;
- standardVSstrt * = 02A6H;
- standardVSstop * = 03AAH;
- standardVBstop * = 1066H;
-
- vgaColorClocks * = standardColorClocks DIV 2;
- vgaTotalRows * = standardNTSCRows * 2;
- vgaDeniseMin * = 59;
- minvgaRow * = 29;
- vgaHBstrt * = 08H;
- vgaHSstrt * = 0EH;
- vgaHSstop * = 1CH;
- vgaHBstop * = 1EH;
- vgaVBstrt * = 0000H;
- vgaVSstrt * = 0153H;
- vgaVSstop * = 0235H;
- vgaVBstop * = 0CCDH;
-
- vgaMonitorName * = "vga.monitor";
-
- (* NOTE: VGA70 definitions are obsolete - a VGA70 monitor has never been
- * implemented.
- *)
- vga70ColorClocks * = standardColorClocks DIV 2;
- vga70TotalRows * = 449;
- vga70DeniseMin * = 59;
- minvga70Row * = 35;
- vga70HBstrt * = 08H;
- vga70HSstrt * = 0EH;
- vga70HSstop * = 1CH;
- vga70HBstop * = 1EH;
- vga70VBstrt * = 0000H;
- vga70VSstrt * = 02A6H;
- vga70VSstop * = 0388H;
- vga70VBstop * = 0F73H;
-
- vga70beamcon * = specialBeamcon / { h.vSyncTrue };
- vga70MonitorName * = "vga70.monitor";
-
- broadcastHBstrt * = 01H;
- broadcastHSstrt * = 06H;
- broadcastHSstop * = 17H;
- broadcastHBstop * = 27H;
- broadcastVBstrt * = 0000H;
- broadcastVSstrt * = 02A6H;
- broadcastVSstop * = 054CH;
- broadcastVBstop * = 1C40H;
- broadcastBeamCon * = { h.loLDis, h.csBlank };
- ratioFixedPart * = 4;
- ratioUnity * = (*ASH (1, ratioFixedPart)*) 16;
-
- TYPE
-
- AnalogSignalInterval * = RECORD
- start * : e.UWORD;
- stop * : e.UWORD;
- END; (* AnalogSignalInterval *)
-
- SpecialMonitor * = RECORD (ExtendedNodeBase)
- node * : ExtendedNode;
- flags * : s.SET16;
- doMonitor * : e.PROC;
- reserved1 * : e.PROC;
- reserved2 * : e.PROC;
- reserved3 * : e.PROC;
- hblank * : AnalogSignalInterval;
- vblank * : AnalogSignalInterval;
- hsync * : AnalogSignalInterval;
- vsync * : AnalogSignalInterval;
- END; (* SpecialMonitor *)
-
-
- (*
- ** $VER: display.h 39.0 (21.8.91)
- **
- ** definitions for display control registers
- *)
-
-
- CONST
-
- (* bplcon0 defines *)
- mode640 * = 15;
- plnCntMsk * = {0..2}; (* how many bit planes? *)
- (* 0 = none, 1->6 = 1->6, 7 = reserved *)
- plnCntShft * = 12; (* bits to shift for bplcon0 *)
- pf2pri * = 6; (* bplcon2 bit *)
- colorOn * = 9; (* disable color burst *)
- dblpf * = 10;
- holdnmodify * = 11;
- interlace * = 2; (* interlace mode for 400 *)
-
- (* bplcon1 defines *)
- fineScroll * = {0..3};
- fineScrollShift * = 4;
- fineScrollMask * = {0..3};
-
- (* display window start and stop defines *)
- horizPos * = {0..6}; (* horizontal start/stop *)
- vrtclPos * = {0..8}; (* vertical start/stop *)
- vrtclPosShift * = 7;
-
- (* Data fetch start/stop horizontal position *)
- dftchMask * = {0..7};
-
- (* vposr bits *)
- vposrlof * = {15};
-
-
-
- (*
- ** $VER: displayinfo.h 39.13 (31.5.93)
- **
- ** definitions for displayinfo database
- *)
-
-
- TYPE
-
- (* the "public" handle to a DisplayInfoRecord *)
-
- DisplayInfoHandle * = e.APTR;
-
- CONST
-
- (* datachunk type identifiers *)
-
- dtagDisp * = 80000000H;
- dtagDims * = 80001000H;
- dtagMntr * = 80002000H;
- dtagName * = 80003000H;
- dtagVec * = 80004000H; (* internal use only *)
-
- TYPE
-
- QueryHeaderBase *= RECORD END;
-
- QueryHeader * = RECORD (QueryHeaderBase)
- structID * : e.ULONG; (* datachunk type identifier *)
- displayID * : e.ULONG; (* copy of display record key *)
- skipID * : e.ULONG; (* tagSKIP -- see tagitems.h *)
- length * : e.ULONG; (* length of local data in double-longwords *)
- END; (* QueryHeader *)
-
- DisplayInfo * = RECORD (QueryHeaderBase)
- header * : QueryHeader;
- notAvailable * : s.SET16; (* if NULL available, else see defines *)
- propertyFlags * : s.SET32; (* Properties of this mode see defines *)
- resolution * : Point; (* ticks-per-pixel X/Y *)
- pixelSpeed * : e.UWORD; (* aproximation in nanoseconds *)
- numStdSprites * : e.UWORD; (* number of standard amiga sprites *)
- paletteRange * : e.UWORD; (* distinguishable shades available *)
- spriteResolution * : Point; (* std sprite ticks-per-pixel X/Y *)
- pad * : ARRAY 4 OF e.UBYTE; (* used internally *)
- redBits * : e.UBYTE; (* number of Red bits this display supports (V39) *)
- greenBits * : e.UBYTE; (* number of Green bits this display supports (V39) *)
- blueBits * : e.UBYTE; (* number of Blue bits this display supports (V39) *)
- (* pad2 * : ARRAY 5 OF e.UBYTE; (* find some use for this. *)
- Allow for different alignment rules (?) *)
- pad2 * : ARRAY 4 OF e.UBYTE; (* find some use for this. *)
- reserved * : ARRAY 2 OF e.ULONG; (* terminator *)
- END; (* DisplayInfo *)
-
- CONST
-
- (* availability *)
-
- availNoChips * = {0};
- availNoMonitor * = {1};
- availNotWithGenlock * = {2};
-
- (* mode properties *)
-
- isLace * = 0;
- isDualPF * = 1;
- isPF2Pri * = 2;
- isHAM * = 3;
-
- isECS * = 4; (* note: ECS modes (SHIRES, VGA, and **
- ** PRODUCTIVITY) do not support **
- ** attached sprites. **
- *)
-
- isAA * = 16; (* AA modes - may only be available
- ** if machine has correct memory
- ** type to support required
- ** bandwidth - check availability.
- ** (V39)
- *)
-
- isPAL * = 5;
- isSprites * = 6;
- isGenlock * = 7;
-
- isWB * = 8;
- isDraggable * = 9;
- isPanelled * = 10;
- isBeamSync * = 11;
-
- isExtraHalfBrite * = 12;
-
- (* The following dipIs... flags are new for V39 *)
- isSpritesAtt * = 13; (* supports attached sprites *)
- isSpritesChngRes * = 14; (* supports variable sprite resolution *)
- isSpritesBorder * = 15; (* sprite can be displayed in the border *)
- isScanDbl * = 17; (* scan doubled *)
- isSpritesChngBase * = 18;
- isSpritesChngPri * = 19;
- isDBuffer * = 20; (* can support double buffering *)
- isProgBeam * = 21; (* is a programmed beam-sync mode *)
- isForeign * = 31; (* this mode is not native to the Amiga *)
-
- TYPE
-
- DimensionInfo * = RECORD (QueryHeaderBase)
- header * : QueryHeader;
- maxDepth * : e.UWORD; (* log2( max number of colors ) *)
- minRasterWidth * : e.UWORD; (* minimum width in pixels *)
- minRasterHeight * : e.UWORD; (* minimum height in pixels *)
- maxRasterWidth * : e.UWORD; (* maximum width in pixels *)
- maxRasterHeight * : e.UWORD; (* maximum height in pixels *)
- nominal * : Rectangle; (* "standard" dimensions *)
- maxOScan * : Rectangle; (* fixed, hardware dependant *)
- videoOScan * : Rectangle; (* fixed, hardware dependant *)
- txtOScan * : Rectangle; (* editable via preferences *)
- stdOScan * : Rectangle; (* editable via preferences *)
- pad * : ARRAY 14 OF e.UBYTE;
- reserved * : ARRAY 2 OF e.ULONG; (* terminator *)
- END; (* DimensionInfo *)
-
- MonitorInfo * = RECORD (QueryHeaderBase)
- header * : QueryHeader;
- mspc * : MonitorSpecPtr; (* pointer to monitor specification *)
- viewPosition * : Point; (* editable via preferences *)
- viewResolution * : Point; (* standard monitor ticks-per-pixel *)
- viewPositionRange * : Rectangle; (* fixed, hardware dependant *)
- totalRows * : e.UWORD; (* display height in scanlines *)
- totalColorClocks * : e.UWORD; (* scanline width in 280 ns units *)
- minRow * : e.UWORD; (* absolute minimum active scanline *)
- compatibility * : INTEGER; (* how this coexists with others *)
- pad * : ARRAY 36 OF e.UBYTE;
- defaultViewPosition * : Point; (* original, never changes *)
- preferredModeID * : e.ULONG; (* for Preferences *)
- reserved * : ARRAY 2 OF e.ULONG; (* terminator *)
- END; (* MonitorInfo *)
-
- CONST
-
- (* monitor compatibility *)
-
- mCompatMixed * = 0; (* can share display with other mcompatMIXED *)
- mCompatSelf * = 1; (* can share only within same monitor *)
- mCompatNobody * = -1; (* only one viewport at a time *)
-
- displayNameLen * = 32;
-
- TYPE
-
- NameInfo * = RECORD (QueryHeaderBase)
- header * : QueryHeader;
- name * : ARRAY displayNameLen OF CHAR;
- reserved * : ARRAY 2 OF e.ULONG; (* terminator *)
- END; (* NameInfo *)
-
- (*
- ** $VER: modeid.h 39.9 (27.5.93)
- **
- ** graphics display mode IDs.
- *)
-
- CONST
-
- (* DisplayInfoRecord identifiers *)
-
- invalidID * = -1; (* ~0 *)
-
- (* With all the new modes that are available under V38 and V39, it is highly
- * recommended that you use either the asl.library screenmode requester,
- * and/or the V39 graphics.library function BestModeIDA().
- *
- * DO NOT interpret the any of the bits in the ModeID for its meaning. For
- * example, do not interpret bit 3 (0x4) as meaning the ModeID is interlaced.
- * Instead, use GetDisplayInfoData() with dtagDisp, and examine the dip...
- * flags to determine a ModeID's characteristics. The only exception to
- * this rule is that bit 7 (0x80) will always mean the ModeID is
- * ExtraHalfBright, and bit 11 (0x800) will always mean the ModeID is HAM.
- *)
-
- (* normal identifiers *)
-
- monitorIDMask * = 0FFFF1000H;
-
- defaultMonitorID * = 00000000H;
- ntscMonitorID * = 00011000H;
- palMonitorID * = 00021000H;
-
- (* the following 22 composite keys are for Modes on the default Monitor.
- * NTSC & PAL "flavors" of these particular keys may be made by or'ing
- * the NTSC or PAL monitorId with the desired modeKey...
- *
- * For example, to specifically open a PAL HAM interlaced ViewPort
- * (or intuition screen), you would use the modeid of
- * (palMonitorId | hamlaceKey)
- *)
-
- loresKey * = 00000000H;
- hiresKey * = 00008000H;
- superKey * = 00008020H;
- hamKey * = 00000800H;
- loresLaceKey * = 00000004H;
- hiresLaceKey * = 00008004H;
- superLaceKey * = 00008024H;
- hamLaceKey * = 00000804H;
- loresDPFKey * = 00000400H;
- hiresDPFKey * = 00008400H;
- superDPFKey * = 00008420H;
- loresLaceDPFKey * = 00000404H;
- hiresLaceDPFKey * = 00008404H;
- superLaceDPFKey * = 00008424H;
- loresDPF2Key * = 00000440H;
- hiresDPF2Key * = 00008440H;
- superDPF2Key * = 00008460H;
- loresLaceDPF2Key * = 00000444H;
- hiresLaceDPF2Key * = 00008444H;
- superLaceDPF2Key * = 00008464H;
- extraHalfBriteKey * = 00000080H;
- extraHalfBriteLaceKey * = 00000084H;
- (* New for AA ChipSet (V39) *)
- hiresHAMKey * = 00008800H;
- superHAMKey * = 00008820H;
- hiresEHBKey * = 00008080H;
- superEHBKey * = 000080A0H;
- hiresHAMLaceKey * = 00008804H;
- superHAMLaceKey * = 00008824H;
- hiresEHBLaceKey * = 00008084H;
- superEHBLaceKey * = 000080A4H;
- (* Added for V40 - may be useful modes for some games or animations. *)
- loresSDblKey * = 00000008H;
- loresHAMSDblKey * = 00000808H;
- loresEHBSDblKey * = 00000088H;
- hiresHAMSDblKey * = 00008808H;
-
-
- (* vga identifiers *)
-
- vgaMonitorID * = 00031000H;
-
- vgaExtraLoresKey * = 00031004H;
- vgaLoresKey * = 00039004H;
- vgaProductKey * = 00039024H;
- vgaHAMKey * = 00031804H;
- vgaExtraLoresLaceKey * = 00031005H;
- vgaLoresLaceKey * = 00039005H;
- vgaProductLaceKey * = 00039025H;
- vgaHAMLaceKey * = 00031805H;
- vgaExtraLoresDPFKey * = 00031404H;
- vgaLoresDPFKey * = 00039404H;
- vgaProductDPFKey * = 00039424H;
- vgaExtraLoresLaceDPFKey * = 00031405H;
- vgaLoresLaceDPFKey * = 00039405H;
- vgaProductLaceDPFKey * = 00039425H;
- vgaExtraLoresDPF2Key * = 00031444H;
- vgaLoresDPF2Key * = 00039444H;
- vgaProductDPF2Key * = 00039464H;
- vgaExtraLoresLaceDPF2Key * = 00031445H;
- vgaLoresLaceDPF2Key * = 00039445H;
- vgaProductLaceDPF2Key * = 00039465H;
- vgaExtraHalfBriteKey * = 00031084H;
- vgaExtraHalfBriteLaceKey * = 00031085H;
- (* New for AA ChipSet (V39) *)
- vgaProductHAMKey * = 00039824H;
- vgaLoresHAMKey * = 00039804H;
- vgaExtraLoresHAMKey * = vgaHAMKey;
- vgaProductHAMLaceKey * = 00039825H;
- vgaLoresHAMLaceKey * = 00039805H;
- vgaExtraLoresHAMLaceKey * = vgaHAMLaceKey;
- vgaExtraLoresEHBKey * = vgaExtraHalfBriteKey;
- vgaExtraLoresEHBLaceKey * = vgaExtraHalfBriteLaceKey;
- vgaLoresEHBKey * = 00039084H;
- vgaLoresEHBLaceKey * = 00039085H;
- vgaEHBKey * = 000390A4H;
- vgaEHBLaceKey * = 000390A5H;
- (* These ModeIDs are the scandoubled equivalents of the above, with the
- * exception of the DualPlayfield modes, as AA does not allow for scandoubling
- * dualplayfield.
- *)
- vgaExtraLoresDblKey * = 00031000H;
- vgaLoresDblKey * = 00039000H;
- vgaProductDblKey * = 00039020H;
- vgaExtraLoresHAMDblKey * = 00031800H;
- vgaLoresHAMDblKey * = 00039800H;
- vgaProductHAMDblKey * = 00039820H;
- vgaExtraLoresEHBDblKey * = 00031080H;
- vgaLoresEHBDblKey * = 00039080H;
- vgaProductEHBDblKey * = 000390A0H;
-
- (* a2024 identifiers *)
-
- a2024MonitorID * = 00041000H;
-
- a2024tenHertzKey * = 00041000H;
- a2024fifteenHertzKey * = 00049000H;
-
- (* prototype identifiers *)
-
- protoMonitorID * = 00051000H;
-
- (* These monitors and modes were added for the V38 release. *)
-
- euro72MonitorId * = 000061000H;
-
- euro72ExtraLoresKey * = 000061004H;
- euro72LoresKey * = 000069004H;
- euro72ProductKey * = 000069024H;
- euro72HAMKey * = 000061804H;
- euro72ExtraLoresLaceKey * = 000061005H;
- euro72LoresLaceKey * = 000069005H;
- euro72ProductLaceKey * = 000069025H;
- euro72HAMLaceKey * = 000061805H;
- euro72ExtraLoresDPFKey * = 000061404H;
- euro72LoresDPFKey * = 000069404H;
- euro72ProductDPFKey * = 000069424H;
- euro72ExtraLoresLaceDPFKey * = 000061405H;
- euro72LoresLaceDPFKey * = 000069405H;
- euro72ProductLaceDPFKey * = 000069425H;
- euro72ExtraLoresDPF2Key * = 000061444H;
- euro72LoresDPF2Key * = 000069444H;
- euro72ProductDPF2Key * = 000069464H;
- euro72ExtraLoresLaceDPF2Key * = 000061445H;
- euro72LoresLaceDPF2Key * = 000069445H;
- euro72ProductLaceDPF2Key * = 000069465H;
- euro72ExtraHalfBriteKey * = 000061084H;
- euro72ExtraHalfBriteLaceKey * = 000061085H;
- (* New AA modes (V39) *)
- euro72ProductHAMKey * = 000069824H;
- euro72ProductHAMLaceKey * = 000069825H;
- euro72LoresHAMKey * = 000069804H;
- euro72LoresHAMLaceKey * = 000069805H;
- euro72ExtraLoresHAMKey * = euro72HAMKey;
- euro72ExtraLoresHAMLaceKey * = euro72HAMLaceKey;
- euro72ExtraLoresEHBKey * = euro72ExtraHalfBriteKey;
- euro72ExtraLoresEHBLaceKey * = euro72ExtraHalfBriteLaceKey;
- euro72LoresEHBKey * = 000069084H;
- euro72LoresEHBLaceKey * = 000069085H;
- euro72EHBKey * = 0000690A4H;
- euro72EHBLaceKey * = 0000690A5H;
- (* These ModeIDs are the scandoubled equivalents of the above, with the
- * exception of the DualPlayfield modes, as AA does not allow for scandoubling
- * dualplayfield.
- *)
- euro72ExtraLoresDblKey * = 000061000H;
- euro72LoresDblKey * = 000069000H;
- euro72ProductDblKey * = 000069020H;
- euro72ExtraLoresHAMDblKey * = 000061800H;
- euro72LoresHAMDblKey * = 000069800H;
- euro72ProductHAMDblKey * = 000069820H;
- euro72ExtraLoresEHBDblKey * = 000061080H;
- euro72LoresEHBDblKey * = 000069080H;
- euro72ProductEHBDblKey * = 0000690A0H;
-
-
- euro36MonitorId * = 000071000H;
-
- (* Euro36 modeids can be ORed with the default modeids a la NTSC and PAL.
- * For example, Euro36 SuperHires is
- * (EURO36_MONITOR_ID | SUPER_KEY)
- *)
-
- super72MonitorId * = 000081000H;
-
- (* Super72 modeids can be ORed with the default modeids a la NTSC and PAL.
- * For example, Super72 SuperHiresLace (800x600) is
- * (SUPER72_MONITOR_ID | SUPER_LACE_KEY).
- * The following scandoubled Modes are the exception:
- *)
- super72LoresDblKey * = 000081008H;
- super72HiresDblKey * = 000089008H;
- super72SuperDblKey * = 000089028H;
- super72LoresHAMDblKey * = 000081808H;
- super72HiresHAMDblKey * = 000089808H;
- super72SuperHAMDblKey * = 000089828H;
- super72LoresEHBDblKey * = 000081088H;
- super72HiresEHBDblKey * = 000089088H;
- super72SuperEHBDblKey * = 0000890A8H;
-
-
- (* These monitors and modes were added for the V39 release. *)
-
- dblNTSCMonitorId * = 000091000H;
-
- dblNTSCLoresKey * = 000091000H;
- dblNTSCLoresffKey * = 000091004H;
- dblNTSCLoresHAMKey * = 000091800H;
- dblNTSCLoresHAMFFKey * = 000091804H;
- dblNTSCLoresEHBKey * = 000091080H;
- dblNTSCLoresEHBFFKey * = 000091084H;
- dblNTSCLoresLaceKey * = 000091005H;
- dblNTSCLoresHAMLaceKey * = 000091805H;
- dblNTSCLoresEHBLaceKey * = 000091085H;
- dblNTSCLoresDPFKey * = 000091400H;
- dblNTSCLoresDPFFFKey * = 000091404H;
- dblNTSCLoresDPFLaceKey * = 000091405H;
- dblNTSCLoresDPF2Key * = 000091440H;
- dblNTSCLoresDPF2FFKey * = 000091444H;
- dblNTSCLoresDPF2LaceKey * = 000091445H;
- dblNTSCHiresKey * = 000099000H;
- dblNTSCHiresFFKey * = 000099004H;
- dblNTSCHiresHAMKey * = 000099800H;
- dblNTSCHiresHAMFFKey * = 000099804H;
- dblNTSCHiresLaceKey * = 000099005H;
- dblNTSCHiresHAMLaceKey * = 000099805H;
- dblNTSCHiresEHBKey * = 000099080H;
- dblNTSCHiresEHBFFKey * = 000099084H;
- dblNTSCHiresEHBLaceKey * = 000099085H;
- dblNTSCHiresDPFKey * = 000099400H;
- dblNTSCHiresDPFFFKey * = 000099404H;
- dblNTSCHiresDPFLaceKey * = 000099405H;
- dblNTSCHiresDPF2Key * = 000099440H;
- dblNTSCHiresDPF2FFKey * = 000099444H;
- dblNTSCHiresDPF2LaceKey * = 000099445H;
- dblNTSCExtraLoresKey * = 000091200H;
- dblNTSCExtraLoresHAMKey * = 000091A00H;
- dblNTSCExtraLoresEHBKey * = 000091280H;
- dblNTSCExtraLoresDPFKey * = 000091600H;
- dblNTSCExtraLoresDPF2Key * = 000091640H;
- dblNTSCExtraLoresFFKey * = 000091204H;
- dblNTSCExtraLoresHAMFFKey * = 000091A04H;
- dblNTSCExtraLoresEHBFFKey * = 000091284H;
- dblNTSCExtraLoresDPFFFKey * = 000091604H;
- dblNTSCExtraLoresDPF2FFKey * = 000091644H;
- dblNTSCExtraLoresLaceKey * = 000091205H;
- dblNTSCExtraLoresHAMLaceKey * = 000091A05H;
- dblNTSCExtraLoresEHBLaceKey * = 000091285H;
- dblNTSCExtraLoresDPFLaceKey * = 000091605H;
- dblNTSCExtraLoresDPF2LaceKey * = 000091645H;
-
- dblPALMonitorId * = 0000A1000H;
-
- dblPALLoresKey * = 0000A1000H;
- dblPALLoresFFKey * = 0000A1004H;
- dblPALLoresHAMKey * = 0000A1800H;
- dblPALLoresHAMFFKey * = 0000A1804H;
- dblPALLoresEHBKey * = 0000A1080H;
- dblPALLoresEHBFFKey * = 0000A1084H;
- dblPALLoresLaceKey * = 0000A1005H;
- dblPALLoresHAMLaceKey * = 0000A1805H;
- dblPALLoresEHBLaceKey * = 0000A1085H;
- dblPALLoresDPFKey * = 0000A1400H;
- dblPALLoresDPFFFKey * = 0000A1404H;
- dblPALLoresDPFLaceKey * = 0000A1405H;
- dblPALLoresDPF2Key * = 0000A1440H;
- dblPALLoresDPF2FFKey * = 0000A1444H;
- dblPALLoresDPF2LaceKey * = 0000A1445H;
- dblPALHiresKey * = 0000A9000H;
- dblPALHiresFFKey * = 0000A9004H;
- dblPALHiresHAMKey * = 0000A9800H;
- dblPALHiresHAMFFKey * = 0000A9804H;
- dblPALHiresLaceKey * = 0000A9005H;
- dblPALHiresHAMLaceKey * = 0000A9805H;
- dblPALHiresEHBKey * = 0000A9080H;
- dblPALHiresEHBFFKey * = 0000A9084H;
- dblPALHiresEHBLaceKey * = 0000A9085H;
- dblPALHiresDPFKey * = 0000A9400H;
- dblPALHiresDPFFFKey * = 0000A9404H;
- dblPALHiresDPFLaceKey * = 0000A9405H;
- dblPALHiresDPF2Key * = 0000A9440H;
- dblPALHiresDPF2FFKey * = 0000A9444H;
- dblPALHiresDPF2LaceKey * = 0000A9445H;
- dblPALExtraLoresKey * = 0000A1200H;
- dblPALExtraLoresHAMKey * = 0000A1A00H;
- dblPALExtraLoresEHBKey * = 0000A1280H;
- dblPALExtraLoresDPFKey * = 0000A1600H;
- dblPALExtraLoresDPF2Key * = 0000A1640H;
- dblPALExtraLoresFFKey * = 0000A1204H;
- dblPALExtraLoresHAMFFKey * = 0000A1A04H;
- dblPALExtraLoresEHBFFKey * = 0000A1284H;
- dblPALExtraLoresDPFFFKey * = 0000A1604H;
- dblPALExtraLoresDPF2FFKey * = 0000A1644H;
- dblPALExtraLoresLaceKey * = 0000A1205H;
- dblPALExtraLoresHAMLaceKey * = 0000A1A05H;
- dblPALExtraLoresEHBLaceKey * = 0000A1285H;
- dblPALExtraLoresDPFLaceKey * = 0000A1605H;
- dblPALExtraLoresDPF2LaceKey * = 0000A1645H;
-
-
- (* Use these tags for passing to BestModeID() (V39) *)
-
- specialFlags * = {isDualPF, isPF2Pri, isHAM, isExtraHalfBrite};
-
- bidTagDipfMustHave * = 080000001H; (* mask of the DIPF_ flags the ModeID must have *)
- (* Default - NULL *)
- bidTagDipfMustNotHave * = 080000002H; (* mask of the DIPF_ flags the ModeID must not have *)
- (* Default - SPECIAL_FLAGS *)
- bidTagViewPort * = 080000003H; (* ViewPort for which a ModeID is sought. *)
- (* Default - NULL *)
- bidTagNominalWidth * = 080000004H; (* together make the aspect ratio and *)
- bidTagNominalHeight * = 080000005H; (* / override the vp->Width/Height. *)
- (* Default - SourceID NominalDimensionInfo,
- * or vp->DWidth/Height, or (640 * 200),
- * in that preferred order.
- *)
- bidTagDesiredWidth * = 080000006H; (* Nominal Width and Height of the *)
- bidTagDesiredHeight * = 080000007H; (* / returned ModeID. *)
- (* Default - same as Nominal *)
- bidTagDepth * = 080000008H; (* ModeID must support this depth. *)
- (* Default - vp->RasInfo->BitMap->Depth or 1 *)
- bidTagMonitorID * = 080000009H; (* ModeID must use this monitor. *)
- (* Default - use best monitor available *)
- bidTagSourceID * = 08000000AH; (* instead of a ViewPort. *)
- (* Default - VPModeID(vp) if BID_TAG_ViewPort is
- * specified, else leave the DIPFMustHave and
- * DIPFMustNotHave values untouched.
- *)
- bidTagRedBits * = 08000000BH; (* *)
- bidTagBlueBits * = 08000000CH; (* } Match up from the database *)
- bidTagGreenBits * = 08000000DH; (* / *)
- (* Default - 4 *)
- bidTagGfxPrivate * = 08000000EH; (* Private *)
-
-
- (*
- ** $VER: gels.h 39.0 (21.8.91)
- **
- ** definitions for AMIGA GELS (Graphics Elements)
- *)
-
-
- CONST
-
- (* VSprite flags *)
- (* user-set VSprite flags: *)
- sUserFlags * = {0 .. 7}; (* mask of all user-settable VSprite-flags *)
- vSprite * = 0; (* set if VSprite, clear if Bob *)
- saveBack * = 1; (* set if background is to be saved/restored *)
- overlay * = 2; (* set to mask image of Bob onto background *)
- mustDraw * = 3; (* set if VSprite absolutely must be drawn *)
- (* system-set VSprite flags: *)
- backSaved * = 8; (* this Bob's background has been saved *)
- bobUpdate * = 9; (* temporary flag, useless to outside world *)
- gelGone * = 10; (* set if gel is completely clipped (offscreen) *)
- vsOverflow * = 11; (* VSprite overflow (if MUSTDRAW set we draw!) *)
-
- (* Bob flags *)
- (* these are the user flag bits *)
- bUserFlags * = {0 .. 7}; (* mask of all user-settable Bob-flags *)
- saveBob * = 0; (* set to not erase Bob *)
- bobIsComp * = 1; (* set to identify Bob as AnimComp *)
- (* these are the system flag bits *)
- bWaiting * = 8; (* set while Bob is waiting on 'after' *)
- bDrawn * = 9; (* set when Bob is drawn this DrawG pass *)
- bobsAway * = 10; (* set to initiate removal of Bob *)
- bobNix * = 11; (* set when Bob is completely removed *)
- savePreserve * = 12; (* for back-restore during double-buffer *)
- outStep * = 13; (* for double-clearing if double-buffer *)
-
- (* defines for the animation procedures *)
- anFracSize * = 6;
- animHalf * = 0020H;
- ringTrigger * = 0001H;
-
-
- TYPE
-
- (* UserStuff definitions
- * the user can define these to be a single variable or a sub-structure
- * if undefined by the user, the system turns these into innocuous variables
- * see the manual for a thorough definition of the UserStuff definitions
- *
- *)
-
- (* VSprite user stuff *)
- VUserStuff * = INTEGER;
-
- (* Bob user stuff *)
- BUserStuff * = INTEGER;
-
- (* AnimOb user stuff *)
- AUserStuff * = INTEGER;
-
-
- (********************** * GEL STRUCTURES** ******************************** *)
-
- VSprite * = RECORD
- (* --------------------- SYSTEM VARIABLES ------------------------------- *)
- (* GEL linked list forward/backward pointers sorted by y,x value *)
- nextVSprite * : VSpritePtr;
- prevVSprite * : VSpritePtr;
-
- (* GEL draw list constructed in the order the Bobs are actually drawn, then
- * list is copied to clear list
- * must be here in VSprite for system boundary detection
- *)
- drawPath * : VSpritePtr; (* pointer of overlay drawing *)
- clearPath * : VSpritePtr; (* pointer for overlay clearing *)
-
- (* the VSprite positions are defined in (y,x) order to make sorting
- * sorting easier, since (y,x) as a long integer
- *)
- oldY *, oldX * : INTEGER; (* previous position *)
-
- (* --------------------- COMMON VARIABLES --------------------------------- *)
- flags * : s.SET16; (* VSprite flags *)
-
-
- (* --------------------- USER VARIABLES ----------------------------------- *)
- (* the VSprite positions are defined in (y,x) order to make sorting
- * sorting easier, since (y,x) as a long integer
- *)
- y *, x * : INTEGER; (* screen position *)
-
- height * : INTEGER;
- width * : INTEGER; (* number of words per row of image data *)
- depth * : INTEGER; (* number of planes of data *)
-
- meMask * : s.SET16; (* which types can collide with this VSprite *)
- hitMask * : s.SET16; (* which types this VSprite can collide with *)
-
- imageData * : e.APTR; (* pointer to VSprite image *)
-
- (* borderLine is the one-dimensional logical OR of all
- * the VSprite bits, used for fast collision detection of edge
- *)
- borderLine * : e.APTR; (* logical OR of all VSprite bits *)
- collMask * : e.APTR; (* similar to above except this is a matrix *)
-
- (* pointer to this VSprite's color definitions (not used by Bobs) *)
- sprColors * : e.APTR;
-
- vsBob * : BobPtr; (* points home if this VSprite is part of
- a Bob *)
-
- (* planePick flag: set bit selects a plane from image, clear bit selects
- * use of shadow mask for that plane
- * OnOff flag: if using shadow mask to fill plane, this bit (corresponding
- * to bit in planePick) describes whether to fill with 0's or 1's
- * There are two uses for these flags:
- * - if this is the VSprite of a Bob, these flags describe how the Bob
- * is to be drawn into memory
- * - if this is a simple VSprite and the user intends on setting the
- * MUSTDRAW flag of the VSprite, these flags must be set too to describe
- * which color registers the user wants for the image
- *)
- planePick * : s.SET8;
- planeOnOff * : s.SET8;
-
- vUserExt * : VUserStuff; (* user definable: see note above *)
- END; (* VSprite *)
-
-
- Bob * = RECORD
- (* blitter-objects *)
- (* --------------------- SYSTEM VARIABLES --------------------------------- *)
-
- (* --------------------- COMMON VARIABLES --------------------------------- *)
- flags * : s.SET16;(* general purpose flags (see definitions below) *)
-
- (* --------------------- USER VARIABLES ----------------------------------- *)
- saveBuffer * : e.APTR; (* pointer to the buffer for background save *)
-
- (* used by Bobs for "cookie-cutting" and multi-plane masking *)
- imageShadow * : e.APTR;
-
- (* pointer to BOBs for sequenced drawing of Bobs
- * for correct overlaying of multiple component animations
- *)
- before * : BobPtr; (* draw this Bob before Bob pointed to by before *)
- after * : BobPtr; (* draw this Bob after Bob pointed to by after *)
-
- bobVSprite * : VSpritePtr; (* this Bob's VSprite definition *)
-
- bobComp * : AnimCompPtr; (* pointer to this Bob's AnimComp def *)
-
- dBuffer * : DBufPacketPtr; (* pointer to this Bob's dBuf packet *)
-
- bUserExt * : BUserStuff; (* Bob user extension *)
- END; (* Bob *)
-
- AnimComp * = RECORD
- (* --------------------- SYSTEM VARIABLES --------------------------------- *)
-
- (* --------------------- COMMON VARIABLES --------------------------------- *)
- flags * : s.SET16; (* AnimComp flags for system & user *)
-
- (* timer defines how long to keep this component active:
- * if set non-zero, timer decrements to zero then switches to nextSeq
- * if set to zero, AnimComp never switches
- *)
- timer * : INTEGER;
-
- (* --------------------- USER VARIABLES ----------------------------------- *)
- (* initial value for timer when the AnimComp is activated by the system *)
- timeSet * : INTEGER;
-
- (* pointer to next and previous components of animation object *)
- nextComp * : AnimCompPtr;
- prevComp * : AnimCompPtr;
-
- (* pointer to component component definition of next image in sequence *)
- nextSeq * : AnimCompPtr;
- prevSeq * : AnimCompPtr;
-
- animCRoutine * : e.PROC; (* address of special animation procedure *)
-
- yTrans * : INTEGER; (* initial y translation (if this is a component) *)
- xTrans * : INTEGER; (* initial x translation (if this is a component) *)
-
- headOb * : AnimObPtr;
-
- animBob * : BobPtr;
- END; (* AnimComp *)
-
-
- AnimOb * = RECORD
- (* --------------------- SYSTEM VARIABLES --------------------------------- *)
- nextOb *, prevOb * : AnimObPtr;
-
- (* number of calls to Animate this AnimOb has endured *)
- clock * : LONGINT;
-
- anOldY *, anOldX * : INTEGER; (* old y,x coordinates *)
-
- (* --------------------- COMMON VARIABLES --------------------------------- *)
- anY *, anX * : INTEGER; (* y,x coordinates of the AnimOb *)
-
- (* --------------------- USER VARIABLES ----------------------------------- *)
- yVel *, xVel * : INTEGER; (* velocities of this object *)
- yAccel *, xAccell * : INTEGER; (* accelerations of this object *)
-
- ringYTrans *, ringXTrans * : INTEGER; (* ring translation values *)
-
- animoRoutine * : e.PROC; (* address of special animation
- procedure *)
-
- headComp * : AnimCompPtr; (* pointer to first component *)
-
- aUserExt * : AUserStuff; (* AnimOb user extension *)
- END; (* AnimOb *)
-
- DBufPacket * = RECORD
- bufY *, bufX * : INTEGER; (* save the other buffers screen coordinates *)
- bufPath * : VSpritePtr; (* carry the draw path over the gap *)
-
- (* these pointers must be filled in by the user *)
- (* pointer to other buffer's background save buffer *)
- bufBuffer * : e.APTR;
- END; (* DBufPacket *)
-
-
-
- CONST
-
- (*** ********************************************************************** *)
-
- (* these are GEL functions that are currently simple enough to exist as a
- * definition. It should not be assumed that this will always be the case
- *)
-
- (*
- #define InitAnimate(animKey) {*(animKey) = NULL;}
- #define RemBob(b) {(b)->Flags |= BOBSAWAY;}
- *)
-
- (*** ********************************************************************** *)
-
- b2Norm * = 0;
- b2Swap * = 1;
- b2Bobber * = 2;
-
- (*** ********************************************************************** *)
-
- TYPE
-
- CollTable * = RECORD
- collPtrs * : ARRAY 16 OF e.APTR;
- END; (* CollTable *)
-
-
- (*
- ** $VER: collide.h 37.0 (7.1.91)
- **
- ** definitions for collision detection and control
- *)
-
-
- CONST
-
- (* These bit descriptors are used by the GEL collide routines.
- * These bits are set in the hitMask and meMask variables of
- * a GEL to describe whether or not these types of collisions
- * can affect the GEL. bndryHIT is described further below;
- * this bit is permanently assigned as the boundary-hit flag.
- * The other bit gelHIT is meant only as a default to cover
- * any GEL hitting any other; the user may redefine this bit.
- *)
- borderHit * = 0;
-
- (* These bit descriptors are used by the GEL boundry hit routines.
- * When the user's boundry-hit routine is called (via the argument
- * set by a call to SetCollision) the first argument passed to
- * the user's routine is the address of the GEL involved in the
- * boundry-hit, and the second argument has the appropriate bit(s)
- * set to describe which boundry was surpassed
- *)
- topHit * = 1;
- bottomHit * = 2;
- leftHit * = 4;
- rightHit * = 8;
-
-
- (*
- ** $VER: rastport.h 39.0 (21.8.91)
- **
- ** Graphics library rastport definitions
- *)
-
-
- TYPE
-
- AreaInfo * = RECORD
- vctrTbl * : e.APTR; (* ptr to start of vector table *)
- vctrPtr * : e.APTR; (* ptr to current vertex *)
- flagTbl * : e.APTR; (* ptr to start of vector flag table *)
- flagPtr * : e.APTR; (* ptrs to areafill flags *)
- count * : INTEGER; (* number of vertices in list *)
- maxCount * : INTEGER; (* AreaMove/Draw will not allow Count>MaxCount *)
- firstX *, firstY * : INTEGER; (* first point for this polygon *)
- END; (* AreaInfo *)
-
- TmpRas * = RECORD
- rasPtr * : e.APTR;
- size * : LONGINT;
- END; (* TmpRas *)
-
- GelsInfo * = RECORD
- sprRsrvd * : SHORTINT; (* flag of which sprites to reserve from
- vsprite system *)
- flags * : e.BYTE; (* system use *)
- gelHead *,
- gelTail * : VSpritePtr; (* dummy vSprites for list management *)
- (* pointer to array of 8 INTEGERS for sprite available lines *)
- nextLine * : POINTER TO ARRAY 8 OF INTEGER;
- (* pointer to array of 8 pointers for color-last-assigned to vSprites *)
- lastColor * : POINTER TO ARRAY 8 OF POINTER TO ARRAY 1 OF INTEGER;
- collHandler * : CollTablePtr; (* addresses of collision routines *)
- leftmost *,
- rightmost *,
- topmost *,
- bottommost * : INTEGER;
- firstBlissObj *,
- lastBlissObj * : e.APTR; (* system use only *)
- END; (* GelsInfo *)
-
- RastPort * = RECORD
- layer * : LayerPtr;
- bitMap * : BitMapPtr;
- areaPtrn * : e.APTR; (* ptr to areafill pattern *)
- tmpRas * : TmpRasPtr;
- areaInfo * : AreaInfoPtr;
- gelsInfo * : GelsInfoPtr;
- mask * : s.SET8; (* write mask for this raster *)
- fgPen * : SHORTINT; (* foreground pen for this raster *)
- bgPen * : SHORTINT; (* background pen *)
- aOlPen * : SHORTINT; (* areafill outline pen *)
- drawMode * : s.SET8; (* drawing mode for fill, lines, and text *)
- areaPtSz * : SHORTINT; (* 2^n words for areafill pattern *)
- linpatcnt * : SHORTINT; (* current line drawing pattern preshift *)
- dummy * : SHORTINT;
- flags * : s.SET16; (* miscellaneous control bits *)
- linePtrn * : e.UWORD; (* 16 bits for textured lines *)
- x *, y * : INTEGER; (* current pen position *)
- minterms * : ARRAY 8 OF e.UBYTE;
- penWidth * : INTEGER;
- penHeight * : INTEGER;
- font * : TextFontPtr; (* current font address *)
- algoStyle * : s.SET8; (* the algorithmically generated style *)
- txFlags * : s.SET8; (* text specific flags *)
- txHeight * : e.UWORD; (* text height *)
- txWidth * : e.UWORD; (* text nominal width *)
- txBaseline * : e.UWORD; (* text baseline *)
- txSpacing * : INTEGER; (* text spacing (per character) *)
- user * : e.APTR;
- longreserved * : ARRAY 2 OF e.ULONG;
- wordreserved * : ARRAY 7 OF e.UWORD; (* used to be a node *)
- reserved * : ARRAY 8 OF e.UBYTE; (* for future use *)
- END; (* RastPort *)
-
- CONST
-
- (* drawing modes *)
- jam1 * = {}; (* jam 1 color into raster *)
- jam2 * = {0}; (* jam 2 colors into raster *)
- complement * = 1; (* XOR bits into raster *)
- inversvid * = 2; (* inverse video for drawing modes *)
-
- (* these are the flag bits for RastPort flags *)
- frstDot * = 0; (* draw the first dot of this line ? *)
- oneDot * = 1; (* use one dot mode for drawing lines *)
- dBuffer * = 2; (* flag set when RastPorts
- are double-buffered *)
-
- (* only used for bobs *)
-
- areaOutline * = 3; (* used by areafiller *)
- noCrossFill * = 5; (* areafills have no crossovers *)
-
- (* there is only one style of clipping: raster clipping *)
- (* this preserves the continuity of jaggies regardless of clip window *)
- (* When drawing into a RastPort, if the ptr to ClipRect is nil then there *)
- (* is no clipping done, this is dangerous but useful for speed *)
-
- (*
- ** $VER: copper.h 39.10 (31.5.93)
- **
- ** graphics copper list intstruction definintions
- *)
-
-
- CONST
-
- move * = 0; (* pseude opcode for move #XXXX,dir *)
- wait * = 1; (* pseudo opcode for wait y,x *)
- next * = 2; (* continue processing with next buffer *)
- ntLof * = 15; (* copper instruction only for short frames *)
- ntSht * = 14; (* copper instruction only for long frames *)
- ntSys * = 13; (* copper user instruction only *)
-
- TYPE
-
- CopIns * = RECORD
- opCode * : INTEGER; (* 0 = move, 1 = wait *)
- destAddr *: INTEGER; (* vertical beam wait OR
- * destination address of copper move *)
- destData *: INTEGER; (* beam wait position OR
- * destination immediate data to send *)
- END; (* CopIns *)
-
- CopInsCL * = RECORD
- opCode * : INTEGER;
- nxtlist * : CopListDummyPtr;
- END; (* CopInsCL *)
-
- TYPE
-
- Cprlist * = RECORD
- next * : CprlistPtr;
- start * : e.APTR; (* start of copper list *)
- maxCount * : INTEGER; (* number of long instructions *)
- END; (* Cprlist *)
-
- CopListDummy * = RECORD END;
-
- CopList * = RECORD (CopListDummy)
- next * : CopListPtr; (* next block for this copper list *)
- copList * : CopListPtr; (* system use *)
- viewPort * : ViewPortPtr; (* system use *)
- copIns * : CopInsPtr; (* start of this block *)
- copPtr * : CopInsPtr; (* intermediate ptr *)
- copLStart * : e.APTR; (* mrgcop fills this in for Long Frame *)
- copSStart * : e.APTR; (* mrgcop fills this in for Short Frame *)
- count * : INTEGER; (* intermediate counter *)
- maxCount * : INTEGER; (* max # of copins for this block *)
- dyOffset * : INTEGER; (* offset this copper list vertical waits *)
- slRepeat * : INTEGER;
- flags * : s.SET16;
- END; (* CopList *)
-
- CopList13 = RECORD (CopListDummy)
- next * : CopList13Ptr; (* next block for this copper list *)
- copList * : CopList13Ptr; (* system use *)
- viewPort * : ViewPortPtr; (* system use *)
- copIns * : CopInsPtr; (* start of this block *)
- copPtr * : CopInsPtr; (* intermediate ptr *)
- copLStart * : e.APTR; (* mrgcop fills this in for Long Frame *)
- copSStart * : e.APTR; (* mrgcop fills this in for Short Frame *)
- count * : INTEGER; (* intermediate counter *)
- maxCount * : INTEGER; (* max # of copins for this block *)
- dyOffset * : INTEGER; (* offset this copper list vertical waits *)
- cop2Start * : e.APTR;
- cop3Start * : e.APTR;
- cop4Start * : e.APTR;
- cop5Start * : e.APTR;
- slRepeat * : INTEGER;
- flags * : s.SET16;
- END; (* CopList13 *)
-
- UCopList * = RECORD
- next * : UCopListPtr;
- firstCopList * : CopListDummyPtr; (* head node of this copper list *)
- copList * : CopListDummyPtr; (* node in use *)
- END; (* UCopList *)
-
- (* private graphics data structure *)
-
- CopinitPtr = POINTER TO Copinit;
- Copinit = RECORD
- vsyncHblank : ARRAY 2 OF e.UWORD;
- diagstrt : ARRAY 12 OF e.UWORD; (* copper list for first bitplane *)
- fm0 : ARRAY 2 OF e.UWORD;
- diwstart : ARRAY 10 OF e.UWORD;
- bplcon2 : ARRAY 2 OF e.UWORD;
- sprfix : ARRAY 2*8 OF e.UWORD;
- sprstrtup : ARRAY (2*8*2) OF e.UWORD;
- wait14 : ARRAY 2 OF e.UWORD;
- normHblank : ARRAY 2 OF e.UWORD;
- jump : ARRAY 2 OF e.UWORD;
- waitForever : ARRAY 6 OF e.UWORD;
- sprstop : ARRAY 8 OF e.UWORD;
- END; (* Copinit *)
-
-
- (*
- ** $VER: view.h 39.34 (31.5.93)
- **
- ** graphics view/viewport definintions
- *)
-
- TYPE
-
- ViewPort * = RECORD
- next * : ViewPortPtr;
- colorMap * : ColorMapPtr; (* table of colors for this viewport *)
- (* if this is nil, MakeVPort assumes default values *)
- dspIns * : CopListDummyPtr; (* user by MakeView() *)
- sprIns * : CopListDummyPtr; (* used by sprite stuff *)
- clrIns * : CopListDummyPtr; (* used by sprite stuff *)
- uCopIns * : UCopListPtr; (* User copper list *)
- dWidth *, dHeight * : INTEGER;
- dxOffset *, dyOffset * : INTEGER;
- modes * : s.SET16;
- spritePriorities * : SHORTINT; (* used by makevp *)
- extendedModes * : SHORTINT;
- rasInfo * : RasInfoPtr;
- END; (* ViewPort *)
-
- View * = RECORD
- viewPort * : ViewPortPtr;
- lofCprList * : CprlistPtr; (* used for interlaced and noninterlaced *)
- shfCprList * : CprlistPtr; (* only used during interlace *)
- dyOffset *, dxOffset * : INTEGER; (* for complete View positioning *)
- (* offsets are +- adjustments to standard #s *)
- modes * : s.SET16; (* such as INTERLACE, GENLOC *)
- END; (* View *)
-
- (* these structures are obtained via GfxNew *)
- (* and disposed by GfxFree *)
- ViewExtra * = RECORD (ExtendedNodeBase)
- n * : ExtendedNode;
- view * : ViewPtr; (* backwards link *)
- monitor * : MonitorSpecPtr; (* monitors for this view *)
- topLine * : e.UWORD;
- END; (* ViewExtra *)
-
- (* this structure is obtained via GfxNew *)
- (* and disposed by GfxFree *)
- ViewPortExtra * = RECORD (ExtendedNodeBase)
- n * : ExtendedNode;
- viewPort * : ViewPortPtr; (* backwards link *)
- displayClip * : Rectangle; (* makevp display clipping information *)
- (* These are added for V39 *)
- vecTable : e.APTR; (* Private *)
- driverData * : ARRAY 2 OF e.APTR;
- flags * : s.SET16;
- origin * : ARRAY 2 OF Point; (* First visible point relative to the DClip.
- * One for each possible playfield.
- *)
- cop1ptr : e.ULONG; (* private *)
- cop2ptr : e.ULONG; (* private *)
- END; (* ViewPortExtra *)
-
- CONST
-
- (* All these vpx flags are private *)
- vpxbFreeMe = 0;
- vpxbLast = 1;
- vpxbStraddles256 = 4;
- vpxbStraddles512 = 5;
-
- extendVStruct * = 12; (* unused bit in Modes field of View *)
-
- (* VP_ fields internal only *)
- a2024 * = 6;
- tenhz * = 4;
-
- (* defines used for Modes in IVPargs *)
-
- genLockVideo * = 1;
- lace * = 2;
- doubleScan * = 3;
- superHires * = 5;
- pfba * = 6;
- extraHalfBrite * = 7;
- genlockAudio * = 8;
- dualpf * = 10;
- ham * = 11;
- extendedMode * = 12;
- vpHide * = 13;
- sprites * = 14;
- hires * = 15;
-
- TYPE
-
- (* used by callers to and InitDspC() *)
-
- RasInfo * = RECORD
- next * : RasInfoPtr; (* used for dualpf *)
- bitMap * : BitMapPtr;
- rxOffset *, ryOffset : INTEGER; (* scroll offsets in this BitMap *)
- END; (* RasInfo *)
-
- ColorMap * = RECORD
- flags * : s.SET8;
- type * : SHORTINT;
- count * : e.UWORD;
- colorTable * : e.APTR;
- vpe * : ViewPortExtraPtr;
- lowColorBits * : e.APTR;
- transparencyPlane * : SHORTINT;
- spriteResolution * : e.UBYTE;
- spriteResDefault * : e.UBYTE; (* what resolution you get when you have set SPRITERESN_DEFAULT *)
- auxFlags * : s.SET8;
- vp * : ViewPortPtr;
- normalDisplayInfo * : DisplayInfoPtr;
- coerceDisplayInfo * : DisplayInfoPtr;
- cmBatchItems * : u.TagListPtr;
- vpModeID * : e.ULONG;
- palExtra * : PaletteExtraPtr;
- spriteBaseEven * : e.UWORD;
- spriteBaseOdd * : e.UWORD;
- bp0base * : e.UWORD;
- bp1base * : e.UWORD;
- END; (* ColorMap *)
-
- CONST
-
- (* if Type == 0 then ColorMap is V1.2/V1.3 compatible *)
- (* if Type != 0 then ColorMap is V38 compatible *)
- (* the system will never create other than V39 type colormaps when running V39 *)
-
- colorMapTypeV12 * = 0;
- colorMapTypeV14 * = 1;
- colorMapTypeV36 * = colorMapTypeV14; (* use this definition *)
- colorMapTypeV39 * = 2;
-
- (* Flags variable *)
- colorMapTransparency * = 0;
- colorPlaneTransparency * = 1;
- borderBlanking * = 2;
- borderNoTransparency * = 3;
- videoControlBatch * = 4;
- userCopperClip * = 5;
- borderSprites * = 6;
-
- cmfCmTrans * = 0;
- cmfCpTrans * = 1;
- cmfBrdrBlnk * = 2;
- cmfBrdnTran * = 3;
- cmfBrdrSprt * = 6;
-
- resnEcs * = 0;
- (* ^140ns, except in 35ns viewport, where it is 70ns. *)
- resn140ns * = 1;
- resn70ns * = 2;
- resn35ns * = 3;
- resnDefault * = -1;
-
- (* AuxFlags : *)
- fullPalette * = 0;
- noIntermedUpdate * = 1;
- noColorLoad * = 2;
- dualPFDisable * = 3;
-
- TYPE
-
- (* structure may be extended so watch out! *)
-
- (* thanks for the warning :-) [fjc] *)
- PaletteExtraBase *= RECORD (e.SignalSemaphoreBase) END;
-
- PaletteExtra * = RECORD (PaletteExtraBase)
- semaphore * : e.SignalSemaphore; (* shared semaphore for arbitration *)
- firstFree : e.UWORD; (* *private* *)
- nFree * : e.UWORD; (* number of free colors *)
- firstShared : e.UWORD; (* *private* *)
- nShared : e.UWORD; (* *private* *)
- refCnt : e.APTR; (* *private* *)
- allocList : e.APTR; (* *private* *)
- viewPort * : ViewPortPtr; (* back pointer to viewport *)
- sharableColors * : e.UWORD; (* the number of sharable colors. *)
- END;
-
- CONST
-
- (* flags values for ObtainPen *)
-
- penbExclusive * = 0;
- penbNoSetColor * = 1;
-
- (* precision values for ObtainBestPen : *)
-
- precisionExact * = -1;
- precisionImage * = 0;
- precisionIcon * = 16;
- precisionGui * = 32;
-
-
- (* tags for ObtainBestPen: *)
- obpPrecision * = 084000000H;
- obpFailIfBad * = 084000001H;
-
- (* From V39, MakeVPort() will return an error if there is not enough memory,
- * or the requested mode cannot be opened with the requested depth with the
- * given bitmap (for higher bandwidth alignments).
- *)
-
- mvpOk * = 0; (* you want to see this one *)
- mvpNoMem * = 1; (* insufficient memory for intermediate workspace *)
- mvpNoVpe * = 2; (* ViewPort does not have a ViewPortExtra, and
- * insufficient memory to allocate a temporary one.
- *)
- mvpNoDspins * = 3; (* insufficient memory for intermidiate copper
- * instructions.
- *)
- mvpNoDisplay * = 4; (* BitMap data is misaligned for this viewport's
- * mode and depth - see AllocBitMap().
- *)
- mvpOffBottom = 5; (* PRIVATE - you will never see this. *)
-
- (* From V39, MrgCop() will return an error if there is not enough memory,
- * or for some reason MrgCop() did not need to make any copper lists.
- *)
-
- mcopOk * = 0; (* you want to see this one *)
- mcopNoMem * = 1; (* insufficient memory to allocate the system
- * copper lists.
- *)
- mcopNop * = 2; (* MrgCop() did not merge any copper lists
- * (eg, no ViewPorts in the list, or all marked as
- * hidden).
- *)
-
- TYPE
-
- DBufInfo * = RECORD
- link1 * : e.APTR;
- count1 * : e.ULONG;
- safeMessage * : e.Message; (* replied to when safe to write to old bitmap *)
- userData1 * : e.APTR; (* first user data *)
-
- link2 * : e.APTR;
- count2 * : e.ULONG;
- dispMessage * : e.Message; (* replied to when new bitmap has been displayed at least
- once *)
- userData2 * : e.APTR; (* second user data *)
- matchLong * : e.ULONG;
- copPtr1 * : e.APTR;
- copPtr2 * : e.APTR;
- copPtr3 * : e.APTR;
- beamPos1 * : e.UWORD;
- beamPos2 * : e.UWORD;
- END;
-
-
- (*
- ** $VER: layers.h 39.4 (14.4.92)
- **
- ** graphics library layers definitions
- *)
-
-
- CONST
-
- layerSimple * = 0;
- layerSmart * = 1;
- layerSuper * = 2;
- layerUpdating * = 4;
- layerBackdrop * = 6;
- layerRefresh * = 7;
- layerIRefresh * = 9;
- layerIRefresh2 * = 10;
- layerClipRectsLost * = 8; (* during BeginUpdate *)
- (* or during layerop *)
- (* this happens if out of memory *)
- lmnRegion * = -1; (* removed in V39 includes *)
-
- TYPE
-
- LayerInfo * = RECORD
- topLayer * : LayerPtr;
- lp : LayerPtr; (* !! Private !! *)
- obs * : ClipRectPtr;
- freeClipRects : ClipRectPtr; (* !! Private !! *)
- privateReserve1 : LONGINT; (* !! Private !! *)
- privateReserve2 : LONGINT; (* !! Private !! *)
- lock : e.SignalSemaphore; (* !! Private !! *)
- gsHead : e.MinList; (* !! Private !! *)
- privateReserve3 : INTEGER; (* !! Private !! *)
- privateReserve4 : e.APTR; (* !! Private !! *)
- flags * : s.SET16;
- count : SHORTINT; (* !! Private !! *)
- lockLayersCount : SHORTINT; (* !! Private !! *)
- privateReserve5 : INTEGER; (* !! Private !! *)
- blankHook : e.APTR; (* !! Private !! *)
- layerInfoExtra : e.APTR; (* !! Private !! *)
- END; (* LayerInfo *)
-
- CONST
-
- newLayerInfoCalled * = 1;
- alertLayersNoMem * = 83010000H; (* removed in V39 includes *)
-
- (*
- * layersNoBackfill is the value needed to get no backfill hook
- * layersBackfill is the value needed to get the default backfill hook
- *)
- noBackfill * = SYS.VAL (u.HookPtr, 1);
- backfill * = NIL;
-
-
- (*
- ** $VER: clip.h 39.0 (2.12.91)
- **
- ** Graphics library clip definitions
- *)
-
-
- TYPE
-
- Layer * = RECORD
- front -, back - : LayerPtr;
- clipRect - : ClipRectPtr; (* read by roms to find first cliprect *)
- rp - : RastPortPtr;
- bounds - : Rectangle;
- reserved - : ARRAY 4 OF e.UBYTE;
- priority - : e.UWORD; (* system use only *)
- flags - : s.SET16;(* obscured ?, Virtual BitMap? *)
- superBitMap - : BitMapPtr;
- superClipRect - : ClipRectPtr; (* super bitmap cliprects if VBitMap != 0 *)
- (* else damage cliprect list for refresh *)
- window - : e.APTR; (* reserved for user interface use *)
- scrollX -, scrollY - : INTEGER;
- cr -, cr2 -, crnew - : ClipRectPtr; (* used by dedice *)
- superSaveClipRects - : ClipRectPtr; (* preallocated cr's *)
- cliprects - : ClipRectPtr; (* system use during refresh *)
- layerInfo - : LayerInfoPtr; (* points to head of the list *)
- lock - : e.SignalSemaphore;
- backFill - : u.HookPtr;
- reserved1 - : e.ULONG;
- clipRegion - : RegionPtr;
- saveClipRects - : RegionPtr; (* used to back out when in trouble *)
- width -, height - : INTEGER; (* system use *)
- reserved2 - : ARRAY 18 OF e.UBYTE;
- (* this must stay here *)
- damageList - : RegionPtr; (* list of rectangles to refresh
- through *)
- END; (* Layer *)
-
- ClipRect * = RECORD
- next * : ClipRectPtr; (* roms used to find next ClipRect *)
- prev * : ClipRectPtr; (* Temp use in layers (private) *)
- lobs * : LayerPtr; (* Private use for layers *)
- bitMap * : BitMapPtr; (* Bitmap for layers private use *)
- bounds * : Rectangle; (* bounds of cliprect *)
- p1 *, p2 * : ClipRectPtr; (* system reserved *)
- reserved * : LONGINT; (* system use (Layers private) *)
- flags * : s.SET32; (* Layers private field for cliprects *)
- (* that layers allocates... *)
- (* MUST be multiple of 8 bytes to buffer *)
- END; (* ClipRect *)
-
- CONST
-
- (* internal cliprect flags *)
- needsNoConcealedRasters = 1;
- needsNoLayerblitDamage = 2;
-
- (* defines for code values for getcode *)
- isLessX * = 1;
- isLessY * = 2;
- isGrtrX * = 4;
- isGrtrY * = 8;
-
-
- (*
- ** $VER: regions.h 39.0 (21.8.91)
- **
- ** Graphics region definitions
- *)
-
-
- TYPE
-
- RegionRectangle * = RECORD
- next *, prev * : RegionRectanglePtr;
- bounds * : Rectangle;
- END; (* RegionRectangle *)
-
- Region * = RECORD (RectangleBase)
- bounds * : Rectangle;
- regionRectangle * : RegionRectanglePtr;
- END; (* Region *)
-
-
- (*
- ** $VER: sprite.h 39.6 (16.6.92)
- **
- ** Graphics sprite definitions
- *)
-
- CONST
-
- spriteAttached * = 80H;
-
- TYPE
-
- SimpleSpriteBase *= RECORD END;
-
- SimpleSprite * = RECORD (SimpleSpriteBase)
- posctldata * : e.APTR;
- height * : e.UWORD;
- x *, y * : e.UWORD; (* current position *)
- num * : e.UWORD;
- END; (* SimpleSprite *)
-
- ExtSprite * = RECORD (SimpleSpriteBase)
- simpleSprite * : SimpleSprite; (* conventional simple sprite structure *)
- wordWidth * : e.UWORD; (* graphics use only, subject to change *)
- flags * : s.SET16; (* graphics use only, subject to change *)
- END;
-
- CONST
-
- (* tags for AllocSpriteData() *)
- spriteaWidth * = 081000000H;
- spriteaXreplication * = 081000002H;
- spriteaYreplication * = 081000004H;
- spriteaOutputheight * = 081000006H;
- spriteaAttached * = 081000008H;
- spriteaOlddataformat * = 08100000AH; (* MUST pass in outputheight if using this tag *)
-
- (* tags for GetExtSprite() *)
- gstagSpriteNum * = 082000020H;
- gstagAttached * = 082000022H;
- gstagSoftsprite * = 082000024H;
-
- (* tags valid for either GetExtSprite or ChangeExtSprite *)
- gstagScandoubled * = 083000000H; (* request "NTSC-Like" height if possible. *)
-
-
- (*
- ** $VER: text.h 39.0 (21.8.91)
- **
- ** graphics library text structures
- *)
-
-
- CONST
-
- (* ------ Font Styles ------------------------------------------------ *)
- normal * = {}; (* normal text (no style bits set) *)
- normalFont * = {}; (* prehistoric synonym *)
- underlined * = 0; (* underlined (under baseline) *)
- bold * = 1; (* bold face text (ORed w/ shifted) *)
- italic * = 2; (* italic (slanted 1:2 right) *)
- extended * = 3; (* extended face (wider than normal) *)
-
- colorfont * = 6; (* this uses ColorTextFont structure *)
- tagged * = 7; (* the TextAttr is really an TTextAttr, *)
-
- (* ------ Font Flags ------------------------------------------------- *)
- romFont * = 0; (* font is in rom *)
- diskFont * = 1; (* font is from diskfont.library *)
- revPath * = 2; (* designed path is reversed (e.g. left) *)
- tallDot * = 3; (* designed for hires non-interlaced *)
- wideDot * = 4; (* designed for lores interlaced *)
- proportional * = 5; (* character sizes can vary from nominal *)
- designed * = 6; (* size explicitly designed, not constructed *)
- (* note: if you do not set this bit in your *)
- (* textattr, then a font may be constructed *)
- (* for you by scaling an existing rom or disk *)
- (* font (under V36 and above). *)
- (* bit 7 is always clear for fonts on the graphics font list *)
- removed * = 7; (* the font has been removed *)
-
- TYPE
-
- (****** TextAttr node, matches text attributes in RastPort **********)
- TextAttr * = RECORD
- name * : e.LSTRPTR; (* name of the font *)
- ySize * : e.UWORD; (* height of the font *)
- style * : s.SET8; (* intrinsic font style *)
- flags * : s.SET8; (* font preferences and flags *)
- END; (* TextAttr *)
-
- TTextAttr * = RECORD
- name * : e.LSTRPTR; (* name of the font *)
- ySize * : e.UWORD; (* height of the font *)
- style * : s.SET8; (* intrinsic font style *)
- flags * : s.SET8; (* font preferences and flags *)
- tags * : u.TagListPtr; (* extended attributes *)
- END; (* TTextAttr *)
-
-
- CONST
-
- (****** Text Tags ************************************************** *)
- deviceDPI * = u.user+1; (* Tag value is Point union: *)
- (* Hi word XDPI, Lo word YDPI *)
-
- maxFontMatchweight * = 32767; (* perfect match from WeighTAMatch *)
-
-
- TYPE
-
- (****** TextFonts node **********************************************)
-
- TextFontBase *= RECORD (e.MessageBase) END;
- TextFontBasePtr *= POINTER TO TextFontBase;
-
- TextFont * = RECORD (TextFontBase)
- message * : e.Message; (* reply message for font removal *)
- (* font name in LN \ used in this *)
- ySize * : e.UWORD; (* font height | order to best *)
- style * : s.SET8; (* font style | match a font *)
- flags * : s.SET8; (* preferences and flags / request. *)
- xSize * : e.UWORD; (* nominal font width *)
- baseline * : e.UWORD; (* distance from the top of char to baseline *)
- boldSmear * : e.UWORD; (* smear to affect a bold enhancement *)
-
- accessors * : e.UWORD; (* access count *)
-
- loChar * : CHAR; (* the first character described here *)
- hiChar * : CHAR; (* the last character described here *)
- charData * : e.APTR; (* the bit character data *)
-
- modulo * : e.UWORD; (* the row modulo for the strike font data *)
- charLoc * : e.APTR; (* ptr to location data for the strike font *)
- (* 2 words: bit offset then size *)
- charSpace * : e.APTR; (* ptr to words of proportional spacing data *)
- charKern * : e.APTR; (* ptr to words of kerning data *)
- END; (* TextFont *)
-
-
- CONST
-
- (* ----- TextFontExtension.flags0 (partial definition) ---------------------------- *)
- noRemFont * = 0; (* disallow RemFont for this font *)
-
- TYPE
-
- TextFontExtension * = RECORD
- matchWord - : e.UWORD; (* a magic cookie for the extension *)
- flags0 : s.SET8; (* (system private flags) *)
- flags1 : s.SET8; (* (system private flags) *)
- backPtr - : TextFontPtr; (* validation of compilation *)
- origReplyPort - : e.MsgPortPtr; (* original value in tfExtension *)
- tags - : u.TagListPtr; (* Text Tags for the font *)
- oFontPatchS : e.APTR; (* (system private use) *)
- oFontPatchK : e.APTR; (* (system private use) *)
- (* this space is reserved for future expansion *)
- END; (* TextFontExtension *)
-
- CONST
-
- (****** ColorTextFont node ******************************************)
- (* ----- ctfFlags -------------------------------------------------- *)
- ctColorMask * = {0..3}; (* mask to get to following color styles *)
- ctColorFont * = 0; (* color map contains designer's colors *)
- ctGreyFont * = 1; (* color map describes even-stepped *)
- (* brightnesses from low to high *)
- ctAntiAlias * = 2; (* zero background thru fully saturated char *)
-
- ctMapColor * = 0; (* map ctfFgColor to the rpFgPen if it's *)
- (* is a valid color within ctfLow..ctfHigh *)
-
- TYPE
-
- (*----- ColorFontColors --------------------------------------------*)
- ColorFontColors * = RECORD
- reserved * : e.UWORD; (* *must* be zero *)
- count * : e.UWORD; (* number of entries in ColorTable *)
- colorTable * : e.APTR; (* 4 bit per component color map packed xRGB *)
- END; (* ColorFontColors *)
-
- (*----- ColorTextFont ----------------------------------------------*)
- ColorTextFont * = RECORD (TextFontBase)
- tf * : TextFont;
- flags * : s.SET16; (* extended flags *)
- depth * : SHORTINT; (* number of bit planes *)
- fgColor * : SHORTINT; (* color that is remapped to FgPen *)
- low * : SHORTINT; (* lowest color represented here *)
- high * : SHORTINT; (* highest color represented here *)
- planePick * : s.SET8; (* PlanePick ala Images *)
- planeOnOff * : s.SET8; (* PlaneOnOff ala Images *)
- colorFontColors * : ColorFontColorsPtr; (* colors for font *)
- charData * : ARRAY 8 OF e.APTR; (* pointers to bit planes ala tfCharData *)
- END; (* ColorTextFont *)
-
- (****** Textextent node *********************************************)
- Textextent * = RECORD
- width * : e.UWORD; (* same as TextLength *)
- height * : e.UWORD; (* same as tfYSize *)
- extent * : Rectangle; (* relative to CP *)
- END; (* Textextent *)
-
-
- (*
- ** $VER: videocontrol.h 39.8 (31.5.93)
- **
- ** definitions for videocontrol commands
- *)
-
-
- CONST
-
- vtagEndCM * = 00000000H;
- vtagChromaKeyClr * = 80000000H;
- vtagChromaKeySet * = 80000001H;
- vtagBitPlaneKeyClr * = 80000002H;
- vtagBitPlaneKeySet * = 80000003H;
- vtagBorderBlankClr * = 80000004H;
- vtagBorderBlankSet * = 80000005H;
- vtagBorderNoTransClr * = 80000006H;
- vtagBorderNoTransSet * = 80000007H;
- vtagChromaPenClr * = 80000008H;
- vtagChromaPenSet * = 80000009H;
- vtagChromaPlaneSet * = 8000000AH;
- vtagAttachCMSet * = 8000000BH;
- vtagNextBufCM * = 8000000CH;
- vtagBatchCMClr * = 8000000DH;
- vtagBatchCMSet * = 8000000EH;
- vtagNormalDispGet * = 8000000FH;
- vtagNormalDispSet * = 80000010H;
- vtagCoerceDispGet * = 80000011H;
- vtagCoerceDispSet * = 80000012H;
- vtagViewPortExtraGet * = 80000013H;
- vtagViewPortExtraSet * = 80000014H;
- vtagChromaKeyGet * = 80000015H;
- vtagBitplaneKeyGet * = 80000016H;
- vtagBorderBlankGet * = 80000017H;
- vtagBorderNoTransGet * = 80000018H;
- vtagChromaPenGet * = 80000019H;
- vtagChromaPlaneGet * = 8000001AH;
- vtagAttachCMGet * = 8000001BH;
- vtagBatchCMGet * = 8000001CH;
- vtagBatchItemsGet * = 8000001DH;
- vtagBatchItemsSet * = 8000001EH;
- vtagBatchItemsAdd * = 8000001FH;
- vtagVPModeIDGet * = 80000020H;
- vtagVPModeIDSet * = 80000021H;
- vtagVPModeIDClr * = 80000022H;
- vtagUserClipGet * = 80000023H;
- vtagUserClipSet * = 80000024H;
- vtagUserClipClr * = 80000025H;
-
- (* The following tags are V39 specific. They will be ignored (returing error -3) by
- earlier versions *)
- vtagPf1BaseGet * = 080000026H;
- vtagPf2BaseGet * = 080000027H;
- vtagSpEvenBaseGet * = 080000028H;
- vtagSpOddBaseGet * = 080000029H;
- vtagPf1BaseSet * = 08000002AH;
- vtagPf2BaseSet * = 08000002BH;
- vtagSpEvenBaseSet * = 08000002CH;
- vtagSpOddBaseSet * = 08000002DH;
- vtagBorderSpriteGet * = 08000002EH;
- vtagBorderSpriteSet * = 08000002FH;
- vtagBorderSpriteClr * = 080000030H;
- vtagSpriteResnSet * = 080000031H;
- vtagSpriteResnGet * = 080000032H;
- vtagPf1ToSpritePriSet * = 080000033H;
- vtagPf1ToSpritePriGet * = 080000034H;
- vtagPf2ToSpritePriSet * = 080000035H;
- vtagPf2ToSpritePriGet * = 080000036H;
- vtagImmediate * = 080000037H;
- vtagFullPaletteSet * = 080000038H;
- vtagFullPaletteGet * = 080000039H;
- vtagFullPaletteClr * = 08000003AH;
- vtagDefSpriteResnSet * = 08000003BH;
- vtagDefSpriteResnGet * = 08000003CH;
-
- (* all the following tags follow the new, rational standard for videocontrol tags:
- * VC_xxx,state set the state of attribute 'xxx' to value 'state'
- * VC_xxx_QUERY,&var get the state of attribute 'xxx' and store it into the longword
- * pointed to by &var.
- *
- * The following are new for V40:
- *)
-
- vcIntermediateCLUpdate * = 080000080H;
- (* default=true. When set graphics will update the intermediate copper
- * lists on color changes, etc. When false, it won't, and will be faster.
- *)
- vcIntermediateCLUpdateQuery * = 080000081H;
-
- vcNoColorPaletteLoad * = 080000082H;
- (* default = false. When set, graphics will only load color 0
- * for this ViewPort, and so the ViewPort's colors will come
- * from the previous ViewPort's.
- *
- * NB - Using this tag and VTAG_FULLPALETTE_SET together is undefined.
- *)
- vcNoColorPaletteLoadQuery * = 080000083H;
-
- vcDualPFDisable * = 080000084H;
- (* default = false. When this flag is set, the dual-pf bit
- in Dual-Playfield screens will be turned off. Even bitplanes
- will still come from the first BitMap and odd bitplanes
- from the second BitMap, and both R[xy]Offsets will be
- considered. This can be used (with appropriate palette
- selection) for cross-fades between differently scrolling
- images.
- When this flag is turned on, colors will be loaded for
- the viewport as if it were a single viewport of depth
- depth1+depth2 *)
- vcDualPFDisableQuery * = 080000085H;
-
-
- (*
- ** $VER: graphint.h 39.0 (23.9.91)
- **
- ** structure used by AddTOFTask
- *)
-
-
- TYPE
-
- Isrvstr * = RECORD (e.NodeBase)
- node * : e.Node;
- iptr * : IsrvstrPtr; (* passed to srvr by os *)
- code * : e.PROC;
- ccode * : e.PROC;
- carg * : LONGINT;
- END; (* Isrvstr *)
-
-
- (*
- ** $VER: scale.h 39.0 (21.8.91)
- **
- ** structure argument to BitMapScale()
- *)
-
-
- TYPE
-
- BitScaleArgs * = RECORD
- srcX *, srcY * : e.UWORD; (* source origin *)
- srcWidth *, srcHeight * : e.UWORD; (* source size *)
- xSrcFactor *, ySrcFactor * : e.UWORD; (* scale factor denominators *)
- destX *, destY * : e.UWORD; (* destination origin *)
- destWidth *, destHeight * : e.UWORD; (* destination size result *)
- xDestFactor *, yDestFactor * : e.UWORD; (* scale factor numerators *)
- srcBitMap * : BitMapPtr; (* source BitMap *)
- destBitMap * : BitMapPtr; (* destination BitMap *)
- flags * : e.ULONG; (* reserved. Must be zero! *)
- xdda *, ydda * : e.UWORD; (* reserved *)
- reserved1 * : LONGINT;
- reserved2 * : LONGINT;
- END; (* BitScaleArgs *)
-
- (*
- ** $VER: coerce.h 39.3 (15.2.93)
- **
- ** mode coercion definitions
- *)
-
- (* These flags are passed (in combination) to CoerceMode() to determine the
- * type of coercion required.
- *)
-
- CONST
-
- (* Ensure that the mode coerced to can display just as many colours as the
- * ViewPort being coerced.
- *)
- preserveColors * = 1;
-
- (* Ensure that the mode coerced to is not interlaced. *)
- avoidFlicker * = 2;
-
- (* Coercion should ignore monitor compatibility issues. *)
- ignoreMCompat * = 4;
-
-
- bidTagCoerce = 1; (* Private *)
-
- (*
- ** $VER: rpattr.h 39.2 (31.5.93)
- **
- ** tag definitions for GetRPAttr, SetRPAttr
- *)
-
- CONST
-
- rpFont * = 080000000H; (* get/set font *)
- rpAPen * = 080000002H; (* get/set apen *)
- rpBPen * = 080000003H; (* get/set bpen *)
- rpDrMd * = 080000004H; (* get/set draw mode *)
- rpOutLinePen * = 080000005H; (* get/set outline pen *)
- rpOutlinePen * = 080000005H; (* get/set outline pen. corrected case. *)
- rpWriteMask * = 080000006H; (* get/set WriteMask *)
- rpMaxPen * = 080000007H; (* get/set maxpen *)
-
- rpDrawBounds * = 080000008H; (* get only rastport draw bounds. pass &rect *)
-
- (*
- ** $VER: gfxbase.h 39.21 (21.4.93)
- **
- ** graphics base definitions
- *)
-
-
- TYPE
-
- GfxBasePtr * = POINTER TO GfxBase;
- GfxBase * = RECORD (e.LibraryBase)
- libNode * : e.Library;
- actiView * : ViewPtr;
- copinit * : CopinitPtr; (* ptr to copper start up list *)
- cia * : e.APTR; (* for 8520 resource use *)
- blitter * : e.APTR; (* for future blitter resource use *)
- loFlist * : e.APTR;
- shFlist * : e.APTR;
- blthd *, blttl * : h.BltnodePtr;
- bsblthd *, bsblttl * : h.BltnodePtr;
- vbsrv *, timsrv *, bltsrv * : e.Interrupt;
- textFonts * : e.List;
- defaultFont * : TextFontPtr;
- modes * : s.SET16; (* copy of current first bplcon0 *)
- vBlank * : e.BYTE;
- debug * : e.BYTE;
- beamSync * : INTEGER;
- systembplcon0 * : s.SET16;(* it is ored into each bplcon0 for display *)
- spriteReserved * : e.UBYTE;
- bytereserved * : e.UBYTE;
- flags * : s.SET16;
- blitLock * : INTEGER;
- blitNest * : INTEGER;
-
- blitWaitQ * : e.List;
- blitOwner * : e.TaskPtr;
- tofWaitQ * : e.List;
- displayFlags * : s.SET16; (* NTSC PAL GENLOC etc *)
- (* flags initialized at power on *)
- simpleSprites * : e.APTR;
- maxDisplayRow * : e.UWORD; (* hardware stuff, do not use *)
- maxDisplayColumn * : e.UWORD; (* hardware stuff, do not use *)
- normalDisplayRows * : e.UWORD;
- normalDisplayColumns * : e.UWORD;
- (* the following are for standard non interlace, 1/2 wb width *)
- normalDPMX * : e.UWORD; (* Dots per meter on display *)
- normalDPMY * : e.UWORD; (* Dots per meter on display *)
- lastChanceMemory * : e.SignalSemaphorePtr;
- lcMptr * : e.APTR;
- microsPerLine * : e.UWORD; (* 256 time usec/line *)
- minDisplayColumn * : e.UWORD;
- chipRevBits0 * : s.SET8;
- memType * : e.UBYTE;
- reserved * : ARRAY 4 OF e.UBYTE;
- monitorid * : e.UWORD; (* normally null *)
- hedley * : ARRAY 8 OF e.ULONG;
- hedleySprites * : ARRAY 8 OF e.ULONG; (* sprite ptrs for intuition mouse *)
- hedleySprites1 * : ARRAY 8 OF e.ULONG; (* sprite ptrs for intuition mouse *)
- hedleyCount * : INTEGER;
- hedleyFlags * : s.SET16;
- hedleyTmp * : INTEGER;
- hashTable * : e.APTR;
- currentTotRows * : e.UWORD;
- currentTotCclks * : e.UWORD;
- hedleyHint * : e.UBYTE;
- hedleyHint2 * : e.UBYTE;
- nreserved * : ARRAY 4 OF e.ULONG;
- a2024SyncRaster * : e.APTR;
- controlDeltaPAL * : INTEGER;
- controlDeltaNTSC * : INTEGER;
- currentMonitor * : MonitorSpecPtr;
- monitorList * : e.List;
- defaultMonitor * : MonitorSpecPtr;
- monitorListSemaphore * : e.SignalSemaphorePtr;
- displayInfoDataBase * : e.APTR;
- topLine * : INTEGER;
- actiViewCprSemaphore * : e.SignalSemaphorePtr;
- utilBase * : e.LibraryPtr; (* for hook and tag utilities *)
- execBase * : e.LibraryPtr; (* to link with rom.lib *)
- bwshifts * : e.APTR;
- strtFetchMasks * : e.APTR;
- stopFetchMasks * : e.APTR;
- overrun * : e.APTR;
- realStops * : e.APTR;
- spriteWidth * : e.UWORD; (* current width (in words) of sprites *)
- spriteFMode * : e.UWORD; (* current sprite fmode bits *)
- softSprites * : e.BYTE; (* bit mask of size change knowledgeable sprites *)
- arraywidth * : e.BYTE;
- defaultSpriteWidth * : e.UWORD; (* what width intuition wants *)
- sprMoveDisable * : e.BYTE;
- wantChips * : e.UBYTE;
- boardMemType * : e.UBYTE;
- bugs * : e.UBYTE;
- layersBase * : e.APTR;
- colorMask * : e.ULONG;
- iVector * : e.APTR;
- iData * : e.APTR;
- specialCounter * : e.ULONG; (* special for double buffering *)
- dBList * : e.APTR;
- monitorFlags * : s.SET16;
- scanDoubledSprites * : e.UBYTE;
- bP3Bits * : e.UBYTE;
- monitorVBlank * : AnalogSignalInterval;
- monitor * : MonitorSpecPtr;
- progData * : e.APTR;
- extSprites * : e.UBYTE;
- pad3 * : e.UBYTE;
- gfxFlags * : s.SET16;
- vBCounter * : e.ULONG;
- hashTableSemaphore * : e.SignalSemaphorePtr;
- hwEmul * : POINTER TO ARRAY 9 OF e.APTR;
- END; (* GfxBase *)
-
- CONST
-
- (* Values for gfxBase.displayFlags *)
- ntsc * = 1;
- genloc * = 2;
- pal * = 4;
- todaSafe * = 8;
- reallyPal * = 16; (* what is actual crystal frequency
- (as opposed to what bootmenu set the agnus to)?
- (V39) *)
- lpenSwapFrames * = 32;
- (* LightPen software could set this bit if the
- * "lpen-with-interlace" fix put in for V39
- * does not work. This is true of a number of
- * Agnus chips.
- * (V40).
- *)
-
- blitMsgFault * = 4;
-
- (* bits defs for ChipRevBits *)
- bigBlits * = 0;
- hrAgnus * = 0;
- hrDenise * = 1;
- aaAlice * = 2;
- aaLisa * = 3;
- aaMLisa = 4; (* internal use only. *)
-
- (* Pass ONE of these to SetChipRev() *)
- chipRevA * = {hrAgnus};
- chipRevECS * = {hrAgnus, hrDenise};
- chipRevAA * = {aaAlice, aaLisa} + chipRevECS;
- chipRevBest * = {0..31};
-
- (* memory type *)
- bus16 * = 0;
- nmlCAS * = 0;
- bus32 * = 1;
- dblCAS * = 2;
- bandwidth1x * = {bus16, nmlCAS};
- bandwidth2xNml * = {bus32};
- bandwidth2xDbl * = {dblCAS};
- bandwidth4x * = {bus32, dblCAS};
-
- (* GfxFlags (private) *)
- newDatabase = 1;
-
- graphicsName * = "graphics.library";
-
- (**-- Library Base variable --------------------------------------------*)
-
-
- VAR
-
- gfx *, base * : GfxBasePtr;
-
-
- (**-- Library Functions ------------------------------------------------*)
-
- (*
- ** $VER: graphics_protos.h 39.31 (29.4.93)
- *)
-
- (* ------ BitMap primitives ------*)
-
- PROCEDURE BltBitMap* [base,-30]
- ( srcBitMap [8] : BitMapPtr;
- xSrc [0] : INTEGER;
- ySrc [1] : INTEGER;
- destBitMap [9] : BitMapPtr;
- xDest [2] : INTEGER;
- yDest [3] : INTEGER;
- xSize [4] : INTEGER;
- ySize [5] : INTEGER;
- minterm [6] : e.UBYTE;
- mask [7] : s.SET8;
- tempA [10] : PLANEPTR )
- : e.ULONG;
-
- PROCEDURE BltTemplate* [base,-36]
- ( source [8] : PLANEPTR;
- xSrc [0] : INTEGER;
- srcMod [1] : INTEGER;
- destRP [9] : RastPortPtr;
- xDest [2] : INTEGER;
- yDest [3] : INTEGER;
- xSize [4] : INTEGER;
- ySize [5] : INTEGER );
-
- (* ------ Text routines ------*)
-
- PROCEDURE ClearEOL* [base,-42]
- ( rp [9] : RastPortPtr );
- PROCEDURE ClearScreen* [base,-48]
- ( rp [9] : RastPortPtr );
- PROCEDURE TextLength* [base,-54]
- ( rp [9] : RastPortPtr;
- string [8] : ARRAY OF CHAR;
- count [0] : LONGINT )
- : INTEGER;
- PROCEDURE Text* [base,-60]
- ( rp [9] : RastPortPtr;
- string [8] : ARRAY OF CHAR;
- count [0] : LONGINT );
- PROCEDURE SetFont* [base,-66]
- ( rp [9] : RastPortPtr;
- textFont [8] : TextFontBasePtr );
- PROCEDURE OpenFont* [base,-72]
- ( VAR textAttr [8] : TextAttr )
- : TextFontPtr;
- PROCEDURE CloseFont* [base,-78]
- ( textFont [9] : TextFontBasePtr );
- PROCEDURE AskSoftStyle* [base,-84]
- ( rp [9] : RastPortPtr )
- : s.SET8;
- PROCEDURE SetSoftStyle* [base,-90]
- ( rp [9] : RastPortPtr;
- style [0] : s.SET8;
- enable [1] : s.SET8 )
- : s.SET8;
-
- (* ------ Gels routines ------*)
-
- PROCEDURE AddBob* [base,-96]
- ( bob [8] : BobPtr;
- rp [9] : RastPortPtr );
- PROCEDURE AddVSprite* [base,-102]
- ( vSprite [8] : VSpritePtr;
- rp [9] : RastPortPtr );
- PROCEDURE DoCollision* [base,-108]
- ( rp [9] : RastPortPtr );
- PROCEDURE DrawGList* [base,-114]
- ( rp [9] : RastPortPtr;
- vp [8] : ViewPortPtr );
- PROCEDURE InitGels* [base,-120]
- ( head [8] : VSpritePtr;
- tail [9] : VSpritePtr;
- gelsInfo [10] : GelsInfoPtr );
- PROCEDURE InitMasks* [base,-126]
- ( vSprite [0] : VSpritePtr );
- PROCEDURE RemIBob* [base,-132]
- ( bob [8] : BobPtr;
- rp [9] : RastPortPtr;
- vp [10] : ViewPortPtr );
- PROCEDURE RemVSprite* [base,-138]
- ( vSprite [8] : VSpritePtr );
- PROCEDURE SetCollision* [base,-144]
- ( num [0] : e.ULONG;
- routine [8] : e.PROC;
- gelsInfo [9] : GelsInfoPtr );
- PROCEDURE SortGList* [base,-150]
- ( rp [9] : RastPortPtr );
- PROCEDURE AddAnimOb* [base,-156]
- ( anOb [8] : AnimObPtr;
- VAR anKey [9] : AnimObPtr;
- rp [10] : RastPortPtr );
- PROCEDURE Animate* [base,-162]
- ( VAR anKey [8] : AnimObPtr;
- rp [9] : RastPortPtr );
- PROCEDURE GetGBuffers* [base,-168]
- ( anOb [8] : AnimObPtr;
- rp [9] : RastPortPtr;
- flag [0] : BOOLEAN )
- : BOOLEAN;
- PROCEDURE InitGMasks* [base,-174]
- ( anOb [8] : AnimObPtr );
-
- (* ------ General graphics routines ------*)
-
- PROCEDURE DrawEllipse* [base,-180]
- ( rp [9] : RastPortPtr;
- xCenter [0] : INTEGER;
- yCenter [1] : INTEGER;
- a [2] : INTEGER;
- b [3] : INTEGER );
- PROCEDURE AreaEllipse* [base,-186]
- ( rp [9] : RastPortPtr;
- xCenter [0] : INTEGER;
- yCenter [1] : INTEGER;
- a [2] : INTEGER;
- b [3] : INTEGER )
- : BOOLEAN;
- PROCEDURE LoadRGB4* [base,-192]
- ( vp [8] : ViewPortPtr;
- colors [1] : ARRAY OF e.UWORD;
- count [0] : LONGINT );
- PROCEDURE InitRastPort* [base,-198]
- ( VAR rp [9] : RastPort );
- PROCEDURE InitVPort* [base,-204]
- ( VAR vp [8] : ViewPort );
- PROCEDURE OldMrgCop* [base,-210]
- ( view [9] : ViewPtr );
- PROCEDURE MrgCop* [base,-210]
- ( view [9] : ViewPtr )
- : LONGINT;
- PROCEDURE MakeVPort* [base,-216]
- ( view [8] : ViewPtr;
- vp [9] : ViewPortPtr );
- PROCEDURE LoadView* [base,-222]
- ( view [9] : ViewPtr );
- PROCEDURE WaitBlit* [base,-228] ();
- PROCEDURE SetRast* [base,-234]
- ( rp [9] : RastPortPtr;
- pen [0] : e.UBYTE );
- PROCEDURE Move* [base,-240]
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER );
- PROCEDURE Draw* [base,-246]
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER );
- PROCEDURE AreaMove* [base,-252]
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- PROCEDURE AreaDraw* [base,-258]
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- PROCEDURE AreaEnd* [base,-264]
- ( rp [9] : RastPortPtr )
- : BOOLEAN;
- PROCEDURE WaitTOF* [base,-270] ();
- PROCEDURE QBlit* [base,-276]
- ( blit [9] : h.BltnodePtr );
- PROCEDURE InitArea* [base,-282]
- ( VAR areaInfo [8] : AreaInfo;
- vectorBuffer [9] : e.APTR;
- maxVectors [0] : LONGINT );
- PROCEDURE SetRGB4* [base,-288]
- ( vp [8] : ViewPortPtr;
- index [0] : LONGINT;
- red [1] : e.UBYTE;
- green [2] : e.UBYTE;
- blue [3] : e.UBYTE );
- PROCEDURE QBSBlit* [base,-294]
- ( blit [9] : h.BltnodePtr );
- PROCEDURE BltClear* [base,-300]
- ( memBlock [9] : PLANEPTR;
- byteCount [0] : e.ULONG;
- flags [1] : s.SET32 );
- PROCEDURE RectFill* [base,-306]
- ( rp [9] : RastPortPtr;
- xMin [0] : INTEGER;
- yMin [1] : INTEGER;
- xMax [2] : INTEGER;
- yMax [3] : INTEGER );
- PROCEDURE BltPattern* [base,-312]
- ( rp [9] : RastPortPtr;
- mask [8] : PLANEPTR;
- xMin [0] : INTEGER;
- yMin [1] : INTEGER;
- xMax [2] : INTEGER;
- yMax [3] : INTEGER;
- maskBPR [4] : INTEGER );
- PROCEDURE ReadPixel* [base,-318]
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : LONGINT;
- PROCEDURE WritePixel* [base,-324]
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- PROCEDURE Flood* [base,-330]
- ( rp [9] : RastPortPtr;
- mode [2] : e.ULONG;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- PROCEDURE PolyDraw* [base,-336]
- ( rp [9] : RastPortPtr;
- count [0] : INTEGER;
- polyTable [8] : ARRAY OF Point );
- PROCEDURE PolyDrawList* [base,-336]
- ( rp [9] : RastPortPtr;
- count [0] : INTEGER;
- polyTable [8].. : INTEGER );
- PROCEDURE SetAPen* [base,-342]
- ( rp [9] : RastPortPtr;
- pen [0] : e.UBYTE );
- PROCEDURE SetBPen* [base,-348]
- ( rp [9] : RastPortPtr;
- pen [0] : e.UBYTE );
- PROCEDURE SetDrMd* [base,-354]
- ( rp [9] : RastPortPtr;
- drawMode [0] : s.SET8 );
- PROCEDURE InitView* [base,-360]
- ( VAR view [9] : View );
- PROCEDURE CBump* [base,-366]
- ( copList [9] : UCopListPtr );
- PROCEDURE CMove* [base,-372]
- ( copList [9] : UCopListPtr;
- destination [0] : e.APTR;
- data [1] : e.UWORD );
- PROCEDURE CWait* [base,-378]
- ( copList [9] : UCopListPtr;
- v [0] : INTEGER;
- h [1] : INTEGER );
- PROCEDURE VBeamPos* [base,-384] ()
- : LONGINT;
- PROCEDURE InitBitMap* [base,-390]
- ( VAR bitMap [8] : BitMap;
- depth [0] : SHORTINT;
- width [1] : INTEGER;
- height [2] : INTEGER );
- PROCEDURE ScrollRaster* [base,-396]
- ( rp [9] : RastPortPtr;
- dx [0] : INTEGER;
- dy [1] : INTEGER;
- xMin [2] : INTEGER;
- yMin [3] : INTEGER;
- xMax [4] : INTEGER;
- yMax [5] : INTEGER );
- PROCEDURE WaitBOVP* [base,-402]
- ( vp [8] : ViewPortPtr );
- PROCEDURE GetSprite* [base,-408]
- ( VAR sprite [8] : SimpleSpriteBase;
- num [0] : INTEGER )
- : INTEGER;
- PROCEDURE FreeSprite* [base,-414]
- ( num [0] : INTEGER );
- PROCEDURE ChangeSprite* [base,-420]
- ( vp [8] : ViewPortPtr;
- VAR sprite [9] : SimpleSpriteBase;
- newData [10] : PLANEPTR );
- PROCEDURE MoveSprite* [base,-426]
- ( vp [8] : ViewPortPtr;
- VAR sprite [9] : SimpleSpriteBase;
- x [0] : INTEGER;
- y [1] : INTEGER );
- PROCEDURE LockLayerRom* [base,-432]
- ( layer [13] : LayerPtr );
- PROCEDURE UnlockLayerRom* [base,-438]
- ( layer [13] : LayerPtr );
- PROCEDURE SyncSBitMap* [base,-444]
- ( layer [8] : LayerPtr );
- PROCEDURE CopySBitMap* [base,-450]
- ( layer [8] : LayerPtr );
- PROCEDURE OwnBlitter* [base,-456] ();
- PROCEDURE DisownBlitter* [base,-462] ();
- PROCEDURE InitTmpRas* [base,-468]
- ( VAR tmpRas [8] : TmpRas;
- buffer [9] : PLANEPTR;
- size [0] : e.ULONG );
- PROCEDURE AskFont* [base,-474]
- ( rp [9] : RastPortPtr;
- VAR textAttr [8] : TextAttr );
- PROCEDURE AddFont* [base,-480]
- ( textFont [9] : TextFontBasePtr );
- PROCEDURE RemFont* [base,-486]
- ( textFont [9] : TextFontBasePtr );
- PROCEDURE AllocRaster* [base,-492]
- ( width [0] : e.UWORD;
- height [1] : e.UWORD )
- : PLANEPTR;
- PROCEDURE FreeRaster* [base,-498]
- ( p [8] : PLANEPTR;
- width [0] : e.UWORD;
- height [1] : e.UWORD );
- PROCEDURE AndRectRegion* [base,-504]
- ( region [8] : RegionPtr;
- VAR rectangle [9] : RectangleBase );
- PROCEDURE OrRectRegion* [base,-510]
- ( region [8] : RegionPtr;
- VAR rectangle [9] : RectangleBase )
- : BOOLEAN;
- PROCEDURE NewRegion* [base,-516] ()
- : RegionPtr;
- PROCEDURE ClearRectRegion* [base,-522]
- ( region [8] : RegionPtr;
- VAR rectangle [9] : RectangleBase )
- : BOOLEAN;
- PROCEDURE ClearRegion* [base,-528]
- ( region [8] : RegionPtr );
- PROCEDURE DisposeRegion* [base,-534]
- ( region [8] : RegionPtr );
- PROCEDURE FreeVPortCopLists* [base,-540]
- ( vp [8] : ViewPortPtr );
- PROCEDURE FreeCopList* [base,-546]
- ( copList [8] : CopListDummyPtr );
- PROCEDURE ClipBlit* [base,-552] (
- srcRP [8] : RastPortPtr;
- xSrc [0] : INTEGER;
- ySrc [1] : INTEGER;
- destRP [9] : RastPortPtr;
- xDest [2] : INTEGER;
- yDest [3] : INTEGER;
- xSize [4] : INTEGER;
- ySize [5] : INTEGER;
- minterm [6] : e.UBYTE );
- PROCEDURE XorRectRegion* [base,-558]
- ( region [8] : RegionPtr;
- VAR rectangle [9] : RectangleBase )
- : BOOLEAN;
- PROCEDURE FreeCprList* [base,-564]
- ( cprList [8] : CprlistPtr );
- PROCEDURE GetColorMap* [base,-570]
- ( entries [0] : LONGINT )
- : ColorMapPtr;
- PROCEDURE FreeColorMap* [base,-576]
- ( colorMap [8] : ColorMapPtr );
- PROCEDURE GetRGB4* [base,-582]
- ( colorMap [8] : ColorMapPtr;
- entry [0] : LONGINT )
- : INTEGER;
- PROCEDURE ScrollVPort* [base,-588]
- ( vp [8] : ViewPortPtr );
- PROCEDURE UCopperListInit* [base,-594]
- ( uCopList [8] : UCopListPtr;
- n [0] : LONGINT )
- : CopListDummyPtr;
- PROCEDURE FreeGBuffers* [base,-600]
- ( anOb [8] : AnimObPtr;
- rp [9] : RastPortPtr;
- flag [0] : BOOLEAN );
- PROCEDURE BltBitMapRastPort* [base,-606]
- ( srcBitMap [8] : BitMapPtr;
- xSrc [0] : INTEGER;
- ySrc [1] : INTEGER;
- destRP [9] : RastPortPtr;
- xDest [2] : INTEGER;
- yDest [3] : INTEGER;
- xSize [4] : INTEGER;
- ySize [5] : INTEGER;
- minterm [6] : e.UBYTE )
- : BOOLEAN;
- PROCEDURE OrRegionRegion* [base,-612]
- ( srcRegion [8] : RegionPtr;
- destRegion [9] : RegionPtr )
- : BOOLEAN;
- PROCEDURE XorRegionRegion* [base,-618]
- ( srcRegion [8] : RegionPtr;
- destRegion [9] : RegionPtr )
- : BOOLEAN;
- PROCEDURE AndRegionRegion* [base,-624]
- ( srcRegion [8] : RegionPtr;
- destRegion [9] : RegionPtr )
- : BOOLEAN;
- PROCEDURE SetRGB4CM* [base,-630] (
- colorMap [8] : ColorMapPtr;
- index [0] : INTEGER;
- red [1] : e.UBYTE;
- green [2] : e.UBYTE;
- blue [3] : e.UBYTE );
- PROCEDURE BltMaskBitMapRastPort* [base,-636] (
- srcBitMap [8] : BitMapPtr;
- xSrc [0] : INTEGER;
- ySrc [1] : INTEGER;
- destRP [9] : RastPortPtr;
- xDest [2] : INTEGER;
- yDest [3] : INTEGER;
- xSize [4] : INTEGER;
- ySize [5] : INTEGER;
- minterm [6] : e.UBYTE;
- bltMask [10] : PLANEPTR );
- PROCEDURE AttemptLockLayerRom* [base,-654]
- ( layer [13] : LayerPtr )
- : BOOLEAN;
-
- (* --- functions in V36 or higher (distributed as Release 2.0) ---*)
-
- PROCEDURE GfxNew* [base,-660]
- ( gfxNodeType [0] : e.ULONG )
- : ExtendedNodeBasePtr;
- PROCEDURE GfxFree* [base,-666]
- ( gfxNodePtr [8] : ExtendedNodeBasePtr );
- PROCEDURE GfxAssociate* [base,-672]
- ( associateNode [8] : ExtendedNodeBasePtr;
- gfxNodePtr [9] : ExtendedNodeBasePtr );
- PROCEDURE BitMapScale* [base,-678]
- ( bitScaleArgs [8] : BitScaleArgsPtr );
- PROCEDURE ScalerDiv* [base,-684]
- ( factor [0] : e.ULONG;
- numerator [1] : e.ULONG;
- denominator [2] : e.ULONG )
- : e.UWORD;
- PROCEDURE TextExtent* [base,-690]
- ( rp [9] : RastPortPtr;
- string [8] : ARRAY OF CHAR;
- count [0] : LONGINT;
- VAR textExtent [10] : Textextent )
- : INTEGER;
- PROCEDURE TextFit* [base,-696]
- ( rp [9] : RastPortPtr;
- string [8] : ARRAY OF CHAR;
- strLen [0] : e.ULONG;
- textExtent [10] : TextextentPtr;
- constrainingExtent [11] : TextextentPtr;
- strDirection [1] : LONGINT;
- constrainingBitWidth [2] : e.ULONG;
- constrainingBitHeight [3] : e.ULONG )
- : e.ULONG;
- PROCEDURE GfxLookUp* [base,-702]
- ( associateNode [8] : ExtendedNodeBasePtr )
- : e.APTR;
- PROCEDURE VideoControlA* [base,-708]
- ( colorMap [8] : ColorMapPtr;
- tagarray [9] : ARRAY OF u.TagItem )
- : BOOLEAN;
- PROCEDURE VideoControl* [base,-708]
- ( colorMap [8] : ColorMapPtr;
- tagarray [9].. : u.Tag )
- : BOOLEAN;
- PROCEDURE OpenMonitor* [base,-714]
- ( monitorName [9] : ARRAY OF CHAR;
- displayID [0] : e.ULONG )
- : MonitorSpecPtr;
- PROCEDURE CloseMonitor* [base,-720]
- ( monitorSpec [8] : MonitorSpecPtr )
- : BOOLEAN;
- PROCEDURE FindDisplayInfo* [base,-726]
- ( displayID [0] : e.ULONG )
- : DisplayInfoHandle;
- PROCEDURE NextDisplayInfo* [base,-732]
- ( displayID [0] : e.ULONG )
- : e.ULONG;
- PROCEDURE AddDisplayInfo* [base,-738];
- PROCEDURE AddDisplayInfoData* [base,-744];
- PROCEDURE SetDisplayInfoData* [base,-750]
- ( handle [8] : DisplayInfoHandle;
- buf [9] : ARRAY OF SYS.BYTE;
- size [0] : e.ULONG;
- tagID [1] : e.ULONG;
- displayID [2] : e.ULONG)
- : e.ULONG;
- PROCEDURE GetDisplayInfoData* [base,-756]
- ( handle [8] : DisplayInfoHandle;
- VAR buf [9] : ARRAY OF SYS.BYTE;
- size [0] : e.ULONG;
- tagID [1] : e.ULONG;
- displayID [2] : e.ULONG )
- : e.ULONG;
- PROCEDURE FontExtent* [base,-762]
- ( font [8] : TextFontBasePtr;
- VAR fontExtent [9] : Textextent );
- PROCEDURE ReadPixelLine8* [base,-768]
- ( rp [8] : RastPortPtr;
- xstart [0] : e.UWORD;
- ystart [1] : e.UWORD;
- width [2] : e.ULONG;
- VAR array [10] : ARRAY OF SYS.BYTE;
- tempRP [9] : RastPortPtr )
- : LONGINT;
- PROCEDURE WritePixelLine8* [base,-774]
- ( rp [8] : RastPortPtr;
- xstart [0] : e.UWORD;
- ystart [1] : e.UWORD;
- width [2] : e.ULONG;
- array [10] : ARRAY OF SYS.BYTE;
- tempRP [9] : RastPortPtr )
- : LONGINT;
- PROCEDURE ReadPixelArray8* [base,-780]
- ( rp [8] : RastPortPtr;
- xstart [0] : e.UWORD;
- ystart [1] : e.UWORD;
- xstop [2] : e.UWORD;
- ystop [3] : e.UWORD;
- VAR array [10] : ARRAY OF SYS.BYTE;
- temprp [9] : RastPortPtr )
- : LONGINT;
- PROCEDURE WritePixelArray8* [base,-786]
- ( rp [8] : RastPortPtr;
- xstart [0] : e.UWORD;
- ystart [1] : e.UWORD;
- xstop [2] : e.UWORD;
- ystop [3] : e.UWORD;
- VAR array [10] : ARRAY OF SYS.BYTE;
- temprp [9] : RastPortPtr )
- : LONGINT;
- PROCEDURE GetVPModeID* [base,-792]
- ( vp [8] : ViewPortPtr )
- : LONGINT;
- PROCEDURE ModeNotAvailable* [base,-798]
- ( modeID [0] : e.ULONG )
- : LONGINT;
- PROCEDURE WeighTAMatchA* [base,-804]
- ( VAR reqTextAttr [8] : TextAttr;
- VAR targetTextAttr [9] : TextAttr;
- targetTags [10] : ARRAY OF u.TagItem )
- : INTEGER;
- PROCEDURE WeighTAMatch* [base,-804]
- ( VAR reqTextAttr [8] : TextAttr;
- VAR targetTextAttr [9] : TextAttr;
- targetTags [10].. : u.Tag )
- : INTEGER;
- PROCEDURE EraseRect* [base,-810]
- ( rp [9] : RastPortPtr;
- xMin [0] : INTEGER;
- yMin [1] : INTEGER;
- xMax [2] : INTEGER;
- yMax [3] : INTEGER );
- PROCEDURE ExtendFontA* [base,-816]
- ( font [8] : TextFontBasePtr;
- fontTags [9] : ARRAY OF u.TagItem )
- : e.ULONG;
- PROCEDURE ExtendFont* [base,-816]
- ( font [8] : TextFontBasePtr;
- fontTags [9].. : u.Tag )
- : e.ULONG;
- PROCEDURE StripFont* [base,-822]
- ( font [8] : TextFontBasePtr );
-
- (*--- functions in V39 or higher (Release 3) ---*)
-
- PROCEDURE CalcIVG* [base,-828]
- ( v [8] : ViewPtr;
- vp [9] : ViewPortPtr )
- : e.UWORD;
- PROCEDURE AttachPalExtra* [base,-834]
- ( cm [8] : ColorMapPtr;
- vp [9] : ViewPortPtr )
- : LONGINT;
- PROCEDURE ObtainBestPenA* [base,-840]
- ( cm [8] : ColorMapPtr;
- r [1] : e.ULONG;
- g [2] : e.ULONG;
- b [3] : e.ULONG;
- tags [9] : ARRAY OF u.TagItem )
- : LONGINT;
- PROCEDURE ObtainBestPen* [base,-840]
- ( cm [8] : ColorMapPtr;
- r [1] : e.ULONG;
- g [2] : e.ULONG;
- b [3] : e.ULONG;
- tags [9]..: u.Tag )
- : LONGINT;
- PROCEDURE SetRGB32* [base,-852]
- ( vp [8] : ViewPortPtr;
- n [0] : e.ULONG;
- r [1] : e.ULONG;
- g [2] : e.ULONG;
- b [3] : e.ULONG );
- PROCEDURE GetAPen* [base,-858]
- ( rp [8] : RastPortPtr )
- : e.ULONG;
- PROCEDURE GetBPen* [base,-864]
- ( rp [8] : RastPortPtr )
- : e.ULONG;
- PROCEDURE GetDrMd* [base,-870]
- ( rp [8] : RastPortPtr )
- : s.SET32;
- PROCEDURE GetOutlinePen* [base,-876]
- ( rp [8] : RastPortPtr )
- : e.ULONG;
- PROCEDURE LoadRGB32* [base,-882]
- ( vp [8] : ViewPortPtr;
- VAR table [9] : ARRAY OF e.ULONG );
- PROCEDURE SetChipRev* [base,-888]
- ( want [0] : s.SET32 )
- : s.SET32;
- PROCEDURE SetABPenDrMd* [base,-894]
- ( rp [9] : RastPortPtr;
- apen [0] : e.ULONG;
- bpen [1] : e.ULONG;
- drawmode [2] : s.SET8 );
- PROCEDURE GetRGB32* [base,-900]
- ( cm [8] : ColorMapPtr;
- firstcolor [0] : e.ULONG;
- ncolors [1] : e.ULONG;
- VAR table [9] : ARRAY OF e.ULONG );
- PROCEDURE AllocBitMap* [base,-918]
- ( sizex [0] : e.ULONG;
- sizey [1] : e.ULONG;
- depth [2] : e.ULONG;
- flags [3] : s.SET32;
- friendBitmap [8] : BitMapPtr )
- : BitMapPtr;
- PROCEDURE FreeBitMap* [base,-924]
- ( bm [8] : BitMapPtr );
- PROCEDURE GetExtSpriteA* [base,-930]
- ( ss [10] : ExtSpritePtr;
- tags [9] : ARRAY OF u.TagItem )
- : LONGINT;
- PROCEDURE GetExtSprite* [base,-930]
- ( ss [10] : ExtSpritePtr;
- tags [9]..: u.Tag )
- : LONGINT;
- PROCEDURE CoerceMode* [base,-936]
- ( vp [8] : ViewPortPtr;
- monitorid [0] : e.ULONG;
- flags [1] : e.ULONG )
- : e.ULONG;
- PROCEDURE ChangeVPBitMap* [base,-942]
- ( vp [8] : ViewPortPtr;
- bm [9] : BitMapPtr;
- db [10] : DBufInfoPtr );
- PROCEDURE ReleasePen* [base,-948]
- ( cm [8] : ColorMapPtr;
- n [0] : e.ULONG );
- PROCEDURE ObtainPen* [base,-954]
- ( cm [8] : ColorMapPtr;
- n [0] : e.ULONG;
- r [1] : e.ULONG;
- g [2] : e.ULONG;
- b [3] : e.ULONG;
- f [4] : LONGINT )
- : e.ULONG;
- PROCEDURE GetBitMapAttr* [base,-960]
- ( bm [8] : BitMapPtr;
- attrnum [1] : e.ULONG )
- : e.ULONG;
- PROCEDURE AllocDBufInfo* [base,-966]
- ( vp [8] : ViewPortPtr )
- : DBufInfoPtr;
- PROCEDURE FreeDBufInfo* [base,-972]
- ( dbi [9] : DBufInfoPtr );
- PROCEDURE SetOutlinePen* [base,-978]
- ( rp [8] : RastPortPtr;
- pen [0] : e.ULONG )
- : e.ULONG;
- PROCEDURE SetWriteMask* [base,-984]
- ( rp [8] : RastPortPtr;
- msk [0] : s.SET32 )
- : BOOLEAN;
- PROCEDURE SetMaxPen* [base,-990]
- ( rp [8] : RastPortPtr;
- maxpen [0] : e.ULONG );
- PROCEDURE SetRGB32CM* [base,-996]
- ( cm [8] : ColorMapPtr;
- n [0] : e.ULONG;
- r [1] : e.ULONG;
- g [2] : e.ULONG;
- b [3] : e.ULONG );
- PROCEDURE ScrollRasterBF* [base,-1002]
- ( rp [9] : RastPortPtr;
- dx [0] : LONGINT;
- dy [1] : LONGINT;
- xMin [2] : LONGINT;
- yMin [3] : LONGINT;
- xMax [4] : LONGINT;
- yMax [5] : LONGINT );
- PROCEDURE FindColor* [base,-1008]
- ( cm [11] : ColorMapPtr;
- r [1] : e.ULONG;
- g [2] : e.ULONG;
- b [3] : e.ULONG;
- maxcolor [4] : LONGINT )
- : LONGINT;
- PROCEDURE AllocSpriteDataA* [base,-1020]
- ( bm [10] : BitMapPtr;
- tags [9] : ARRAY OF u.TagItem )
- : ExtSpritePtr;
- PROCEDURE AllocSpriteData* [base,-1020]
- ( bm [10] : BitMapPtr;
- tags [9]..: u.Tag )
- : ExtSpritePtr;
- PROCEDURE ChangeExtSpriteA* [base,-1026]
- ( vp [8] : ViewPortPtr;
- oldsprite [9] : ExtSpritePtr;
- newsprite [10] : ExtSpritePtr;
- tags [11] : ARRAY OF u.TagItem )
- : LONGINT;
- PROCEDURE ChangeExtSprite* [base,-1026]
- ( vp [8] : ViewPortPtr;
- oldsprite [9] : ExtSpritePtr;
- newsprite [10] : ExtSpritePtr;
- tags [11]..: u.Tag )
- : LONGINT;
- PROCEDURE FreeSpriteData* [base,-1032]
- ( sp [10] : ExtSpritePtr );
- PROCEDURE SetRPAttrsA* [base,-1038]
- ( rp [8] : RastPortPtr;
- tags [9] : ARRAY OF u.TagItem );
- PROCEDURE SetRPAttrs* [base,-1038]
- ( rp [8] : RastPortPtr;
- tags [9]..: u.Tag );
- PROCEDURE GetRPAttrsA* [base,-1044]
- ( rp [8] : RastPortPtr;
- tags [9] : ARRAY OF u.TagItem );
- PROCEDURE GetRPAttrs* [base,-1044]
- ( rp [8] : RastPortPtr;
- tags [9]..: u.Tag );
- PROCEDURE BestModeIDA* [base,-1050]
- ( tags [8] : ARRAY OF u.TagItem )
- : e.ULONG;
- PROCEDURE BestModeID* [base,-1050]
- ( tags [8]..: u.Tag )
- : e.ULONG;
-
- (*--- functions in V40 or higher (Release 3.1) ---*)
-
- PROCEDURE WriteChunkyPixels* [base,-1056]
- ( rp [8] : RastPortPtr;
- xstart [0] : e.ULONG;
- ystart [1] : e.ULONG;
- xstop [2] : e.ULONG;
- ystop [3] : e.ULONG;
- array [10] : ARRAY OF SYS.BYTE;
- bytesperrow [4] : LONGINT );
-
- (**-- C Macros defined as procedures -----------------------------------*)
-
- <*$LongVars+*>
-
- (*
- ** $VER: gfxmacros.h 39.3 (31.5.93)
- *)
-
- (**-----------------------------------*)
- (* This macro is obsolete as of V39. AllocBitMap() should be used for allocating
- bitmap data, since it knows about the machine's particular alignment
- restrictions.
- *)
- PROCEDURE [0] RASSIZE* (w, h : INTEGER) : LONGINT;
-
- BEGIN (* RASSIZE *)
- RETURN ( h * (((LONG (w) + 15) DIV 16) * 2))
- END RASSIZE;
-
- (**-----------------------------------*)
- PROCEDURE [0] InitAnimate * (VAR anKey: AnimObPtr);
- BEGIN
- anKey := NIL;
- END InitAnimate;
-
- (**-----------------------------------*)
- PROCEDURE [0] RemBob * (b: BobPtr);
- BEGIN
- INCL(b.flags,bobsAway);
- END RemBob;
-
- (**-----------------------------------*)
- PROCEDURE [0] OnDisplay* ();
-
- BEGIN (* OnDisplay *)
- h.custom.dmacon := {h.dmaSet, h.raster}
- END OnDisplay;
-
- (**-----------------------------------*)
- PROCEDURE [0] OffDisplay* ();
-
- BEGIN (* OffDisplay *)
- h.custom.dmacon := {h.raster}
- END OffDisplay;
-
- (**-----------------------------------*)
- PROCEDURE [0] OnSprite* ();
-
- BEGIN (* OnSprite *)
- h.custom.dmacon := {h.dmaSet, h.sprite}
- END OnSprite;
-
- (**-----------------------------------*)
- PROCEDURE [0] OffSprite* ();
-
- BEGIN (* OffSprite *)
- h.custom.dmacon := {h.sprite}
- END OffSprite;
-
- (**-----------------------------------*)
- PROCEDURE [0] OnVBlank* ();
-
- BEGIN (* OnVBlank *)
- h.custom.intena := {h.dmaSet, h.vertb}
- END OnVBlank;
-
- (**-----------------------------------*)
- PROCEDURE [0] OffVBlank* ();
-
- BEGIN (* OffVBlank *)
- h.custom.intena := {h.vertb}
- END OffVBlank;
-
-
- (**-----------------------------------*)
- PROCEDURE [0] SetDrPt* (w : RastPortPtr; p : e.UWORD);
-
- BEGIN (* SetDrPt *)
- w.linePtrn := p; INCL (w.flags, frstDot); w.linpatcnt := 15
- END SetDrPt;
-
- (**-----------------------------------*)
- PROCEDURE [0] SetAfPt* (w : RastPortPtr; p : e.APTR; n : SHORTINT);
-
- BEGIN (* SetAfPt *)
- w.areaPtrn := p; w.areaPtSz := n
- END SetAfPt;
-
- (**-----------------------------------*)
- PROCEDURE [0] SetOPen* (w : RastPortPtr; c : SHORTINT);
-
- BEGIN (* SetOPen *)
- w.aOlPen := c; INCL (w.flags, areaOutline)
- END SetOPen;
-
- (**-----------------------------------*)
- PROCEDURE [0] SetWrMsk* (w : RastPortPtr; m : s.SET8);
-
- BEGIN (* SetWrMsk *)
- w.mask := m
- END SetWrMsk;
-
- (* the SafeSetxxx macros are backwards (pre V39 graphics) compatible versions *)
- (* using these macros will make your code do the right thing under V39 AND V37 *)
- (**-----------------------------------*)
- PROCEDURE [0] SafeSetOutlinePen* (w : RastPortPtr; c : SHORTINT);
- VAR ignore : LONGINT;
- BEGIN (* SafeSetOutlinePen *)
- IF base.libNode.version < 39 THEN
- w.aOlPen := c; INCL (w.flags, areaOutline)
- ELSE
- ignore := SetOutlinePen (w, c)
- END
- END SafeSetOutlinePen;
-
- (**-----------------------------------*)
- PROCEDURE [0] SafeSetWriteMask* (w : RastPortPtr; m : s.SET8);
- VAR ignore : BOOLEAN;
- BEGIN (* SafeSetWriteMask *)
- IF base.libNode.version < 39 THEN
- w.mask := m
- ELSE
- ignore := SetWriteMask (w, LONG (LONG (m)))
- END
- END SafeSetWriteMask;
-
- (**-----------------------------------*)
- PROCEDURE [0] BndryOff* (w : RastPortPtr);
-
- BEGIN (* BndryOff *)
- EXCL (w.flags, areaOutline)
- END BndryOff;
-
- (**-----------------------------------*)
- PROCEDURE [0] CINIT* (c : UCopListPtr; n : LONGINT);
-
- BEGIN (* CINIT *)
- SYS.PUTREG (0, UCopperListInit (c, n))
- END CINIT;
-
- (**-----------------------------------*)
- PROCEDURE [0] CMOVE*
- (c : UCopListPtr; a : e.APTR; b : e.UWORD );
-
- BEGIN (* CMOVE *)
- CMove (c, a, b); CBump (c)
- END CMOVE;
-
- (**-----------------------------------*)
- PROCEDURE [0] CWAIT* (c : UCopListPtr; a : INTEGER; b : INTEGER );
-
- BEGIN (* CWAIT *)
- CWait (c, a, b); CBump (c)
- END CWAIT;
-
- (**-----------------------------------*)
- PROCEDURE [0] CEND* (c : UCopListPtr);
-
- BEGIN (* CEND *)
- CWAIT (c, 10000, 255)
- END CEND;
-
-
- (**-----------------------------------*)
- PROCEDURE [0] DrawCircle* (rp : RastPortPtr; cx, cy, r : INTEGER);
-
- BEGIN (* DrawCircle *)
- DrawEllipse (rp, cx, cy, r, r)
- END DrawCircle;
-
-
- (**-----------------------------------*)
- PROCEDURE [0] AreaCircle* (rp : RastPortPtr; cx, cy, r : INTEGER)
- : BOOLEAN;
-
- BEGIN (* AreaCircle *)
- RETURN AreaEllipse (rp, cx, cy, r, r)
- END AreaCircle;
-
-
- (**-- Library Base Variable --------------------------------------------*)
-
- <*$LongVars-*>
-
- PROCEDURE* [0] Close (VAR rc : LONGINT);
-
- BEGIN (* Close *)
- IF base # NIL THEN e.CloseLibrary (base) END;
- END Close;
-
- BEGIN (* Graphics *)
- base := SYS.VAL (GfxBasePtr,
- e.OpenLibrary (graphicsName, e.libraryMinimum));
- IF base = NIL THEN HALT (100) END;
- gfx := base;
- Kernel.SetCleanup (Close)
- END Graphics.
-