home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol004 / ncompare.lib < prev    next >
Text File  |  1984-04-29  |  1KB  |  77 lines

  1. ;    MACRO LIBRARY FOR 8-BIT COMPARISON OPERATION
  2. ;
  3. TEST?    MACRO    X,Y
  4. ;;    UTILTITY MACRO TO GENERATE CONDITION CODES
  5.     IF    NOT NUL X    ;;THEN LOAD X
  6.     LDA    X    ;;X ASSUMED TO BE IN MEMORY
  7.     ENDIF
  8.     IRPC    ?Y,Y    ;;Y MAY BE CONSTANT OPERAND
  9. TDIG?    SET    '&?Y'-'0'    ;;FIRST CHAR DIGIT?
  10.     EXITM        ;;STOP IRPC AFTER FIRST CHAR
  11.     ENDM
  12.     IF    TDIG? <= 9    ;;Y NUMERIC?
  13.     SUI    Y    ;;YES, SO SUB IMMEDIATE
  14.     ELSE
  15.     LXI    H,Y    ;;Y NOT NUMERIC
  16.     SUB    M    ;;SO SUB FROM MEMORY
  17.     ENDM
  18. ;
  19. LSS    MACRO    X,Y,TL,FL
  20. ;;    X LSS THAN Y TEST,
  21. ;;    IF TL IS PRESENT, ASSUME TRUE TEST
  22. ;;    IF TL IS ABSENT, THEN INVERT TEST
  23.     IF    NUL TL
  24.     GEQ    X,Y,FL
  25.     ELSE
  26.     TEST?    X,Y    ;;SET CONDITION CODES
  27.     JC    TL
  28.     ENDM
  29. ;
  30. LEQ    MACRO    X,Y,TL,FL
  31. ;;    X LESS THAN OR EQUAL TO Y TEST
  32.     IF    NUL TL
  33.     GTR    X,Y,FL
  34.     ELSE
  35.     LSS    X,Y,TL
  36.     JZ    TL
  37.     ENDM
  38. ;
  39. EQL    MACRO    X,Y,TL,FL
  40. ;;    X EQUAL TO Y TEST
  41.     IF    NUL TL
  42.     NEQ    X,Y,FL
  43.     ELSE
  44.     TEST?    X,Y
  45.     JZ    TL
  46.     ENDM
  47. ;
  48. NEQ    MACRO    X,Y,TL,FL
  49. ;;    X NOT EQUAL TO Y TEST
  50.     IF    NUL TL
  51.     EQL    X,Y,FL
  52.     ELSE
  53.     TEST?    X,Y
  54.     JNZ    TL
  55.     ENDM
  56. ;
  57. GEQ    MACRO    X,Y,TL,FL
  58. ;;    X GREATER THAN OR EQUAL TO Y TEST
  59.     IF    NUL TL
  60.     LSS    X,Y,FL
  61.     ELSE
  62.     TEST?    X,Y
  63.     JNC    TL
  64.     ENDM
  65. ;
  66. GTR    MACRO    X,Y,TL,FL
  67. ;;    X GREATER THAN Y TEST
  68.     IF    NUL TL
  69.     LEQ    X,Y,FL
  70.     ELSE
  71.     LOCAL    GFL    ;;FALSE LABEL
  72.     TEST?    X,Y
  73.     JC    GFL
  74.     DCR    A
  75.     JNC    TL
  76. GFL:    ENDM
  77.