forked from KolibriOS/kolibrios
Rustem Gimadutdinov (rgimad)
bdd9a3634d
into msvcrt.dll added: - putchar - strchr - strrchr - strcpy - strncpy - memset - memcpy - memcmp - time - mktime - localtime - difftime - srand - rand new samples - rnd_arr1.exe - string2.exe git-svn-id: svn://kolibrios.org@7894 a494cfbc-eb01-0410-851d-a64ba20cac60
46 lines
779 B
C
46 lines
779 B
C
|
|
|
|
unsigned long int __rnd_next = 1;
|
|
|
|
int rand(void) // RAND_MAX assumed to be 32767
|
|
{
|
|
__rnd_next = __rnd_next * 1103515245 + 12345;
|
|
return (unsigned int)(__rnd_next/65536) % 32768;
|
|
}
|
|
|
|
void srand(unsigned int seed)
|
|
{
|
|
__rnd_next = seed;
|
|
}
|
|
|
|
void *malloc(size_t size)
|
|
{
|
|
void *val;
|
|
__asm__ __volatile__(
|
|
"int $0x40"
|
|
:"=a"(val)
|
|
:"a"(68),"b"(12),"c"(size));
|
|
return val;
|
|
}
|
|
|
|
int free(void *mem)
|
|
{
|
|
int val;
|
|
__asm__ __volatile__(
|
|
"int $0x40"
|
|
:"=a"(val)
|
|
:"a"(68),"b"(13),"c"(mem));
|
|
return val;
|
|
}
|
|
|
|
void* realloc(void *mem, size_t size)
|
|
{
|
|
void *val;
|
|
__asm__ __volatile__(
|
|
"int $0x40"
|
|
:"=a"(val)
|
|
:"a"(68),"b"(20),"c"(size),"d"(mem)
|
|
:"memory");
|
|
|
|
return val;
|
|
}; |