view lib/alib/strncpy.as @ 2852:f2e92661b4c6 lwtools-port

Makefiles: Always use macro for lwar and rm The LWAR macro is new, rm was still used in one place.
author Tormod Volden <debian.tormod@gmail.com>
date Fri, 12 Jul 2013 22:41:18 +0200
parents 03f26e88b809
children
line wrap: on
line source

**********************************

* STRNCPY: copy N bytes of a null terminated string
*          User must ensure there is room in buffer!!!
*          If N>string length only N bytes will be moved

* OTHER MODULES NEEDED: STRLEN, MEMMOVE

* ENTRY: X=start of string to move
*        Y=buffer for copy of string

* EXIT: D = actual number of bytes moved
*       all other regs preserved (except cc)


 nam Copy partial String
 ttl Assembler Library Module


 section .text

STRNCPY:
 pshs d bytes wanted to move
 lbsr STRLEN find length of string
 addd #1 move NULL also
 cmpd ,s get smaller of passed/actual size
 bls skip use actual leng
 ldd ,s use passed leng²²
skip
 lbsr MEMMOVE move it
 leas 2,s
 rts

 endsect