DEFINITION MODULE Graphics {"graphics.library", 33};

FROM SYSTEM IMPORT
 ADDRESS,BITSET,BYTE,LONGSET,WORD;
FROM Hardware IMPORT
 BltnodePtr;
FROM Exec IMPORT
 Interrupt,Library,List,Message,MinList,Node,SignalSemaphore,
 SignalSemaphorePtr,TaskPtr,UByte;

TYPE
 AnimCompPtr=POINTER TO AnimComp;
 AnimObPtr=POINTER TO AnimOb;
 AreaInfoPtr=POINTER TO AreaInfo;
 BitMapPtr=POINTER TO BitMap;
 BobPtr=POINTER TO Bob;
 ClipRectPtr=POINTER TO ClipRect;
 CollTablePtr=POINTER TO CollTable;
 ColorMapPtr=POINTER TO ColorMap;
 CopinitPtr=POINTER TO Copinit;
 CopInsPtr=POINTER TO CopIns;
 CopListPtr=POINTER TO CopList;
 CprlistPtr=POINTER TO Cprlist;
 DBufPacketPtr=POINTER TO DBufPacket;
 GelsInfoPtr=POINTER TO GelsInfo;
 IsrvstrPtr=POINTER TO IsrvstrPtr;
 LayerPtr=POINTER TO Layer;
 LayerInfoPtr=POINTER TO LayerInfo;
 RasInfoPtr=POINTER TO RasInfo;
 RastPortPtr=POINTER TO RastPort;
 RectanglePtr=POINTER TO Rectangle;
 RegionPtr=POINTER TO Region;
 RegionRectanglePtr=POINTER TO RegionRectangle;
 SimpleSpritePtr=POINTER TO SimpleSprite;
 TextAttrPtr=POINTER TO TextAttr;
 TextFontPtr=POINTER TO TextFont;
 TmpRasPtr=POINTER TO TmpRas;
 UCopListPtr=POINTER TO UCopList;
 ViewPtr=POINTER TO View;
 ViewPortPtr=POINTER TO ViewPort;
 VSpritePtr=POINTER TO VSprite;

 Rectangle=RECORD
  minX:INTEGER;
  minY:INTEGER;
  maxX:INTEGER;
  maxY:INTEGER;
 END;
 Layer=RECORD
  front:LayerPtr;
  back:LayerPtr;
  clipRect:ClipRectPtr;
  rp:RastPortPtr;
  bounds:Rectangle;
  reserved:ARRAY [0..3] OF BYTE;
  priority:CARDINAL;
  flags:CARDINAL;
  superBitMap:BitMapPtr;
  superClipRect:ClipRectPtr;
  window:ADDRESS;
  scrollX:INTEGER;
  scrollY:INTEGER;
  cr:ClipRectPtr;
  cr2:ClipRectPtr;
  crnew:ClipRectPtr;
  superSaveClipRects:ClipRectPtr;
  cliprects:ClipRectPtr;
  layerInfo:LayerInfoPtr;
  lock:SignalSemaphore;
  reserved3:ARRAY [0..7] OF BYTE;
  clipRegion:RegionPtr;
  saveClipRects:RegionPtr;
  reserved2:ARRAY [0..21] OF BYTE;
  damageList:RegionPtr;
 END;
 ClipRect=RECORD
  next:ClipRectPtr;
  prev:ClipRectPtr;
  lobs:LayerPtr;
  bitMap:BitMapPtr;
  bounds:Rectangle;
  p1:ClipRectPtr;
  p2:ClipRectPtr;
  reserved:LONGINT;
  flags:LONGINT;
 END;

CONST
 needsNoConcealedRasters=01H; 
 isLessX=1;
 isLessY=2;
 isGrtrX=4;
 isGrtrY=8;
 borderHit=0;
 topHit=1;
 bottomHit=2;
 leftHit=4;
 rightHit=8;

CONST
 move=0;
 wait=1;
 next=2;
 sht=14;
 lof=15;

