
*	Graphics.asm (of PCQ Pascal runtime library)
*	Copyright (c) 1989 Patrick Quaid

*	These stubs implement the routines defined in Graphics.i.
*	Note that we are referencing something called _GfxBase.
*	This is the variable defined in Graphics.i that's supposed
*	to hold the library.  This is why you have to open the graphics
*	library and put a valid pointer in GfxBase before using these
*	routines.
*
*	These routines try to save all registers except d0,d1,a0
*	and a1.

	XREF	_GfxBase

	section	one

	XDEF	_AllocRaster
_AllocRaster
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOAllocRaster(a6)
	rts

	XDEF	_AreaDraw
_AreaDraw
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOAreaDraw(a6)
	rts

	XDEF	_AreaEnd
_AreaEnd
	move.l	4(sp),a1
	move.l	_GfxBase,a6
	jsr	_LVOAreaEnd(a6)
	rts

	XDEF	_AreaMove
_AreaMove
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOAreaMove(a6)
	rts

	XDEF	_BltClear
_BltClear
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOBltClear(a6)
	rts

	XDEF	_Draw
_Draw
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVODraw(a6)
	rts

	XDEF	_Flood
_Flood
	move.l	d2,-(sp)
	move.l	16(sp),a1
	move.l	12(sp),d2
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOFlood(a6)
	move.l	(sp)+,d2
	rts

	XDEF	_FreeRaster
_FreeRaster
	move.l	12(sp),a0
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOFreeRaster(a6)
	rts

	XDEF	_InitBitMap
_InitBitMap
	move.l	d2,-(sp)
	move.l	16(sp),a0
	move.l	12(sp),d0
	move.l	8(sp),d1
	move.l	4(sp),d2
	move.l	_GfxBase,a6
	jsr	_LVOInitBitMap(a6)
	move.l	(sp)+,d2
	rts

	XDEF	_InitRastPort
_InitRastPort
	move.l	4(sp),a1
	move.l	_GfxBase,a6
	jsr	_LVOInitRastPort(a6)
	rts

	XDEF	_Move
_Move
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOMove(a6)
	rts

	XDEF	_OwnBlitter
_OwnBlitter
	move.l	_GfxBase,a6
	jsr	_LVOOwnBlitter(a6)
	rts

	XDEF	_DisownBlitter
_DisownBlitter
	move.l	_GfxBase,a6
	jsr	_LVODisownBlitter(a6)
	rts

	XDEF	_PolyDraw
_PolyDraw
	move.l	12(sp),a0
	move.l	8(sp),d0
	move.l	4(sp),a1
	move.l	_GfxBase,a6
	jsr	_LVOPolyDraw(a6)
	rts

	XDEF	_ReadPixel
_ReadPixel
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOReadPixel(a6)
	rts

	XDEF	_RectFill
_RectFill
	movem.l	d2-d3,-(sp)
	move.l	28(sp),a1
	move.l	24(sp),d0
	move.l	20(sp),d1
	move.l	16(sp),d2
	move.l	12(sp),d3
	move.l	_GfxBase,a6
	jsr	_LVORectFill(a6)
	movem.l	(sp)+,d2-d3
	rts

	XDEF	_ScrollRaster
_ScrollRaster
	movem.l	d2-d5,-(sp)
	move.l	44(sp),a1
	move.l	40(sp),d0
	move.l	36(sp),d1
	move.l	32(sp),d2
	move.l	28(sp),d3
	move.l	24(sp),d4
	move.l	20(sp),d5
	move.l	_GfxBase,a6
	jsr	_LVOScrollRaster(a6)
	movem.l	(sp)+,d2-d5
	rts

	XDEF	_SetAPen
_SetAPen
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_GfxBase,a6
	jsr	_LVOSetAPen(a6)
	rts

	XDEF	_SetBPen
_SetBPen
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_GfxBase,a6
	jsr	_LVOSetBPen(a6)
	rts

	XDEF	_SetDrMd
_SetDrMd
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_GfxBase,a6
	jsr	_LVOSetDrMd(a6)
	rts

	XDEF	_SetRast
_SetRast
	move.l	8(sp),a1
	move.l	4(sp),d0
	move.l	_GfxBase,a6
	jsr	_LVOSetRast(a6)
	rts

	XDEF	_SetRGB4
_SetRGB4
	movem.l	d2/d3,-(sp)
	move.l	28(sp),a0
	move.l	24(sp),d0
	move.l	20(sp),d1
	move.l	16(sp),d2
	move.l	12(sp),d3
	move.l	_GfxBase,a6
	jsr	_LVOSetRGB4(a6)
	movem.l	(sp)+,d2/d3
	rts

	XDEF	_VBeamPos
_VBeamPos
	move.l	_GfxBase,a6
	jsr	_LVOVBeamPos(a6)
	rts

	XDEF	_WaitTOF
_WaitTOF
	move.l	_GfxBase,a6
	jsr	_LVOWaitTOF(a6)
	rts

	XDEF	_WritePixel
_WritePixel
	move.l	12(sp),a1
	move.l	8(sp),d0
	move.l	4(sp),d1
	move.l	_GfxBase,a6
	jsr	_LVOWritePixel(a6)
	rts


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

	END
