home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / asmutil / stdlib.zip / STRLWR.ASM < prev    next >
Assembly Source File  |  1990-07-16  |  1KB  |  62 lines

  1. stdlib        segment    para public 'slcode'
  2.         assume    cs:stdlib
  3. ;
  4.         extrn    $lwrtbl:byte, sl_strdup:far
  5. ;
  6. ; strlwr- Converts to lower case all upper case characters in the string
  7. ;      pointed at by es:di.
  8. ;
  9. ; strlwr2- Same as above except it creates a new string then converts the
  10. ;       characters in the new string.  The original string is unchanged.
  11. ;
  12. ; inputs:
  13. ;        es:di-  Buffer for destination string.
  14. ;
  15. ; outputs:
  16. ;        es:di-  Points at converted string (points at new string
  17. ;            for strupr2).
  18. ;
  19.         public    sl_strlwr
  20. ;
  21. sl_strlwr    proc    far
  22.         push    es
  23.         push    ds
  24.         push    ax
  25.         push    bx
  26.         pushf
  27.         push    si
  28.         push    di
  29. ;
  30.         mov    si, es
  31.         mov    ds, si
  32.         mov    si, di
  33.         lea    bx, $lwrtbl
  34. ToUprLp:    lodsb
  35.         xlat     cs:$lwrtbl
  36.         stosb
  37.         cmp    al, 0
  38.         jne    ToUprLp
  39. ;
  40.         pop    di
  41.         pop    si
  42.         popf
  43.         pop    bx
  44.         pop    ax
  45.         pop    ds
  46.         pop    es
  47.         ret
  48. sl_strlwr    endp
  49. ;
  50. ;
  51.         public    sl_strlwr2
  52. ;
  53. sl_strlwr2    proc    far
  54.         call    sl_strdup
  55.         jc    RetFar            ;Return if error.
  56.         jmp    near ptr sl_strlwr
  57. RetFar:        ret
  58. sl_strlwr2    endp
  59. ;
  60. stdlib        ends
  61.         end
  62.