#include "defines.h" #if OS == MSDOS # include # include #else # include OSBIND #endif #define MAX_A_WRITE 0xFFF0 unsigned long x_write( stream, buffer, size) int stream; char huge *buffer; unsigned long size; { unsigned long written = 0; int tmp; while( size >= MAX_A_WRITE) { if( (tmp = _write( stream, (void *) buffer, MAX_A_WRITE)) == -1) return( written); written += (unsigned) tmp; buffer += MAX_A_WRITE; size -= MAX_A_WRITE; } if( size) { if( (tmp = _write( stream, (void *) buffer, (unsigned) size)) != -1) written += (unsigned) tmp; } return( written); } #define MAX_A_READ 0xFFF0 unsigned long x_read( stream, buffer, size) int stream; char huge *buffer; unsigned long size; { unsigned long read = 0; int tmp; while( size >= MAX_A_READ) { if( (tmp = _read( stream, (void *) buffer, MAX_A_READ)) == -1) return( read); read += (unsigned) tmp; buffer += MAX_A_READ; size -= MAX_A_READ; } if( size) { if( (tmp = _read( stream, (void *) buffer, (unsigned) size)) != -1) read += (unsigned) tmp; } return( read); } void x_memset( p, val, size) char huge *p; int val; long size; { while( size >= MAX_A_READ) { memset( (void *) p, val, MAX_A_READ); p += MAX_A_READ; size -= MAX_A_READ; } if( size) memset( (void *) p, val, (unsigned) size); } void x_memcpy( dst, src, size) char huge *dst; char huge *src; long size; { while( size >= MAX_A_READ) { memcpy( (void *) dst, (void *) src, MAX_A_READ); src += MAX_A_READ; dst += MAX_A_READ; size -= MAX_A_READ; } if( size) memcpy( (void *) dst, (void *) src, (size_t) size); }