* 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