TYPE
 CopIns=RECORD
  CASE opCode:CARDINAL OF
  | move:
   destAddr:INTEGER;
   destData:INTEGER;
  | wait:
   vWaitPos:INTEGER;
   hWaitPos:INTEGER;
  | next:
   nxtlist:CopListPtr;
  END;
 END;
 Cprlist=RECORD
  next:CprlistPtr;
  start:ADDRESS;
  maxCount:INTEGER;
 END;
 CopList=RECORD
  next:CopListPtr;
  copList:CopListPtr;
  viewPort:ViewPortPtr;
  copIns:CopInsPtr;
  copPtr:CopInsPtr;
  copLStart:ADDRESS;
  copSStart:ADDRESS;
  count:INTEGER;
  maxCount:INTEGER;
  dyOffset:INTEGER;
 END;
 UCopList=RECORD
  next:UCopListPtr;
  firstCopList:CopListPtr;
  copList:CopListPtr;
 END;
 Copinit=RECORD
  diagstrt:ARRAY [0..3] OF CARDINAL;
  sprstrtup:ARRAY [0..(2*8*2)+2+(2*2)+2-1] OF CARDINAL;
  sprstop:ARRAY [0..1] OF CARDINAL;
 END;

CONST
 interlace=04H;
 pf2pri=40H;
 colorOn=200H;
 dblpf=400H;
 holdnmodify=800H;
 m640=08000H;
 plnCntMsk=07H;
 plnCntShft=12;

 fineScroll=0FH;
 fineScrollShift=04H;
 fineScrollMask=0FH;
 vrtclPos=01FFH;
 vrtclPosShift=07H;
 horizPos=07FH;
 dftchMask=0FFH;
 vposrlof=08000H;

 ringtrigger=01H;
 anfracsize=06H;
 animhalf=020H;

 b2Norm=0;
 b2Swap=1;
 b2Bobber=2;

