From aa82c562dbbbdabac2acc43d5002bfe8b46ca646 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Sat, 11 Apr 2026 16:30:26 -0400 Subject: strlen() => strlen8(), save a measly 4 bytes. 7597 bytes free. --- src/strlen8.s | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/strlen8.s (limited to 'src/strlen8.s') diff --git a/src/strlen8.s b/src/strlen8.s new file mode 100644 index 0000000..c622d73 --- /dev/null +++ b/src/strlen8.s @@ -0,0 +1,24 @@ + ; strlen() implementation that only looks at the first 256 + ; byte of the string. returns 255 if the length is >=255. + ; saves a measly 4 bytes over the cc65 strlen(). + + ; extern unsigned char strlen8(const char *str); + + .importzp ptr1 + .export _strlen8 + +_strlen8: + sta ptr1 + stx ptr1+1 + ldy #0 +@loop: + lda (ptr1),y + beq @done + iny + bne @loop + dey ; return(255) if Y rolls over +@done: + tya + ldx #0 ; sadly necessary even though we return a char... + rts + -- cgit v1.2.3