X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=libsrc%2Fcommon%2Ftoupper.s;h=adc3d4a337687baa8f70bd30e60392f414e76bf5;hb=4f6110604326357d378f373b917b92c7ad92997e;hp=43ff0812d5cb54bb7c01f8452052a9c1f067e7b9;hpb=53dd513176425872128ef26031d00952ef7a0628;p=cc65 diff --git a/libsrc/common/toupper.s b/libsrc/common/toupper.s index 43ff0812d..adc3d4a33 100644 --- a/libsrc/common/toupper.s +++ b/libsrc/common/toupper.s @@ -5,18 +5,17 @@ ; .export _toupper - .import __ctype, __cdiff + .import __ctype _toupper: + cpx #$00 ; Outside valid range? + bne L9 ; If so, return the argument unchanged tay ; Get c into Y lda __ctype,y ; Get character classification - and #$01 ; Mask lower char bit - beq L1 ; Jump if not lower char + lsr a ; Get bit 0 (lower char) into carry tya ; Get C back into A + bcc L9 ; Jump if not lower char clc - adc __cdiff ; make upper case char - rts ; CC are set - -L1: tya ; Get C back - rts ; CC are set + adc #<('A'-'a') ; make upper case char +L9: rts ; CC are set