
; Graphics-Interface

   INCLUDE  "lvo/graphics.i"

   XREF  _GfxBase





CREATE MACRO Name,Registermaske,Registeranzahl,Satz1,Anzahl1,Satz2,Anzahl2...

   IFD   \1
   XDEF  _\1

_\1
  IFEQ   \3-1        ; ein Register ?
   move.l   \2,-(SP)
  ELSE
   movem.l  \2,-(SP)
  ENDC

TIEFE SET   4+4*\3
  IFNC   '\4',''
   SATZ  \4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i,\j
  ENDC

   move.l   _GfxBase,a6
   jsr      _LVO\1(a6)
  IFEQ   \3-1        ; ein Register ?
   move.l   (SP)+,\2
  ELSE
   movem.l  (SP)+,\2
  ENDC
   rts

   ENDC

   ENDM





SATZ  MACRO Satz1,Anzahl1,Satz2,Anzahl2...
  IFEQ   \2-1        ; ein Register ?
   move.l   TIEFE(SP),\1
  ELSE
   movem.l  TIEFE(SP),\1
  ENDC
TIEFE SET   TIEFE+4*\2
  IFNC   '\3',''
   SATZ  \3,\4,\5,\6,\7,\8,\9,\a,\b,\c,\d,\e,\f,\g,\h,\i
  ENDC
   ENDM





; BltBitMap(srcBitMap,srcX,srcY,destBitMap,destX,destY,sizeX,sizeY,minterm,mask,tempA)(A0,D0/D1,A1,D2/D3/D4/D5/D6/D7/A2)
   CREATE   BltBitMap,d2-d7/a2/a6,8,a0,1,d0-d1/a1,3,d2-d7/a2,7

; BltTemplate(source,srcX,srcMod,destRastPort,destX,destY,sizeX,sizeY)(A0,D0/D1/A1,D2/D3/D4/D5)
   CREATE   BltTemplate,d2-d5/a6,5,a0,1,d0-d1/a1,3,d2-d5,4

; ClearEOL(rastPort)(A1)
   CREATE   ClearEOL,a6,1,a1,1

; ClearScreen(rastPort)(A1)
   CREATE   ClearScreen,a6,1,a1,1

; TextLength(RastPort,string,count)(A1,A0,D0)
   CREATE   TextLength,a6,1,a1,1,a0,1,d0,1

; Text(RastPort,string,count)(A1,A0,D0)
   CREATE   Text,a6,1,a1,1,a0,1,d0,1

; SetFont(RastPortID,textFont)(A1,A0)
   CREATE   SetFont,a6,1,a1,1,a0,1

; OpenFont(textAttr)(A0)
   CREATE   OpenFont,a6,1,a0,1

; CloseFont(textFont)(A1)
   CREATE   CloseFont,a6,1,a1,1

; AskSoftStyle(rastPort)(A1)
   CREATE   AskSoftStyle,a6,1,a1,1

; SetSoftStyle(rastPort,style,enable)(A1,D0/D1)
   CREATE   SetSoftStyle,a6,1,a1,1,d0-d1,2

; AddBob(bob,rastPort)(A0,A1)
   CREATE   AddBob,a6,1,a0-a1,2

; AddVSprite(vSprite,rastPort)(A0/A1)
   CREATE   AddVSprite,a6,1,a0-a1,2

; DoCollision(rasPort)(A1)
   CREATE   DoCollision,a6,1,a1,1

; DrawGList(rastPort,viewPort)(A1,A0)
   CREATE   DrawGList,a6,1,a1,1,a0,1

; InitGels(dummyHead,dummyTail,GelsInfo)(A0/A1/A2)
   CREATE   InitGels,a2/a6,2,a0-a2,3

; InitMasks(vSprite)(A0)
   CREATE   InitMasks,a6,1,a0,1

; RemIBob(bob,rastPort,viewPort)(A0/A1/A2)
   CREATE   RemIBob,a2/a6,2,a0-a2,3

; RemVSprite(vSprite)(A0)
   CREATE   RemVSprite,a6,1,a0,1

