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

{*****************************************************************************
 * Function ...... PadL()
 * Purpose ....... To pad the left side of a string with a character
 * Parameters .... s      String to pad
 *                 c      Character to pad with
 *                 n      New length for <s>
 * Returns ....... <s> padded with character <c> with length <n>
 * Notes ......... None
 * Author ........ Martin Richardson
 * Date .......... October 2, 1992
 *****************************************************************************}
FUNCTION PADL( s: STRING; n: BYTE; c: CHAR ): STRING; ASSEMBLER;
ASM
      PUSH   DS
      CLD

      LES    DI, @Result
      INC    DI
      LDS    SI, s
      XOR    AX, AX
      LODSB
      PUSH   AX

      XOR    CX, CX
      MOV    CL, n
      SUB    CL, AL

      CMP    CX, 0
      JNB    @@1
      XOR    CX, CX

@@1:  MOV    AL, c
      REP    STOSB

      POP    CX
      REP    MOVSB

      MOV    DI, WORD PTR @Result
      MOV    AL, n
      MOV    BYTE PTR ES:[DI], AL
      POP    DS
END;

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