2 ; Ullrich von Bassewitz, 03.06.1998
4 ; int stricmp (const char* s1, const char* s2); /* DOS way */
5 ; int strcasecmp (const char* s1, const char* s2); /* UNIX way */
8 .export _stricmp, _strcasecmp
11 .importzp ptr1, ptr2, tmp1
23 loop: lda (ptr2),y ; get char from second string
25 lda __ctype,x ; get character classification
26 and #$01 ; lower case char?
28 txa ; get character back
30 adc #<('A'-'a') ; make upper case char
32 L1: stx tmp1 ; remember upper case equivalent
34 lda (ptr1),y ; get character from first string
36 lda __ctype,x ; get character classification
37 and #$01 ; lower case char?
39 txa ; get character back
41 adc #<('A'-'a') ; make upper case char
44 L2: cpx tmp1 ; compare characters
47 beq L5 ; a/x both zero