TYPE
 VSpriteFlags=(vsprite,saveBack,overlay,mustDraw,vf4,vf5,vf6,vf7,backSaved,
  bobUpdate,gelGone,vsOverflow);
 VSpriteFlagSet=SET OF VSpriteFlags;
 VSprite=RECORD
  nextVSprite:VSpritePtr;
  prevVSprite:VSpritePtr;
  drawPath:VSpritePtr;
  clearPath:VSpritePtr;
  oldY:INTEGER;
  oldX:INTEGER;
  flags:VSpriteFlagSet;
  y:INTEGER;
  x:INTEGER;
  height:INTEGER;
  width:INTEGER;
  depth:INTEGER;
  meMask:BITSET;
  hitMask:BITSET;
  imageData:ADDRESS;
  borderLine:ADDRESS;
  collMask:ADDRESS;
  sprColors:ADDRESS;
  vsBob:BobPtr;
  planePick:UByte;
  planeOnOff:UByte;
 END;
 BobFlags=(
  saveBob,bobIsComp,bf2,bf3,bf4,bf5,bf6,bf7,
  bWaiting,bDrawn,bobsAway,bobNix,savePreserve,outStep
 );
 BobFlagSet=SET OF BobFlags;
 Bob=RECORD
  flags:BobFlagSet;
  saveBuffer:ADDRESS;
  imageShadow:ADDRESS;
  before:BobPtr;
  after:BobPtr;
  bobVSprite:VSpritePtr;
  bobComp:AnimCompPtr;
  dBuffer:DBufPacketPtr;
 END;
 AnimComp=RECORD
  flags:INTEGER;
  timer:INTEGER;
  timeSet:INTEGER;
  nextComp:AnimCompPtr;
  prevComp:AnimCompPtr;
  nextSeq:AnimCompPtr;
  prevSeq:AnimCompPtr;
  animCRoutine:ADDRESS;
  yTrans:INTEGER;
  xTrans:INTEGER;
  headOb:AnimObPtr;
  animBob:BobPtr;
 END;
 AnimOb=RECORD
  nextOb:AnimObPtr;
  prevOb:AnimObPtr;
  clock:LONGINT;
  anOldY:INTEGER;
  anOldX:INTEGER;
  anY:INTEGER;
  anX:INTEGER;
  yVel:INTEGER;
  xVel:INTEGER;
  yAccel:INTEGER;
  xAccel:INTEGER;
  ringYTrans:INTEGER;
  ringXTrans:INTEGER;
  animORoutine:ADDRESS;
  headComp:AnimCompPtr;
 END;
 DBufPacket=RECORD
  bufY:INTEGER;
  bufX:INTEGER;
  bufPath:VSpritePtr;
  bufBuffer:ADDRESS;
 END;
 CollTable=RECORD
  collPtrs:ARRAY [0..15] OF ADDRESS
 END;
 BitMap=RECORD
  bytesPerRow:CARDINAL;
  rows:CARDINAL;
  flags:UByte;
  depth:UByte;
  pad:CARDINAL;
  planes:ARRAY [0..7] OF ADDRESS;
 END;
 DisplayFlags=(ntsc,genloc,pal);
 DisplayFlagSet=SET OF DisplayFlags;
 GfxBase=RECORD
  libNode:Library;
  actiView:ViewPtr;
  copinit:CopinitPtr;
  cia:ADDRESS;
  blitter:ADDRESS;
  loFlist:ADDRESS;
  shFlist:ADDRESS;
  blthd:BltnodePtr;
  blttl:BltnodePtr;
  bsblthd:BltnodePtr;
  bsblttl:BltnodePtr;
  vbsrv:Interrupt;
  timsrv:Interrupt;
  bltsrv:Interrupt;
  textFonts:List;
  defaultFont:TextFontPtr;
  modes:BITSET;
  vBlank:UByte;
  debug:BYTE;
  beamSync:INTEGER;
  bplcon0:BITSET;
  spriteReserved:UByte;
  bytereserved:BYTE;
  flags:BITSET;
  blitLock:INTEGER;
  blitNest:INTEGER;
  blitWaitQ:List;
  blitOwner:TaskPtr;
  waitQ:List;
  displayFlags:DisplayFlagSet;
  simpleSprites:ADDRESS;
  maxDisplayRow:CARDINAL;
  maxDisplayColumn:CARDINAL;
  normalDisplayRows:CARDINAL;
  normalDisplayColumns:CARDINAL;
  normalDPMX:CARDINAL;
  normalDPMY:CARDINAL;
  lastChanceMemory:SignalSemaphorePtr;
  lcMptr:ADDRESS;
  microsPerLine:CARDINAL;
  reserved:ARRAY [0..1] OF LONGCARD;
 END;
 GfxBasePtr=POINTER TO GfxBase;

CONST
 blitMsgFault=4;

TYPE
 Isrvstr=RECORD
  node:Node;
  iptr:IsrvstrPtr;
  code:ADDRESS;
  ccode:ADDRESS;
  carg:INTEGER;
 END;
 LayerFlags=(
  layerSimple,layerSmart,layerSuper,lf3,layerUpdating,lf5,
  layerBackdrop,layerRefresh,layerClipRectsLost
 );
 LayerFlagSet=SET OF LayerFlags;
 LayerInfo=RECORD
  layer:LayerPtr;
  lp:LayerPtr;
  obs:LayerPtr;
  freeClipRects:MinList;
  lock:SignalSemaphore;
  head:List;
  longreserved:LONGINT;
  flags:LayerFlagSet;
  count:UByte;
  lockLayersCount:UByte;
  layerInfoExtraSize:CARDINAL;
  blitbuff:ADDRESS;
  layerInfoExtra:ADDRESS;
 END;

CONST
 lmnRegion=-1;
 newLayerInfoCalled=01H;
 alertLayersNoMem=083010000H;