; SetCollision(type,routine,gelsInfo)(D0/A0/A1)
   CREATE   SetCollision,a6,1,d0/a0-a1,3

; SortGList(rastPort)(A1)
   CREATE   SortGList,a6,1,a1,1

; AddAnimOb(obj,animationKey,rastPort)(A0/A1/A2)
   CREATE   AddAnimOb,a2/a6,2,a0-a2,3

; Animate(animationKey,rastPort)(A0/A1)
   CREATE   Animate,a6,1,a0-a1,2

; GetGBuffers(animationObj,rastPort,doubleBuffer)(A0/A1,D0)
   CREATE   GetGBuffers,a6,1,a0-a1,2,d0,1

; InitGMasks(animationObj)(A0)
   CREATE   InitGMasks,a6,1,a0,1

; DrawEllipse(rastPort,cx,cy,a,b)(A1,D0/D1/D2/D3)
   CREATE   DrawEllipse,d2-d3/a6,3,a1,1,d0-d3,4

; AreaEllipse(rastPort,cx,cy,a,b)(A1,D0/D1/D2/D3)
   CREATE   AreaEllipse,d2-d3/a6,3,a1,1,d0-d3,4

; LoadRGB4(viewPort,colors,count)(A0/A1,D0)
   CREATE   LoadRGB4,a6,1,a0-a1,2,d0,1

; InitRastPort(rastPort)(A1)
   CREATE   InitRastPort,a6,1,a1,1

; InitVPort(viewPort)(A0)
   CREATE   InitVPort,a6,1,a0,1

; MrgCop(view)(A1)
   CREATE   MrgCop,a6,1,a1,1

; MakeVPort(view,viewPort)(A0/A1)
   CREATE   MakeVPort,a6,1,a0-a1,2

; LoadView(view)(A1)
   CREATE   LoadView,a6,1,a1,1

; WaitBlit()
   CREATE   WaitBlit,a6,1

; SetRast(rastPort,color)(A1,D0)
   CREATE   SetRast,a6,1,a1,1,d0,1

; Move(rastPort,x,y)(A1,D0/D1)
   CREATE   Move,a6,1,a1,1,d0-d1,2

; Draw(rastPort,x,y)(A1,D0/D1)
   CREATE   Draw,a6,1,a1,1,d0-d1,2

; AreaMove(rastPort,x,y)(A1,D0/D1)
   CREATE   AreaMove,a6,1,a1,1,d0-d1,2

; AreaDraw(rastPort,x,y)(A1,D0/D1)
   CREATE   AreaDraw,a6,1,a1,1,d0-d1,2

; AreaEnd(rastPort)(A1)
   CREATE   AreaEnd,a6,1,a1,1

; WaitTOF()()
   CREATE   WaitTOF,a6,1

; QBlit(blit)(A1)
   CREATE   QBlit,a6,1,a1,1

; InitArea(areaInfo,vectorTable,vectorTableSize)(A0/A1,D0)
   CREATE   InitArea,a6,1,a0-a1,2,d0,1

; SetRGB4(viewPort,index,r,g,b)(A0,D0/D1/D2/D3)
   CREATE   SetRGB4,d2-d3/a6,3,a0,1,d0-d3,4

; QBSBlit(blit)(A1)
   CREATE   QBSBlit,a6,1,a1,1

; BltClear(memory,size,flags)(A1,D0/D1)
   CREATE   BltClear,a6,1,a1,1,d0-d1,2

; RectFill(rastPort,xl,yl,xu,yu)(A1,D0/D1/D2/D3)
   CREATE   RectFill,d2-d3/a6,3,a1,1,d0-d3,4

; BltPattern(rastPort,ras,xl,yl,maxX,maxY,fillBytes)(A1,A0,D0/D1/D2/D3/D4)
   CREATE   BltPattern,d2-d4/a6,4,a1,1,a0,1,d0-d4,5

; ReadPixel(rastPort,x,y)(A1,D0/D1)
   CREATE   ReadPixel,a6,1,a1,1,d0-d1,2

