שתשת                                        ***********************************************************************
*
*                           OneFont 1.1
*
*          (c) 1994 One of Binary Mystery (Jan Skypala)
*
*                  $VER: MyFont.s 37.2 (28.2.94)
*
***********************************************************************

                incdir  'Include:'
                include 'exec/exec_lib.i'
                include 'exec/memory.i'
                include 'graphics/graphics_lib.i'
                include 'graphics/text.i'
                include 'diskfont/diskfont_lib.i'

_SysBase        equ     4

Start           move.l  (_SysBase).w,a6
                move.l  #ResidentEnd-ResidentStart,d4
                move.l  d4,d0
                moveq.l #MEMF_PUBLIC,d1
                jsr     _LVOAllocMem(a6)        ;allocate memory
                move.l  d0,a0
                move.l  d0,a4
                lea     ResidentStart(pc),a1
.loop           move.b  (a1)+,(a0)+             ;and move resident part
                dbra    d4,.loop                ;there
PatchIt
                lea     diskfontname(pc),a1
                moveq   #0,d0
                jsr     _LVOOpenLibrary(a6)     ;open diskfont.library
                beq.b   .gfx
                move.l  d0,a1
                move.w  #_LVOOpenDiskFont,a0
                moveq.l #DiskFont-ResidentStart,d0
                add.l   a4,d0
                jsr     _LVOSetFunction(a6)     ;patch OpenDiskFont()
                move.l  d0,OpenDiskFont-ResidentStart(a4)



.gfx            lea     gfxname(pc),a1
                moveq   #0,d0
                jsr     _LVOOpenLibrary(a6)     ;open graphics.library
                beq.b   .end
                move.l  d0,a1
                move.w  #_LVOOpenFont,a0
                moveq.l #GfxFont-ResidentStart,d0
                add.l   a4,d0
                jsr     _LVOSetFunction(a6)     ;patch OpenFont()
                move.l  d0,OpenFont-ResidentStart(a4)
                moveq.l #0,d0
.end            rts

***********************************************************************
ResidentStart
GfxFont         move.l  OpenFont(pc),-(a7)      ;address of OpenFont()
		bra.b	Patching		;and the rest is same
DiskFont        move.l  OpenDiskFont(pc),-(a7)  ;address of OpenDiskFont()
Patching        cmp.w   #8,ta_YSize(a0)         ;is it size 8?
                bne.b   .end
                move.l  a1,-(a7)
                movem.l a0/d0,-(a7)
                move.l  (a0),a0
                lea     TopazName(pc),a1
.loop           move.b  (a0)+,d0                ;is it 'topaz.font'
                cmp.b   (a1)+,d0
                bne.b   .notopaz
                tst.b   d0
                bne.b   .loop
                movem.l (a7)+,a0/d0
                lea     ThinpazName(pc),a1      ;change it to
                move.l  a1,(a0)                 ;'thinpaz.font'
                bra.b   ..
.notopaz        movem.l (a7)+,a0/d0             
..              move.l  (a7)+,a1
.end            rts				;and do the original func.
OpenDiskFont    dc.l    0
OpenFont        dc.l    0
TopazName       dc.b    'topaz.font',0
ThinpazName     dc.b    'thinpaz.font',0
ResidentEnd
gfxname         dc.b    'graphics.library',0
diskfontname    dc.b    'diskfont.library',0
version         dc.b    '$VER: OneFont 37.2 (28/2/94)',0
***********************************************************************
