home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / dpl.zip / TRIM.D < prev    next >
Text File  |  1988-07-11  |  1KB  |  56 lines

  1. ; Doug's Programming Language  -- DPL, Version 2.22
  2. ; Copyright (c) 1988 Douglas S. Cody, All rights reserved.
  3. ;----------------------------------------
  4. ; TRIM  --  THIS PROGRAM TRIMS TRAILING BLANKS FROM AN ASCIIZ STRING
  5. ;
  6. ; Entry Conditions:
  7. ;    AX holds the string address
  8. ; Exit conditions:
  9. ;    Assume all working registers modified
  10. ;
  11. ; Calling Example:
  12. ;
  13. ;    DEFINE    M00'THIS STRING IS PADDED                '
  14. ;    ;
  15. ;    CALL    TRIM M00
  16. ;
  17. ; Calling results:
  18. ;
  19. ;    M00 = 'THIS STRING IS PADDED'
  20. ;
  21. SUBPGM    TRIM
  22. BEGIN    TRIM
  23.     EXTRN    _STREND:NEAR
  24.     PUSH    ES
  25.     PUSH    SI
  26. ;
  27.     PUSH    DS
  28.     POP    ES
  29. ;
  30.     MOV    SI,AX            ; SETUP THE STRING PTR
  31.     CALL    _STREND            ; GET THE LENGTH
  32.     JCXZ    TRM10            ; EXIT IF NULL
  33.     STD                ; MOVE BACKWARD
  34.     XCHG    DI,SI            ; DI POINTS TO THE END OF LINE
  35.     MOV    AL,20H
  36.     DEC    DI            ; POINT TO THE 1ST CHARACTER
  37. ;
  38. TRM05:
  39.     REPE    SCASB            ; SCAN ALL BLANKS
  40.     INC    DI            ; MOVE BACK TO THE NON-MATCH
  41.     JCXZ    TRM07            ; IF ALL BLANK KILL THE WHOLE STRING
  42.     INC    DI
  43. ;
  44. TRM07:
  45.     MOV    BYTE PTR [DI],0        ; CUT IT OFF
  46.     CLD                ; FORWARD DIRECTION
  47. ;
  48. TRM10:
  49.     XCHG    DI,SI
  50.     POP    SI
  51.     POP    ES
  52.     RET
  53. ;
  54. ENDPGM    TRIM
  55. ;
  56.