home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d1xx
/
d183
/
pcq.lha
/
PCQ
/
Runtime
/
stringlib.asm
< prev
next >
Wrap
Assembly Source File
|
1989-02-26
|
2KB
|
140 lines
* StringLib.asm (of PCQ Pascal runtime library)
* Copyright (c) 1989 Patrick Quaid
* This module just defines a few string handling routines.
* Note that I gave them all different names so that you could use
* them however you want.
SECTION One,CODE
XREF _p%new
XREF _p%dispose
XDEF _STREQ
XDEF _streq
_STREQ:
_streq:
move.l 4(sp),a1
move.l 8(sp),a0
1$:
move.b (a1)+,d0
bsr _INUP
move.b d0,d1
move.b (a0)+,d0
bsr _INUP
cmp.b d0,d1
bne.s 2$
tst.b d1
bne 1$
moveq #-1,d0
rts
2$:
moveq #0,d0
rts
3$:
moveq #-1,d0
rts
XDEF _STRCMP
XDEF _strcmp
_STRCMP:
_strcmp:
move.l 4(sp),a1
move.l 8(sp),a0
1$:
move.b (a0)+,d0
bsr _INUP
move.b d0,d1
move.b (a1)+,d0
bsr _INUP
cmp.b d0,d1
blt.s 2$
bgt.s 3$
tst.b d0
beq.s 4$
bra 1$
2$:
moveq #-1,d0
rts
3$:
moveq #1,d0
rts
4$:
moveq #0,d0
rts
XDEF _STRLEN
XDEF _strlen
_STRLEN:
_strlen:
move.l 4(sp),d1
move.l d1,a0
1$:
tst.b (a0)+
bne.s 1$
move.l a0,d0
sub.l d1,d0
subq #1,d0
rts
XDEF _strcpy
XDEF _STRCPY
_strcpy
_STRCPY
move.l 8(sp),a0
move.l 4(sp),a1
1$
move.b (a0)+,d0
move.b d0,(a1)+
bne 1$
rts
XDEF _strcat
XDEF _STRCAT
_strcat
_STRCAT
move.l 8(sp),a0
move.l 4(sp),a1
1$ move.b (a0)+,d0
bne 1$
subq.l #1,a0
2$ move.b (a1)+,d0
move.b d0,(a0)+
bne 2$
rts
XDEF _RAISE
XDEF _raise
_RAISE:
_raise:
move.w 4(sp),d0
and.b #255,d0
_INUP cmp.b #'a',d0
blt.s 1$
cmp.b #'z',d0
bgt.s 1$
sub.b #32,d0
1$: rts
XDEF _ALLOCSTRING
XDEF _AllocString
XDEF _allocstring
_ALLOCSTRING:
_AllocString:
_allocstring:
jsr _p%new
rts
XDEF _FREESTRING
XDEF _FreeString
XDEF _freestring
_FREESTRING:
_FreeString:
_freestring:
move.l 4(sp),d0
jsr _p%dispose
rts
end