ASSEMBLY - RHSTDLIB.ZIP - STRLWR.ASM

 
Output of file : STRLWR.ASM contained in archive : RHSTDLIB.ZIP

stdlib segment para public 'slcode'
assume cs:stdlib
;
extrn $lwrtbl:byte, sl_strdup:far
;
; strlwr- Converts to lower case all upper case characters in the string
; pointed at by es:di.
;
; strlwr2- Same as above except it creates a new string then converts the
; characters in the new string. The original string is unchanged.
;
; inputs:
; es:di- Buffer for destination string.
;
; outputs:
; es:di- Points at converted string (points at new string
; for strupr2).
;
public sl_strlwr
;
sl_strlwr proc far
push es
push ds
push ax
push bx
pushf
push si
push di
;
mov si, es
mov ds, si
mov si, di
lea bx, $lwrtbl
ToUprLp: lodsb
xlat cs:$lwrtbl
stosb
cmp al, 0
jne ToUprLp
;
pop di
pop si
popf
pop bx
pop ax
pop ds
pop es
ret
sl_strlwr endp
;
;
public sl_strlwr2
;
sl_strlwr2 proc far
call sl_strdup
jc RetFar ;Return if error.
jmp near ptr sl_strlwr
RetFar: ret
sl_strlwr2 endp
;
stdlib ends
end