home *** CD-ROM | disk | FTP | other *** search
- FindData: Movem.L A2/A3,-(SP) ; ### Standard FindData() routine ###
- .FindDataLoop Moveq #0,D0
- Moveq #0,D1
- Move.B (A0),D0
- Bsr.S ChangeCase
- Move.B D0,D1
- Move.B (A1)+,D0
- Tst.B D0
- Beq.S .Exit
- Bsr.S ChangeCase
- Cmp.B D0,D1
- Bne.S .FindDataLoop
-
- Lea 1(A0),A2
- Move.L A1,A3
-
- .findloop Move.B (A2)+,D0
- Tst.B D0
- Beq.S .Found
- Bsr.S ChangeCase
- Move.B D0,D1
- Move.B (A3)+,D0
- Bsr.S ChangeCase
- Cmp.B D0,D1
- Bne.S .FindDataLoop
- Bra.S .findloop
-
- .Exit Moveq #-1,D0
- Movem.L (SP)+,A2/A3
- Rts
-
- .Found Lea -1(A1),A0
- Move.L A3,A1
- Moveq #0,D0
- Movem.L (SP)+,A2/A3
- Rts
-
- ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- ChangeCase: Cmp.B #'a',D0 ; ### Standard convert to UpperCase() routine ###
- Blo.S .exit
- Cmp.B #'z',D0
- Bls.S .change
- Cmp.B #$E0,D0
- Blo.S .exit
- Cmp.B #$FD,D0
- Bhi.S .exit
- Cmp.B #$F7,D0
- Beq.S .exit
-
- .change Sub.B #32,D0
- .exit Rts
-
- ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- StripQuotes: Move.B (A0)+,D0 ;copies a string
- Cmp.B #'"',D0 ;while removing any "'s it may find
- Beq.S StripQuotes
- Move.B D0,(A1)+
- Bne.S StripQuotes
- Rts
-