home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / SIMTEL20 / SYSLIB / SLIB2.LBR / SISPUN.Z80 < prev    next >
Text File  |  2000-06-30  |  1KB  |  55 lines

  1. ;
  2. ;  SYSLIB Module Name:  SISPUN
  3. ;  Author:  Richard Conn
  4. ;  SYSLIB Version Number:  3.6
  5. ;  Module Version Number:  1.1
  6.  
  7.     public    ispun
  8. ;
  9. ;    ISPUN returns Zero Flag Set if char in A is a punctuation
  10. ; character (any non-alphanumeric greater than space and less than delete).
  11. ; ISPUN returns NZ if not.
  12. ;
  13. ;    Char in A is unaffected.
  14. ;
  15.  
  16. ;
  17. ;  DEFINE CHARS
  18. ;
  19. SPACE    EQU    ' '
  20. DEL    EQU    7FH
  21.  
  22. ISPUN:
  23.     PUSH    BC    ; SAVE BC
  24.     LD    C,A    ; SAVE CHAR IN C
  25.     AND    7FH    ; MASK OUT MSB
  26.     CP    SPACE+1    ; LESS THAN OR EQUAL TO SPACE?
  27.     JP    C,NO
  28.     CP    '0'    ; LESS THAN '0'?
  29.     JP    C,YES
  30.     CP    '9'+1    ; LESS THAN OR EQUAL TO '9'?
  31.     JP    C,NO
  32.     CP    'A'    ; LESS THAN 'A'?
  33.     JP    C,YES
  34.     CP    'Z'+1    ; LESS THAN OR EQUAL TO 'Z'?
  35.     JP    C,NO
  36.     CP    'a'    ; LESS THAN 'a'?
  37.     JP    C,YES
  38.     CP    'z'+1    ; LESS THAN OR EQUAL TO 'z'?
  39.     JP    C,NO
  40.     CP    DEL    ; DELETE?
  41.     JP    Z,NO
  42. YES:
  43.     XOR    A    ; SET FLAG
  44.     LD    A,C    ; GET CHAR
  45.     POP    BC    ; RESTORE BC
  46.     RET
  47. NO:
  48.     LD    A,0FFH    ; SET FLAG
  49.     OR    A
  50.     LD    A,C    ; GET CHAR
  51.     POP    BC    ; RESTORE BC
  52.     RET
  53.  
  54.     END
  55.