    XDEF _MyOpenWin
    XDEF _MyOpenWinTag
    XDEF _MyCloseWin
    XDEF _MySetTitle
    XDEF _MyUpfrontLayer
    XREF _OldOpenWin
    XREF _OldOpenWinTag
    XREF _OldCloseWin
    XREF _OldSetTitle
    XREF _OldUpfrontLayer
    XREF _HandleOpenWin
    XREF _HandleCloseWin
    XREF _HandleSetTitle
    XREF _HandleUpfrontLayer

    SECTION text,CODE
_MyOpenWin:
    move.l      _OldOpenWin,a1
    jsr         (a1)
    movem.l     d0-d7/a0-a6,-(sp)
    jsr         _HandleOpenWin
    movem.l     (sp)+,d0-d7/a0-a6
    rts

_MyOpenWinTag:
    move.l      a2,-(sp)
    move.l      _OldOpenWinTag,a2
    jsr         (a2)
    move.l      (sp)+,a2
    movem.l     d0-d7/a0-a6,-(sp)
    jsr         _HandleOpenWin
    movem.l     (sp)+,d0-d7/a0-a6
    rts


_MyCloseWin:
    movem.l     d0-d7/a0-a6,-(sp)
    jsr         _HandleCloseWin
    movem.l     (sp)+,d0-d7/a0-a6
    move.l      _OldCloseWin,a1
    jsr         (a1)
    rts

_MySetTitle:
    movem.l     d0-d7/a0-a6,-(sp)
    jsr         _HandleSetTitle
    movem.l     (sp)+,d0-d7/a0-a6
    move.l      a3,-(sp)
    move.l      _OldSetTitle,a3
    jsr         (a3)
    move.l      (sp)+,a3
    rts

_MyUpfrontLayer:
    movem.l     d0-d7/a0-a6,-(sp)
    jsr         _HandleUpfrontLayer
    cmp.l       #0,d0
    beq.s       dont_call2
    movem.l     (sp)+,d0-d7/a0-a6
    move.l      _OldUpfrontLayer,a0
    jsr         (a0)
    rts
dont_call2:
    movem.l     (sp)+,d0-d7/a0-a6
    rts


    end
