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
20 ; ldy #0 ; Y=0 guaranteed by popptr1
22 loop: lda (ptr2),y ; get char from second string
24 lda __ctype,x ; get character classification
25 and #CT_LOWER ; lower case char?
27 txa ; get character back
29 adc #<('A'-'a') ; make upper case char
31 L1: stx tmp1 ; remember upper case equivalent
33 lda (ptr1),y ; get character from first string
35 lda __ctype,x ; get character classification
36 and #CT_LOWER ; lower case char?
38 txa ; get character back
40 adc #<('A'-'a') ; make upper case char
43 L2: cpx tmp1 ; compare characters
46 beq L5 ; a/x both zero