TYPE
 AreaInfo=RECORD
  vctrTbl:ADDRESS;
  vctrPtr:ADDRESS;
  flagTbl:ADDRESS;
  flagPtr:ADDRESS;
  count:INTEGER;
  maxCount:INTEGER;
  firstX:INTEGER;
  firstY:INTEGER;
 END;
 TmpRas=RECORD
  rasPtr:ADDRESS;
  size:LONGINT;
 END;
 GelsInfo=RECORD
  sprRsrvd:BYTE;
  flags:BYTE;
  gelHead:VSpritePtr;
  gelTail:VSpritePtr;
  nextLine:ADDRESS;
  lastColor:ADDRESS;
  collHandler:CollTablePtr;
  leftmost:INTEGER;
  rightmost:INTEGER;
  topmost:INTEGER;
  bottommost:INTEGER;
  firstBlissObj:ADDRESS;
  lastBlissObj:ADDRESS;
 END;
 DrawModes=(dm0,complement,inversvid);
 DrawModeSet=SET OF DrawModes;
 FontStyles=(underlined,bold,italic,extended);
 FontStyleSet=SET OF FontStyles;
 FontFlags=(
  romFont,diskFont,revPath,tallDot,wideDot,proportional,
  designed,removed
 );
 FontFlagSet=SET OF FontFlags;
 RastPortFlags=(
 firstDot,oneDot,dBuffer,areaOutline,rpf4,noCrossFill,
  rpf6,rpf7,rpf8
 );
 RastPortFlagSet=SET OF RastPortFlags;
 RastPort=RECORD
  layer:LayerPtr;
  bitMap:BitMapPtr;
  areaPtrn:ADDRESS;
  tmpRas:TmpRasPtr;
  areaInfo:AreaInfoPtr;
  gelsInfo:GelsInfoPtr;
  mask:UByte;
  fgPen:UByte;
  bgPen:UByte;
  aOlPen:UByte;
  drawMode:DrawModeSet;
  areaPtSz:UByte;
  linPatCnt:UByte;
  dummy:BYTE;
  flags:RastPortFlagSet;
  linePtrn:CARDINAL;
  x:INTEGER;
  y:INTEGER;
  minterms:ARRAY [0..7] OF BYTE;
  penWidth:INTEGER;
  penHeight:INTEGER;
  font:TextFontPtr;
  algoStyle:FontStyleSet;
  txFlags:FontFlagSet;
  txHeight:CARDINAL;
  txWidth:CARDINAL;
  txBaseline:CARDINAL;
  txSpacing:INTEGER;
  user:ADDRESS;
  longreserved:ARRAY [0..1] OF LONGINT;
  wordreserved:ARRAY [0..6] OF WORD;
  reserved:ARRAY [0..7] OF BYTE;
 END;

CONST
 jam1=DrawModeSet{};
 jam2=DrawModeSet{dm0};
 spriteAttached=080H;
 normalFont=FontStyleSet{};

TYPE
 RegionRectangle=RECORD
  next:RegionRectanglePtr;
  prev:RegionRectanglePtr;
  bounds:Rectangle;
 END;
 Region=RECORD
  bounds:Rectangle;
  regionRectangle:RegionRectanglePtr;
 END;
 SimpleSprite=RECORD
  posctldata:ADDRESS;
  height:CARDINAL;
  x:CARDINAL;
  y:CARDINAL;
  num:CARDINAL;
 END;
 TextAttr=RECORD
  name:ADDRESS;
  ySize:CARDINAL;
  style:FontStyleSet;
  flags:FontFlagSet;
 END;
 TextFont=RECORD
  message:Message;
  ySize:CARDINAL;
  style:FontStyleSet;
  flags:FontFlagSet;
  xSize:CARDINAL;
  baseline:CARDINAL;
  boldSmear:CARDINAL;
  accessors:CARDINAL;
  loChar:CHAR;
  hiChar:CHAR;
  charData:ADDRESS;
  modulo:CARDINAL;
  charLoc:ADDRESS;
  charSpace:ADDRESS;
  charKern:ADDRESS;
 END;
 ColorMap=RECORD
  flags:UByte;
  type:UByte ;
  count:CARDINAL;
  colorTable:ADDRESS;
 END;
 ViewModes=(
  vm0,genlocVideo,lace,vm3,vm4,vm5,pfba,extraHalfbrite,
  genlocAudio,vm9,dualpf,ham,vm12,vpHide,sprites,hires
 );
 ViewModeSet=SET OF ViewModes;
 ViewPort=RECORD
  next:ViewPortPtr;
  colorMap:ColorMapPtr;
  dspIns:CopListPtr;
  sprIns:CopListPtr;
  clrIns:CopListPtr;
  uCopIns:UCopListPtr;
  dWidth:INTEGER;
  dHeight:INTEGER;
  dxOffset:INTEGER;
  dyOffset:INTEGER;
  modes:ViewModeSet;
  reserved:CARDINAL;
  rasInfo:RasInfoPtr;
 END;
 View=RECORD
  viewPort:ViewPortPtr;
  lofCprList:CprlistPtr;
  shfCprList:CprlistPtr;
  dyOffset:INTEGER;
  dxOffset:INTEGER;
  modes:ViewModeSet;
 END;
 RasInfo=RECORD
  next:RasInfoPtr;
  bitMap:BitMapPtr;
  rxOffset:INTEGER;
  ryOffset:INTEGER;
 END;

