home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / c / string.arc / MEMSET.C < prev    next >
Text File  |  1984-12-31  |  1KB  |  43 lines

  1. /*  File   : memset.c
  2.     Author : Richard A. O'Keefe.
  3.     Updated: 25 May 1984
  4.     Defines: memset()
  5.  
  6.     memset(dst, chr, len)
  7.     fills the memory area dst[0..len-1] with len bytes all equal to chr.
  8.     The result is dst.  See also bfill(), which has no return value and
  9.     puts the last two arguments the other way around.
  10.  
  11.     Note: the VAX assembly code version can only handle 0 <= len < 2^16.
  12.     It is presented for your interest and amusement.
  13. */
  14.  
  15. #include "strings.h"
  16.  
  17. #if    VaxAsm
  18.  
  19. char *memset(dst, chr, len)
  20.     char *dst;
  21.     int chr;            /* should be char */
  22.     int len;
  23.     {
  24.     asm("movc5 $0,*4(ap),8(ap),12(ap),*4(ap)");
  25.     return dst;
  26.     }
  27.  
  28. #else  ~VaxAsm
  29.  
  30. char *memset(dst, chr, len)
  31.     char *dst;
  32.     register int chr;        /* should be char */
  33.     register int len;
  34.     {
  35.     register char *d;
  36.  
  37.     for (d = dst; --len >= 0; *d++ = chr) ;
  38.     return dst;
  39.     }
  40.  
  41. #endif    VaxAsm
  42.