-/* simplified strtoul with range checking */
-static
-int str_to_word_(char *s) {
- unsigned long l;
- char *ep;
-
- assert(s);
-
- errno = 0;
- l = strtoul(s, &ep, 0);
-
- if (errno
- || !(*s && *ep == '\0') ) {
- /* out of range of conversion, or invalid character encountered */
- return -1;
- }
-
- if (l >= DCPU16_RAM) {
- /* out of range for our needs */
- errno = ERANGE;
- return -1;
- }
-
- return l;
-}