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

  1. ; Doug's Programming Language  -- DPL, Version 2.22
  2. ; Copyright (c) 1988 Douglas S. Cody, All rights reserved.
  3. ;--------------------------------------
  4. ; _IFSEQ  -- IF-STRING-IS-EQUAL ROUTINE
  5. ;
  6. ; Entry conditions:
  7. ;    SI points to the source string
  8. ;    DI points to the destination string
  9. ; Exit conditions:
  10. ;    Carry set if strings are the same
  11. ;    Carry clear if the string are not the same
  12. ;    SI, DI, AX modified
  13. ;
  14. SUBPGM    _IFSEQ
  15. BEGIN    _IFSEQ
  16. ;
  17. ;  EQUAL-TO FUNCTION
  18. ;
  19.     CLD
  20.     PUSH    ES
  21.     PUSH    DS
  22.     POP    ES
  23. ;
  24. @IFSEQ_05:
  25.     MOV    AL,[DI]        ; FETCH A COPY OF THE CHARACTERS
  26.     CMPSB            ; COMPARE BOTH & ADVANCE THE POINTERS
  27.     JNZ    @IFS_10        ; EXIT IF NOT THE SAME
  28.     OR    AL,AL        ; EOT?
  29.     JNZ    @IFSEQ_05    ; NO, CONTINUE LOOPING
  30. ;
  31. @IFS_07:
  32.     STC            ; SET CARRY - TRUE RESULT
  33.     POP    ES
  34.     RET
  35. ;
  36. @IFS_10:
  37.     CLC            ; CLEAR CARRY, FALSE RESULT
  38.     POP    ES
  39.     RET
  40. ;
  41. ; _IFSNE  -- IF-STRING-IS-NOT-EQUAL ROUTINE
  42. ;
  43. ; Entry conditions:
  44. ;    SI points to the source string
  45. ;    DI points to the destination string
  46. ; Exit conditions:
  47. ;    Carry set if strings are the same
  48. ;    Carry clear if the string are not the same
  49. ;    SI, DI, AX modified
  50. ;
  51.     PUBLIC    _IFSNE
  52. _IFSNE    PROC    NEAR
  53.     CLD
  54.     PUSH    ES
  55.     PUSH    DS
  56.     POP    ES
  57. ;
  58. @IFSNE_05:
  59.     MOV    AL,[DI]        ; FETCH A COPY OF THE CHARACTERS
  60.     CMPSB            ; COMPARE BOTH & ADVANCE THE POINTERS
  61.     JNZ    @IFS_07        ; EXIT GOOD IF NOT THE SAME
  62.     OR    AL,AL        ; EOT?
  63.     JNZ    @IFSNE_05    ; NO, CONTINUE LOOPING
  64.     JMP    SHORT @IFS_10    ; EXIT BAD IF THE SAME
  65.  
  66. _IFSNE    ENDP
  67. ;
  68. ENDPGM    _IFSEQ
  69. ;