; this installs patches that requires FBlit
; last update 28/02/2004


FBlitCheck:
    movea.l 4.w,a6
    lea fblitportname,a1
     jsr _LVOFindPort(a6)
    tst.l d0
     beq.w .NOFBlit
    move.l  #1,fblitport
    tst.l gopt19
      bne.b .allocraster
    move.l #$1004,D0  ; 4100 bytes for buffer
    move.l #MEMF_FAST|MEMF_CLEAR,D1 ;requirements
     jsr _LVOAllocMem(A6)
    tst.l d0
     beq.w .exit
    movea.l MemForPatch,a4
    move.l D0,FTextMem-StartPatch(a4)
    add.l #$1000,d0
    move.l d0,FTextSwap-StartPatch(a4)
    movea.l GFXBase,a1
    PATCH Text
.allocraster:
    tst.l gopt25
     bne.b .string
    moveq.l #64,d0
    moveq.l #MEMF_FAST|MEMF_PUBLIC,d1
     jsr _LVOAllocMem(a6)
    tst.l d0
     beq.b .exit
    movea.l MemForPatch,a4
    move.l d0,namebuffer-StartPatch(a4)
    add.l #32,d0
    move.l d0,processname-StartPatch(a4)
    movea.l GFXBase,a1
    PATCH AllocRaster
    PATCH FreeRaster
.string:
    tst.l _opt0
     bne.b .exit
    movea.l _DOSBase,a6
    move.l #FBlitMsg,d1
     jsr _LVOPutStr(a6)
    movea.l 4.w,a6
.exit:
    movea.l GFXBase,a1
   rts
 cnop 0,4
.NOFBlit: ;install QBSBlit(), Draw(), BltBitMap()
    movea.l GFXBase,a1
    tst.l gopt20
     bne.b .draw
    PATCH QBSBlit    
.draw: tst.l gopt32
     bne.b .blt
    PATCH Draw
    movea.l MemForPatch,a4
    move.l d0,olddraw-StartPatch+2(a4)
.blt: tst.l gopt33
     bne.b .rts
    PATCH BltBitMap    
    movea.l MemForPatch,a4
    move.l d0,oldblit-StartPatch+2(a4)
.rts: rts




