home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
program
/
compiler
/
nasm20b
/
nasm_src
/
kludge.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-19
|
2KB
|
94 lines
#include "defines.h"
#if OS == MSDOS
# include <dos.h>
# include <string.h>
#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);
}