Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7893 → Rev 7894

/programs/emulator/kwine/bin/kwine
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/emulator/kwine/bin/lib/msvcrt.dll
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/emulator/kwine/bin/samples.zip
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programs/emulator/kwine/kwine.asm
117,7 → 117,7
func dd 0
func_name dd 0
; ------------------------------------------------------------- ;
sz_pe_load db "PELoad",0
sz_pe_load db "KWINE",0
; ------------------------------------------------------------- ;
con_init dd 0
con_write_asciiz dd 0
/programs/emulator/kwine/lib/conio.c
42,12 → 42,12
void *getprocaddress(void *exports, char *name)
{
if (exports == NULL) { return 0; }
while (*(uint32_t*)exports != NULL)
while (*(uint32_t*)exports != 0)
{
char *str1 = (char*)(*(uint32_t*)exports);
if (strcmp(str1, name) == 0)
{
void *ptr = *(uint32_t*)(exports + 4);
void *ptr = (void*)*(uint32_t*)(exports + 4);
 
// important for debug
/*debug_board_write_string(name);
146,13 → 146,13
 
// --------------------------------------------------------------------
 
int cdecl _getch()
int _getch()
{
con_init_console_dll();
return con_getch();
}
 
int cdecl _kbhit()
int _kbhit()
{
con_init_console_dll();
return con_kbhit();
/programs/emulator/kwine/lib/conio.h
0,0 → 1,11
#ifndef _CONIO_H
#define _CONIO_H
 
int _getch();
int _kbhit();
 
int con_init_console_dll(void);
int con_init_console_dll_param(uint32_t wnd_width, uint32_t wnd_height, uint32_t scr_width, uint32_t scr_height, const char* title);
void con_lib_link(void *exp, char** imports);
 
#endif
/programs/emulator/kwine/lib/msvcrt.dll.c
6,15 → 6,19
#include <stdarg.h>
#include "msvcrt.dll.h"
 
#include "string.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
 
#include "string.c"
//#include "dlfcn.c"
#include "conio.c"
#include "stdio.c"
#include "stdlib.c"
 
#include "time.h"
#include "time.c"
 
// note: by default all function in c are cdecl :D
 
typedef struct
{
30,13 → 34,23
const char sz_printf[] = "printf";
const char sz_puts[] = "puts";
const char sz_gets[] = "gets";
const char sz_putchar[] = "putchar";
 
//string
const char sz_strlen[] = "strlen";
const char sz_strcmp[] = "strcmp";
const char sz_strcat[] = "strcat";
const char sz_strchr[] = "strchr";
const char sz_strrchr[] = "strrchr";
const char sz_strcpy[] = "strcpy";
const char sz_strncpy[] = "strncpy";
const char sz_memset[] = "memset";
const char sz_memcpy[] = "memcpy";
const char sz_memcmp[] = "memcmp";
 
// stdlib
const char sz_srand[] = "srand";
const char sz_rand[] = "rand";
const char sz_malloc[] = "malloc";
const char sz_free[] = "free";
const char sz_realloc[] = "realloc";
44,6 → 58,9
 
// time
const char sz_time[] = "time";
const char sz_mktime[] = "mktime";
const char sz_localtime[] = "localtime";
const char sz_difftime[] = "difftime";
 
//uint32_t EXPORTS[] __asm__("EXPORTS") =
55,17 → 72,31
{sz_printf, (void*)printf},
{sz_puts, (void*)puts},
{sz_gets, (void*)gets},
{sz_putchar, (void*)putchar},
 
{sz_strlen, (void*)strlen},
{sz_strcmp, (void*)strcmp},
{sz_strcat, (void*)strcat},
{sz_strchr, (void*)strchr},
{sz_strrchr, (void*)strrchr},
{sz_strcpy, (void*)strcpy},
{sz_strncpy, (void*)strncpy},
{sz_memset, (void*)memset},
{sz_memcpy, (void*)memcpy},
{sz_memcmp, (void*)memcmp},
 
{sz_srand, (void*)srand},
{sz_rand, (void*)rand},
{sz_malloc, (void*)malloc},
{sz_free, (void*)free},
{sz_realloc, (void*)realloc},
 
{sz_time, (void*)time},
{sz_mktime, (void*)mktime},
{sz_localtime, (void*)localtime},
{sz_difftime, (void*)difftime},
 
 
{NULL, NULL},
};
 
/programs/emulator/kwine/lib/stdio.c
10,13 → 10,13
return ch;
}
 
void cdecl puts(const char *str)
void puts(const char *str)
{
con_init_console_dll();
con_write_asciiz(str);
}
 
char* cdecl gets(char* str)
char* gets(char* str)
{
con_init_console_dll();
return con_gets(str, 256);
/programs/emulator/kwine/lib/stdio.h
0,0 → 1,14
#ifndef _STDIO_H
#define _STDIO_H
 
int putchar(int ch);
void puts(const char *str);
char* gets(char* str);
void putuint(int i);
void putint(int i);
void puthex(uint32_t i);
void print(char *format, va_list args);
void printf(char *text, ... );
 
 
#endif
/programs/emulator/kwine/lib/stdlib.c
1,4 → 1,18
 
 
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;
/programs/emulator/kwine/lib/stdlib.h
0,0 → 1,12
#ifndef _STDLIB_H
#define _STDLIB_H
 
int rand(void);
void srand(unsigned int seed);
 
void *malloc(size_t size);
int free(void *mem);
void* realloc(void *mem, size_t size);
 
 
#endif
/programs/emulator/kwine/lib/string.h
0,0 → 1,23
#ifndef _STRING_H
#define _STRING_H
 
void* memset(void *mem, int c, unsigned size);
void* memcpy(void *dst, const void *src, unsigned size);
int memcmp(const void* buf1, const void* buf2, int count);
 
char *strcat(char strDest[], char strSource[]);
int strcmp(const char* s1, const char* s2);
char *strcpy(char strDest[], const char strSource[]);
char* strncpy(char *strDest, const char *strSource, unsigned n);
int strlen(const char* string);
char* strchr(const char* string, int c);
char* strrchr(const char* string, int c);
 
void _itoa(int i, char *s);
void reverse(char s[]);
void itoa(int n, char s[]);
int atoi ( char *s );
 
 
 
#endif