* TSC local library routines

 name C_Local1

 text

* qmemcpy(to, from, count)
*        char *to;
*        char *from;
*        unsigned int count;

 global _qmemcpy

_qmemcpy pshs u
 ldd 8,s count
 beq 4f
 ldx 4,s to
 ldu 6,s from
 cmpx 6,s
 bhi 6f
 bitb #1 is it odd?
 beq 2f
 ldb 0,u+
 stb 0,x+
 ldd 8,s
 subd #1
 std 8,s
 beq 4f
2 ldd 0,u++
 std 0,x++
 ldd 8,s
 subd #2
 std 8,s
 bne 2b
4 puls u,pc return
6 leax d,x
 leau d,u
 bitb #1
 beq 8f
 ldb 0,-u
 stb 0,-x
 ldd 8,s
 subd #1
 std 8,s
 beq 4b
8 ldd 0,--u
 std 0,--x
 ldd 8,s
 subd #2
 std 8,s
 bne 8b
 puls u,pc

 end
