isalpha c { return (or (and (moreeq c 'A') (lesseq c 'Z')) (and (moreeq c 'a') (lesseq c 'z'))); } isdigit c { return (and (moreeq c '0') (lesseq c '9')); } isalnum c { return (or (isalpha c) (isdigit c)); } isascii c { return (and (moreeq c 0) (lesseq c 127)); } isprint c { return (and (moreeq c ' ') (lesseq c '~')); } strlen s { let size; size = 0; while [s size] { size = (add size 1); } return size; } memset s c n { while (more n 0) { n = (sub n 1); [s n] = c; } return s; } bzero s n { (memset s 0 n); } memcpy dest src n { while (more n 0) { n = (sub n 1); [dest n] = [src n]; } return dest; } memmove dest src n { if (less dest src) { let i; i = 0; while (less i n) { [dest i] = [src i]; i = (add i 1); } } else { (memcpy dest src n); } return dest; }