home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / macrosrc.arc / INRNG.ASM < prev    next >
Encoding:
Assembly Source File  |  1983-11-17  |  930 b   |  35 lines

  1.  
  2. *TEST IF VALUE IS IN A RANGE
  3. *USES: AC
  4. *
  5. *      INRNG   VAR,LOW,HIGH,LABEL
  6. *
  7. *BRANCH TO LABEL IF THE CONTENTS OF VAR IS >=LOW
  8. *      <= HIGH
  9. *LOW AND HIGH MAY BE CONSTANTS OR VARIABLES
  10.  
  11.        COPY  MACROS.LCAC
  12.  
  13. INRNG  $MACRO            A,B,C,D   RANGE INSIDE TEST
  14.        $VAR L
  15.        $ASG '$$LAB' TO L.S    UNIQUE LABEL VAR
  16.        $ASG L.SV+1 TO L.SV
  17.        $IF  B.SA&$UNDF
  18.        LCAC -(:B.V:)     LOAD -(:B:)
  19.        ADD  :A:,0        COMP TO :A:
  20.        $ELSE
  21.        LAC  :A:,0        LOAD :A:
  22.        SUB  :B:,0        COMP TO :B:
  23.        $ENDIF
  24.        BLZ  L$:L.SV:     BRANCH IF :A:<:B:
  25.        $IF  C.SA&$UNDF
  26.        LCAC -(:C.V:)     LOAD -(:C:)
  27.        ADD  :A:,0        COMP TO :A:
  28.        $ASG L.SV-1 TO L.SV
  29.        $ELSE
  30.        LAC  :A:,0        LOAD :A:
  31.        SUB  :C:,0        COMP TO :C:
  32.        $ENDIF
  33.        BLEZ :D:          BRANCH IF :A:>=:B: & :A:<=:C:
  34. L$:L.SV: EQU $
  35.        $END