[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]