; WritePixel(rastPort,x,y)(A1,D0/D1)
   CREATE   WritePixel,a6,1,a1,1,d0-d1,2

; Flood(rastPort,mode,x,y)(A1,D2,D0/D1)
   CREATE   Flood,d2/a6,2,a1,1,d2,1,d0-d1,2

; PolyDraw(rastPort,count,polyTable)(A1,D0,A0)
   CREATE   PolyDraw,a6,1,a1,1,d0/a0,2

; SetAPen(rastPort,pen)(A1,D0)
   CREATE   SetAPen,a6,1,a1,1,d0,1

; SetBPen(rastPort,pen)(A1,D0)
   CREATE   SetBPen,a6,1,a1,1,d0,1

; SetDrMd(rastPort,drawMode)(A1,D0)
   CREATE   SetDrMd,a6,1,a1,1,d0,1

; InitView(view)(A1)
   CREATE   InitView,a6,1,a1,1

; CBump(copperList)(A1)
   CREATE   CBump,a6,1,a1,1

; CMove(copperList,destination,data)(A1,D0/D1)
   CREATE   CMove,a6,1,a1,1,d0-d1,2

; CWait(copperList,x,y)(A1,D0/D1)
   CREATE   CWait,a6,1,a1,1,d0-d1,2

; VBeamPos()
   CREATE   VBeamPos,a6,1

; InitBitMap(bitMap,depth,width,height)(A0,D0/D1/D2)
   CREATE   InitBitMap,d2/a6,2,a0,1,d0-d2,3

; ScrollRaster(rastPort,dX,dY,minx,miny,maxx,maxy)(A1,D0/D1/D2/D3/D4/D5)
   CREATE   ScrollRaster,d2-d5/a6,5,a1,1,d0-d5,6

; WaitBOVP(viewport)(a0)
   CREATE   WaitBOVP,a6,1,a0,1

; GetSprite(simplesprite,num)(a0,d0)
   CREATE   GetSprite,a6,1,a0,1,d0,1

; FreeSprite(num)(d0)
   CREATE   FreeSprite,a6,1,d0,1

; ChangeSprite(vp,simplesprite,data)(a0/a1/a2)
   CREATE   ChangeSprite,a2/a6,2,a0-a2,3

; MoveSprite(viewport,simplesprite,x,y)(a0/a1,d0/d1)
   CREATE   MoveSprite,a6,1,a0-a1,2,d0-d1,2

; LockLayerRom(layer)(a5)
   CREATE   LockLayerRom,a5/a6,2,a5,1

; UnlockLayerRom(layer)(a5)
   CREATE   UnlockLayerRom,a5/a6,2,a5,1

; SyncSBitMap(l)(a0)
   CREATE   SyncSBitMap,a6,1,a0,1

; CopySBitMap(l)(a0)
   CREATE   CopySBitMap,a6,1,a0,1

; OwnBlitter()()
   CREATE   OwnBlitter,a6,1

; DisownBlitter()()
   CREATE   DisownBlitter,a6,1

; InitTmpRas(tmpras,buff,size)(a0/a1,d0)
   CREATE   InitTmpRas,a6,1,a0-a1,2,d0,1

; AskFont(rastPort,textAttr)(A1,A0)
   CREATE   AskFont,a6,1,a1,1,a0,1

; AddFont(textFont)(A1)
   CREATE   AddFont,a6,1,a1,1

; RemFont(textFont)(A1)
   CREATE   RemFont,a6,1,a1,1

; AllocRaster(width,height)(D0/D1)
   CREATE   AllocRaster,a6,1,d0-d1,2

; FreeRaster(planeptr,width,height)(A0,D0/D1)
   CREATE   FreeRaster,a6,1,a0,1,d0-d1,2

; AndRectRegion(rgn,rect)(A0/A1)
   CREATE   AndRectRegion,a6,1,a0-a1,2

; OrRectRegion(rgn,rect)(A0/A1)
   CREATE   OrRectRegion,a6,1,a0-a1,2