(*
 * Die Prozeduren InitArea, InitBitMap, InitRastPort,
 * InitTmpRas, InitView und InitVPort haben einen
 * VAR Parameter.
 *)

PROCEDURE AddAnimOb(anOb{8}:AnimObPtr;
                    anKey{9}:ADDRESS;
                    rp{10}:RastPortPtr); CODE -156;
PROCEDURE AddBob(Bob{8}:BobPtr;
                 rp{9}:RastPortPtr); CODE -96;
PROCEDURE AddFont(textFont{9}:TextFontPtr); CODE -480;
PROCEDURE AddVSprite(vs{8}:VSpritePtr;
                     rp{9}:RastPortPtr); CODE -102;
PROCEDURE AllocRaster(width{0}:CARDINAL;
                      height{1}:CARDINAL):ADDRESS; CODE -492;
PROCEDURE AndRectRegion(region{8}:RegionPtr;
                        rectangle{9}:RectanglePtr); CODE -504;
PROCEDURE AndRegionRegion(
           region1{8}:RegionPtr;
           region2{9}:RegionPtr):BOOLEAN; CODE -624;
PROCEDURE Animate(
           anKey{8}:ADDRESS; rp{9}:RastPortPtr); CODE -162;
PROCEDURE AreaDraw(rp{9}:RastPortPtr;
                   x{0}:INTEGER;
                   y{1}:INTEGER):LONGINT; CODE -258;
PROCEDURE AreaEllipse(rp{9}:RastPortPtr;
                      cX{0}:INTEGER;
                      cY{1}:INTEGER;
                      a{2}:INTEGER;
                      b{3}:INTEGER):LONGINT; CODE -186;
PROCEDURE AreaEnd(rp{9}:RastPortPtr):LONGINT; CODE -264;
PROCEDURE AreaMove(rp{9}:RastPortPtr;
                   x{0}:INTEGER;
                   y{1}:INTEGER):LONGINT; CODE -252;
PROCEDURE AskFont(rp{9}:RastPortPtr;
                  textAttr{8}:TextAttrPtr); CODE -474;
PROCEDURE AskSoftStyle(
           rp{9}:RastPortPtr):FontStyleSet; CODE -84;
PROCEDURE AttemptLockLayerRom(
           layer{13}:LayerPtr):BOOLEAN; CODE -654;
PROCEDURE BltBitMap(srcBitMap{8}:BitMapPtr;
                    srcX{0}:INTEGER;
                    srcY{1}:INTEGER;
                    dstBitMap{9}:BitMapPtr;
                    dstX{2}:INTEGER;
                    dstY{3}:INTEGER;
                    sizeX{4}:INTEGER;
                    sizeY{5}:INTEGER;
                    minterm{6}:BYTE;
                    mask{7}:BYTE;
                    tempA{10}:ADDRESS):LONGCARD; CODE -30;
PROCEDURE BltBitMapRastPort(srcbm{8}:BitMapPtr;
                            srcX{0}:INTEGER;
                            srcY{1}:INTEGER;
                            destRp{9}:RastPortPtr;
                            destX{2}:INTEGER;
                            destY{3}:INTEGER;
                            sizeX{4}:INTEGER;
                            sizeY{5}:INTEGER;
                            minterm{6}:BYTE); CODE -606;
PROCEDURE BltClear(memBlock{9}:ADDRESS;
                   bytecount{0}:LONGCARD;
                   flags{1}:LONGCARD); CODE -300;
