1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 23:29:39 +00:00
cc65/libsrc/common/ispunct.s
2020-04-02 22:58:16 +02:00

25 lines
687 B
ArmAsm

; ispunct.s
;
; This file is part of
; cc65 - a freeware C compiler for 6502 based systems
;
; https://cc65.github.io
;
; See "LICENSE" file for legal information.
;
; int ispunct (int c);
;
.export _ispunct
.include "ctype.inc"
.import ctypemask
_ispunct:
jsr ctypemask ; (always clears X)
bcs @L1 ; out of range? (everything already clear -> false)
and #CT_NOT_PUNCT ; mask relevant bits
cmp #1 ; if false, then set "borrow" flag
lda #0
sbc #0 ; invert logic (return NOT (space | control | digit | alpha))
@L1: rts