stdlib segment para public 'slcode' assume cs:stdlib ; ; ; strcpyl- Copies string pointed at by cs:rtnadrs to es:di. ; ; ; inputs: ; cs:rtn- Zero-terminated source string. ; es:di- Buffer for destination string. ; outputs: ; es:di- Still points at destination string. ; ; ; Note: The destination buffer must be large enough to hold the string and ; zero terminating byte. ; public sl_strcpyl ; rtnadrs equ 6[bp] destptr equ 2[bp] ; sl_strcpyl proc far push es push di push bp mov bp, sp push ds push cx push ax pushf push si ; cld mov al, 0 mov cx, 0ffffh les di, rtnadrs repne scasb lds si, rtnadrs mov rtnadrs, di les di, destptr neg cx dec cx shr cx, 1 jnc CpyWrd lodsb stosb CpyWrd: rep movsw ; DidByte: pop si popf pop ax pop cx pop ds pop bp pop di pop es ret sl_strcpyl endp ; ; stdlib ends end