PROCEDURE BltMaskBitMapRastPort(
           srcbm{8}:BitMapPtr;
           srcX{0}:INTEGER;
           srcY{1}:INTEGER;
           destRp{9}:RastPortPtr;
           destX{2}:INTEGER;
           destY{3}:INTEGER;
           sizeX{4}:INTEGER;
           sizeY{5}:INTEGER;
           minterm{6}:BYTE;
           bltmask{10}:ADDRESS); CODE -636;
PROCEDURE BltPattern(rp{9}:RastPortPtr;
                     mask{8}:ADDRESS;
                     xl{0}:INTEGER;
                     yl{1}:INTEGER;
                     maxX{2}:INTEGER;
                     maxY{3}:INTEGER;
                     bytecnt{4}:INTEGER); CODE -312;
PROCEDURE BltTemplate(srcTemplate{8}:ADDRESS;
                      srcX{0}:INTEGER;
                      srcMod{1}:INTEGER;
                      rp{9}:RastPortPtr;
                      dstX{2}:INTEGER;
                      dstY{3}:INTEGER;
                      sizeX{4}:INTEGER;
                      sizeY{5}:INTEGER); CODE -36;
PROCEDURE CBump(c{9}:UCopListPtr); CODE -366;
PROCEDURE ChangeSprite(vp{8}:ViewPortPtr;
                       s{9}:SimpleSpritePtr;
                       newdata{10}:ADDRESS); CODE -420;
PROCEDURE ClearEOL(rp{9}:RastPortPtr); CODE -42;
PROCEDURE ClearRectRegion(
           region{8}:RegionPtr;
           rectangle{9}:RectanglePtr):LONGINT; CODE -522;
PROCEDURE ClearRegion(region{8}:RegionPtr); CODE -528;
PROCEDURE ClearScreen(rp{9}:RastPortPtr); CODE -48;
PROCEDURE ClipBlit(src{8}:RastPortPtr;
                   srcX{0}:INTEGER;
                   srcY{1}:INTEGER;
                   dest{9}:RastPortPtr;
                   destX{2}:INTEGER;
                   destY{3}:INTEGER;
                   xSize{4}:INTEGER;
                   ySize{5}:INTEGER;
                   minterm{6}:BYTE); CODE -552;
PROCEDURE CloseFont(font{9}:TextFontPtr); CODE -78;
PROCEDURE CMove(c{9}:UCopListPtr;
                a{0}:ADDRESS;
                v{1}:INTEGER); CODE -372;
PROCEDURE CopySBitMap(layer{8}:LayerPtr); CODE -450;
PROCEDURE CWait(c{9}:UCopListPtr;
                v{0}:INTEGER;
                h{1}:INTEGER); CODE -378;
PROCEDURE DisownBlitter(); CODE -462;
PROCEDURE DisposeRegion(region{8}:RegionPtr); CODE -534;
PROCEDURE DoCollision(rp{9}:RastPortPtr); CODE -108;
PROCEDURE Draw(rp{9}:RastPortPtr;
               x{0}:INTEGER;
               y{1}:INTEGER); CODE -246;
PROCEDURE DrawEllipse(rp{9}:RastPortPtr;
                      cX{0}:INTEGER;
                      cY{1}:INTEGER;
                      a{2}:INTEGER;
                      b{3}:INTEGER); CODE -180;
PROCEDURE DrawGList(rp{9}:RastPortPtr;
                    vp{8}:ViewPortPtr); CODE -114;
PROCEDURE Flood(rp{9}:RastPortPtr;
                mode{2}:LONGCARD;
                x{0}:INTEGER;
                y{1}:INTEGER):LONGINT; CODE -330;
PROCEDURE FreeColorMap(colorMap{8}:ColorMapPtr); CODE -576;
PROCEDURE FreeCopList(coplist{8}:CopListPtr); CODE -546;
PROCEDURE FreeCprList(cprlist{8}:CprlistPtr); CODE -564;
PROCEDURE FreeGBuffers(anOb{8}:AnimObPtr;
                       rp{9}:RastPortPtr;
                       db{0}:BOOLEAN); CODE -600;
