summaryrefslogtreecommitdiffstats
path: root/sw/z80/libc/string.c
diff options
context:
space:
mode:
Diffstat (limited to 'sw/z80/libc/string.c')
-rw-r--r--sw/z80/libc/string.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/sw/z80/libc/string.c b/sw/z80/libc/string.c
index fd6a7ff..9dd56cc 100644
--- a/sw/z80/libc/string.c
+++ b/sw/z80/libc/string.c
@@ -1,5 +1,15 @@
#include "string.h"
+void * memset(void *dest, const int8_t src, size_t n) {
+
+ void *dp = dest;
+
+ while (n--)
+ *dp++ = src;
+
+ return dest;
+}
+
void *memcpy(void *dest, void *src, size_t n)
{
char *dp = dest;
@@ -11,3 +21,19 @@ void *memcpy(void *dest, void *src, size_t n)
return dest;
}
+
+int8_t memcmp(const void *s1, const void *s2, size_t n) {
+
+ uint8_t u1, u2;
+
+ for ( ; n--; s1++, s2++) {
+
+ u1 = *s1;
+ u2 = *s2;
+
+ if (u1 != u2)
+ return u1 - u2;
+ }
+
+ return 0;
+} \ No newline at end of file