--- /dev/null
+/*
+ * * functions.c - severla functions usually served by libc
+ *
+ * author: hackbard@hackdaworld.org
+ *
+ */
+
+#include "functions.h"
+
+/*
+ * functions
+ */
+
+int strlen(char *string) {
+
+ int cnt;
+
+ cnt=0;
+
+ while(string[cnt])
+ cnt++;
+
+ return cnt;
+}
+
+int strncmp(char *a,char *b,int n) {
+
+ if(!n)
+ return 0;
+
+ while(n--) {
+ if(*a!=*b)
+ return (*(u8 *)a-*(u8 *)b++);
+ if(!*a++)
+ break;
+ }
+
+ return 0;
+}
+
+int strncpy(char *d,char *s,int n) {
+
+ while(n) {
+ n--;
+ d[n]=s[n];
+ }
+
+ return 0;
+}
+
+int mset(u8 *s,u8 v,int n) {
+
+ while(n)
+ s[--n]=v;
+
+ return 0;
+}
+
--- /dev/null
+/*
+ * * functions.h - functions header file
+ *
+ * author: hackbard@hackdaworld.org
+ *
+ */
+
+#ifndef FUNCTIONS_H
+#define FUNCTIONS_H
+
+#include "lpc2xxx.h"
+#include "types.h"
+
+/*
+ * function prototypes
+ */
+
+int strlen(char *string);
+int strncmp(char *a,char *b,int n);
+int strncpy(char *d,char *s,int n);
+int mset(u8 *s,u8 v,int n);
+
+#endif