PROCEDURE FreeRaster(p{8}:ADDRESS;
                     width{0}:CARDINAL;
                     height{1}:CARDINAL); CODE -498;
PROCEDURE FreeSprite(pick{0}:INTEGER); CODE -414;
PROCEDURE FreeVPortCopLists(vp{8}:ViewPortPtr); CODE -540;
PROCEDURE GetColorMap(
           entries{0}:LONGINT):ColorMapPtr; CODE -570;
PROCEDURE GetGBuffers(anOb{8}:AnimObPtr;
                      rp{9}:RastPortPtr;
                      db{0}:BOOLEAN):BOOLEAN; CODE -168;
PROCEDURE GetRGB4(colorMap{8}:ColorMapPtr;
                  entry{0}:LONGINT):LONGCARD; CODE -582;
PROCEDURE GetSprite(sprite{8}:SimpleSpritePtr;
                    pick{0}:INTEGER):INTEGER; CODE -408;
(*PRIVATE*) PROCEDURE GraphicsReserved1():LONGINT; CODE -642;
(*PRIVATE*) PROCEDURE GraphicsReserved2():LONGINT; CODE -648;
PROCEDURE InitArea(VAR areainfo{8}:AreaInfo;
                   buffer{9}:ADDRESS;
                   maxvectors{0}:INTEGER); CODE -282;
PROCEDURE InitBitMap(VAR bm{8}:BitMap;
                     depth{0}:INTEGER;
		     width{1}:INTEGER;
                     height{2}:INTEGER); CODE -390;
PROCEDURE InitGels(head{8}:VSpritePtr;
                   tail{9}:VSpritePtr;
                   gInfo{10}:GelsInfoPtr); CODE -120;
PROCEDURE InitGMasks(anOb{8}:AnimObPtr); CODE -174;
PROCEDURE InitMasks(vs{8}:VSpritePtr); CODE -126;
PROCEDURE InitRastPort(VAR rp{9}:RastPort); CODE -198;
PROCEDURE InitTmpRas(VAR tmpras{8}:TmpRas;
                     buffer{9}:ADDRESS;
                     size{0}:LONGINT); CODE -468;
PROCEDURE InitView(VAR view{9}:View); CODE -360;
PROCEDURE InitVPort(VAR vp{8}:ViewPort); CODE -204;
PROCEDURE LoadRGB4(vp{8}:ViewPortPtr;
                   colors{9}:ADDRESS;
                   count{0}:INTEGER); CODE -192;
PROCEDURE LoadView(view{9}:ViewPtr); CODE -222;
PROCEDURE LockLayerRom(layer{13}:LayerPtr); CODE -432;
PROCEDURE MakeVPort(view{8}:ViewPtr;
                    viewport{9}:ViewPortPtr); CODE -216;
PROCEDURE Move(rp{9}:RastPortPtr;
               x{0}:INTEGER;
               y{1}:INTEGER); CODE -240;
PROCEDURE MoveSprite(vp{8}:ViewPortPtr;
                     sprite{9}:SimpleSpritePtr;
                     x{0}:INTEGER;
                     y{1}:INTEGER); CODE -426;
PROCEDURE MrgCop(view{9}:ViewPtr); CODE -210;
PROCEDURE NewRegion():RegionPtr; CODE -516;
PROCEDURE OpenFont(
           textAttr{8}:TextAttrPtr):TextFontPtr; CODE -72;
PROCEDURE OrRectRegion(
           region{8}:RegionPtr;
           rectangle{9}:RectanglePtr):LONGINT; CODE -510;
PROCEDURE OrRegionRegion(
           region1{8}:RegionPtr;
           region2{9}:RegionPtr):LONGINT; CODE -612;
PROCEDURE OwnBlitter(); CODE -456;
PROCEDURE PolyDraw(rp{9}:RastPortPtr;
                   count{0}:INTEGER;
                   array{8}:ADDRESS); CODE -336;
PROCEDURE QBlit(bp{9}:BltnodePtr); CODE -276;
PROCEDURE QBSBlit(bsp{9}:BltnodePtr); CODE -294;
PROCEDURE ReadPixel(rp{9}:RastPortPtr;
                    x{0}:INTEGER;
                    y{1}:INTEGER):LONGINT; CODE -318;
