]> git.sur5r.net Git - cc65/blobdiff - libsrc/common/toupper.s
The IRQ handler needs to save the registers. By Stefan Haubenthal.
[cc65] / libsrc / common / toupper.s
index 43ff0812d5cb54bb7c01f8452052a9c1f067e7b9..adc3d4a337687baa8f70bd30e60392f414e76bf5 100644 (file)
@@ -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