2001-12-30 10:02:14 +00:00
|
|
|
/* Copyright (c) 1992, 1995 John E. Davis
|
|
|
|
* All rights reserved.
|
2005-05-07 21:24:31 +00:00
|
|
|
*
|
2001-12-30 10:02:14 +00:00
|
|
|
* You may distribute under the terms of either the GNU General Public
|
|
|
|
* License or the Perl Artistic License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/* These routines are fast memcpy, memset routines. When available, I
|
|
|
|
use system rouines. For msdos, I use inline assembly. */
|
|
|
|
|
|
|
|
/* The current versions only work in the forward direction only!! */
|
2005-05-07 21:24:31 +00:00
|
|
|
|
2001-12-30 10:02:14 +00:00
|
|
|
#include "config.h"
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
|
|
#include "slang.h"
|
|
|
|
#include "_slang.h"
|
|
|
|
|
|
|
|
void SLmemset(char *p, char space, int n)
|
|
|
|
{
|
|
|
|
#if defined(msdos) && !defined(__WIN32__) && !defined(__GO32__)
|
|
|
|
asm mov al, space
|
|
|
|
asm mov dx, di
|
|
|
|
asm mov cx, n
|
|
|
|
asm les di, p
|
|
|
|
asm cld
|
|
|
|
asm rep stosb
|
|
|
|
asm mov di, dx
|
|
|
|
#else
|
|
|
|
register char *pmax;
|
|
|
|
|
|
|
|
pmax = p + (n - 4);
|
|
|
|
n = n % 4;
|
2005-05-07 21:24:31 +00:00
|
|
|
while (p <= pmax)
|
2001-12-30 10:02:14 +00:00
|
|
|
{
|
|
|
|
*p++ = space; *p++ = space; *p++ = space; *p++= space;
|
|
|
|
}
|
2005-05-07 21:24:31 +00:00
|
|
|
while (n--) *p++ = space;
|
2001-12-30 10:02:14 +00:00
|
|
|
#endif
|
|
|
|
}
|