-#define buffered_addr(a) \
- u8 a; \
- inline void set_##a(u8 b) { a = *_##a = b; } \
- inline void bset_##a(u8 m) { a |= m; *_##a = a; } \
- inline void bclr_##a(u8 m) { a &= ~m ; *_##a = a; }
+u8 my_strlen(char* s) {
+ char *p = s;
+ while (*p) p++;
+ return p-s;
+}
+
+void my_strncpy(char* dst, char* src, u8 max_size) {
+ u8 i;
+ for (i = 0; src[i] && i < max_size; i++) dst[i] = src[i];
+ if (src[i] == 0 && i < max_size) dst[i] = 0; /* null terminator */
+}
+
+bool my_strncmp(char* a, char* b, u8 len) {
+ u8 i;
+ for (i = 0; i < len; i++) {
+ if (*a != *b) return 0;
+ a++;
+ b++;
+ }
+ return 1;
+}
+
+void my_memcpy(char* dst, char* src, u8 size) {
+ u8 i = 0;
+ for (i = 0; i < size; i++) dst[i] = src[i];
+}