2 ; Ullrich von Bassewitz, 02.06.1998
4 ; char* strupper (char* s);
5 ; char* strupr (char* s);
10 .export _strupper, _strupr
12 .import __ctype, __cdiff
17 sta ptr1 ; Save s (working copy)
20 sta ptr2+2 ; save function result
23 loop: lda (ptr1),y ; get character
26 lda __ctype,x ; get character classification
27 and #$01 ; lower case char?
29 txa ; get character back into accu
31 adc __cdiff ; make upper case char
32 sta (ptr1),y ; store back
35 inc ptr1+1 ; handle offset overflow
36 bne loop ; branch always
38 ; Done, return the argument string