*
* string manipulation routines - file 2
*

 name C_str2

 text

* char *strncat(s1, s2, n)
*        char *s1;
*        char *s2;
*        int n;

 global _strncat

_strncat pshs u
 ldd 8,s
 ble 6f
 ldx 4,s s1
 ldu 6,s
2 tst 0,x+
 bne 2b
 leax -1,x
3 ldb 0,u+
 stb 0,x+
 beq 6f
 ldd 8,s
 subd #1
 std 8,s
 bne 3b
 clr 0,x
6 ldd 4,s return s1
 puls u,pc

* int strncmp(s1, s2, n)
*        char *s1;
*        char *s2;
*        int n;

 global _strncmp

_strncmp pshs u
 ldd 8,s
 ble 6f
 ldx 4,s s1
 ldu 6,s s2
2 ldb 0,x+
 beq 5f
 cmpb 0,u+
 bne 4f
 ldd 8,s
 subd #1
 std 8,s
 bne 2b
 puls u,pc
4 subb -1,u
 sex
 puls u,pc
5 subb 0,u
 sex
 puls u,pc
6 ldd #0
 puls u,pc

* char *strncpy(s1, s2, n)
*        char *s1;
*        char *s2;
*        int n;

 global _strncpy
_strncpy pshs u
 ldd 8,s n
 ble 4f
 ldx 4,s s1
 ldu 6,s s2
2 ldb 0,u+
 stb 0,x+
 beq 4f
 ldd 8,s
 subd #1
 std 8,s
 bne 2b
4 ldd 4,s return s1
 puls u,pc

 end
