//sved/trunk/libc.c |
---|
8,31 → 8,7 |
#include "libc.h" |
size_t strlen(const char *s) { |
const char *ptr = s; |
while (*ptr != 0) ptr++; |
return(ptr - s); |
} |
void bzero(void *ptr, size_t len) { |
char *p = ptr; |
while (len > 0) { |
*p = 0; |
p++; |
len--; |
} |
} |
/* TODO this function does not handle overlapping strings well! */ |
void fmemmove(void far *dst, const void far *src, size_t len) { |
while (len-- > 0) { |
*(char far *)dst = *(char far *)src; |
dst = (char far *)dst + 1; |
src = (char far *)src + 1; |
} |
} |
unsigned short mdr_dos_resizeblock(unsigned short siz, unsigned short segn) { |
unsigned short res = 0; |
//sved/trunk/libc.h |
---|
2,11 → 2,6 |
#ifndef LIBC_H |
#define LIBC_H |
#include <stddef.h> |
size_t strlen(const char *s); |
void bzero(void *ptr, size_t len); |
void fmemmove(void far *dst, const void far *src, size_t len); |
unsigned short mdr_dos_resizeblock(unsigned short siz, unsigned short segn); |
unsigned short mdr_dos_write(unsigned short handle, const void far *buf, unsigned short count, unsigned short *bytes); |
//sved/trunk/sved.c |
---|
146,6 → 146,34 |
* functions * |
*****************************************************************************/ |
static size_t strlen(const char *s) { |
const char *ptr = s; |
while (*ptr != 0) ptr++; |
return(ptr - s); |
} |
static void bzero(void *ptr, size_t len) { |
char *p = ptr; |
while (len > 0) { |
*p = 0; |
p++; |
len--; |
} |
} |
/* TODO this function does not handle overlapping strings well! */ |
static void fmemmove(void far *dst, const void far *src, size_t len) { |
while (len-- > 0) { |
*(char far *)dst = *(char far *)src; |
dst = (char far *)dst + 1; |
src = (char far *)src + 1; |
} |
} |
static struct line far *line_calloc(unsigned short siz) { |
struct line far *res; |
unsigned short seg; |