kolibrios-gitea/programs/emulator/kwine/lib/stdlib.c
Rustem Gimadutdinov (rgimad) bdd9a3634d KWINE v0.0.3
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
2020-05-07 22:14:53 +00:00

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;
};