*
* +++++++++++
* SetWildStar
* +++++++++++
*
* Patched MatchFirst() so,
* daß alle * im Source durch #?
* ersetzt werden
* [da RNF_WILDSTAR nicht so tut,
*  wie es soll :-]
*
* (C) 1990 Oliver Wagner
*   Verbreitung ohne schriftliche Genemigung
*   des Autors untersagt!
*
* Benötigt Dos V36 oder höher
*
* Code NICHT Mergen!!!!!!!!!!!!!!!!!!
*
* Quick & Dirty hacked on 29.9.90...
*
* a68k setstar.asm
* blink setstar.o lib lib:small.lib
*			    ^- V2.0!

call	MACRO
	xref	_LVO\1
	jsr	_LVO\1(a6)
	ENDM

	XREF	_LVOMatchFirst

    section "Part1",code

start:
    move.l  4,a6
    lea     dosname(pc),a1
    moveq   #36,d0
    call    OpenLibrary
    tst.l   d0
    bne.s   dosopen
;
; alte DOS-Version -> Ende
;
    moveq   #-1,d0
    rts
dosname:    dc.b    "dos.library",0

dosopen:
    move.l  d0,a1
    lea     _LVOMatchFirst,a0
    move.l  #newpp,d0	; nicht schreien, Holger...
    call    SetFunction
    move.l  d0,oldfunc
    lea     start-4(pc),a0  ; nächster Hunk
    clr.l   (a0)            ; abhängen
    moveq   #0,d0
    rts

; Zweiter Hunk mit neuer Routine
; wird "abgehangen"
    section "Part2",code
oldfunc:    dc.l    'Olli' ; tut dem Ego wohl :-)
newpp:
    link    a5,#-256
    moveq   #-1,d0
    move.l  d1,a0
strlen:
    addq.l  #1,d0
    tst.b   (a0)+
    bne.s   strlen
    tst.b   d0
    bmi.s   doold ; String zu lang

; Kopieren und ersetzen
    move.l  d1,a0
    lea     -255(a5),a1
    move.l  a1,d1
copy:
    move.b  (a0)+,d0
    beq.s   fertig
    cmp.b   #'*',d0
    beq.s   copy2
    move.b  d0,(a1)+
    bra.s   copy
copy2:
    move.b  #'#',(a1)+
    move.b  #'?',(a1)+
    bra.s   copy
fertig:
    clr.b   (a1)
doold:
    move.l  oldfunc(pc),a0
    jsr     (a0)
    unlk   a5
    rts

    END