PROCEDURE RectFill(rp{9}:RastPortPtr;
                   xMin{0}:INTEGER;
                   yMin{1}:INTEGER;
                   xMax{2}:INTEGER;
                   yMax{3}:INTEGER); CODE -306;
PROCEDURE RemFont(textFont{9}:TextFontPtr); CODE -486;
PROCEDURE RemIBob(bob{8}:BobPtr;
                  rp{9}:RastPortPtr;
                  vp{10}:ViewPortPtr); CODE -132;
PROCEDURE RemVSprite(vs{8}:VSpritePtr); CODE -138;
PROCEDURE ScrollRaster(rp{9}:RastPortPtr;
                       dx{0}:INTEGER;
                       dy{1}:INTEGER;
                       xMin{2}:INTEGER;
                       yMin{3}:INTEGER;
                       xMax{4}:INTEGER;
                       yMax{5}:INTEGER); CODE -396;
PROCEDURE ScrollVPort(vp{8}:ViewPortPtr); CODE -588;
PROCEDURE SetAPen(rp{9}:RastPortPtr;
                  pen{0}:CARDINAL); CODE -342;
PROCEDURE SetBPen(rp{9}:RastPortPtr;
                  pen{0}:CARDINAL); CODE -348;
PROCEDURE SetCollision(num{0}:LONGCARD;
                       routine{8}:PROC;
                       gInfo{9}:GelsInfoPtr); CODE -144;
PROCEDURE SetDrMd(rp{9}:RastPortPtr;
                  mode{0}:DrawModeSet); CODE -354;
PROCEDURE SetFont(rp{9}:RastPortPtr;
                  font{8}:TextFontPtr); CODE -66;
PROCEDURE SetRast(rp{9}:RastPortPtr;
                  pen{0}:CARDINAL); CODE -234;
PROCEDURE SetRGB4(vp{8}:ViewPortPtr;
                  n{0}:CARDINAL;
                  r{1}:CARDINAL;
                  g{2}:CARDINAL;
                  b{3}:CARDINAL); CODE -288;
PROCEDURE SetRGB4CM(cm{8}:ColorMapPtr;
                    n{0}:CARDINAL;
                    r{1}:CARDINAL;
                    g{2}:CARDINAL;
                    b{3}:CARDINAL); CODE -630;
PROCEDURE SetSoftStyle(
           rp{9}:RastPortPtr;
           style{0}:FontStyleSet;
           enable{1}:FontStyleSet):FontStyleSet; CODE -90;
PROCEDURE SortGList(rp{9}:RastPortPtr); CODE -150;
PROCEDURE SyncSBitMap(layer{8}:LayerPtr); CODE -444;
PROCEDURE Text(rp{9}:RastPortPtr;
               string{8}:ADDRESS;
               count{0}:INTEGER); CODE -60;
PROCEDURE TextLength(rp{9}:RastPortPtr;
                     string{8}:ADDRESS;
                     count{0}:INTEGER):INTEGER; CODE -54;
PROCEDURE UCopperListInit(copperList{8}:UCopListPtr;
                          num{0}:LONGINT); CODE -594;

PROCEDURE UnlockLayerRom(layer{13}:LayerPtr); CODE -438;
PROCEDURE VBeamPos():LONGINT; CODE -384;
PROCEDURE WaitBlit(); CODE -228;
PROCEDURE WaitBOVP(vp{8}:ViewPortPtr); CODE -402;
PROCEDURE WaitTOF(); CODE -270;
PROCEDURE WritePixel(rp{9}:RastPortPtr;
                     x{0}:INTEGER;
                     y{1}:INTEGER):LONGINT; CODE -324;
PROCEDURE XorRectRegion(
           region{8}:RegionPtr;
           rectangle{9}:RectanglePtr):LONGINT; CODE -558;
PROCEDURE XorRegionRegion(
           region1{8}:RegionPtr;
           region2{9}:RegionPtr):LONGINT; CODE -618;

END Graphics.
