home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-08-08 | 108.3 KB | 3,382 lines |
- (***************************************************************************
-
- $RCSfile: Graphics.mod $
- Description: Interface to graphics.library
-
- Created by: fjc (Frank Copeland)
- $Revision: 3.2 $
- $Author: fjc $
- $Date: 1994/08/08 00:54:05 $
-
- Includes Release 40.15
-
- (C) Copyright 1985-1993 Commodore-Amiga, Inc.
- All Rights Reserved
-
- Oberon-A interface Copyright © 1994, Frank Copeland.
- This file is part of the Oberon-A Interface.
- See Oberon-A.doc for conditions of use and distribution.
-
- ***************************************************************************)
-
- MODULE Graphics;
-
- (*
- ** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
- ** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
- ** $V- OvflChk $Z- ZeroVars
- *)
-
- IMPORT E := Exec, H := Hardware, U := Utility, SYS := SYSTEM;
-
- (**
- ** All pointers are declared forward here for convenience.
- *)
-
- TYPE
-
- RectanglePtr * = CPOINTER TO Rectangle;
- Rect32Ptr * = CPOINTER TO Rect32;
- PointPtr * = CPOINTER TO Point;
- BitMapPtr * = CPOINTER TO BitMap;
- ExtendedNodePtr * = CPOINTER TO ExtendedNode;
- AnalogSignalIntervalPtr * = CPOINTER TO AnalogSignalInterval;
- SpecialMonitorPtr * = CPOINTER TO SpecialMonitor;
- MonitorSpecPtr * = CPOINTER TO MonitorSpec;
- QueryHeaderPtr * = CPOINTER TO QueryHeader;
- DisplayInfoPtr * = CPOINTER TO DisplayInfo;
- DimensionInfoPtr * = CPOINTER TO DimensionInfo;
- MonitorInfoPtr * = CPOINTER TO MonitorInfo;
- NameInfoPtr * = CPOINTER TO NameInfo;
- VSpritePtr * = CPOINTER TO VSprite;
- BobPtr * = CPOINTER TO Bob;
- AnimCompPtr * = CPOINTER TO AnimComp;
- DBufPacketPtr * = CPOINTER TO DBufPacket;
- AnimObPtr * = CPOINTER TO AnimOb;
- CollTablePtr * = CPOINTER TO CollTable;
- AreaInfoPtr * = CPOINTER TO AreaInfo;
- TmpRasPtr * = CPOINTER TO TmpRas;
- GelsInfoPtr * = CPOINTER TO GelsInfo;
- RastPortPtr * = CPOINTER TO RastPort;
- CopInsPtr * = CPOINTER TO CopIns;
- CopInsCLPtr * = CPOINTER TO CopInsCL;
- CprlistPtr * = CPOINTER TO Cprlist;
- CopListPtr * = CPOINTER TO CopList;
- CopList13Ptr * = CPOINTER TO CopList13;
- UCopListPtr * = CPOINTER TO UCopList;
- ViewPortPtr * = CPOINTER TO ViewPort;
- ViewPtr * = CPOINTER TO View;
- ViewExtraPtr * = CPOINTER TO ViewExtra;
- ViewPortExtraPtr * = CPOINTER TO ViewPortExtra;
- RasInfoPtr * = CPOINTER TO RasInfo;
- ColorMapPtr * = CPOINTER TO ColorMap;
- LayerInfoPtr * = CPOINTER TO LayerInfo;
- LayerPtr * = CPOINTER TO Layer;
- ClipRectPtr * = CPOINTER TO ClipRect;
- RegionRectanglePtr * = CPOINTER TO RegionRectangle;
- RegionPtr * = CPOINTER TO Region;
- SimpleSpritePtr * = CPOINTER TO SimpleSprite;
- TextAttrPtr * = CPOINTER TO TextAttr;
- TTextAttrPtr * = CPOINTER TO TTextAttr;
- TextFontPtr * = CPOINTER TO TextFont;
- TextFontExtensionPtr * = CPOINTER TO TextFontExtension;
- ColorFontColorsPtr * = CPOINTER TO ColorFontColors;
- ColorTextFontPtr * = CPOINTER TO ColorTextFont;
- TextExtentPtr * = CPOINTER TO TextExtent;
- IsrvstrPtr * = CPOINTER TO Isrvstr;
- BitScaleArgsPtr * = CPOINTER TO BitScaleArgs;
- CopListBasePtr * = CPOINTER TO CopListBasePtr;
- PaletteExtraPtr * = CPOINTER TO PaletteExtra;
- DBufInfoPtr * = CPOINTER TO DBufInfo;
- ExtSpritePtr * = CPOINTER TO ExtSprite;
-
-
- (*
- ** $VER: gfx.h 39.5 (19.3.92)
- **
- ** general graphics library definitions
- *)
-
- CONST
-
- bitSet * = {15};
- bitClr * = {};
-
- TYPE
-
- Rectangle * = RECORD
- 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 * : E.BSET;
- depth * : E.UBYTE;
- pad * : E.UWORD;
- planes * : ARRAY 8 OF PlanePtr;
- END; (* BitMap *)
-
- CONST
-
- (* flags for AllocBitMap, etc. *)
- bmClear * = 0;
- bmDisplayable * = 1;
- bmInterleaved * = 2;
- bmStandard * = 3;
- bmMinPlanes * = 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
-
- ExtendedNode * = RECORD (E.Node)
- subsystem * : E.UBYTE;
- subtype * : E.UBYTE;
- 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
-
- LONGPROC * = PROCEDURE () : LONGINT;
-
- MonitorSpec * = RECORD (ExtendedNode)
- msFlags * : E.WSET;
- 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 * : LONGPROC;
- translate * : LONGPROC;
- scale * : LONGPROC;
- xoffset * : E.UWORD;
- yoffset * : E.UWORD;
- legalView * : Rectangle;
- maxoscan * : LONGPROC; (* maximum legal overscan *)
- videoscan * : LONGPROC; (* video display overscan *)
- deniseMinDisplayColumn * : E.UWORD;
- displayCompatible * : E.ULONG;
- displayInfoDataBase * : E.List;
- displayInfoDataBaseSemaphore * : E.SignalSemaphore;
- mrgCop * : LONGPROC;
- loadView * : LONGPROC;
- killView * : LONGPROC;
- END; (* MonitorSpec *)
-
- CONST
-
- toMonitor * = 0;
- fromMonitor * = 1;
- standardXOffset * = 9;
- standardYOffset * = 0;
-
- msRequestNTSC * = 0;
- msRequestPAL * = 1;
- msRequestSpecial * = 2;
- msRequestA2024 * = 3;
- msDoubleSprites * = 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 (ExtendedNode)
- spmFlags * : E.WSET;
- doMonitor * : LONGPROC;
- reserved1 * : LONGPROC;
- reserved2 * : LONGPROC;
- reserved3 * : LONGPROC;
- 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 *)
- pfaFineScroll * = {0..3};
- pfbFineScrollShift * = 4;
- pfFineScrollMask * = {0..3};
-
- (* display window start and stop defines *)
- diwHorizPos * = {0..6}; (* horizontal start/stop *)
- diwVrtclPos * = {0..8}; (* vertical start/stop *)
- diwVrtclPosShift * = 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 * = CPOINTER TO RECORD END;
-
- CONST
-
- (* datachunk type identifiers *)
-
- dtagDisp * = 80000000H;
- dtagDims * = 80001000H;
- dtagMntr * = 80002000H;
- dtagName * = 80003000H;
-
- TYPE
-
- QueryHeader * = RECORD
- 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 (QueryHeader)
- notAvailable * : E.WSET; (* if NULL available, else see defines *)
- propertyFlags * : SET; (* 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 *)
-
- diAvailNoChips * = {0};
- diAvailNoMonitor * = {1};
- diAvailNotWithGenlock * = {2};
-
- (* mode properties *)
-
- dipIsLace * = 0;
- dipIsDualPF * = 1;
- dipIsPF2Pri * = 2;
- dipIsHAM * = 3;
-
- dipIsECS * = 4; (* note: ECS modes (SHIRES, VGA, and **
- ** PRODUCTIVITY) do not support **
- ** attached sprites. **
- *)
-
- dipIsAA * = 16; (* AA modes - may only be available
- ** if machine has correct memory
- ** type to support required
- ** bandwidth - check availability.
- ** (V39)
- *)
-
- dipIsPAL * = 5;
- dipIsSprites * = 6;
- dipIsGenlock * = 7;
-
- dipIsWB * = 8;
- dipIsDraggable * = 9;
- dipIsPanelled * = 10;
- dipIsBeamSync * = 11;
-
- dipIsExtraHalfBrite * = 12;
-
- (* The following dipIs... flags are new for V39 *)
- dipIsSpritesAtt * = 13; (* supports attached sprites *)
- dipIsSpritesChngRes * = 14; (* supports variable sprite resolution *)
- dipIsSpritesBorder * = 15; (* sprite can be displayed in the border *)
- dipIsScanDbl * = 17; (* scan doubled *)
- dipIsSpritesChngBase * = 18;
- dipIsSpritesChngPri * = 19;
- dipIsDBuffer * = 20; (* can support double buffering *)
- dipIsProgBeam * = 21; (* is a programmed beam-sync mode *)
- dipIsForeign * = 31; (* this mode is not native to the Amiga *)
-
- TYPE
-
- DimensionInfo * = RECORD (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 (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 (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 * = {dipIsDualPF, dipIsPF2Pri, dipIsHAM, dipIsExtraHalfBrite};
-
- bidTagDipMustHave * = 080000001H; (* mask of the DIPF_ flags the ModeID must have *)
- (* Default - NULL *)
- bidTagDipMustNotHave * = 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 * : E.WSET; (* 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 * : E.WSET; (* which types can collide with this VSprite *)
- hitMask * : E.WSET; (* 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 * : E.BSET;
- planeOnOff * : E.BSET;
-
- vUserExt * : VUserStuff; (* user definable: see note above *)
- END; (* VSprite *)
-
-
- Bob * = RECORD
- (* blitter-objects *)
- (* --------------------- SYSTEM VARIABLES --------------------------------- *)
-
- (* --------------------- COMMON VARIABLES --------------------------------- *)
- flags * : E.WSET; (* 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 * : E.WSET; (* 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.BSET; (* system use *)
- gelHead *, gelTail * : VSpritePtr; (* dummy vSprites for list management *)
- (* pointer to array of 8 INTEGERS for sprite available lines *)
- nextLine * : CPOINTER TO ARRAY 8 OF INTEGER;
- (* pointer to array of 8 pointers for color-last-assigned to vSprites *)
- lastColor * : CPOINTER TO ARRAY 8 OF CPOINTER TO 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 * : E.BSET; (* write mask for this raster *)
- fgPen * : SHORTINT; (* foreground pen for this raster *)
- bgPen * : SHORTINT; (* background pen *)
- aOlPen * : SHORTINT; (* areafill outline pen *)
- drawMode * : E.BSET; (* 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 * : E.WSET; (* 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 * : E.BSET; (* the algorithmically generated style *)
- txFlags * : E.BSET; (* 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
-
- copperMove * = 0; (* pseude opcode for move #XXXX,dir *)
- copperWait * = 1; (* pseudo opcode for wait y,x *)
- cprNxtBuf * = 2; (* continue processing with next buffer *)
- cprNtLof * = 15; (* copper instruction only for short frames *)
- cprNtSht * = 14; (* copper instruction only for long frames *)
- cprNtSys * = 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 * : CopListBasePtr;
- END; (* CopInsCL *)
-
- TYPE
-
- Cprlist * = RECORD
- next * : CprlistPtr;
- start * : E.APTR; (* start of copper list *)
- maxCount * : INTEGER; (* number of long instructions *)
- END; (* Cprlist *)
-
- CopListBase * = RECORD
- next * : CopListBasePtr; (* next block for this copper list *)
- copList * : CopListBasePtr; (* 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 *)
- END;
-
- CopList * = RECORD (CopListBase)
- slRepeat * : INTEGER;
- flags * : E.WSET;
- END; (* CopList *)
-
- CopList13 = RECORD (CopListBase)
- cop2Start * : E.APTR;
- cop3Start * : E.APTR;
- cop4Start * : E.APTR;
- cop5Start * : E.APTR;
- slRepeat * : INTEGER;
- flags * : E.WSET;
- END; (* CopList13 *)
-
- UCopList * = RECORD
- next * : UCopListPtr;
- firstCopList * : CopListBasePtr; (* head node of this copper list *)
- copList * : CopListBasePtr; (* node in use *)
- END; (* UCopList *)
-
- (* private graphics data structure *)
-
- CopinitPtr = CPOINTER 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 * : CopListBasePtr; (* user by MakeView() *)
- sprIns * : CopListBasePtr; (* used by sprite stuff *)
- clrIns * : CopListBasePtr; (* used by sprite stuff *)
- uCopIns * : UCopListPtr; (* User copper list *)
- dWidth *, dHeight * : INTEGER;
- dxOffset *, dyOffset * : INTEGER;
- modes * : E.WSET;
- spritePriorities * : E.UBYTE; (* used by makevp *)
- extendedModes * : E.UBYTE;
- 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 * : E.WSET; (* such as INTERLACE, GENLOC *)
- END; (* View *)
-
- (* these structures are obtained via GfxNew *)
- (* and disposed by GfxFree *)
- ViewExtra * = RECORD (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 (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 * : E.WSET;
- 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 *)
- vpxFreeMe = 0;
- vpxLast = 1;
- vpxStraddles256 = 4;
- vpxStraddles512 = 5;
-
- extendVStruct * = 12; (* unused bit in Modes field of View *)
-
- (* VP_ fields internal only *)
- vpA2024 = 6;
- vpTenhz = 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 * : E.BSET;
- type * : E.UBYTE;
- count * : E.UWORD;
- colorTable * : E.APTR;
- vpe * : ViewPortExtraPtr;
- lowColorBits * : E.APTR;
- transparencyPlane * : E.UBYTE;
- spriteResolution * : E.UBYTE;
- spriteResDefault * : E.UBYTE; (* what resolution you get when you have set SPRITERESN_DEFAULT *)
- auxFlags * : E.BSET;
- 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;
-
- spriteResnEcs * = 0;
- (* ^140ns, except in 35ns viewport, where it is 70ns. *)
- spriteResn140ns * = 1;
- spriteResn70ns * = 2;
- spriteResn35ns * = 3;
- spriteResnDefault * = -1;
-
- (* AuxFlags : *)
- cmaFullPalette * = 0;
- cmaNoIntermedUpdate * = 1;
- cmaNoColorLoad * = 2;
- cmaDualPFDisable * = 3;
-
- TYPE
-
- (* structure may be extended so watch out! *)
- PaletteExtra * = RECORD (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 *)
-
- penExclusive * = 0;
- penNoSetColor * = 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 *)
-
- TYPE
-
- LayerInfo * = RECORD
- topLayer * : LayerPtr;
- checklp : 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 * : E.WSET;
- fattenCount : SHORTINT; (* !! Private !! *)
- lockLayersCount : SHORTINT; (* !! Private !! *)
- privateReserve5 : INTEGER; (* !! Private !! *)
- blankHook : E.APTR; (* !! Private !! *)
- layerInfoExtra : E.APTR; (* !! Private !! *)
- END; (* LayerInfo *)
-
- CONST
-
- newLayerInfoCalled * = 1;
-
- (*
- * layersNoBackfill is the value needed to get no backfill hook
- * layersBackfill is the value needed to get the default backfill hook
- *)
- layersNoBackfill * = SYS.VAL (U.HookPtr, 1);
- layersBackfill * = 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 * : E.WSET; (* 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 : E.APTR; (* Layers private use!!! *)
- p2 : E.APTR; (* Layers private use!!! *)
- reserved : LONGINT; (* system use (Layers private) *)
- flags : SET; (* Layers private field for cliprects *)
- (* that layers allocates... *)
- (* MUST be multiple of 8 bytes to buffer *)
- END; (* ClipRect *)
-
- CONST
-
- (* internal cliprect flags *)
- crNeedsNoConcealedRasters = 1;
- crNeedsNoLayerblitDamage = 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 (Rectangle)
- regionRectangle * : RegionRectanglePtr;
- END; (* Region *)
-
-
- (*
- ** $VER: sprite.h 39.6 (16.6.92)
- **
- ** Graphics sprite definitions
- *)
-
- CONST
-
- spriteAttached * = 80H;
-
- TYPE
-
- SimpleSprite * = RECORD
- posctldata * : E.APTR;
- height * : E.UWORD;
- x *, y * : E.UWORD; (* current position *)
- num * : E.UWORD;
- END; (* SimpleSprite *)
-
- ExtSprite * = RECORD (SimpleSprite) (* conventional simple sprite structure *)
- wordWidth * : E.UWORD; (* graphics use only, subject to change *)
- flags * : E.UWORD; (* 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 ------------------------------------------------ *)
- fsNormal * = {}; (* normal text (no style bits set) *)
- fsUnderlined * = 0; (* underlined (under baseline) *)
- fsBold * = 1; (* bold face text (ORed w/ shifted) *)
- fsItalic * = 2; (* italic (slanted 1:2 right) *)
- fsExtended * = 3; (* extended face (wider than normal) *)
-
- fsColorfont * = 6; (* this uses ColorTextFont structure *)
- fsTagged * = 7; (* the TextAttr is really an TTextAttr, *)
-
- (* ------ Font Flags ------------------------------------------------- *)
- fpRomFont * = 0; (* font is in rom *)
- fpDiskFont * = 1; (* font is from diskfont.library *)
- fpRevPath * = 2; (* designed path is reversed (e.g. left) *)
- fpTallDot * = 3; (* designed for hires non-interlaced *)
- fpWideDot * = 4; (* designed for lores interlaced *)
- fpProportional * = 5; (* character sizes can vary from nominal *)
- fpDesigned * = 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 *)
- fpRemoved * = 7; (* the font has been removed *)
-
- TYPE
-
- (****** TextAttr node, matches text attributes in RastPort **********)
- TextAttr * = RECORD
- name * : E.STRPTR; (* name of the font *)
- ySize * : E.UWORD; (* height of the font *)
- style * : E.BSET; (* intrinsic font style *)
- flags * : E.BSET; (* font preferences and flags *)
- END; (* TextAttr *)
-
- TTextAttr * = RECORD
- name * : E.STRPTR; (* name of the font *)
- ySize * : E.UWORD; (* height of the font *)
- style * : E.BSET; (* intrinsic font style *)
- flags * : E.BSET; (* font preferences and flags *)
- tags * : U.TagListPtr; (* extended attributes *)
- END; (* TTextAttr *)
-
-
- CONST
-
- (****** Text Tags ************************************************** *)
- deviceDPI * = U.tagUser+1; (* Tag value is Point union: *)
- (* Hi word XDPI, Lo word YDPI *)
-
- maxFontMatchweight * = 32767; (* perfect match from WeighTAMatch *)
-
-
- TYPE
-
- (****** TextFonts node **********************************************)
- TextFont * = RECORD (E.Message) (* reply message for font removal *)
- (* font name in LN \ used in this *)
- ySize * : E.UWORD; (* font height | order to best *)
- style * : E.BSET; (* font style | match a font *)
- flags * : E.BSET; (* 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) ---------------------------- *)
- te0NoRemFont * = 0; (* disallow RemFont for this font *)
-
- TYPE
-
- TextFontExtension * = RECORD
- matchWord * : E.UWORD; (* a magic cookie for the extension *)
- flags0 : E.BSET; (* (system private flags) *)
- flags1 : E.BSET; (* (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 (TextFont)
- ctfFlags * : E.WSET; (* extended flags *)
- depth * : E.UBYTE; (* number of bit planes *)
- fgColor * : E.UBYTE; (* color that is remapped to FgPen *)
- low * : E.UBYTE; (* lowest color represented here *)
- high * : E.UBYTE; (* highest color represented here *)
- planePick * : E.BSET; (* PlanePick ala Images *)
- planeOnOff * : E.BSET; (* PlaneOnOff ala Images *)
- colorFontColors * : ColorFontColorsPtr; (* colors for font *)
- ctfCharData * : 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.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
-
- rpTagFont * = 080000000H; (* get/set font *)
- rpTagAPen * = 080000002H; (* get/set apen *)
- rpTagBPen * = 080000003H; (* get/set bpen *)
- rpTagDrMd * = 080000004H; (* get/set draw mode *)
- rpTagOutLinePen * = 080000005H; (* get/set outline pen *)
- rpTagOutlinePen * = 080000005H; (* get/set outline pen. corrected case. *)
- rpTagWriteMask * = 080000006H; (* get/set WriteMask *)
- rpTagMaxPen * = 080000007H; (* get/set maxpen *)
-
- rpTagDrawBounds * = 080000008H; (* get only rastport draw bounds. pass &rect *)
-
- (*
- ** $VER: gfxbase.h 39.21 (21.4.93)
- **
- ** graphics base definitions
- *)
-
-
- TYPE
-
- GfxBasePtr * = CPOINTER TO GfxBase;
- GfxBase * = RECORD (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 * : E.WSET; (* copy of current first bplcon0 *)
- vBlank * : SHORTINT;
- debug * : SHORTINT;
- beamSync * : INTEGER;
- systembplcon0 * : E.WSET; (* it is ored into each bplcon0 for display *)
- spriteReserved * : E.UBYTE;
- bytereserved * : E.UBYTE;
- Flags * : E.WSET;
- blitLock * : INTEGER;
- blitNest * : INTEGER;
-
- blitWaitQ * : E.List;
- blitOwner * : E.TaskPtr;
- tofWaitQ * : E.List;
- displayFlags * : E.WSET; (* NTSC PAL GENLOC etc *)
- (* flags initialized at power on *)
- simpleSprites * : SimpleSpritePtr;
- 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 * : E.BSET;
- 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 * : E.WSET;
- 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 * : SHORTINT; (* bit mask of size change knowledgeable sprites *)
- arraywidth * : SHORTINT;
- defaultSpriteWidth * : E.UWORD; (* what width intuition wants *)
- sprMoveDisable * : SHORTINT;
- 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 * : E.WSET;
- scanDoubledSprites * : E.UBYTE;
- bP3Bits * : E.UBYTE;
- monitorVBlank * : AnalogSignalInterval;
- monitor * : MonitorSpecPtr;
- progData * : E.APTR;
- extSprites * : E.UBYTE;
- pad3 * : E.UBYTE;
- gfxFlags * : E.WSET;
- vBCounter * : E.ULONG;
- hashTableSemaphore * : E.SignalSemaphorePtr;
- hWEmul * : 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() *)
- setChipRevA * = {hrAgnus};
- setChipRevECS * = {hrAgnus, hrDenise};
- setChipRevAA * = {aaAlice, aaLisa} + setChipRevECS;
- setChipRevBest * = {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;
-
- name * = "graphics.library";
-
- (**-- Library Base variable --------------------------------------------*)
-
-
- VAR
-
- base * : GfxBasePtr;
-
-
- (**-- Library Functions ------------------------------------------------*)
-
- (*
- ** $VER: graphics_protos.h 39.31 (29.4.93)
- *)
-
- TYPE
- CollisionProc* = PROCEDURE (GELA, GELB : VSpritePtr);
-
-
- (* ------ BitMap primitives ------*)
-
- LIBCALL (base : GfxBasePtr) BltBitMap*
- ( 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] : E.BSET;
- tempA [10] : PlanePtr )
- : E.ULONG;
- -30;
-
- LIBCALL (base : GfxBasePtr) BltTemplate*
- ( source [8] : PlanePtr;
- xSrc [0] : INTEGER;
- srcMod [1] : INTEGER;
- destRP [9] : RastPortPtr;
- xDest [2] : INTEGER;
- yDest [3] : INTEGER;
- xSize [4] : INTEGER;
- ySize [5] : INTEGER );
- -36;
-
- (* ------ Text routines ------*)
-
- LIBCALL (base : GfxBasePtr) ClearEOL*
- ( rp [9] : RastPortPtr );
- -42;
- LIBCALL (base : GfxBasePtr) ClearScreen*
- ( rp [9] : RastPortPtr );
- -48;
- LIBCALL (base : GfxBasePtr) TextLength*
- ( rp [9] : RastPortPtr;
- string [8] : ARRAY OF CHAR;
- count [0] : LONGINT )
- : INTEGER;
- -54;
- LIBCALL (base : GfxBasePtr) Text*
- ( rp [9] : RastPortPtr;
- string [8] : ARRAY OF CHAR;
- count [0] : LONGINT );
- -60;
- LIBCALL (base : GfxBasePtr) SetFont*
- ( rp [9] : RastPortPtr;
- textFont [8] : TextFontPtr );
- -66;
- LIBCALL (base : GfxBasePtr) OpenFont*
- ( VAR textAttr [8] : TextAttr )
- : TextFontPtr;
- -72;
- LIBCALL (base : GfxBasePtr) CloseFont*
- ( textFont [9] : TextFontPtr );
- -78;
- LIBCALL (base : GfxBasePtr) AskSoftStyle*
- ( rp [9] : RastPortPtr )
- : E.BSET;
- -84;
- LIBCALL (base : GfxBasePtr) SetSoftStyle*
- ( rp [9] : RastPortPtr;
- style [0] : E.BSET;
- enable [1] : E.BSET )
- : E.BSET;
- -90;
-
- (* ------ Gels routines ------*)
-
- LIBCALL (base : GfxBasePtr) AddBob*
- ( bob [8] : BobPtr;
- rp [9] : RastPortPtr );
- -96;
- LIBCALL (base : GfxBasePtr) AddVSprite*
- ( vSprite [8] : VSpritePtr;
- rp [9] : RastPortPtr );
- -102;
- LIBCALL (base : GfxBasePtr) DoCollision*
- ( rp [9] : RastPortPtr );
- -108;
- LIBCALL (base : GfxBasePtr) DrawGList*
- ( rp [9] : RastPortPtr;
- vp [8] : ViewPortPtr );
- -114;
- LIBCALL (base : GfxBasePtr) InitGels*
- ( head [8] : VSpritePtr;
- tail [9] : VSpritePtr;
- gelsInfo [10] : GelsInfoPtr );
- -120;
- LIBCALL (base : GfxBasePtr) InitMasks*
- ( vSprite [0] : VSpritePtr );
- -126;
- LIBCALL (base : GfxBasePtr) RemIBob*
- ( bob [8] : BobPtr;
- rp [9] : RastPortPtr;
- vp [10] : ViewPortPtr );
- -132;
- LIBCALL (base : GfxBasePtr) RemVSprite*
- ( vSprite [8] : VSpritePtr );
- -138;
- LIBCALL (base : GfxBasePtr) SetCollision*
- ( num [0] : E.ULONG;
- routine [8] : CollisionProc;
- gelsInfo [9] : GelsInfoPtr );
- -144;
- LIBCALL (base : GfxBasePtr) SortGList*
- ( rp [9] : RastPortPtr );
- -150;
- LIBCALL (base : GfxBasePtr) AddAnimOb*
- ( anOb [8] : AnimObPtr;
- VAR anKey [9] : AnimObPtr;
- rp [10] : RastPortPtr );
- -156;
- LIBCALL (base : GfxBasePtr) Animate*
- ( VAR anKey [8] : AnimObPtr;
- rp [9] : RastPortPtr );
- -162;
- LIBCALL (base : GfxBasePtr) GetGBuffers*
- ( anOb [8] : AnimObPtr;
- rp [9] : RastPortPtr;
- flag [0] : BOOLEAN )
- : BOOLEAN;
- -168;
- LIBCALL (base : GfxBasePtr) InitGMasks*
- ( anOb [8] : AnimObPtr );
- -174;
-
- (* ------ General graphics routines ------*)
-
- LIBCALL (base : GfxBasePtr) DrawEllipse*
- ( rp [9] : RastPortPtr;
- xCenter [0] : INTEGER;
- yCenter [1] : INTEGER;
- a [2] : INTEGER;
- b [3] : INTEGER );
- -180;
- LIBCALL (base : GfxBasePtr) AreaEllipse*
- ( rp [9] : RastPortPtr;
- xCenter [0] : INTEGER;
- yCenter [1] : INTEGER;
- a [2] : INTEGER;
- b [3] : INTEGER )
- : BOOLEAN;
- -186;
- LIBCALL (base : GfxBasePtr) LoadRGB4*
- ( vp [8] : ViewPortPtr;
- colors [1] : ARRAY OF E.UWORD;
- count [0] : LONGINT );
- -192;
- LIBCALL (base : GfxBasePtr) InitRastPort*
- ( VAR rp [9] : RastPort );
- -198;
- LIBCALL (base : GfxBasePtr) InitVPort*
- ( VAR vp [8] : ViewPort );
- -204;
- LIBCALL (base : GfxBasePtr) OldMrgCop*
- ( view [9] : ViewPtr );
- -210;
- LIBCALL (base : GfxBasePtr) MrgCop*
- ( view [9] : ViewPtr )
- : LONGINT;
- -210;
- LIBCALL (base : GfxBasePtr) MakeVPort*
- ( view [8] : ViewPtr;
- vp [9] : ViewPortPtr );
- -216;
- LIBCALL (base : GfxBasePtr) LoadView*
- ( view [9] : ViewPtr );
- -222;
- LIBCALL (base : GfxBasePtr) WaitBlit* ();
- -228;
- LIBCALL (base : GfxBasePtr) SetRast*
- ( rp [9] : RastPortPtr;
- pen [0] : E.UBYTE );
- -234;
- LIBCALL (base : GfxBasePtr) Move*
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER );
- -240;
- LIBCALL (base : GfxBasePtr) Draw*
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER );
- -246;
- LIBCALL (base : GfxBasePtr) AreaMove*
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- -252;
- LIBCALL (base : GfxBasePtr) AreaDraw*
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- -258;
- LIBCALL (base : GfxBasePtr) AreaEnd*
- ( rp [9] : RastPortPtr )
- : BOOLEAN;
- -264;
- LIBCALL (base : GfxBasePtr) WaitTOF* ();
- -270;
- LIBCALL (base : GfxBasePtr) QBlit*
- ( blit [9] : H.BltnodePtr );
- -276;
- LIBCALL (base : GfxBasePtr) InitArea*
- ( VAR areaInfo [8] : AreaInfo;
- vectorBuffer [9] : E.APTR;
- maxVectors [0] : LONGINT );
- -282;
- LIBCALL (base : GfxBasePtr) SetRGB4*
- ( vp [8] : ViewPortPtr;
- index [0] : LONGINT;
- red [1] : E.UBYTE;
- green [2] : E.UBYTE;
- blue [3] : E.UBYTE );
- -288;
- LIBCALL (base : GfxBasePtr) QBSBlit*
- ( blit [9] : H.BltnodePtr );
- -294;
- LIBCALL (base : GfxBasePtr) BltClear*
- ( memBlock [9] : PlanePtr;
- byteCount [0] : E.ULONG;
- flags [1] : SET );
- -300;
- LIBCALL (base : GfxBasePtr) RectFill*
- ( rp [9] : RastPortPtr;
- xMin [0] : INTEGER;
- yMin [1] : INTEGER;
- xMax [2] : INTEGER;
- yMax [3] : INTEGER );
- -306;
- LIBCALL (base : GfxBasePtr) BltPattern*
- ( rp [9] : RastPortPtr;
- mask [8] : PlanePtr;
- xMin [0] : INTEGER;
- yMin [1] : INTEGER;
- xMax [2] : INTEGER;
- yMax [3] : INTEGER;
- maskBPR [4] : INTEGER );
- -312;
- LIBCALL (base : GfxBasePtr) ReadPixel*
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : LONGINT;
- -318;
- LIBCALL (base : GfxBasePtr) WritePixel*
- ( rp [9] : RastPortPtr;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- -324;
- LIBCALL (base : GfxBasePtr) Flood*
- ( rp [9] : RastPortPtr;
- mode [2] : E.ULONG;
- x [0] : INTEGER;
- y [1] : INTEGER )
- : BOOLEAN;
- -330;
- LIBCALL (base : GfxBasePtr) PolyDraw*
- ( rp [9] : RastPortPtr;
- count [0] : INTEGER;
- polyTable [8] : ARRAY OF Point );
- -336;
- LIBCALL (base : GfxBasePtr) PolyDrawList*
- ( rp [9] : RastPortPtr;
- count [0] : INTEGER;
- polyTable [8].. : INTEGER );
- -336;
- LIBCALL (base : GfxBasePtr) SetAPen*
- ( rp [9] : RastPortPtr;
- pen [0] : E.UBYTE );
- -342;
- LIBCALL (base : GfxBasePtr) SetBPen*
- ( rp [9] : RastPortPtr;
- pen [0] : E.UBYTE );
- -348;
- LIBCALL (base : GfxBasePtr) SetDrMd*
- ( rp [9] : RastPortPtr;
- drawMode [0] : E.BSET );
- -354;
- LIBCALL (base : GfxBasePtr) InitView*
- ( VAR view [9] : View );
- -360;
- LIBCALL (base : GfxBasePtr) CBump*
- ( copList [9] : UCopListPtr );
- -366;
- LIBCALL (base : GfxBasePtr) CMove*
- ( copList [9] : UCopListPtr;
- destination [0] : E.APTR;
- data [1] : E.UWORD );
- -372;
- LIBCALL (base : GfxBasePtr) CWait*
- ( copList [9] : UCopListPtr;
- v [0] : INTEGER;
- h [1] : INTEGER );
- -378;
- LIBCALL (base : GfxBasePtr) VBeamPos* ()
- : LONGINT;
- -384;
- LIBCALL (base : GfxBasePtr) InitBitMap*
- ( VAR bitMap [8] : BitMap;
- depth [0] : SHORTINT;
- width [1] : INTEGER;
- height [2] : INTEGER );
- -390;
- LIBCALL (base : GfxBasePtr) ScrollRaster*
- ( rp [9] : RastPortPtr;
- dx [0] : INTEGER;
- dy [1] : INTEGER;
- xMin [2] : INTEGER;
- yMin [3] : INTEGER;
- xMax [4] : INTEGER;
- yMax [5] : INTEGER );
- -396;
- LIBCALL (base : GfxBasePtr) WaitBOVP*
- ( vp [8] : ViewPortPtr );
- -402;
- LIBCALL (base : GfxBasePtr) GetSprite*
- ( VAR sprite [8] : SimpleSprite;
- num [0] : INTEGER )
- : INTEGER;
- -408;
- LIBCALL (base : GfxBasePtr) FreeSprite*
- ( num [0] : INTEGER );
- -414;
- LIBCALL (base : GfxBasePtr) ChangeSprite*
- ( vp [8] : ViewPortPtr;
- VAR sprite [9] : SimpleSprite;
- newData [10] : PlanePtr );
- -420;
- LIBCALL (base : GfxBasePtr) MoveSprite*
- ( vp [8] : ViewPortPtr;
- VAR sprite [9] : SimpleSprite;
- x [0] : INTEGER;
- y [1] : INTEGER );
- -426;
- LIBCALL (base : GfxBasePtr) LockLayerRom*
- ( layer [13] : LayerPtr );
- -432;
- LIBCALL (base : GfxBasePtr) UnlockLayerRom*
- ( layer [13] : LayerPtr );
- -438;
- LIBCALL (base : GfxBasePtr) SyncSBitMap*
- ( layer [8] : LayerPtr );
- -444;
- LIBCALL (base : GfxBasePtr) CopySBitMap*
- ( layer [8] : LayerPtr );
- -450;
- LIBCALL (base : GfxBasePtr) OwnBlitter* ();
- -456;
- LIBCALL (base : GfxBasePtr) DisownBlitter* ();
- -462;
- LIBCALL (base : GfxBasePtr) InitTmpRas*
- ( VAR tmpRas [8] : TmpRas;
- buffer [9] : PlanePtr;
- size [0] : E.ULONG );
- -468;
- LIBCALL (base : GfxBasePtr) AskFont*
- ( rp [9] : RastPortPtr;
- VAR textAttr [8] : TextAttr );
- -474;
- LIBCALL (base : GfxBasePtr) AddFont*
- ( textFont [9] : TextFontPtr );
- -480;
- LIBCALL (base : GfxBasePtr) RemFont*
- ( textFont [9] : TextFontPtr );
- -486;
- LIBCALL (base : GfxBasePtr) AllocRaster*
- ( width [0] : E.UWORD;
- height [1] : E.UWORD )
- : PlanePtr;
- -492;
- LIBCALL (base : GfxBasePtr) FreeRaster*
- ( p [8] : PlanePtr;
- width [0] : E.UWORD;
- height [1] : E.UWORD );
- -498;
- LIBCALL (base : GfxBasePtr) AndRectRegion*
- ( region [8] : RegionPtr;
- VAR rectangle [9] : Rectangle );
- -504;
- LIBCALL (base : GfxBasePtr) OrRectRegion*
- ( region [8] : RegionPtr;
- VAR rectangle [9] : Rectangle )
- : BOOLEAN;
- -510;
- LIBCALL (base : GfxBasePtr) NewRegion* ()
- : RegionPtr;
- -516;
- LIBCALL (base : GfxBasePtr) ClearRectRegion*
- ( region [8] : RegionPtr;
- VAR rectangle [9] : Rectangle )
- : BOOLEAN;
- -522;
- LIBCALL (base : GfxBasePtr) ClearRegion*
- ( region [8] : RegionPtr );
- -528;
- LIBCALL (base : GfxBasePtr) DisposeRegion*
- ( region [8] : RegionPtr );
- -534;
- LIBCALL (base : GfxBasePtr) FreeVPortCopLists*
- ( vp [8] : ViewPortPtr );
- -540;
- LIBCALL (base : GfxBasePtr) FreeCopList*
- ( copList [8] : CopListBasePtr );
- -546;
- LIBCALL (base : GfxBasePtr) ClipBlit* (
- 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 );
- -552;
- LIBCALL (base : GfxBasePtr) XorRectRegion*
- ( region [8] : RegionPtr;
- VAR rectangle [9] : Rectangle )
- : BOOLEAN;
- -558;
- LIBCALL (base : GfxBasePtr) FreeCprList*
- ( cprList [8] : CprlistPtr );
- -564;
- LIBCALL (base : GfxBasePtr) GetColorMap*
- ( entries [0] : LONGINT )
- : ColorMapPtr;
- -570;
- LIBCALL (base : GfxBasePtr) FreeColorMap*
- ( colorMap [8] : ColorMapPtr );
- -576;
- LIBCALL (base : GfxBasePtr) GetRGB4*
- ( colorMap [8] : ColorMapPtr;
- entry [0] : LONGINT )
- : INTEGER;
- -582;
- LIBCALL (base : GfxBasePtr) ScrollVPort*
- ( vp [8] : ViewPortPtr );
- -588;
- LIBCALL (base : GfxBasePtr) UCopperListInit*
- ( uCopList [8] : UCopListPtr;
- n [0] : LONGINT )
- : CopListBasePtr;
- -594;
- LIBCALL (base : GfxBasePtr) FreeGBuffers*
- ( anOb [8] : AnimObPtr;
- rp [9] : RastPortPtr;
- flag [0] : BOOLEAN );
- -600;
- LIBCALL (base : GfxBasePtr) BltBitMapRastPort*
- ( 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;
- -606;
- LIBCALL (base : GfxBasePtr) OrRegionRegion*
- ( srcRegion [8] : RegionPtr;
- destRegion [9] : RegionPtr )
- : BOOLEAN;
- -612;
- LIBCALL (base : GfxBasePtr) XorRegionRegion*
- ( srcRegion [8] : RegionPtr;
- destRegion [9] : RegionPtr )
- : BOOLEAN;
- -618;
- LIBCALL (base : GfxBasePtr) AndRegionRegion*
- ( srcRegion [8] : RegionPtr;
- destRegion [9] : RegionPtr )
- : BOOLEAN;
- -624;
- LIBCALL (base : GfxBasePtr) SetRGB4CM* (
- colorMap [8] : ColorMapPtr;
- index [0] : INTEGER;
- red [1] : E.UBYTE;
- green [2] : E.UBYTE;
- blue [3] : E.UBYTE );
- -630;
- LIBCALL (base : GfxBasePtr) BltMaskBitMapRastPort* (
- 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 );
- -636;
- LIBCALL (base : GfxBasePtr) AttemptLockLayerRom*
- ( layer [13] : LayerPtr )
- : BOOLEAN;
- -654;
-
- (* --- functions in V36 or higher (distributed as Release 2.0) ---*)
-
- LIBCALL (base : GfxBasePtr) GfxNew*
- ( gfxNodeType [0] : E.ULONG )
- : ExtendedNodePtr;
- -660;
- LIBCALL (base : GfxBasePtr) GfxFree*
- ( gfxNodePtr [8] : ExtendedNodePtr );
- -666;
- LIBCALL (base : GfxBasePtr) GfxAssociate*
- ( associateNode [8] : ExtendedNodePtr;
- gfxNodePtr [9] : ExtendedNodePtr );
- -672;
- LIBCALL (base : GfxBasePtr) BitMapScale*
- ( bitScaleArgs [8] : BitScaleArgsPtr );
- -678;
- LIBCALL (base : GfxBasePtr) ScalerDiv*
- ( factor [0] : E.ULONG;
- numerator [1] : E.ULONG;
- denominator [2] : E.ULONG )
- : E.UWORD;
- -684;
- LIBCALL (base : GfxBasePtr) TextExtent*
- ( rp [9] : RastPortPtr;
- string [8] : ARRAY OF CHAR;
- count [0] : LONGINT;
- VAR textExtent [10] : TextExtent )
- : INTEGER;
- -690;
- LIBCALL (base : GfxBasePtr) TextFit*
- ( 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;
- -696;
- LIBCALL (base : GfxBasePtr) GfxLookUp*
- ( associateNode [8] : ExtendedNodePtr )
- : E.APTR;
- -702;
- LIBCALL (base : GfxBasePtr) VideoControlA*
- ( colorMap [8] : ColorMapPtr;
- tagarray [9] : ARRAY OF U.TagItem )
- : BOOLEAN;
- -708;
- LIBCALL (base : GfxBasePtr) VideoControl*
- ( colorMap [8] : ColorMapPtr;
- tagarray [9].. : U.Tag )
- : BOOLEAN;
- -708;
- LIBCALL (base : GfxBasePtr) OpenMonitor*
- ( monitorName [9] : ARRAY OF CHAR;
- displayID [0] : E.ULONG )
- : MonitorSpecPtr;
- -714;
- LIBCALL (base : GfxBasePtr) CloseMonitor*
- ( monitorSpec [8] : MonitorSpecPtr )
- : BOOLEAN;
- -720;
- LIBCALL (base : GfxBasePtr) FindDisplayInfo*
- ( displayID [0] : E.ULONG )
- : DisplayInfoHandle;
- -726;
- LIBCALL (base : GfxBasePtr) NextDisplayInfo*
- ( displayID [0] : E.ULONG )
- : E.ULONG;
- -732;
- LIBCALL (base : GfxBasePtr) GetDisplayInfoData*
- ( handle [8] : DisplayInfoHandle;
- VAR buf [9] : ARRAY OF SYS.BYTE;
- size [0] : E.ULONG;
- tagID [1] : E.ULONG;
- displayID [2] : E.ULONG )
- : E.ULONG;
- -756;
- LIBCALL (base : GfxBasePtr) FontExtent*
- ( font [8] : TextFontPtr;
- VAR fontExtent [9] : TextExtent );
- -762;
- LIBCALL (base : GfxBasePtr) ReadPixelLine8*
- ( 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;
- -768;
- LIBCALL (base : GfxBasePtr) WritePixelLine8*
- ( 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;
- -774;
- LIBCALL (base : GfxBasePtr) ReadPixelArray8*
- ( 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;
- -780;
- LIBCALL (base : GfxBasePtr) WritePixelArray8*
- ( 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;
- -786;
- LIBCALL (base : GfxBasePtr) GetVPModeID*
- ( vp [8] : ViewPortPtr )
- : LONGINT;
- -792;
- LIBCALL (base : GfxBasePtr) ModeNotAvailable*
- ( modeID [0] : E.ULONG )
- : LONGINT;
- -798;
- LIBCALL (base : GfxBasePtr) WeighTAMatchA*
- ( VAR reqTextAttr [8] : TextAttr;
- VAR targetTextAttr [9] : TextAttr;
- targetTags [10] : ARRAY OF U.TagItem )
- : INTEGER;
- -804;
- LIBCALL (base : GfxBasePtr) WeighTAMatch*
- ( VAR reqTextAttr [8] : TextAttr;
- VAR targetTextAttr [9] : TextAttr;
- targetTags [10].. : U.Tag )
- : INTEGER;
- -804;
- LIBCALL (base : GfxBasePtr) EraseRect*
- ( rp [9] : RastPortPtr;
- xMin [0] : INTEGER;
- yMin [1] : INTEGER;
- xMax [2] : INTEGER;
- yMax [3] : INTEGER );
- -810;
- LIBCALL (base : GfxBasePtr) ExtendFontA*
- ( font [8] : TextFontPtr;
- fontTags [9] : ARRAY OF U.TagItem )
- : E.ULONG;
- -816;
- LIBCALL (base : GfxBasePtr) ExtendFont*
- ( font [8] : TextFontPtr;
- fontTags [9].. : U.Tag )
- : E.ULONG;
- -816;
- LIBCALL (base : GfxBasePtr) StripFont*
- ( font [8] : TextFontPtr );
- -822;
-
- (*--- functions in V39 or higher (Release 3) ---*)
-
- LIBCALL (base : GfxBasePtr) CalcIVG *
- ( v [8] : ViewPtr;
- vp [9] : ViewPortPtr )
- : E.UWORD;
- -828;
- LIBCALL (base : GfxBasePtr) AttachPalExtra *
- ( cm [8] : ColorMapPtr;
- vp [9] : ViewPortPtr )
- : LONGINT;
- -834;
- LIBCALL (base : GfxBasePtr) ObtainBestPenA *
- ( cm [8] : ColorMapPtr;
- r [1] : E.ULONG;
- g [2] : E.ULONG;
- b [3] : E.ULONG;
- tags [9] : ARRAY OF U.TagItem )
- : LONGINT;
- -840;
- LIBCALL (base : GfxBasePtr) ObtainBestPen *
- ( cm [8] : ColorMapPtr;
- r [1] : E.ULONG;
- g [2] : E.ULONG;
- b [3] : E.ULONG;
- tags [9]..: U.Tag )
- : LONGINT;
- -840;
- LIBCALL (base : GfxBasePtr) SetRGB32 *
- ( vp [8] : ViewPortPtr;
- n [0] : E.ULONG;
- r [1] : E.ULONG;
- g [2] : E.ULONG;
- b [3] : E.ULONG );
- -852;
- LIBCALL (base : GfxBasePtr) GetAPen *
- ( rp [8] : RastPortPtr )
- : E.ULONG;
- -858;
- LIBCALL (base : GfxBasePtr) GetBPen *
- ( rp [8] : RastPortPtr )
- : E.ULONG;
- -864;
- LIBCALL (base : GfxBasePtr) GetDrMd *
- ( rp [8] : RastPortPtr )
- : SET;
- -870;
- LIBCALL (base : GfxBasePtr) GetOutlinePen *
- ( rp [8] : RastPortPtr )
- : E.ULONG;
- -876;
- LIBCALL (base : GfxBasePtr) LoadRGB32 *
- ( vp [8] : ViewPortPtr;
- VAR table [9] : ARRAY OF E.ULONG );
- -882;
- LIBCALL (base : GfxBasePtr) SetChipRev *
- ( want [0] : SET )
- : SET;
- -888;
- LIBCALL (base : GfxBasePtr) SetABPenDrMd *
- ( rp [9] : RastPortPtr;
- apen [0] : E.ULONG;
- bpen [1] : E.ULONG;
- drawmode [2] : E.BSET );
- -894;
- LIBCALL (base : GfxBasePtr) GetRGB32 *
- ( cm [8] : ColorMapPtr;
- firstcolor [0] : E.ULONG;
- ncolors [1] : E.ULONG;
- VAR table [9] : ARRAY OF E.ULONG );
- -900;
- LIBCALL (base : GfxBasePtr) AllocBitMap *
- ( sizex [0] : E.ULONG;
- sizey [1] : E.ULONG;
- depth [2] : E.ULONG;
- flags [3] : SET;
- friendBitmap [8] : BitMapPtr )
- : BitMapPtr;
- -918;
- LIBCALL (base : GfxBasePtr) FreeBitMap *
- ( bm [8] : BitMapPtr );
- -924;
- LIBCALL (base : GfxBasePtr) GetExtSpriteA *
- ( ss [10] : ExtSpritePtr;
- tags [9] : ARRAY OF U.TagItem )
- : LONGINT;
- -930;
- LIBCALL (base : GfxBasePtr) GetExtSprite *
- ( ss [10] : ExtSpritePtr;
- tags [9]..: U.Tag )
- : LONGINT;
- -930;
- LIBCALL (base : GfxBasePtr) CoerceMode *
- ( vp [8] : ViewPortPtr;
- monitorid [0] : E.ULONG;
- flags [1] : E.ULONG )
- : E.ULONG;
- -936;
- LIBCALL (base : GfxBasePtr) ChangeVPBitMap *
- ( vp [8] : ViewPortPtr;
- bm [9] : BitMapPtr;
- db [10] : DBufInfoPtr );
- -942;
- LIBCALL (base : GfxBasePtr) ReleasePen *
- ( cm [8] : ColorMapPtr;
- n [0] : E.ULONG );
- -948;
- LIBCALL (base : GfxBasePtr) ObtainPen *
- ( cm [8] : ColorMapPtr;
- n [0] : E.ULONG;
- r [1] : E.ULONG;
- g [2] : E.ULONG;
- b [3] : E.ULONG;
- f [4] : LONGINT )
- : E.ULONG;
- -954;
- LIBCALL (base : GfxBasePtr) GetBitMapAttr *
- ( bm [8] : BitMapPtr;
- attrnum [1] : E.ULONG )
- : E.ULONG;
- -960;
- LIBCALL (base : GfxBasePtr) AllocDBufInfo *
- ( vp [8] : ViewPortPtr )
- : DBufInfoPtr;
- -966;
- LIBCALL (base : GfxBasePtr) FreeDBufInfo *
- ( dbi [9] : DBufInfoPtr );
- -972;
- LIBCALL (base : GfxBasePtr) SetOutlinePen *
- ( rp [8] : RastPortPtr;
- pen [0] : E.ULONG )
- : E.ULONG;
- -978;
- LIBCALL (base : GfxBasePtr) SetWriteMask *
- ( rp [8] : RastPortPtr;
- msk [0] : SET )
- : BOOLEAN;
- -984;
- LIBCALL (base : GfxBasePtr) SetMaxPen *
- ( rp [8] : RastPortPtr;
- maxpen [0] : E.ULONG );
- -990;
- LIBCALL (base : GfxBasePtr) SetRGB32CM *
- ( cm [8] : ColorMapPtr;
- n [0] : E.ULONG;
- r [1] : E.ULONG;
- g [2] : E.ULONG;
- b [3] : E.ULONG );
- -996;
- LIBCALL (base : GfxBasePtr) ScrollRasterBF *
- ( rp [9] : RastPortPtr;
- dx [0] : LONGINT;
- dy [1] : LONGINT;
- xMin [2] : LONGINT;
- yMin [3] : LONGINT;
- xMax [4] : LONGINT;
- yMax [5] : LONGINT );
- -1002;
- LIBCALL (base : GfxBasePtr) FindColor *
- ( cm [11] : ColorMapPtr;
- r [1] : E.ULONG;
- g [2] : E.ULONG;
- b [3] : E.ULONG;
- maxcolor [4] : LONGINT )
- : LONGINT;
- -1008;
- LIBCALL (base : GfxBasePtr) AllocSpriteDataA *
- ( bm [10] : BitMapPtr;
- tags [9] : ARRAY OF U.TagItem )
- : ExtSpritePtr;
- -1020;
- LIBCALL (base : GfxBasePtr) AllocSpriteData *
- ( bm [10] : BitMapPtr;
- tags [9]..: U.Tag )
- : ExtSpritePtr;
- -1020;
- LIBCALL (base : GfxBasePtr) ChangeExtSpriteA *
- ( vp [8] : ViewPortPtr;
- oldsprite [9] : ExtSpritePtr;
- newsprite [10] : ExtSpritePtr;
- tags [11] : ARRAY OF U.TagItem )
- : LONGINT;
- -1026;
- LIBCALL (base : GfxBasePtr) ChangeExtSprite *
- ( vp [8] : ViewPortPtr;
- oldsprite [9] : ExtSpritePtr;
- newsprite [10] : ExtSpritePtr;
- tags [11]..: U.Tag )
- : LONGINT;
- -1026;
- LIBCALL (base : GfxBasePtr) FreeSpriteData *
- ( sp [10] : ExtSpritePtr );
- -1032;
- LIBCALL (base : GfxBasePtr) SetRPAttrsA *
- ( rp [8] : RastPortPtr;
- tags [9] : ARRAY OF U.TagItem );
- -1038;
- LIBCALL (base : GfxBasePtr) SetRPAttrs *
- ( rp [8] : RastPortPtr;
- tags [9]..: U.Tag );
- -1038;
- LIBCALL (base : GfxBasePtr) GetRPAttrsA *
- ( rp [8] : RastPortPtr;
- tags [9] : ARRAY OF U.TagItem );
- -1044;
- LIBCALL (base : GfxBasePtr) GetRPAttrs *
- ( rp [8] : RastPortPtr;
- tags [9]..: U.Tag );
- -1044;
- LIBCALL (base : GfxBasePtr) BestModeIDA *
- ( tags [8] : ARRAY OF U.TagItem )
- : E.ULONG;
- -1050;
- LIBCALL (base : GfxBasePtr) BestModeID *
- ( tags [8]..: U.Tag )
- : E.ULONG;
- -1050;
-
- (*--- functions in V40 or higher (Release 3.1) ---*)
-
- LIBCALL (base : GfxBasePtr) WriteChunkyPixels *
- ( 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 );
- -1056;
-
- (**-- C Macros defined as procedures -----------------------------------*)
- (** $L+ Absolute long addressing for globals *)
-
- (*
- ** $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 RASSIZE* (w, h : INTEGER) : LONGINT;
-
- BEGIN (* RASSIZE *)
- RETURN ( h * (((LONG (w) + 15) DIV 16) * 2))
- END RASSIZE;
-
- (**-----------------------------------*)
- PROCEDURE OnDisplay* ();
-
- BEGIN (* OnDisplay *)
- H.custom.dmacon := {H.dmaSetClr, H.dmaRaster}
- END OnDisplay;
-
- (**-----------------------------------*)
- PROCEDURE OffDisplay* ();
-
- BEGIN (* OffDisplay *)
- H.custom.dmacon := {H.dmaRaster}
- END OffDisplay;
-
- (**-----------------------------------*)
- PROCEDURE OnSprite* ();
-
- BEGIN (* OnSprite *)
- H.custom.dmacon := {H.dmaSetClr, H.dmaSprite}
- END OnSprite;
-
- (**-----------------------------------*)
- PROCEDURE OffSprite* ();
-
- BEGIN (* OffSprite *)
- H.custom.dmacon := {H.dmaSprite}
- END OffSprite;
-
- (**-----------------------------------*)
- PROCEDURE OnVBlank* ();
-
- BEGIN (* OnVBlank *)
- H.custom.intena := {H.intSetClr, H.intVertB}
- END OnVBlank;
-
- (**-----------------------------------*)
- PROCEDURE OffVBlank* ();
-
- BEGIN (* OffVBlank *)
- H.custom.intena := {H.intVertB}
- END OffVBlank;
-
-
- (**-----------------------------------*)
- PROCEDURE SetDrPt* (w : RastPortPtr; p : E.UWORD);
-
- BEGIN (* SetDrPt *)
- w.linePtrn := p; INCL (w.flags, frstDot); w.linpatcnt := 15
- END SetDrPt;
-
- (**-----------------------------------*)
- PROCEDURE SetAfPt* (w : RastPortPtr; p : E.APTR; n : SHORTINT);
-
- BEGIN (* SetAfPt *)
- w.areaPtrn := p; w.areaPtSz := n
- END SetAfPt;
-
- (**-----------------------------------*)
- PROCEDURE SetOPen* (w : RastPortPtr; c : SHORTINT);
-
- BEGIN (* SetOPen *)
- w.aOlPen := c; INCL (w.flags, areaOutline)
- END SetOPen;
-
- (**-----------------------------------*)
- PROCEDURE SetWrMsk* (w : RastPortPtr; m : E.BSET);
-
- 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 SafeSetOutlinePen* (w : RastPortPtr; c : SHORTINT);
- VAR ignore : LONGINT;
- BEGIN (* SafeSetOutlinePen *)
- IF base.version < 39 THEN
- w.aOlPen := c; INCL (w.flags, areaOutline)
- ELSE
- ignore := base.SetOutlinePen (w, c)
- END
- END SafeSetOutlinePen;
-
- (**-----------------------------------*)
- PROCEDURE SafeSetWriteMask* (w : RastPortPtr; m : E.BSET);
- VAR ignore : BOOLEAN;
- BEGIN (* SafeSetWriteMask *)
- IF base.version < 39 THEN
- w.mask := m
- ELSE
- ignore := base.SetWriteMask (w, LONG (LONG (m)))
- END
- END SafeSetWriteMask;
-
- (**-----------------------------------*)
- PROCEDURE BndryOff* (VAR w : RastPort);
-
- BEGIN (* BndryOff *)
- EXCL (w.flags, areaOutline)
- END BndryOff;
-
- (**-----------------------------------*)
- PROCEDURE (VAR base : GfxBase) CINIT* (c : UCopListPtr; n : LONGINT);
-
- BEGIN (* CINIT *)
- SYS.PUTREG (0, base.UCopperListInit (c, n))
- END CINIT;
-
- (**-----------------------------------*)
- PROCEDURE (VAR base : GfxBase) CMOVE*
- (c : UCopListPtr; a : E.APTR; b : E.UWORD );
-
- BEGIN (* CMOVE *)
- base.CMove (c, a, b); base.CBump (c)
- END CMOVE;
-
- (**-----------------------------------*)
- PROCEDURE (VAR base : GfxBase) CWAIT*
- (c : UCopListPtr; a : INTEGER; b : INTEGER );
-
- BEGIN (* CWAIT *)
- base.CWait (c, a, b); base.CBump (c)
- END CWAIT;
-
- (**-----------------------------------*)
- PROCEDURE (VAR base : GfxBase) CEND* (c : UCopListPtr);
-
- BEGIN (* CEND *)
- base.CWAIT (c, 10000, 255)
- END CEND;
-
-
- (**-----------------------------------*)
- PROCEDURE (VAR base : GfxBase) DrawCircle*
- (rp : RastPortPtr; cx, cy, r : INTEGER);
-
- BEGIN (* DrawCircle *)
- base.DrawEllipse (rp, cx, cy, r, r)
- END DrawCircle;
-
-
- (**-----------------------------------*)
- PROCEDURE (VAR base : GfxBase) AreaCircle*
- (rp : RastPortPtr; cx, cy, r : INTEGER)
- : BOOLEAN;
-
- BEGIN (* AreaCircle *)
- RETURN base.AreaEllipse (rp, cx, cy, r, r)
- END AreaCircle;
-
- (** $L-*)
-
-
- (**-- Library Base Variable --------------------------------------------*)
-
-
- PROCEDURE* Close ();
-
- BEGIN (* Close *)
- IF base # NIL THEN E.base.CloseLibrary (base) END;
- END Close;
-
- BEGIN (* Graphics *)
- base :=
- SYS.VAL (
- GfxBasePtr,
- E.base.OpenLibrary (name, E.libraryMinimum));
- IF base = NIL THEN HALT (100) END;
- SYS.SETCLEANUP (Close)
- END Graphics.
-