home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / nasm20b / nasm_src / kludge.c < prev    next >
C/C++ Source or Header  |  1993-01-19  |  2KB  |  94 lines

  1. #include "defines.h"
  2. #if OS == MSDOS
  3. # include <dos.h>
  4. # include <string.h>
  5. #else
  6. # include OSBIND
  7. #endif
  8.  
  9. #define MAX_A_WRITE  0xFFF0
  10.  
  11. unsigned long  x_write( stream, buffer, size)
  12. int            stream;
  13. char huge      *buffer;
  14. unsigned long  size;
  15. {
  16.    unsigned long  written = 0;
  17.    int            tmp;
  18.  
  19.    while( size >= MAX_A_WRITE)
  20.    {
  21.       if( (tmp = _write( stream, (void *) buffer, MAX_A_WRITE)) == -1)
  22.          return( written);
  23.       written += (unsigned) tmp;
  24.       buffer  += MAX_A_WRITE;
  25.       size    -= MAX_A_WRITE;
  26.    }
  27.    if( size)
  28.    {
  29.       if( (tmp = _write( stream, (void *) buffer, (unsigned) size)) != -1)
  30.          written += (unsigned) tmp;
  31.    }
  32.    return( written);
  33. }
  34.  
  35.  
  36. #define MAX_A_READ   0xFFF0
  37.  
  38. unsigned long  x_read( stream, buffer, size)
  39. int            stream;
  40. char huge      *buffer;
  41. unsigned long  size;
  42. {
  43.    unsigned long  read = 0;
  44.    int            tmp;
  45.  
  46.    while( size >= MAX_A_READ)
  47.    {
  48.       if( (tmp = _read( stream, (void *) buffer, MAX_A_READ)) == -1)
  49.          return( read);
  50.       read   += (unsigned) tmp;
  51.       buffer += MAX_A_READ;
  52.       size   -= MAX_A_READ;
  53.    }
  54.    if( size)
  55.    {
  56.       if( (tmp = _read( stream, (void *) buffer, (unsigned) size)) != -1)
  57.          read += (unsigned) tmp;
  58.    }
  59.    return( read);
  60. }
  61.  
  62. void   x_memset( p, val, size)
  63. char huge *p;
  64. int       val;
  65. long      size;
  66. {
  67.    while( size >= MAX_A_READ)
  68.    {
  69.       memset( (void *) p, val, MAX_A_READ);
  70.       p     += MAX_A_READ;
  71.       size  -= MAX_A_READ;
  72.    }
  73.    if( size)
  74.       memset( (void *) p, val, (unsigned) size);
  75. }
  76.  
  77.  
  78. void   x_memcpy( dst, src, size)
  79. char huge *dst;
  80. char huge *src;
  81. long      size;
  82. {
  83.    while( size >= MAX_A_READ)
  84.    {
  85.       memcpy( (void *) dst, (void *) src, MAX_A_READ);
  86.       src   += MAX_A_READ;
  87.       dst   += MAX_A_READ;
  88.       size  -= MAX_A_READ;
  89.    }
  90.    if( size)
  91.       memcpy( (void *) dst, (void *) src, (size_t) size);
  92. }
  93.  
  94.