    SECTION DATA,DATA
    XREF _scrn

    SECTION CODE,CODE
    XDEF _CopyFrame
    XDEF _CopyFrame2
    XDEF _GenFrame
    XDEF _MouseButton
    XDEF _DrawMeter

_DrawMeter:
    cmp.l   #0,d0
    bne     dm_do
    rts
dm_do:
    cmp.l   #100,d0
    blt     dm_really
    rts
dm_really:
    move.l  d1,-(sp)
    beq     dm_end
    move.l  #200,d1
dm_loop:
    move.w  d1,(a0)+
    dbra    d0,dm_loop
dm_end:
    move.l  (sp)+,d1
    rts



_MouseButton:
    btst    #6,$bfe001  ; Ugly direct hardware hit!!!
    beq     mb_set
    moveq   #0,d0
    bra     mb_exit
mb_set:
    moveq   #1,d0
mb_exit:
    rts

_CopyFrame:
    movem.l a0-a5/d2-d4,-(sp)
    move.l  d0,d3
    lea     _scrn,a1
    move.w  #59,d0
    moveq   #0,d1
    moveq   #0,d4
cf1:
    move.w  #79,d1
    move.l  a0,a2
    move.l  a2,a3
    add.l   d3,a3
    move.l  a3,a4
    add.l   d3,a4
    move.l  a4,a5
    add.l   d3,a5
    move.l  a5,a0
    add.l   d3,a0
cf2:
    moveq   #0,d2
    moveq   #0,d4
    move.b  (a1)+,d2
    move.b  d2,d4
    lsl.w   #8,d4
    or.w    d4,d2
    move.w  d2,(a2)+
    move.w  d2,(a2)+
    move.w  d2,(a3)+
    move.w  d2,(a3)+
    move.w  d2,(a4)+
    move.w  d2,(a4)+
    move.w  d2,(a5)+
    move.w  d2,(a5)+

    dbra    d1,cf2
    dbra    d0,cf1

    movem.l (sp)+,a0-a5/d2-d4

    rts

_GenFrame:
    movem.l  a0/a1/d0/d1/d2,-(sp)
    lea     _scrn,a0
    move.l  #5119,d0

gf1:
    move.l  a0,a1
    moveq   #0,d1
    moveq   #0,d2
    add.l   #79,a1
    move.b   (a1),d2
    add.l   d2,d1
    add.l   #2,a1
    move.b   (a1),d2
    add.l   d2,d1
    add.l   #78,a1
    move.b   (a1),d2
    add.l   d2,d1
    addq    #1,a1
    move.b   (a1),d2
    add.l   d2,d1
    addq    #1,a1
    move.b   (a1),d2
    add.l   d2,d1
    divu    #5,d1
    cmp.w   #3,d1
    ble     gf2
    sub.b   #2,d1
gf2:
    move.b  d1,(a0)+
gfnext:
    dbra    d0,gf1
gfx:
    movem.l  (sp)+,a0/a1/d0/d1/d2
    rts

_CopyFrame2:
    movem.l a0-a5/d2-d4,-(sp)
    move.l  d0,d3
    lea     _scrn,a1
    move.w  #59,d0
    moveq   #0,d1
    moveq   #0,d4
cf21:
    move.w  #79,d1
    move.l  a0,a2
    move.l  a2,a3
    add.l   d3,a3
    move.l  a3,a0
    add.l   d3,a0
cf22:
    moveq   #0,d2
    moveq   #0,d4
    move.b  (a1)+,d2
    move.b  d2,d4
    lsl.w   #8,d4
    or.w    d4,d2
    move.w  d2,(a2)+
    move.w  d2,(a3)+

    dbra    d1,cf22
    dbra    d0,cf21

    movem.l (sp)+,a0-a5/d2-d4

    rts
        END
