home *** CD-ROM | disk | FTP | other *** search
/ norge.freeshell.org (192.94.73.8) / 192.94.73.8.tar / 192.94.73.8 / pub / computers / cpm / alphatronic / PASCALZ4.ZIP / D3 / URELOP.SRC < prev   
Text File  |  1999-04-05  |  1KB  |  67 lines

  1. ;UNSTRUCTURED RELATIVE OPERATORS
  2. ;
  3.     NAME URELOP
  4.     ENTRY .ILE,.ILT,.IGE,.IGT,.MTRUE,.FALSE,.MTRU1
  5. ;
  6. ;UNSTRUCTURED RELOPS
  7. ;HL<OP>DE
  8. ;
  9.  
  10. CMPINT:    MACRO    CARRY        ;SUBTRACT DE FROM HL AFTER INITIALIZING CARRY
  11.     XRA    A        ;CLEAR ACCUMULATOR
  12.     IF    CARRY
  13.     STC
  14.     ENDIF
  15.     DSBC    D
  16.     ENDMAC
  17.  
  18. ;GREATER THAN OR EQUAL TO
  19. .IGE:    MOV    A,H        ;TEST FOR LIKE SIGNS
  20.     XRA    D
  21.     JM    GDIFF        ;NO!
  22.     CMPINT    0        ;COMPARE INTEGERS
  23.     CMC            ;CARRY WAS CLEAR IF HL >= DE
  24.     RET
  25.  
  26. ;LESS THAN OR EQUAL TO
  27. .ILE:    MOV    A,H        ;TEST FOR LIKE SIGNS
  28.     XRA    D
  29.     JM    LDIFF        ;NO!
  30.     CMPINT    1        ;COMPARE INTEGERS
  31.     RET            ;CARRY IS SET IF HL <= DE
  32.  
  33. ;GREATER THAN
  34. .IGT:    MOV    A,H        ;TEST FOR LIKE SIGNS
  35.     XRA    D
  36.     JM    GDIFF        ;NO!
  37.     CMPINT    1        ;COMPARE INTEGERS
  38.     CMC            ;CARRY WAS CLEAR IF HL > DE
  39.     RET
  40.  
  41. ;LESS THAN
  42. .ILT:    MOV    A,H        ;TEST FOR LIKE SIGNS
  43.     XRA    D
  44.     JM    LDIFF        ;NO!
  45.     CMPINT    0        ;COMPARE INTEGERS
  46.     RET            ;CARRY IS SET IF HL < DE
  47.  
  48.  
  49.  
  50. ; SIGNS DIFFERENT ON A > OR >= TEST
  51. GDIFF:    MOV    H,D        ;REVERSE THE NEXT TEST
  52. ; SIGNS DIFFERENT ON A < OR <= TEST
  53. LDIFF:    XRA    A        ;CLEAR ACC
  54.     SLAR    H        ;SET CARRY IF HL < 0
  55.     RET
  56.  
  57. .MTRUE:    XRA    A        ;CONDITION IS TRUE, CLEAR A, SET CARRY
  58.     STC
  59.     RET
  60.  
  61. .MTRU1    POP    D
  62.     POP    H
  63.     JR    .MTRUE
  64.  
  65. .FALSE:    XRA    A        ;CONDITION IS FALSE, CLEAR A, RESET CARRY
  66.     RET
  67.