#include #include void* memcopy(void *dst, void *src, intptr n) { byte *e, *s, *d; d = dst; e = d + n; for (s = src ; d != e; ++s, ++d) { *d = *s; } return dst; } void* memmove(void *dst, void *src, intptr n) { byte *e, *s, *d; s = src; d = dst; if (d < s) { e = d + n; for (; d != e; ++s, ++d) *d = *s; } else { e = d; d += n; s += n; for (; d != e; --s, --d) d[-1] = s[-1]; } return dst; } void* memset(void *buf, int val, intptr n) { byte *b, *e; b = buf; e = b + n; for (; b != e; b++) { *b = (byte)val; } return buf; } int memcmp(void *lhs, void *rhs, intptr n) { byte *bl, *br, *e; br = rhs; e = br + n; for (bl = lhs; br != e; ++bl, ++br) { if (*bl < *br) return -1; else if (*bl > *br) return 1; } return 0; } int strlen(byte* s) { byte* b; for (b = s; *b; b++) { ; } return b - s; }