[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]

    (*
    From: LEE BARKER
    Subj: FAST Up/Low Case CORRECTION
    *)

    Uses CRT;

      function LoStr(const s:string):string; assembler;
      asm
        push ds
        lds  si,s
        les  di,@result
        lodsb            { load and store length of string }
        stosb
        xor  ch,ch
        mov  cl,al
        jcxz @empty      { FIX for null string }
      @LowerLoop:
        lodsb
        cmp  al,'A'
        jb   @cont
        cmp  al,'Z'
        ja   @cont
        add  al,' '
      @cont:
        stosb
        loop @LowerLoop
      @empty:
        pop  ds
      end;  { LoStr }

      function UpStr(const s:string):string; assembler;
      asm
        push ds
        lds  si,s
        les  di,@result
        lodsb            { load and store length of string }
        stosb
        xor  ch,ch
        mov  cl,al
        jcxz @empty      { FIX for null length string }
      @upperLoop:
        lodsb
        cmp  al,'a'
        jb   @cont
        cmp  al,'z'
        ja   @cont
        sub  al,' '
      @cont:
        stosb
        loop @UpperLoop
      @empty:
        pop  ds
      end;  { UpStr }

    VAR S : String;

    BEGIN
      ClrScr;
      WriteLn(LoStr('LEE BARKER'));
      WriteLn(UpStr('lee barker'));
      Readkey;
    END.

[Back to STRINGS SWAG index] [Back to Main SWAG index] [Original]