; NewRegion()()
   CREATE   NewRegion,a6,1

; ClearRectRegion(rgn)(A0/A1)
   CREATE   ClearRectRegion,a6,1,a0-a1,2

; ClearRegion(rgn)(A0)
   CREATE   ClearRegion,a6,1,a0,1

; DisposeRegion(rgn)(A0)
   CREATE   DisposeRegion,a6,1,a0,1

; FreeVPortCopLists(viewport)(a0)
   CREATE   FreeVPortCopLists,a6,1,a0,1

; FreeCopList(coplist)(a0)
   CREATE   FreeCopList,a6,1,a0,1

; ClipBlit(srcrp,srcX,srcY,destrp,destX,destY,sizeX,sizeY,minterm)(A0,D0/D1,A1,D2/D3/D4/D5/D6)
   CREATE   ClipBlit,d2-d6/a6,6,a0,1,d0-d1,2,a1,1,d2-d6,5

; XorRectRegion(rgn,rect)(a0/a1)
   CREATE   XorRectRegion,a6,1,a0-a1,2

; FreeCprList(cprlist)(a0)
   CREATE   FreeCprList,a6,1,a0,1

; GetColorMap(entries)(d0)
   CREATE   GetColorMap,a6,1,d0,1

; FreeColorMap(colormap)(a0)
   CREATE   FreeColorMap,a6,1,a0,1

; GetRGB4(colormap,entry)(a0,d0)
   CREATE   GetRGB4,a6,1,a0,1,d0,1

; ScrollVPort(vp)(a0)
   CREATE   ScrollVPort,a6,1,a0,1

; UCopperListInit(copperlist,num)(a0,d0)
   CREATE   UCopperListInit,a6,1,a0,1,d0,1

; FreeGBuffers(animationObj,rastPort,doubleBuffer)(A0/A1,D0)
   CREATE   FreeGBuffers,a6,1,a0-a1,2,d0,1

; BltBitMapRastPort(srcbm,srcx,srcy,destrp,destX,destY,sizeX,sizeY,minterm)(A0,D0/D1,A1,D2/D3/D4/D5/D6)
   CREATE   BltBitMapRastPort,d2-d6/a6,6,a0,1,d0-d1,2,a1,1,d2-d6,5

; OrRegionRegion(src,dst)(a0/a1)
   CREATE   OrRegionRegion,a6,1,a0-a1,2

; XorRegionRegion(src,dst)(a0/a1)
   CREATE   XorRegionRegion,a6,1,a0-a1,2

; AndRegionRegion(src,dst)(a0/a1)
   CREATE   AndRegionRegion,a6,1,a0-a1,2

; SetRGB4CM(cm,i,r,g,b)(a0,d0/d1/d2/d3)
   CREATE   SetRGB4CM,d2-d3/a6,3,a0,1,d0-d3,4

; BltMaskBitMapRastPort(srcbm,srcx,srcy,destrp,destX,destY,sizeX,sizeY,minterm,bltmask)(A0,D0/D1,A1,D2/D3/D4/D5/D6,A2)
   CREATE   BltMaskBitMapRastPort,d2-d6/a2/a6,7,a0,1,d0-d1,2,a1,1,d2-d6/a2,6

;; GraphicsReserved1()()
;   CREATE   GraphicsReserved1,a6,1

;; GraphicsReserved2()()
;   CREATE   GraphicsReserved2,a6,1

; AttemptLockLayerRom(layer)(a5)
   CREATE   AttemptLockLayerRom,a5/a6,2,a5,1





