home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / lcase.zip / LCASE.ASM next >
Assembly Source File  |  1988-01-28  |  1KB  |  70 lines

  1.             PAGE    80,132
  2.             TITLE    OS/2 convert lower case to upper case
  3.             .286c
  4.             .xlist
  5.             .list
  6.  
  7. extrn        DosRead:far
  8. extrn        DosWrite:far
  9. extrn        DosExit:far
  10.  
  11. dgroup    group    data
  12.  
  13. stack        segment para stack
  14.         dw    256 dup(' ')
  15. stack        ends
  16.  
  17. data        segment para public 'auto'
  18. buffer        db    '    '
  19. BUFFERL        equ    $ - offset buffer
  20. bytesxfer    dw    0
  21. stdin        dw    0
  22. stdout        dw    1
  23. data        ends
  24.  
  25. code        segment para public 'code'
  26.         assume    cs:code,ds:data,es:nothing,ss:stack
  27.  
  28. main        proc
  29.         pusha
  30.  
  31. read:        push    stdin
  32.         push    ds
  33.         mov    ax,offset buffer
  34.         push    ax
  35.         mov    ax,BUFFERL
  36.         push    ax
  37.         push    ds
  38.         mov    ax,offset bytesxfer
  39.         push    ax
  40.         call    DosRead
  41.         cmp    bytesxfer,0
  42.         je    exit
  43.         mov    cx,bytesxfer
  44.         mov    si,offset buffer
  45. convert:    cmp    byte ptr [si],'A'
  46.         jb    next
  47.         cmp    byte ptr [si],'Z'
  48.         ja    next
  49.         add    byte ptr [si],'a' - 'A'
  50. next:        inc    si
  51.         loop    convert
  52. write:        push    stdout
  53.         push    ds
  54.         mov    ax,offset buffer
  55.         push    ax
  56.         push    bytesxfer
  57.         push    ds
  58.         mov    ax,offset bytesxfer
  59.         push    ax
  60.         call    DosWrite
  61.         jmp    read
  62. exit:        popa
  63.         push    0
  64.         push    1
  65.         call     DosExit
  66. main        endp
  67.  
  68. code        ends
  69.         end    main
  70.