; Offsets

   IFD   OFFSETS

   XDEF  _LVOBltBitMap
   XDEF  _LVOBltTemplate
   XDEF  _LVOClearEOL
   XDEF  _LVOClearScreen
   XDEF  _LVOTextLength
   XDEF  _LVOText
   XDEF  _LVOSetFont
   XDEF  _LVOOpenFont
   XDEF  _LVOCloseFont
   XDEF  _LVOAskSoftStyle
   XDEF  _LVOSetSoftStyle
   XDEF  _LVOAddBob
   XDEF  _LVOAddVSprite
   XDEF  _LVODoCollision
   XDEF  _LVODrawGList
   XDEF  _LVOInitGels
   XDEF  _LVOInitMasks
   XDEF  _LVORemIBob
   XDEF  _LVORemVSprite
   XDEF  _LVOSetCollision
   XDEF  _LVOSortGList
   XDEF  _LVOAddAnimOb
   XDEF  _LVOAnimate
   XDEF  _LVOGetGBuffers
   XDEF  _LVOInitGMasks
   XDEF  _LVODrawEllipse
   XDEF  _LVOAreaEllipse
   XDEF  _LVOLoadRGB4
   XDEF  _LVOInitRastPort
   XDEF  _LVOInitVPort
   XDEF  _LVOMrgCop
   XDEF  _LVOMakeVPort
   XDEF  _LVOLoadView
   XDEF  _LVOWaitBlit
   XDEF  _LVOSetRast
   XDEF  _LVOMove
   XDEF  _LVODraw
   XDEF  _LVOAreaMove
   XDEF  _LVOAreaDraw
   XDEF  _LVOAreaEnd
   XDEF  _LVOWaitTOF
   XDEF  _LVOQBlit
   XDEF  _LVOInitArea
   XDEF  _LVOSetRGB4
   XDEF  _LVOQBSBlit
   XDEF  _LVOBltClear
   XDEF  _LVORectFill
   XDEF  _LVOBltPattern
   XDEF  _LVOReadPixel
   XDEF  _LVOWritePixel
   XDEF  _LVOFlood
   XDEF  _LVOPolyDraw
   XDEF  _LVOSetAPen
   XDEF  _LVOSetBPen
   XDEF  _LVOSetDrMd
   XDEF  _LVOInitView
   XDEF  _LVOCBump
   XDEF  _LVOCMove
   XDEF  _LVOCWait
   XDEF  _LVOVBeamPos
   XDEF  _LVOInitBitMap
   XDEF  _LVOScrollRaster
   XDEF  _LVOWaitBOVP
   XDEF  _LVOGetSprite
   XDEF  _LVOFreeSprite
   XDEF  _LVOChangeSprite
   XDEF  _LVOMoveSprite
   XDEF  _LVOLockLayerRom
   XDEF  _LVOUnlockLayerRom
   XDEF  _LVOSyncSBitMap
   XDEF  _LVOCopySBitMap
   XDEF  _LVOOwnBlitter
   XDEF  _LVODisownBlitter
   XDEF  _LVOInitTmpRas
   XDEF  _LVOAskFont
   XDEF  _LVOAddFont
   XDEF  _LVORemFont
   XDEF  _LVOAllocRaster
   XDEF  _LVOFreeRaster
   XDEF  _LVOAndRectRegion
   XDEF  _LVOOrRectRegion
   XDEF  _LVONewRegion
   XDEF  _LVOClearRectRegion
   XDEF  _LVOClearRegion
   XDEF  _LVODisposeRegion
   XDEF  _LVOFreeVPortCopLists
   XDEF  _LVOFreeCopList
   XDEF  _LVOClipBlit
   XDEF  _LVOXorRectRegion
   XDEF  _LVOFreeCprList
   XDEF  _LVOGetColorMap
   XDEF  _LVOFreeColorMap
   XDEF  _LVOGetRGB4
   XDEF  _LVOScrollVPort
   XDEF  _LVOUCopperListInit
   XDEF  _LVOFreeGBuffers
   XDEF  _LVOBltBitMapRastPort
   XDEF  _LVOOrRegionRegion
   XDEF  _LVOXorRegionRegion
   XDEF  _LVOAndRegionRegion
   XDEF  _LVOSetRGB4CM
   XDEF  _LVOBltMaskBitMapRastPort
;   XDEF  _LVOGraphicsReserved1
;   XDEF  _LVOGraphicsReserved2
   XDEF  _LVOAttemptLockLayerRom

   ENDC





   END

