From d642ea15906be7af3064cb2a355bc21848db744a Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Wed, 7 Nov 2018 17:54:29 +0000 Subject: [PATCH] add TinyC (tcc) to ISO git-svn-id: svn://kolibrios.org@7540 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/Tupfile.lua | 1 + data/common/develop/tcc/_howto_debug_tcc.txt | 27 + data/common/develop/tcc/include/assert.h | 19 + data/common/develop/tcc/include/conio.h | 203 ++++ data/common/develop/tcc/include/ctype.h | 41 + data/common/develop/tcc/include/errno.h | 6 + data/common/develop/tcc/include/float.h | 65 ++ data/common/develop/tcc/include/kolibrisys.h | 195 ++++ data/common/develop/tcc/include/kos32sys1.h | 800 ++++++++++++++ .../develop/tcc/include/kos32sys1beta.h | 994 ++++++++++++++++++ data/common/develop/tcc/include/math.h | 194 ++++ data/common/develop/tcc/include/stdarg.h | 75 ++ data/common/develop/tcc/include/stdbool.h | 11 + data/common/develop/tcc/include/stddef.h | 46 + data/common/develop/tcc/include/stdint.h | 1 + data/common/develop/tcc/include/stdio.h | 128 +++ data/common/develop/tcc/include/stdlib.h | 77 ++ data/common/develop/tcc/include/string.h | 35 + data/common/develop/tcc/include/time.h | 29 + data/common/develop/tcc/include/varargs.h | 12 + data/common/develop/tcc/kos32-tcc.exe | Bin 0 -> 335375 bytes data/common/develop/tcc/kpack.exe | Bin 0 -> 14336 bytes data/common/develop/tcc/readme.txt | 126 +++ data/common/develop/tcc/samples/consoleio.c | 23 + data/common/develop/tcc/samples/files.c | 43 + .../develop/tcc/samples/simplewin_old.c | 61 ++ data/common/develop/tcc/samples/winbasics.c | 148 +++ data/common/develop/tcc/tcc | Bin 0 -> 185768 bytes 28 files changed, 3360 insertions(+) create mode 100644 data/common/develop/tcc/_howto_debug_tcc.txt create mode 100644 data/common/develop/tcc/include/assert.h create mode 100644 data/common/develop/tcc/include/conio.h create mode 100644 data/common/develop/tcc/include/ctype.h create mode 100644 data/common/develop/tcc/include/errno.h create mode 100644 data/common/develop/tcc/include/float.h create mode 100644 data/common/develop/tcc/include/kolibrisys.h create mode 100644 data/common/develop/tcc/include/kos32sys1.h create mode 100644 data/common/develop/tcc/include/kos32sys1beta.h create mode 100644 data/common/develop/tcc/include/math.h create mode 100644 data/common/develop/tcc/include/stdarg.h create mode 100644 data/common/develop/tcc/include/stdbool.h create mode 100644 data/common/develop/tcc/include/stddef.h create mode 100644 data/common/develop/tcc/include/stdint.h create mode 100644 data/common/develop/tcc/include/stdio.h create mode 100644 data/common/develop/tcc/include/stdlib.h create mode 100644 data/common/develop/tcc/include/string.h create mode 100644 data/common/develop/tcc/include/time.h create mode 100644 data/common/develop/tcc/include/varargs.h create mode 100644 data/common/develop/tcc/kos32-tcc.exe create mode 100644 data/common/develop/tcc/kpack.exe create mode 100644 data/common/develop/tcc/readme.txt create mode 100644 data/common/develop/tcc/samples/consoleio.c create mode 100644 data/common/develop/tcc/samples/files.c create mode 100644 data/common/develop/tcc/samples/simplewin_old.c create mode 100644 data/common/develop/tcc/samples/winbasics.c create mode 100644 data/common/develop/tcc/tcc diff --git a/data/Tupfile.lua b/data/Tupfile.lua index 87ffba03ac..8a76e09676 100644 --- a/data/Tupfile.lua +++ b/data/Tupfile.lua @@ -166,6 +166,7 @@ extra_files = { {"kolibrios/develop/oberon07/Docs/", PROGS .. "/develop/oberon07/Docs/*"}, {"kolibrios/develop/oberon07/Lib/KolibriOS/", PROGS .. "/develop/oberon07/Lib/KolibriOS/*"}, {"kolibrios/develop/oberon07/Samples/", PROGS .. "/develop/oberon07/Samples/*"}, + {"kolibrios/develop/tcc/", "common/develop/tcc/*"}, {"kolibrios/develop/TinyBasic/", "common/develop/TinyBasic/*"}, {"kolibrios/utils/cnc_editor/cnc_editor", PROGS .. "/other/cnc_editor/cnc_editor"}, {"kolibrios/utils/cnc_editor/kolibri.NC", PROGS .. "/other/cnc_editor/kolibri.NC"}, diff --git a/data/common/develop/tcc/_howto_debug_tcc.txt b/data/common/develop/tcc/_howto_debug_tcc.txt new file mode 100644 index 0000000000..5ebccbd036 --- /dev/null +++ b/data/common/develop/tcc/_howto_debug_tcc.txt @@ -0,0 +1,27 @@ +1. create asm listing: +compile .o only, then use objdump +kos32-tcc.exe -c -g clipview.c -o clipviewtcc.o +kos32-objdump -d -M intel -S -l clipviewtcc.o > clipviewtcc.asm + +2. see offset in resulting kolibri executable compared to listing (i have 0xD0) + +3. in kolibri debugger mtdbg set breakpoint to funtion address +>bp 140 +where 0x140 is 0x70 in assemly + offset 0xD0 + + +Warning !!Error. sometimes tcc dont warn about unsuccesful linking +(not found function body code). Hopefully, i fix this. + +Usually, at runtime you have crash with "Illegal cpu instruction" +In assembler code this is easy to recognize as +myaddr:E8 FC FF FF FF call myaddr+1 + +4.how to see defines +kos32-tcc.exe -E -dD null + +5.if you use GNU LD as a linker, add option -Map=hellocpp.map to ld. +Mtdbg can use resulting .map file + +6.now you can use -g option to generate .dbg file. This enables +source code level debugging with Mtdbg diff --git a/data/common/develop/tcc/include/assert.h b/data/common/develop/tcc/include/assert.h new file mode 100644 index 0000000000..e63f82a75e --- /dev/null +++ b/data/common/develop/tcc/include/assert.h @@ -0,0 +1,19 @@ +#ifndef __ASSERT_H +#define __ASSERT_H + +#ifdef NDEBUG +# define assert(a) (void)0 +#else +# define assert(a) ((a) ? (void)0 : __assert_func (__FILE__, __LINE__, #a)) +#endif + +#ifdef NDEBUG +# define TRACE(s) void(0) +#else +# define TRACE(s) (__trace_func (__FILE__, __LINE__, #s)) +#endif + +void __assert_func(char*,int,char*); +void __trace_func(char*,int,char*); + +#endif \ No newline at end of file diff --git a/data/common/develop/tcc/include/conio.h b/data/common/develop/tcc/include/conio.h new file mode 100644 index 0000000000..5c231bd7af --- /dev/null +++ b/data/common/develop/tcc/include/conio.h @@ -0,0 +1,203 @@ +/* + +This is adapded thunk for console.obj sys library +.h is equal to svn:\programs\develop\libraries\console\console_en.txt + +Adapted for tcc by Siemargl, 2016 + +*/ +#ifndef __conio_h +#define __conio_h + +#define cdecl __attribute__ ((cdecl)) +#define stdcall __attribute__ ((stdcall)) + +/* +console.obj exports the following functions +*/ +typedef unsigned int dword; /* 32-bit unsigned integer */ +typedef unsigned short word; /* 16-bit unsigned integer */ + +extern void stdcall (*con_init)(dword wnd_width, dword wnd_height, + dword scr_width, dword scr_height, const char* title); +/* Console initialization. Must be called only once. +wnd_width, wnd_height - width and height (in units of characters) of the visible +region; +scr_width, scr_height - width and height (in units of characters) of console; +Any of these four parameters can be set to -1 (=0xFFFFFFFF) +to use the library's default values; +title - console window's caption. */ + +extern void stdcall (*con_exit)(int bCloseWindow); +/* You should call this funstion at the end of the program. +If bCloseWindow is zero, the string "[Finished]" will be added to the caption of +the window and the console window will remain on the screen until the user +closes it. */ + +extern void stdcall (*con_set_title)(const char* title); +/* Set new window caption. */ + +extern void stdcall (*con_write_asciiz)(const char* str); +/* Display ASCIIZ-string to the console at the current position, shifting +the current position. */ + +extern void stdcall (*con_write_string)(const char* str, dword length); +/* Similar to con_write_asciiz, but length of the string must be given as a +separate parameter */ + +extern int cdecl (*con_printf)(const char* format, ...); +/* Standard "printf" function from ANSI C. */ + +extern dword stdcall (*con_get_flags)(void); +/* Get output flags. */ + +extern dword stdcall (*con_set_flags)(dword new_flags); +/* Set output flags. This function returns previous values. */ + +/* Flags (bitmask): */ +/* text color */ +#define CON_COLOR_BLUE 0x01 +#define CON_COLOR_GREEN 0x02 +#define CON_COLOR_RED 0x04 +#define CON_COLOR_BRIGHT 0x08 +/* background color */ +#define CON_BGR_BLUE 0x10 +#define CON_BGR_GREEN 0x20 +#define CON_BGR_RED 0x40 +#define CON_BGR_BRIGHT 0x80 +/* output controls */ +#define CON_IGNORE_SPECIALS 0x100 +/* if this flag is cleared, function interprets special characters: +10 ('\n') - next line +13 ('\r') - carriage return +8 ('\b') - backspace +9 ('\t') - tab +27 ('\033' = '\x1B') - the beginning of Esc-sequences; +otherwise, these characters will be displayed like ordinary characters. */ +/* Supported Esc-sequences: + Esc[;;m - choice of character attributes: + You can specify one, two or three codes in any order; + 0 = normal mode (white on black) + 1 = bright selection + 5 = bright background + 7 = inverse mode (black on white) + 30 = black characters + 31 = red characters + 32 = green characters + 33 = brown characters + 34 = blue characters + 35 = purple characters + 36 = turqoise characters + 37 = white characters + 40 = black background + 41 = red background + 42 = green background + 43 = brown background + 44 = blue background + 45 = purple background + 46 = turqoise background + 47 = white background + The following sequences appeared in version 5 of library: + Esc[2J - clear screen, move cursor to upper left corner + Esc[;H = Esc[;f - + move cursor to , + Esc[A - move cursor to lines up + Esc[B - move cursor to lines down + Esc[C - move cursor to positions right + Esc[D - move cursor to positions left +*/ +/* signal "console closed"; appeared in version 6; + ignored by con_set_flags */ +#define CON_WINDOW_CLOSED 0x200 +/* The default value for flags = 7. (grey text on black background) */ + +extern int stdcall (*con_get_font_height)(void); +/* Get the height of the font. */ + +extern int stdcall (*con_get_cursor_height)(void); +/* Get the height of the cursor. */ + +extern int stdcall (*con_set_cursor_height)(int new_height); +/* Set the height of the cursor. This function returns previous value. +An attempt to set the value out of the correct interval (from 0 to +font_height-1) is ignored. +Cursor with zero height isn't displayed. +Default value: - 15% from font height. */ + +extern int stdcall (*con_getch)(void); +/* Get one character from the keyboard. + +For normal characters function returns ASCII-code. For extended +characters (eg, Fx, and arrows), first function call returns 0 +and second call returns the extended code (similar to the DOS-function +input). Starting from version 7, after closing the console window, +this function returns 0. */ + +extern word stdcall (*con_getch2)(void); +/* Reads a character from the keyboard. Low byte contains the ASCII-code +(0 for extended characters), high byte - advanced code (like in BIOS +input functions). Starting from version 7, after closing the console +window, this function returns 0. */ + +extern int stdcall (*con_kbhit)(void); +/* Returns 1 if a key was pressed, 0 otherwise. To read pressed keys use +con_getch and con_getch2. Starting from version 6, after closing +the console window, this function returns 1. */ + +extern char* stdcall (*con_gets)(char* str, int n); +/* Reads a string from the keyboard. Reading is interrupted when got +"new line" character, or after reading the (n-1) characters (depending on +what comes first). In the first case the newline is also recorded in the +str. The acquired line is complemented by a null character. +Starting from version 6, the function returns a pointer to the entered +line if reading was successful, and NULL if the console window was closed. */ + +typedef int (stdcall * con_gets2_callback)(int keycode, char** pstr, int* pn, + int* ppos); + +extern char* stdcall (*con_gets2)(con_gets2_callback callback, char* str, int n); +/* Con_gets completely analogous, except that when the user +press unrecognized key, it calls the specified callback-procedure +(which may, for example, handle up / down for history and tab to enter +autocompletion). You should pass to the procedure: key code and three pointers +- to the string, to the maximum length and to the current position. +function may change the contents of string and may change the string +itself (for example, to reallocate memory for increase the limit), +maximum length, and position of the line - pointers are passed for it. +Return value: 0 = line wasn't changed 1 = line changed, you should +remove old string and display new, 2 = line changed, it is necessary +to display it; 3 = immediately exit the function. +Starting from version 6, the function returns a pointer to the entered +line with the successful reading, and NULL if the console window was closed. */ + +extern void stdcall (*con_cls)(); +/* Clear screen and set cursor at upper left corner. */ + + +extern void stdcall (*con_get_cursor_pos)(int* px, int* py); +/* Wrote current (x) coordinate of cursor to *px, and (y) to *py. */ + +extern void stdcall (*con_set_cursor_pos)(int x, int y); +/* Set the cursor position to the specified coordinates. If any of the +parameters beyond the relevant range (from 0 to 1 scr_width- +for x, from 0 to 1 for scr_height-y, scr_width scr_height and were asked if +call con_init), then the corresponding coordinate of the cursor does not change. +*/ + +extern int __console_initdll_status; +/* == 1 if dll loaded */ + +extern dword *con_dll_ver; + +extern int con_init_console_dll(void); +/* load library and link function symbols. returns 1 if error +called automatic in printf, otherwise, see __console_initdll_status +*/ + +extern int con_init_console_dll_param(dword wnd_width, dword wnd_height, + dword scr_width, dword scr_height, const char* title); +/* work as con_init_console_dll, but call con_init with params +*/ + + +#endif diff --git a/data/common/develop/tcc/include/ctype.h b/data/common/develop/tcc/include/ctype.h new file mode 100644 index 0000000000..c6fd00cd1a --- /dev/null +++ b/data/common/develop/tcc/include/ctype.h @@ -0,0 +1,41 @@ +#ifndef _CTYPE_H +#define _CTYPE_H +/* +** All character classification functions except isascii(). +** Integer argument (c) must be in ASCII range (0-127) for +** dependable answers. +*/ + +#define __ALNUM 1 +#define __ALPHA 2 +#define __CNTRL 4 +#define __DIGIT 8 +#define __GRAPH 16 +#define __LOWER 32 +#define __PRINT 64 +#define __PUNCT 128 +#define __BLANK 256 +#define __UPPER 512 +#define __XDIGIT 1024 + +extern unsigned short __is[129]; + +#define isalnum(c)(__is[c+1] & __ALNUM ) /* 'a'-'z', 'A'-'Z', '0'-'9' */ +#define isalpha(c)(__is[c+1] & __ALPHA ) /* 'a'-'z', 'A'-'Z' */ +#define iscntrl(c)(__is[c+1] & __CNTRL ) /* 0-31, 127 */ +#define isdigit(c)(__is[c+1] & __DIGIT ) /* '0'-'9' */ +#define isgraph(c)(__is[c+1] & __GRAPH ) /* '!'-'~' */ +#define islower(c)(__is[c+1] & __LOWER ) /* 'a'-'z' */ +#define isprint(c)(__is[c+1] & __PRINT ) /* ' '-'~' */ +#define ispunct(c)(__is[c+1] & __PUNCT ) /* !alnum && !cntrl && !space */ +#define isspace(c)(__is[c+1] & __BLANK ) /* HT, LF, VT, FF, CR, ' ' */ +#define isupper(c)(__is[c+1] & __UPPER ) /* 'A'-'Z' */ +#define isxdigit(c)(__is[c+1] & __XDIGIT) /* '0'-'9', 'a'-'f', 'A'-'F' */ + +#define isascii(c) (!((c)&(~0x7f))) +#define toascii(c) ((c)&0x7f) + +extern unsigned char tolower(unsigned char c); +extern unsigned char toupper(unsigned char c); + +#endif \ No newline at end of file diff --git a/data/common/develop/tcc/include/errno.h b/data/common/develop/tcc/include/errno.h new file mode 100644 index 0000000000..b77b5f0c7b --- /dev/null +++ b/data/common/develop/tcc/include/errno.h @@ -0,0 +1,6 @@ +#ifndef _ERRNO_H +#define _ERRNO_H + +#include + +#endif \ No newline at end of file diff --git a/data/common/develop/tcc/include/float.h b/data/common/develop/tcc/include/float.h new file mode 100644 index 0000000000..a2b4ed26a0 --- /dev/null +++ b/data/common/develop/tcc/include/float.h @@ -0,0 +1,65 @@ +#ifndef _FLOAT_H_ +#define _FLOAT_H_ + +#define FLT_RADIX 2 + +/* IEEE float */ +#define FLT_MANT_DIG 24 +#define FLT_DIG 6 +#define FLT_ROUNDS 1 +#define FLT_EPSILON 1.19209290e-07F +#define FLT_MIN_EXP (-125) +#define FLT_MIN 1.17549435e-38F +#define FLT_MIN_10_EXP (-37) +#define FLT_MAX_EXP 128 +#define FLT_MAX 3.40282347e+38F +#define FLT_MAX_10_EXP 38 + +/* IEEE double */ +#define DBL_MANT_DIG 53 +#define DBL_DIG 15 +#define DBL_EPSILON 2.2204460492503131e-16 +#define DBL_MIN_EXP (-1021) +#define DBL_MIN 2.2250738585072014e-308 +#define DBL_MIN_10_EXP (-307) +#define DBL_MAX_EXP 1024 +#define DBL_MAX 1.7976931348623157e+308 +#define DBL_MAX_10_EXP 308 + +/* horrible intel long double */ +#if defined __i386__ || defined __x86_64__ + +#define LDBL_MANT_DIG 64 +#define LDBL_DIG 18 +#define LDBL_EPSILON 1.08420217248550443401e-19L +#define LDBL_MIN_EXP (-16381) +#define LDBL_MIN 3.36210314311209350626e-4932L +#define LDBL_MIN_10_EXP (-4931) +#define LDBL_MAX_EXP 16384 +#define LDBL_MAX 1.18973149535723176502e+4932L +#define LDBL_MAX_10_EXP 4932 + +#else + +/* same as IEEE double */ +#define LDBL_MANT_DIG 53 +#define LDBL_DIG 15 +#define LDBL_EPSILON 2.2204460492503131e-16 +#define LDBL_MIN_EXP (-1021) +#define LDBL_MIN 2.2250738585072014e-308 +#define LDBL_MIN_10_EXP (-307) +#define LDBL_MAX_EXP 1024 +#define LDBL_MAX 1.7976931348623157e+308 +#define LDBL_MAX_10_EXP 308 + +#endif + +#ifndef NAN +# define NAN (__nan__) +#endif + +#ifndef INFINITY +# define INFINITY (__inf__) +#endif + +#endif /* _FLOAT_H_ */ diff --git a/data/common/develop/tcc/include/kolibrisys.h b/data/common/develop/tcc/include/kolibrisys.h new file mode 100644 index 0000000000..66b3a26a0a --- /dev/null +++ b/data/common/develop/tcc/include/kolibrisys.h @@ -0,0 +1,195 @@ +#ifndef kolibrisys_h +#define kolibrisys_h +/* +#ifdef GNUC +#define stdcall __stdcall +#define cdecl __cdecl +#else +#define stdcall ((__stdcall)) +#define cdecl ((__cdecl)) +#endif +*/ +//#ifdef GNUC +//#define stdcall __stdcall +//#else +#define cdecl __attribute__ ((cdecl)) +#define stdcall __attribute__ ((stdcall)) +//#endif + +typedef unsigned int dword; +typedef unsigned char byte; +typedef unsigned short word; + +typedef unsigned int fpos_t; +typedef unsigned int size_t; + +typedef struct process_table_entry{ + int cpu_usage; //+0 + int window_pos_info; //+4 + short int reserved1; //+8 + char name[12]; //+10 + int memstart; //+22 + int memused; //+26 + int pid; //+30 + int winx_start; //+34 + int winy_start; //+38 + int winx_size; //+42 + int winy_size; //+46 + short int slot_info; //+50 + short int reserved2; //+52 + int clientx; //+54 + int clienty; //+58 + int clientwidth; //+62 + int clientheight; //+66 + unsigned char window_state;//+70 + char reserved3[1024-71]; //+71 +}__attribute__((packed)); + +//----------------------------------------------------------------------------------- +//------------------------KolibriOS system acces to files---------------------------- +//----------------------------------------------------------------------------------- +extern dword stdcall _ksys_get_filesize(char *filename); +extern dword stdcall _ksys_readfile(char *filename,dword pos,dword blocksize,void *data, int *preadbytes); +extern dword stdcall _ksys_rewritefile(char *filename,dword blocksize,void *data); +extern dword stdcall _ksys_appendtofile(char *filename,dword pos,dword blocksize,void *data); +//----------------------------------------------------------------------------------- + +//----------------------Run program--------------------------------------------------- +extern void stdcall _ksys_run_program(char* filename,char* parameters); +//------------------------------------------------------------------------------------ + +//--------------------Debug output--------------------------------------------------- +extern void stdcall _ksys_debug_out(int c); +extern void stdcall debug_out_str(char* str); +//----------------------------------------------------------------------------------- + +//--------------------------Mouse state---------------------------------------------- +extern int stdcall _ksys_GetMouseXY(void); +extern int stdcall _ksys_GetMouseButtonsState(void); +//----------------------------------------------------------------------------------- + +//--------------------------get skin height------------------------------------------ +extern int stdcall _ksys_get_skin_height(void); +//----------------------------------------------------------------------------------- + +//----------------------------background--------------------------------------------- +extern void stdcall _ksys_set_background_size(int xsize,int ysize); +extern void stdcall _ksys_write_background_mem(int pos,int color); +extern void stdcall _ksys_draw_background(void); +extern void stdcall _ksys_set_background_draw_type(int type); +extern void stdcall _ksys_background_blockmove(void* src,int bgr_pos, int count); +//----------------------------------------------------------------------------------- + +//----------------------------functionf for draw window,lines.bar,etc.--------------- +extern void stdcall _ksys_draw_window(int xcoord,int ycoord, int xsize, + int ysize,int workcolor,int type, + int captioncolor,int windowtype,int bordercolor); +extern void stdcall _ksys_window_redraw(int status); +extern int stdcall _ksys_putpixel(int x,int y,int color); +extern void stdcall _ksys_draw_bar(int x, int y, int xsize, int ysize, int color); +extern void stdcall _ksys_line(int x1,int y1,int x2,int y2,int color); +extern void stdcall _ksys_putimage(int x, int y, int xsize, int ysize, void* image); +//----------------------------------------------------------------------------------- + +//--------------------------write text(system fonts 6x9)----------------------------- +extern void stdcall _ksys_write_text(int x,int y,int color,char* text,int len); +//----------------------------------------------------------------------------------- + +//------------------ get screen size and bytes per pixel--------------------------- +extern int stdcall _ksys_get_screen_size(int* x,int* y); +extern void stdcall _ksys_dga_get_resolution(int* xres, int* yres, int* bpp, int* bpscan); +//----------------------------------------------------------------------------------- + +//-------------------------------craete thread--------------------------------------- +extern void* stdcall _ksys_start_thread(void (* func_ptr)(void),int stack_size,int* pid); +//----------------------------------------------------------------------------------- + +//------------------system button(Old function. Better use libGUI functions.)-------- +extern void stdcall _ksys_make_button(int x, int y, int xsize, int ysize, int id, int color); +extern int stdcall _ksys_get_button_id(void); //get state of system button +//------------------------------------------------------------------------------------ + +//----------------------system clock(in 1/100 sec.) and date-------------------------- +extern int stdcall _ksys_get_system_clock(void); +extern int stdcall _ksys_get_date(void); +//------------------------------------------------------------------------------------ + +//-------------------------system delay(in 1/100 sec.)------------------------------- +extern void stdcall _ksys_delay(int m); +//----------------------------------------------------------------------------------- + +//------------------------system events---------------------------------------------- +extern int stdcall _ksys_wait_for_event_infinite(void); +extern int stdcall _ksys_check_for_event(void); +extern int stdcall _ksys_wait_for_event(int time); +extern void stdcall _ksys_set_wanted_events(int ev); +//----------------------------------------------------------------------------------- + +//----------------------------system exit program------------------------------------ +extern void stdcall _ksys_exit(void); +//----------------------------------------------------------------------------------- + +//-----------------------------system IPC send message------------------------------- +extern void stdcall _ksys_send_message(int pid, void* msg, int size); +//----------------------------------------------------------------------------------- + +//---------------------------system work with IRQ from user mode--------------------- +extern void stdcall _ksys_define_receive_area(void* area, int size); +extern int stdcall _ksys_get_irq_owner(int irq); +extern int stdcall _ksys_get_data_read_by_irq(int irq, int* size, void* data); +extern int stdcall _ksys_send_data_to_device(int port, unsigned char val); +extern int stdcall _ksys_receive_data_from_device(int port,unsigned char* data); +extern void stdcall _ksys_program_irq(void* intrtable, int irq); +extern void stdcall _ksys_reserve_irq(int irq); +extern void stdcall _ksys_free_irq(int irq); +//---------------------------------------------------------------------------------- + +//----------------------------system reserve diapason of ports---------------------- +extern int stdcall _ksys_reserve_port_area(int start,int end); +extern int stdcall _ksys_free_port_area(int start,int end); +//---------------------------------------------------------------------------------- + +//-------------functions get key and set keyboard mode------------------------------ +extern int stdcall _ksys_get_key(void); +extern void stdcall _ksys_set_keyboard_mode(int mode); +//---------------------------------------------------------------------------------- + +//--------------simple work with MPU401 sound device--------------------------------- +extern void stdcall _ksys_midi_reset(void); +extern void stdcall _ksys_midi_send(int data); +//----------------------------------------------------------------------------------- + +//--------------------------acces to PCI BUS from user mode--------------------------- +extern int stdcall _ksys_get_pci_version(void); +extern int stdcall _ksys_get_last_pci_bus(void); +extern int stdcall _ksys_get_pci_access_mechanism(void); +extern int stdcall _ksys_pci_read_config_byte(int bus,int dev,int fn,int reg); +extern int stdcall _ksys_pci_read_config_word(int bus,int dev,int fn,int reg); +extern int stdcall _ksys_pci_read_config_dword(int bus,int dev,int fn,int reg); +extern int stdcall _ksys_pci_write_config_byte(int bus,int dev,int fn,int reg,int value); +extern int stdcall _ksys_pci_write_config_word(int bus,int dev,int fn,int reg,int value); +extern int stdcall _ksys_pci_write_config_value(int bus,int dev,int fn,int reg,int value); +//-------------------------------------------------------------------------------------- + +//------------------------Process information-------------------------------------- +extern int stdcall _ksys_get_process_table(struct process_table_entry *proctab,int pid); //if pid=-1 than get info about him. +//--------------------------------------------------------------------------------- + +//-----------------Old functions for work with sound(Sound Blaster only).--------- +extern void stdcall _ksys_sound_load_block(void* blockptr); +extern void stdcall _ksys_sound_play_block(void); +extern void stdcall _ksys_sound_set_channels(int channels); +extern void stdcall _ksys_sound_set_data_size(int size); +extern void stdcall _ksys_sound_set_frequency(int frequency); +//-------------------------------------------------------------------------------- + +//------------------------------system speaker(integrated speaker)---------------- +extern void stdcall _ksys_sound_speaker_play(void* data); +//-------------------------------------------------------------------------------- + +//------------------function for work with Dinamic Link Librarys(DLL)-------------- +extern dword* stdcall _ksys_cofflib_load(char* name); +extern char* stdcall _ksys_cofflib_getproc(void* exp,char* sz_name); +//--------------------------------------------------------------------------------- + +#endif diff --git a/data/common/develop/tcc/include/kos32sys1.h b/data/common/develop/tcc/include/kos32sys1.h new file mode 100644 index 0000000000..55c3f9d5a4 --- /dev/null +++ b/data/common/develop/tcc/include/kos32sys1.h @@ -0,0 +1,800 @@ +#ifndef __KOS_32_SYS_H__ +#define __KOS_32_SYS_H__ + +// file header taken from newlib +// added many sys functions, compatible with tcc + +//#include +//#include +#include +#include +typedef unsigned int uint32_t; +typedef int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short int uint16_t; +typedef unsigned long long uint64_t; + +#ifdef __cplusplus +extern "C" { +#endif + +//#ifdef CONFIG_DEBUF +// #define DBG(format,...) printf(format,##__VA_ARGS__) +//#else +// #define DBG(format,...) +//#endif + +#define TYPE_3_BORDER_WIDTH 5 +#define WIN_STATE_MINIMIZED 0x02 +#define WIN_STATE_ROLLED 0x04 +#define POS_SCREEN 0 +#define POS_WINDOW 1 + +#define IPC_NOBUFFER 1 +#define IPC_LOCKED 2 +#define IPC_OVERFLOW 3 +#define IPC_NOPID 4 + +#define SHM_OPEN 0x00 +#define SHM_OPEN_ALWAYS 0x04 +#define SHM_CREATE 0x08 +#define SHM_READ 0x00 +#define SHM_WRITE 0x01 + + + +typedef unsigned int color_t; + + +typedef union __attribute__((packed)) pos_t +{ + uint32_t val; + struct + { + short x; + short y; + }; +} pos_t; + + +typedef union __attribute__((packed)) oskey_t +{ + uint32_t val; + struct + { + uint8_t state; + uint8_t code; + uint16_t ctrl_key; + }; +} oskey_t; + +typedef struct +{ + unsigned handle; + unsigned io_code; + void *input; + int inp_size; + void *output; + int out_size; +}ioctl_t; + +typedef union +{ + struct + { + void *data; + size_t size; + } x; + unsigned long long raw; +}ufile_t; + +struct kolibri_system_colors { + color_t frame_area; + color_t grab_bar; + color_t grab_bar_button; + color_t grab_button_text; + color_t grab_text; + color_t work_area; + color_t work_button; + color_t work_button_text; + color_t work_text; + color_t work_graph; +}; + + +struct blit_call +{ + int dstx; + int dsty; + int w; + int h; + + int srcx; + int srcy; + int srcw; + int srch; + + void *bitmap; + int stride; +}; + +struct ipc_message +{ + uint32_t pid; // PID of sending thread + uint32_t datalen; // data bytes + char data[0]; // data begin +}; + +struct ipc_buffer +{ + uint32_t lock; // nonzero is locked + uint32_t used; // used bytes in buffer + struct ipc_message data[0]; // data begin +}; + +static inline void begin_draw(void) +{ + __asm__ __volatile__( + "int $0x40" ::"a"(12),"b"(1)); +}; + +static inline +void end_draw(void) +{ + __asm__ __volatile__( + "int $0x40" ::"a"(12),"b"(2)); +}; + +static inline +void sys_create_window(int x, int y, int w, int h, const char *name, + color_t workcolor, uint32_t style) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(0), + "b"((x << 16) | ((w-1) & 0xFFFF)), + "c"((y << 16) | ((h-1) & 0xFFFF)), + "d"((style << 24) | (workcolor & 0xFFFFFF)), + "D"(name), + "S"(0) : "memory"); +}; + +static inline +void define_button(uint32_t x_w, uint32_t y_h, uint32_t id, uint32_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(8), + "b"(x_w), + "c"(y_h), + "d"(id), + "S"(color)); +}; + +static inline +void draw_line(int xs, int ys, int xe, int ye, color_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(38), "d"(color), + "b"((xs << 16) | xe), + "c"((ys << 16) | ye)); +} + +static inline +void draw_bar(int x, int y, int w, int h, color_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(13), "d"(color), + "b"((x << 16) | w), + "c"((y << 16) | h)); +} + +static inline +void draw_bitmap(void *bitmap, int x, int y, int w, int h) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(7), "b"(bitmap), + "c"((w << 16) | h), + "d"((x << 16) | y)); +} + +static inline +void draw_text_sys(const char *text, int x, int y, int len, color_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(4),"d"(text), + "b"((x << 16) | y), + "S"(len),"c"(color) + :"memory"); +} + +static inline +uint32_t get_skin_height(void) +{ + uint32_t height; + + __asm__ __volatile__( + "int $0x40 \n\t" + :"=a"(height) + :"a"(48),"b"(4)); + return height; +}; + +static inline +pos_t get_mouse_pos(int origin) +{ + pos_t val; + + __asm__ __volatile__( + "int $0x40 \n\t" + "rol $16, %%eax" + :"=a"(val) + :"a"(37),"b"(origin)); + return val; +} + +static inline +uint32_t get_mouse_buttons(void) +{ + uint32_t val; + + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(37),"b"(2)); + return val; +}; + +static inline +uint32_t get_mouse_wheels(void) +{ + uint32_t val; + + __asm__ __volatile__( + "int $0x40 \n\t" + :"=a"(val) + :"a"(37),"b"(7)); + return val; +}; + +static inline uint32_t load_cursor(void *path, uint32_t flags) +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(37), "b"(4), "c"(path), "d"(flags)); + return val; +} + +static inline uint32_t set_cursor(uint32_t cursor) +{ + uint32_t old; + __asm__ __volatile__( + "int $0x40" + :"=a"(old) + :"a"(37), "b"(5), "c"(cursor)); + return old; +}; + +static inline int destroy_cursor(uint32_t cursor) +{ + int ret; + __asm__ __volatile__( + "int $0x40" + :"=a"(ret) + :"a"(37), "b"(6), "c"(cursor) + :"memory"); + return ret; +}; + + +static inline +uint32_t wait_for_event(uint32_t time) +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(23), "b"(time)); + return val; +}; + +static inline uint32_t check_os_event() +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(11)); + return val; +}; + +static inline uint32_t get_os_event() +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(10)); + return val; +}; + +static inline +uint32_t get_tick_count(void) +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(26),"b"(9)); + return val; +}; + +static inline +uint64_t get_ns_count(void) +{ + uint64_t val; + __asm__ __volatile__( + "int $0x40" + :"=A"(val) + :"a"(26), "b"(10)); + return val; +}; + +static inline +oskey_t get_key(void) +{ + oskey_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(2)); + return val; +} + +static inline +uint32_t get_os_button() +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(17)); + return val>>8; +}; + +static inline uint32_t get_service(char *name) +{ + uint32_t retval = 0; + __asm__ __volatile__( + "int $0x40" + :"=a"(retval) + :"a"(68),"b"(16),"c"(name) + :"memory"); + + return retval; +}; + +static inline int call_service(ioctl_t *io) +{ + int retval; + + __asm__ __volatile__( + "int $0x40" + :"=a"(retval) + :"a"(68),"b"(17),"c"(io) + :"memory","cc"); + + return retval; +}; + + +static inline void yield(void) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(68), "b"(1)); +}; + +static inline void delay(uint32_t time) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(5), "b"(time) + :"memory"); +}; + +static inline +void *user_alloc(size_t size) +{ + void *val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(68),"b"(12),"c"(size)); + return val; +} + +static inline +int user_free(void *mem) +{ + int val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(68),"b"(13),"c"(mem)); + return val; +} + +static inline +void* user_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; +}; + +static inline +int *user_unmap(void *base, size_t offset, size_t size) +{ + int *val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(68),"b"(26),"c"(base),"d"(offset),"S"(size)); + return val; +}; + +static inline ufile_t load_file(const char *path) +{ + ufile_t uf; + + __asm__ __volatile__ ( + "int $0x40" + :"=A"(uf.raw) + :"a" (68), "b"(27),"c"(path)); + + return uf; +}; + +static inline int GetScreenSize() +{ + int retval; + + __asm__ __volatile__( + "int $0x40" + :"=a"(retval) + :"a"(61), "b"(1)); + return retval; +} + + +static inline void get_proc_info(char *info) +{ + __asm__ __volatile__( + "int $0x40" + : + :"a"(9), "b"(info), "c"(-1) + :"memory"); +}; + +static inline void Blit(void *bitmap, int dst_x, int dst_y, + int src_x, int src_y, int w, int h, + int src_w, int src_h, int stride) +{ + volatile struct blit_call bc; + + bc.dstx = dst_x; + bc.dsty = dst_y; + bc.w = w; + bc.h = h; + bc.srcx = src_x; + bc.srcy = src_y; + bc.srcw = src_w; + bc.srch = src_h; + bc.stride = stride; + bc.bitmap = bitmap; + + __asm__ __volatile__( + "int $0x40" + ::"a"(73),"b"(0),"c"(&bc.dstx)); +}; + + +// newlib exclusive +#ifndef __TINYC__ +int create_thread(int (*proc)(void *param), void *param, int stack_size); + +void* load_library(const char *name); + +void* get_proc_address(void *handle, const char *proc_name); + +void enumerate_libraries(int (*callback)(void *handle, const char* name, + uint32_t base, uint32_t size, void *user_data), + void *user_data); +#endif + +// May be next section need to be added in newlibc + +enum KOLIBRI_GUI_EVENTS { + KOLIBRI_EVENT_NONE = 0, /* Event queue is empty */ + KOLIBRI_EVENT_REDRAW = 1, /* Window and window elements should be redrawn */ + KOLIBRI_EVENT_KEY = 2, /* A key on the keyboard was pressed */ + KOLIBRI_EVENT_BUTTON = 3, /* A button was clicked with the mouse */ + KOLIBRI_EVENT_DESKTOP = 5, /* Desktop redraw finished */ + KOLIBRI_EVENT_MOUSE = 6, /* Mouse activity (movement, button press) was detected */ + KOLIBRI_EVENT_IPC = 7, /* Interprocess communication notify */ + KOLIBRI_EVENT_NETWORK = 8, /* Network event */ + KOLIBRI_EVENT_DEBUG = 9, /* Debug subsystem event */ + KOLIBRI_EVENT_IRQBEGIN = 16 /* 16..31 IRQ0..IRQ15 interrupt =IRQBEGIN+IRQn */ +}; + + +// copied from /programs/system/shell/system/kolibri.c +// fn's returned -1 as syserror, 1 as error, 0 as OK +static inline +int kol_clip_num() +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(0)); + return val; +} + +static inline +char* kol_clip_get(int n) +// returned buffer must be freed by user_free() +{ + register char* val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(1), "c"(n)); + return val; +} + +static inline +int kol_clip_set(int n, char buffer[]) +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(2), "c"(n), "d"(buffer)); + return val; +} + +static inline +int kol_clip_pop() +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(3)); + return val; +} + +static inline +int kol_clip_unlock() +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(4)); + return val; +} + +static inline void get_system_colors(struct kolibri_system_colors *color_table) +{ + __asm__ volatile ("int $0x40" + : + :"a"(48),"b"(3),"c"(color_table),"d"(40) + ); + + /* color_table should point to the system color table */ +} + +static inline void debug_board_write_byte(const char ch){ + __asm__ __volatile__( + "int $0x40" + : + :"a"(63), "b"(1), "c"(ch)); +} + + +static inline void draw_number_sys(int32_t number, int x, int y, int len, color_t color){ + register uint32_t fmt; + fmt = len << 16 | 0x80000000; // no leading zeros + width +// fmt = len << 16 | 0x00000000; // leading zeros + width + __asm__ __volatile__( + "int $0x40" + : + :"a"(47), "b"(fmt), "c"(number), "d"((x << 16) | y), "S"(color)); +} + +static inline +uint32_t get_mouse_eventstate(void) +{ + uint32_t val; + + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(37),"b"(3)); + return val; +}; + +static inline +uint32_t set_event_mask(uint32_t mask) +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(40), "b"(mask)); + return val; +} + +typedef void (*thread_proc)(void*); + +static inline +int start_thread(thread_proc proc, char* stack_top) +{ + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(51), "b"(1), "c"(proc), "d"(stack_top)); + return val; +} + +static inline +void kos_exit() +{ + asm volatile ("int $0x40"::"a"(-1)); +} + +static inline void focus_window(int slot){ + asm volatile ("int $0x40"::"a"(18), "b"(3), "c"(slot)); +} + +static inline int get_thread_slot(int tid){ + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(18), "b"(21), "c"(tid)); + return val; +} + +static inline void set_current_folder(char* dir){ + asm volatile ("int $0x40"::"a"(30), "b"(1), "c"(dir)); +} + +static inline int get_current_folder(char* buf, int bufsize){ + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(30), "b"(2), "c"(buf), "d"(bufsize)); + return val; +} + +static inline +void ipc_set_area(void* buf, int bufsize){ + asm volatile ("int $0x40"::"a"(60), "b"(1), "c"(buf), "d"(bufsize)); +} + +static inline +int ipc_send_message(int pid_reciever, void *data, int datalen) { + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(60), "b"(2), "c"(pid_reciever), "d"(data), "S"(datalen)); + return val; +} + +static inline +void* shm_open(char *shm_name, int msize, int flags, int *retsz){ + register int val, cod; + asm volatile ("int $0x40":"=a"(val),"=d"(cod):"a"(68), "b"(22), "c"(shm_name), "d"(msize), "S"(flags)); + + if(retsz) *retsz = cod; // errcode if NULL or memsize when open + return (void*)val; +} + +static inline +void shm_close(char *shm_name){ + asm volatile ("int $0x40"::"a"(68), "b"(23), "c"(shm_name)); +} + +static inline +int start_app(char *app_name, char *args){ + struct file_op_t + { + uint32_t fn; + uint32_t flags; + char* args; + uint32_t res1, res2; + char zero; + char* app_name __attribute__((packed)); + } file_op; + memset(&file_op, 0, sizeof(file_op)); + file_op.fn = 7; + file_op.args = args; + file_op.app_name = app_name; + + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(70), "b"(&file_op)); + + return val; +} + + +/* +static inline char *getcwd(char *buf, size_t size) +{ + int rc = get_current_folder(buf, size); + if (rc > size) + { + errno = ERANGE; + return 0; + } + else + return buf; +} +*/ +// end section + + + +//added nonstatic inline because incomfortabre stepping in in debugger +void __attribute__ ((noinline)) debug_board_write_str(const char* str); +void __attribute__ ((noinline)) debug_board_printf(const char *format,...); + +/* copy body to only one project file +void __attribute__ ((noinline)) debug_board_write_str(const char* str){ + while(*str) + debug_board_write_byte(*str++); +} + +void __attribute__ ((noinline)) debug_board_printf(const char *format,...) +{ + va_list ap; + char log_board[300]; + + va_start (ap, format); + vsnprintf(log_board, sizeof log_board, format, ap); + va_end(ap); + debug_board_write_str(log_board); +} +*/ + + + +// TinyC don't support aliasing of static inline funcs +#ifndef __TINYC__ +static inline void BeginDraw(void) __attribute__ ((alias ("begin_draw"))); +static inline void EndDraw(void) __attribute__ ((alias ("end_draw"))); +static inline void DrawWindow(int x, int y, int w, int h, const char *name, + color_t workcolor, uint32_t style) + __attribute__ ((alias ("sys_create_window"))); +static inline void DefineButton(void) __attribute__ ((alias ("define_button"))); +static inline void DrawLine(int xs, int ys, int xe, int ye, color_t color) + __attribute__ ((alias ("draw_line"))); +static inline void DrawBar(int x, int y, int w, int h, color_t color) + __attribute__ ((alias ("draw_bar"))); +static inline void DrawBitmap(void *bitmap, int x, int y, int w, int h) + __attribute__ ((alias ("draw_bitmap"))); +static inline uint32_t GetSkinHeight(void) __attribute__ ((alias ("get_skin_height"))); +static inline pos_t GetMousePos(int origin) __attribute__ ((alias ("get_mouse_pos"))); +static inline uint32_t GetMouseButtons(void) __attribute__ ((alias ("get_mouse_buttons"))); +static inline uint32_t GetMouseWheels(void) __attribute__ ((alias ("get_mouse_wheels"))); +static inline uint32_t LoadCursor(void *path, uint32_t flags) __attribute__ ((alias ("load_cursor"))); +static inline uint32_t SetCursor(uint32_t cursor) __attribute__ ((alias ("set_cursor"))); +static inline int DestroyCursor(uint32_t cursor) __attribute__ ((alias ("destroy_cursor"))); +static inline uint32_t GetOsEvent(void) __attribute__ ((alias ("get_os_event"))); +static inline void *UserAlloc(size_t size) __attribute__ ((alias ("user_alloc"))); +static inline int UserFree(void *mem) __attribute__ ((alias ("user_free"))); +static inline void* UserRealloc(void *mem, size_t size) __attribute__ ((alias ("user_realloc"))); +static inline int *UserUnmap(void *base, size_t offset, size_t size) __attribute__ ((alias ("user_unmap"))); +static inline ufile_t LoadFile(const char *path) __attribute__ ((alias ("load_file"))); +static inline void GetProcInfo(char *info) __attribute__ ((alias ("get_proc_info"))); +#endif + +#ifdef __cplusplus +} +#endif + + +#endif + + + + + diff --git a/data/common/develop/tcc/include/kos32sys1beta.h b/data/common/develop/tcc/include/kos32sys1beta.h new file mode 100644 index 0000000000..a2f03ef2b7 --- /dev/null +++ b/data/common/develop/tcc/include/kos32sys1beta.h @@ -0,0 +1,994 @@ +#ifndef __KOS_32_SYS_H__ +#define __KOS_32_SYS_H__ + +// file header taken from newlib +// added many sys functions, compatible with tcc +// with gcc USE gcc -mno-ms-bitfields!!! + + +//#include +//#include +#include +#include +typedef unsigned int uint32_t; +typedef int int32_t; +typedef unsigned char uint8_t; +typedef unsigned short int uint16_t; +typedef unsigned long long uint64_t; + +#ifdef __cplusplus +extern "C" { +#endif + +//#ifdef CONFIG_DEBUF +// #define DBG(format,...) printf(format,##__VA_ARGS__) +//#else +// #define DBG(format,...) +//#endif + +#define TYPE_3_BORDER_WIDTH 5 +#define WIN_STATE_MINIMIZED 0x02 +#define WIN_STATE_ROLLED 0x04 +#define POS_SCREEN 0 +#define POS_WINDOW 1 + +#define IPC_NOBUFFER 1 +#define IPC_LOCKED 2 +#define IPC_OVERFLOW 3 +#define IPC_NOPID 4 + +#define SHM_OPEN 0x00 +#define SHM_OPEN_ALWAYS 0x04 +#define SHM_CREATE 0x08 +#define SHM_READ 0x00 +#define SHM_WRITE 0x01 + + +typedef unsigned int color_t; + + +typedef union __attribute__((packed)) pos_t +{ + uint32_t val; + struct + { + short x; + short y; + }; +} pos_t; + + +typedef union __attribute__((packed)) oskey_t +{ + uint32_t val; + struct + { + uint8_t state; + uint8_t code; + uint16_t ctrl_key; + }; +} oskey_t; + +typedef struct +{ + unsigned handle; + unsigned io_code; + void *input; + int inp_size; + void *output; + int out_size; +}ioctl_t; + +typedef union +{ + struct + { + void *data; + size_t size; + } x; + unsigned long long raw; +}ufile_t; + +struct kolibri_system_colors { + color_t frame_area; + color_t grab_bar; + color_t grab_bar_button; + color_t grab_button_text; + color_t grab_text; + color_t work_area; + color_t work_button; + color_t work_button_text; + color_t work_text; + color_t work_graph; +}; + + +struct blit_call +{ + int dstx; + int dsty; + int w; + int h; + + int srcx; + int srcy; + int srcw; + int srch; + + void *bitmap; + int stride; +}; + +struct ipc_message +{ + uint32_t pid; // PID of sending thread + uint32_t datalen; // data bytes + char data[0]; // data begin +}; + +struct ipc_buffer +{ + uint32_t lock; // nonzero is locked + uint32_t used; // used bytes in buffer + struct ipc_message data[0]; // data begin +}; + + +typedef struct __attribute__((packed)) file_op_t +{ + uint32_t fn; + uint32_t flags; + char* args; + uint32_t res1, res2; + char zero; + char* app_name +#ifdef __TINYC__ + __attribute__((packed)) +#endif +; +} file_op_t; + + +static inline void begin_draw(void) +{ + __asm__ __volatile__( + "int $0x40" ::"a"(12),"b"(1)); +}; + +static inline +void end_draw(void) +{ + __asm__ __volatile__( + "int $0x40" ::"a"(12),"b"(2)); +}; + +static inline +void sys_create_window(int x, int y, int w, int h, const char *name, + color_t workcolor, uint32_t style) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(0), + "b"((x << 16) | ((w-1) & 0xFFFF)), + "c"((y << 16) | ((h-1) & 0xFFFF)), + "d"((style << 24) | (workcolor & 0xFFFFFF)), + "D"(name), + "S"(0) : "memory"); +}; + +static inline +void define_button(uint32_t x_w, uint32_t y_h, uint32_t id, uint32_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(8), + "b"(x_w), + "c"(y_h), + "d"(id), + "S"(color)); +}; + +static inline +void draw_line(int xs, int ys, int xe, int ye, color_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(38), "d"(color), + "b"((xs << 16) | xe), + "c"((ys << 16) | ye)); +} + +static inline +void draw_bar(int x, int y, int w, int h, color_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(13), "d"(color), + "b"((x << 16) | w), + "c"((y << 16) | h)); +} + +static inline +void draw_bitmap(void *bitmap, int x, int y, int w, int h) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(7), "b"(bitmap), + "c"((w << 16) | h), + "d"((x << 16) | y)); +} + +static inline +void draw_text_sys(const char *text, int x, int y, int len, color_t color) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(4),"d"(text), + "b"((x << 16) | y), + "S"(len),"c"(color) + :"memory"); +} + +static inline +uint32_t get_skin_height(void) +{ + uint32_t height; + + __asm__ __volatile__( + "int $0x40 \n\t" + :"=a"(height) + :"a"(48),"b"(4)); + return height; +}; + +static inline +pos_t get_mouse_pos(int origin) +{ + pos_t val; + + __asm__ __volatile__( + "int $0x40 \n\t" + "rol $16, %%eax" + :"=a"(val) + :"a"(37),"b"(origin)); + return val; +} + +static inline +uint32_t get_mouse_buttons(void) +{ + uint32_t val; + + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(37),"b"(2)); + return val; +}; + +static inline +uint32_t get_mouse_wheels(void) +{ + uint32_t val; + + __asm__ __volatile__( + "int $0x40 \n\t" + :"=a"(val) + :"a"(37),"b"(7)); + return val; +}; + +static inline uint32_t load_cursor(void *path, uint32_t flags) +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(37), "b"(4), "c"(path), "d"(flags)); + return val; +} + +static inline uint32_t set_cursor(uint32_t cursor) +{ + uint32_t old; + __asm__ __volatile__( + "int $0x40" + :"=a"(old) + :"a"(37), "b"(5), "c"(cursor)); + return old; +}; + +static inline int destroy_cursor(uint32_t cursor) +{ + int ret; + __asm__ __volatile__( + "int $0x40" + :"=a"(ret) + :"a"(37), "b"(6), "c"(cursor) + :"memory"); + return ret; +}; + + +static inline +uint32_t wait_for_event(uint32_t time) +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(23), "b"(time)); + return val; +}; + +static inline uint32_t check_os_event() +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(11)); + return val; +}; + +static inline uint32_t get_os_event() +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(10)); + return val; +}; + +static inline +uint32_t get_tick_count(void) +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(26),"b"(9)); + return val; +}; + +static inline +uint64_t get_ns_count(void) +{ + uint64_t val; + __asm__ __volatile__( + "int $0x40" + :"=A"(val) + :"a"(26), "b"(10)); + return val; +}; + +static inline +oskey_t get_key(void) +{ + oskey_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(2)); + return val; +} + +static inline +uint32_t get_os_button() +{ + uint32_t val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(17)); + return val>>8; +}; + +static inline uint32_t get_service(char *name) +{ + uint32_t retval = 0; + __asm__ __volatile__( + "int $0x40" + :"=a"(retval) + :"a"(68),"b"(16),"c"(name) + :"memory"); + + return retval; +}; + +static inline int call_service(ioctl_t *io) +{ + int retval; + + __asm__ __volatile__( + "int $0x40" + :"=a"(retval) + :"a"(68),"b"(17),"c"(io) + :"memory","cc"); + + return retval; +}; + + +static inline void yield(void) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(68), "b"(1)); +}; + +static inline void delay(uint32_t time) +{ + __asm__ __volatile__( + "int $0x40" + ::"a"(5), "b"(time) + :"memory"); +}; + +static inline +void *user_alloc(size_t size) +{ + void *val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(68),"b"(12),"c"(size)); + return val; +} + +static inline +int user_free(void *mem) +{ + int val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(68),"b"(13),"c"(mem)); + return val; +} + +static inline +void* user_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; +}; + +static inline +int *user_unmap(void *base, size_t offset, size_t size) +{ + int *val; + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(68),"b"(26),"c"(base),"d"(offset),"S"(size)); + return val; +}; + +static inline ufile_t load_file(const char *path) +{ + ufile_t uf; + + __asm__ __volatile__ ( + "int $0x40" + :"=A"(uf.raw) + :"a" (68), "b"(27),"c"(path)); + + return uf; +}; + +static inline int GetScreenSize() +{ + int retval; + + __asm__ __volatile__( + "int $0x40" + :"=a"(retval) + :"a"(61), "b"(1)); + return retval; +} + + +static inline void get_proc_info(char *info) +{ + __asm__ __volatile__( + "int $0x40" + : + :"a"(9), "b"(info), "c"(-1) + :"memory"); +}; + +static inline void Blit(void *bitmap, int dst_x, int dst_y, + int src_x, int src_y, int w, int h, + int src_w, int src_h, int stride) +{ + volatile struct blit_call bc; + + bc.dstx = dst_x; + bc.dsty = dst_y; + bc.w = w; + bc.h = h; + bc.srcx = src_x; + bc.srcy = src_y; + bc.srcw = src_w; + bc.srch = src_h; + bc.stride = stride; + bc.bitmap = bitmap; + + __asm__ __volatile__( + "int $0x40" + ::"a"(73),"b"(0),"c"(&bc.dstx)); +}; + + +// newlib exclusive +#ifndef __TINYC__ +int create_thread(int (*proc)(void *param), void *param, int stack_size); + +void* load_library(const char *name); + +void* get_proc_address(void *handle, const char *proc_name); + +void enumerate_libraries(int (*callback)(void *handle, const char* name, + uint32_t base, uint32_t size, void *user_data), + void *user_data); +#endif + +/////////////////////////////////////////////////////////////////////////////// +/// May be next section need to be added in newlibc +// Siemargl addenium + +#define X_Y(x,y) (((x)<<16)|(y)) + +enum KOLIBRI_GUI_EVENTS { + KOLIBRI_EVENT_NONE = 0, /* Event queue is empty */ + KOLIBRI_EVENT_REDRAW = 1, /* Window and window elements should be redrawn */ + KOLIBRI_EVENT_KEY = 2, /* A key on the keyboard was pressed */ + KOLIBRI_EVENT_BUTTON = 3, /* A button was clicked with the mouse */ + KOLIBRI_EVENT_DESKTOP = 5, /* Desktop redraw finished */ + KOLIBRI_EVENT_MOUSE = 6, /* Mouse activity (movement, button press) was detected */ + KOLIBRI_EVENT_IPC = 7, /* Interprocess communication notify */ + KOLIBRI_EVENT_NETWORK = 8, /* Network event */ + KOLIBRI_EVENT_DEBUG = 9, /* Debug subsystem event */ + KOLIBRI_EVENT_IRQBEGIN = 16 /* 16..31 IRQ0..IRQ15 interrupt =IRQBEGIN+IRQn */ +}; + +enum control_keys { + KM_SHIFT = 0x00010000, + KM_CTRL = 0x00020000, + KM_ALT = 0x00040000, + KM_NUMLOCK = 0x00080000 +}; + + +struct __attribute__ ((__packed__)) fs_dirinfo { + uint32_t subfn; // 1 read dir + uint32_t start; + uint32_t flags; + uint32_t size; + uint32_t retval; + union { + struct __attribute__ ((__packed__)) { + uint8_t zero; // 0 + char* ppath; + }; + char path[5]; // up to 4096 + } ; +}; + +static inline +uint32_t sf_file(int subfn, struct fs_dirinfo* dinfo) +/// SysFn70 call with subfunction +/// retval 0 if ok +{ + uint32_t retval; + dinfo->subfn = subfn; + + __asm__ __volatile__( + "int $0x40 " + :"=a"(retval) + :"a"(70),"b"(dinfo) + :); + + return retval; +}; + + +struct fs_dirheader { + uint32_t version; // 1 + uint32_t curn_blocks; // number of read dir items (BDFE) + uint32_t totl_blocks; // directory full size + char other[20]; // reserved 0 +}; + +enum filetype +{ + FS_RONLY = 1, + FS_HIDDEN = 2, + FS_SYSTEM = 4, + FS_VOLID = 8, + FS_SUBDIR = 16, + FS_FOLDER = 16, + FS_ARCHIV = 32 +}; + +struct __attribute__ ((__packed__)) fs_filetime { + uint8_t sec; + uint8_t mm; + uint8_t hour; + uint8_t zero; +}; + +struct __attribute__ ((__packed__)) fs_filedate { + uint8_t day; + uint8_t month; + uint16_t year; +}; + +/// directory entry cp866 +struct fsBDFE { + uint32_t filetype; + uint32_t encoding; // 0 - cp866, 1 - utf16le + struct fs_filetime tm_created; + struct fs_filedate dt_created; + struct fs_filetime tm_accessed; + struct fs_filedate dt_accessed; + struct fs_filetime tm_modified; + struct fs_filedate dt_modified; + uint64_t size; + char fname[264]; +}; // must be sized 304 + +/// directory entry UTF16LE +struct fsBDFE_16 { + uint32_t filetype; + uint32_t encoding; // 0 - cp866, 1 - utf16le + struct fs_filetime tm_created; + struct fs_filedate dt_created; + struct fs_filetime tm_accessed; + struct fs_filedate dt_accessed; + struct fs_filetime tm_modified; + struct fs_filedate dt_modified; + uint64_t size; + wchar_t fname[260]; +}; // must be sized 560 + + + +// copied from /programs/system/shell/system/kolibri.c +// fn's returned -1 as syserror, 1 as error, 0 as OK +static inline +int kol_clip_num() +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(0)); + return val; +} + +static inline +char* kol_clip_get(int n) +// returned buffer must be freed by user_free() +{ + register char* val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(1), "c"(n)); + return val; +} + +static inline +int kol_clip_set(int n, char buffer[]) +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(2), "c"(n), "d"(buffer)); + return val; +} + +static inline +int kol_clip_pop() +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(3)); + return val; +} + +static inline +int kol_clip_unlock() +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(54), "b"(4)); + return val; +} + +static inline void get_system_colors(struct kolibri_system_colors *color_table) +{ + __asm__ volatile ("int $0x40" + : + :"a"(48),"b"(3),"c"(color_table),"d"(40) + ); + + /* color_table should point to the system color table */ +} + +static inline void debug_board_write_byte(const char ch){ + __asm__ __volatile__( + "int $0x40" + : + :"a"(63), "b"(1), "c"(ch)); +} + + +static inline void draw_number_sys(int32_t number, int x, int y, int len, color_t color){ + register uint32_t fmt; + fmt = len << 16 | 0x80000000; // no leading zeros + width +// fmt = len << 16 | 0x00000000; // leading zeros + width + __asm__ __volatile__( + "int $0x40" + : + :"a"(47), "b"(fmt), "c"(number), "d"((x << 16) | y), "S"(color)); +} + +static inline +uint32_t get_mouse_eventstate(void) +{ + uint32_t val; + + __asm__ __volatile__( + "int $0x40" + :"=a"(val) + :"a"(37),"b"(3)); + return val; +}; + +static inline +uint32_t set_event_mask(uint32_t mask) +{ + register uint32_t val; + asm volatile ("int $0x40":"=a"(val):"a"(40), "b"(mask)); + return val; +} + +typedef void (*thread_proc)(void*); + +static inline +int start_thread(thread_proc proc, char* stack_top) +{ + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(51), "b"(1), "c"(proc), "d"(stack_top)); + return val; +} + +static inline +void kos_exit() +{ + asm volatile ("int $0x40"::"a"(-1)); +} + +static inline void focus_window(int slot){ + asm volatile ("int $0x40"::"a"(18), "b"(3), "c"(slot)); +} + +static inline int get_thread_slot(int tid){ + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(18), "b"(21), "c"(tid)); + return val; +} + +static inline void set_current_folder(char* dir){ + asm volatile ("int $0x40"::"a"(30), "b"(1), "c"(dir)); +} + +static inline int get_current_folder(char* buf, int bufsize){ + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(30), "b"(2), "c"(buf), "d"(bufsize)); + return val; +} + +static inline +void ipc_set_area(void* buf, int bufsize){ + asm volatile ("int $0x40"::"a"(60), "b"(1), "c"(buf), "d"(bufsize)); +} + +static inline +int ipc_send_message(int pid_reciever, void *data, int datalen) { + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(60), "b"(2), "c"(pid_reciever), "d"(data), "S"(datalen)); + return val; +} + +static inline +void* shm_open(char *shm_name, int msize, int flags, int *retsz){ + register int val, cod; + asm volatile ("int $0x40":"=a"(val),"=d"(cod):"a"(68), "b"(22), "c"(shm_name), "d"(msize), "S"(flags)); + + if(retsz) *retsz = cod; // errcode if NULL or memsize when open + return (void*)val; +} + +static inline +void shm_close(char *shm_name){ + asm volatile ("int $0x40"::"a"(68), "b"(23), "c"(shm_name)); +} + +static inline +int start_app(char *app_name, char *args){ + file_op_t file_op; + memset(&file_op, 0, sizeof(file_op)); + file_op.fn = 7; + file_op.args = args; + file_op.app_name = app_name; + + register int val; + asm volatile ("int $0x40":"=a"(val):"a"(70), "b"(&file_op)); + + return val; +} + +static inline +uint32_t get_control_keys(void) +{ + uint32_t ctrl; + + __asm__ __volatile__( + "int $0x40 \n\t" + :"=a"(ctrl) + :"a"(66),"b"(3)); + + return ctrl; +}; + +static inline +int get_keyboard_layout(int opt, char* buf) +/// 128 byte buffer +/// opt: 1 - normal, 2 - shifted, 3 - alted, or 9 - return language +{ + uint32_t lang; + + __asm__ __volatile__( + "int $0x40 \n\t" + :"=a"(lang) + :"a"(26),"b"(2), "c"(opt), "d"(buf)); + + return lang; +}; + + +static inline +int font_size(int color) +/// decode font size in pixels from color as SysFn4 +/// returns (width, hight) +{ + int font = color >> 24; + int font_multipl = (font & 7) + 1; + int width_sym, hight_sym; + + if (font & 0x10) // 8x16 + { + width_sym = 8 * font_multipl; + hight_sym = 16 * font_multipl; + } else // 6x9 + { + width_sym = 6 * font_multipl; + hight_sym = 9 * font_multipl; + } + return hight_sym + (width_sym << 16); +} + +/* +static inline char *getcwd(char *buf, size_t size) +{ + int rc = get_current_folder(buf, size); + if (rc > size) + { + errno = ERANGE; + return 0; + } + else + return buf; +} +*/ +/* not finished +void staticnum_draw(staticnum *st) +{ + register uint32_t fmt; + if (st->width < 0) + fmt = (-st->width << 16); // leading zeros, decimal + else + fmt = (st->width << 16) | 0x80000000; // no leading zeros, decimal + + __asm__ __volatile__( + "int $0x40" + ::"a"(47), + "b"(fmt), + "c"(st->number), + "d"(st->start_xy), + "S"(st->color_flags), + "D"(st->bg_color) + :); +} + +*/ +//////////// end section + + + +//added nonstatic inline because incomfortabre stepping in in debugger +void __attribute__ ((noinline)) debug_board_write_str(const char* str); +void __attribute__ ((noinline)) debug_board_printf(const char *format,...); + +/* copy body to only one project file +void __attribute__ ((noinline)) debug_board_write_str(const char* str){ + while(*str) + debug_board_write_byte(*str++); +} + +void __attribute__ ((noinline)) debug_board_printf(const char *format,...) +{ + va_list ap; + char log_board[300]; + + va_start (ap, format); + vsnprintf(log_board, sizeof log_board, format, ap); + va_end(ap); + debug_board_write_str(log_board); +} + +__attribute__ ((noinline)) void trap(int n) +{ + // nothing todo, just see n in debugger. use "bp trap" command + __asm__ __volatile__( + "nop" + : + :"a"(n)); +} + +*/ + + + +// TinyC don't support aliasing of static inline funcs +#ifndef __TINYC__ +static inline void BeginDraw(void) __attribute__ ((alias ("begin_draw"))); +static inline void EndDraw(void) __attribute__ ((alias ("end_draw"))); +static inline void DrawWindow(int x, int y, int w, int h, const char *name, + color_t workcolor, uint32_t style) + __attribute__ ((alias ("sys_create_window"))); +static inline void DefineButton(void) __attribute__ ((alias ("define_button"))); +static inline void DrawLine(int xs, int ys, int xe, int ye, color_t color) + __attribute__ ((alias ("draw_line"))); +static inline void DrawBar(int x, int y, int w, int h, color_t color) + __attribute__ ((alias ("draw_bar"))); +static inline void DrawBitmap(void *bitmap, int x, int y, int w, int h) + __attribute__ ((alias ("draw_bitmap"))); +static inline uint32_t GetSkinHeight(void) __attribute__ ((alias ("get_skin_height"))); +static inline pos_t GetMousePos(int origin) __attribute__ ((alias ("get_mouse_pos"))); +static inline uint32_t GetMouseButtons(void) __attribute__ ((alias ("get_mouse_buttons"))); +static inline uint32_t GetMouseWheels(void) __attribute__ ((alias ("get_mouse_wheels"))); +static inline uint32_t LoadCursor(void *path, uint32_t flags) __attribute__ ((alias ("load_cursor"))); +static inline uint32_t SetCursor(uint32_t cursor) __attribute__ ((alias ("set_cursor"))); +static inline int DestroyCursor(uint32_t cursor) __attribute__ ((alias ("destroy_cursor"))); +static inline uint32_t GetOsEvent(void) __attribute__ ((alias ("get_os_event"))); +static inline void *UserAlloc(size_t size) __attribute__ ((alias ("user_alloc"))); +static inline int UserFree(void *mem) __attribute__ ((alias ("user_free"))); +static inline void* UserRealloc(void *mem, size_t size) __attribute__ ((alias ("user_realloc"))); +static inline int *UserUnmap(void *base, size_t offset, size_t size) __attribute__ ((alias ("user_unmap"))); +static inline ufile_t LoadFile(const char *path) __attribute__ ((alias ("load_file"))); +static inline void GetProcInfo(char *info) __attribute__ ((alias ("get_proc_info"))); +#endif + +#ifdef __cplusplus +} +#endif + + +#endif + + + + + diff --git a/data/common/develop/tcc/include/math.h b/data/common/develop/tcc/include/math.h new file mode 100644 index 0000000000..858a8517c8 --- /dev/null +++ b/data/common/develop/tcc/include/math.h @@ -0,0 +1,194 @@ +/* Copyright (C) 1999 DJ Delorie, see COPYING.DJ for details */ +/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */ +/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ +#ifndef _MATH_H +#define _MATH_H + +//extern int stdcall integer(float number); + +extern double acos(double _x); +extern double asin(double _x); +extern double atan(double _x); +extern double atan2(double _y, double _x); +extern double ceil(double _x); +extern double cos(double _x); +extern double cosh(double _x); +extern double exp(double _x); +extern double fabs(double _x); +extern double floor(double _x); +extern double fmod(double _x, double _y); +extern double frexp(double _x, int *_pexp); +extern double ldexp(double _x, int _exp); +extern double log(double _y); +extern double log10(double _x); +extern double modf(double _x, double *_pint); +extern double pow(double _x, double _y); +extern double sin(double _x); +extern double sinh(double _x); +extern double sqrt(double _x); +extern double tan(double _x); +extern double tanh(double _x); + +//#ifndef __STRICT_ANSI__ + +//#ifndef _POSIX_SOURCE + +#define M_E 2.7182818284590452354 +#define M_LOG2E 1.4426950408889634074 +#define M_LOG10E 0.43429448190325182765 +#define M_LN2 0.69314718055994530942 +#define M_LN10 2.30258509299404568402 +#define M_PI 3.14159265358979323846 +#define M_PI_2 1.57079632679489661923 +#define M_PI_4 0.78539816339744830962 +#define M_1_PI 0.31830988618379067154 +#define M_2_PI 0.63661977236758134308 +#define M_2_SQRTPI 1.12837916709551257390 +#define M_SQRT2 1.41421356237309504880 +#define M_SQRT1_2 0.70710678118654752440 +#define PI M_PI +#define PI2 M_PI_2 + +extern double acosh(double); +extern double asinh(double); +extern double atanh(double); +extern double cbrt(double); +extern double exp10(double _x); +extern double exp2(double _x); +extern double expm1(double); +extern double hypot(double, double); +extern double log1p(double); +extern double log2(double _x); +extern long double modfl(long double _x, long double *_pint); +extern double pow10(double _x); +extern double pow2(double _x); +extern double powi(double, int); +extern void sincos(double *, double *, double); + +/* These are in libm.a (Cygnus). You must link -lm to get these */ +/* See libm/math.h for comments */ +/* +#ifndef __cplusplus +struct exception { + int type; + const char *name; + double arg1; + double arg2; + double retval; + int err; +}; +#endif +*/ + +extern double erf(double); +extern double erfc(double); +extern double gamma(double); +extern int isinf(double); +extern int isnan(double); +extern int finite(double); +extern double j0(double); +extern double j1(double); +extern double jn(int, double); +extern double lgamma(double); +extern double nan(void); +extern double y0(double); +extern double y1(double); +extern double yn(int, double); +extern double logb(double); +extern double nextafter(double, double); +extern double remainder(double, double); +extern double scalb(double, double); +//#ifndef __cplusplus +//extern int matherr(struct exception *); +//#endif +extern double significand(double); +extern double copysign(double, double); +extern int ilogb(double); +extern double rint(double); +extern double scalbn(double, int); +extern double drem(double, double); +extern double gamma_r(double, int *); +extern double lgamma_r(double, int *); +extern float acosf(float); +extern float asinf(float); +extern float atanf(float); +extern float atan2f(float, float); +extern float cosf(float); +extern float sinf(float); +extern float tanf(float); +extern float coshf(float); +extern float sinhf(float); +extern float tanhf(float); +extern float expf(float); +extern float frexpf(float, int *); +extern float ldexpf(float, int); +extern float logf(float); +extern float log10f(float); +extern float modff(float, float *); +extern float powf(float, float); +extern float sqrtf(float); +extern float ceilf(float); +extern float fabsf(float); +extern float floorf(float); +extern float fmodf(float, float); +extern float erff(float); +extern float erfcf(float); +extern float gammaf(float); +extern float hypotf(float, float); +extern int isinff(float); +extern int isnanf(float); +extern int finitef(float); +extern float j0f(float); +extern float j1f(float); +extern float jnf(int, float); +extern float lgammaf(float); +extern float nanf(void); +extern float y0f(float); +extern float y1f(float); +extern float ynf(int, float); +extern float acoshf(float); +extern float asinhf(float); +extern float atanhf(float); +extern float cbrtf(float); +extern float logbf(float); +extern float nextafterf(float, float); +extern float remainderf(float, float); +extern float scalbf(float, float); +extern float significandf(float); +extern float copysignf(float, float); +extern int ilogbf(float); +extern float rintf(float); +extern float scalbnf(float, int); +extern float dremf(float, float); +extern float expm1f(float); +extern float log1pf(float); +extern float gammaf_r(float, int *); +extern float lgammaf_r(float, int *); + +double round (double x); +long double roundl (long double x); + +#ifndef NAN +# define NAN (__nan__) +#endif + +#ifndef INFINITY +# define INFINITY (__inf__) +#endif + + +//#endif /* !_POSIX_SOURCE */ +//#endif /* !__STRICT_ANSI__ */ +//#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */ + +//#ifndef __dj_ENFORCE_FUNCTION_CALLS +//#endif /* !__dj_ENFORCE_FUNCTION_CALLS */ + +//#ifdef __cplusplus +//} +//#endif + +//#endif /* _USE_LIBM_MATH_H */ + +//#endif /* !__dj_include_math_h_ */ +#endif \ No newline at end of file diff --git a/data/common/develop/tcc/include/stdarg.h b/data/common/develop/tcc/include/stdarg.h new file mode 100644 index 0000000000..06d592b93a --- /dev/null +++ b/data/common/develop/tcc/include/stdarg.h @@ -0,0 +1,75 @@ +#ifndef _STDARG_H +#define _STDARG_H + +#ifdef __x86_64__ +#ifndef _WIN64 + +//This should be in sync with the declaration on our lib/libtcc1.c +/* GCC compatible definition of va_list. */ +typedef struct { + unsigned int gp_offset; + unsigned int fp_offset; + union { + unsigned int overflow_offset; + char *overflow_arg_area; + }; + char *reg_save_area; +} __va_list_struct; + +typedef __va_list_struct va_list[1]; + +void __va_start(__va_list_struct *ap, void *fp); +void *__va_arg(__va_list_struct *ap, int arg_type, int size, int align); + +#define va_start(ap, last) __va_start(ap, __builtin_frame_address(0)) +#define va_arg(ap, type) \ + (*(type *)(__va_arg(ap, __builtin_va_arg_types(type), sizeof(type), __alignof__(type)))) +#define va_copy(dest, src) (*(dest) = *(src)) +#define va_end(ap) + +#else /* _WIN64 */ +typedef char *va_list; +#define va_start(ap,last) __builtin_va_start(ap,last) +#define va_arg(ap,type) (ap += 8, sizeof(type)<=8 ? *(type*)ap : **(type**)ap) +#define va_copy(dest, src) ((dest) = (src)) +#define va_end(ap) +#endif + +#elif __arm__ +typedef char *va_list; +#define _tcc_alignof(type) ((int)&((struct {char c;type x;} *)0)->x) +#define _tcc_align(addr,type) (((unsigned)addr + _tcc_alignof(type) - 1) \ + & ~(_tcc_alignof(type) - 1)) +#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3) +#define va_arg(ap,type) (ap = (void *) ((_tcc_align(ap,type)+sizeof(type)+3) \ + &~3), *(type *)(ap - ((sizeof(type)+3)&~3))) +#define va_copy(dest, src) (dest) = (src) +#define va_end(ap) + +#elif defined(__aarch64__) +typedef struct { + void *__stack; + void *__gr_top; + void *__vr_top; + int __gr_offs; + int __vr_offs; +} va_list; +#define va_start(ap, last) __va_start(ap, last) +#define va_arg(ap, type) __va_arg(ap, type) +#define va_end(ap) +#define va_copy(dest, src) ((dest) = (src)) + +#else /* __i386__ */ +typedef char *va_list; +/* only correct for i386 */ +#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3) +#define va_arg(ap,type) (ap += (sizeof(type)+3)&~3, *(type *)(ap - ((sizeof(type)+3)&~3))) +#define va_copy(dest, src) (dest) = (src) +#define va_end(ap) +#endif + +/* fix a buggy dependency on GCC in libio.h */ +typedef va_list __gnuc_va_list; +#define _VA_LIST_DEFINED + +#endif /* _STDARG_H */ diff --git a/data/common/develop/tcc/include/stdbool.h b/data/common/develop/tcc/include/stdbool.h new file mode 100644 index 0000000000..d2ee446e70 --- /dev/null +++ b/data/common/develop/tcc/include/stdbool.h @@ -0,0 +1,11 @@ +#ifndef _STDBOOL_H +#define _STDBOOL_H + +/* ISOC99 boolean */ + +#define bool _Bool +#define true 1 +#define false 0 +#define __bool_true_false_are_defined 1 + +#endif /* _STDBOOL_H */ diff --git a/data/common/develop/tcc/include/stddef.h b/data/common/develop/tcc/include/stddef.h new file mode 100644 index 0000000000..791ba318cc --- /dev/null +++ b/data/common/develop/tcc/include/stddef.h @@ -0,0 +1,46 @@ +#ifndef _STDDEF_H +#define _STDDEF_H + +typedef __SIZE_TYPE__ size_t; +typedef __PTRDIFF_TYPE__ ssize_t; +typedef __WCHAR_TYPE__ wchar_t; +typedef __PTRDIFF_TYPE__ ptrdiff_t; +typedef __PTRDIFF_TYPE__ intptr_t; +typedef __SIZE_TYPE__ uintptr_t; + +#ifndef __int8_t_defined +#define __int8_t_defined +typedef signed char int8_t; +typedef signed short int int16_t; +typedef signed int int32_t; +typedef signed long long int int64_t; +typedef unsigned char uint8_t; +typedef unsigned short int uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long int uint64_t; +#endif + +#ifndef NULL +#define NULL ((void*)0) +#endif + +#define offsetof(type, field) ((size_t)&((type *)0)->field) + +void *alloca(size_t size); + +#endif + +/* Older glibc require a wint_t from (when requested + by __need_wint_t, as otherwise stddef.h isn't allowed to + define this type). Note that this must be outside the normal + _STDDEF_H guard, so that it works even when we've included the file + already (without requiring wint_t). Some other libs define _WINT_T + if they've already provided that type, so we can use that as guard. + TCC defines __WINT_TYPE__ for us. */ +#if defined (__need_wint_t) +#ifndef _WINT_T +#define _WINT_T +typedef __WINT_TYPE__ wint_t; +#endif +#undef __need_wint_t +#endif diff --git a/data/common/develop/tcc/include/stdint.h b/data/common/develop/tcc/include/stdint.h new file mode 100644 index 0000000000..d8dcc0f82d --- /dev/null +++ b/data/common/develop/tcc/include/stdint.h @@ -0,0 +1 @@ +#include \ No newline at end of file diff --git a/data/common/develop/tcc/include/stdio.h b/data/common/develop/tcc/include/stdio.h new file mode 100644 index 0000000000..5b1bd9c41b --- /dev/null +++ b/data/common/develop/tcc/include/stdio.h @@ -0,0 +1,128 @@ +#ifndef stdio_h +#define stdio_h + +#include "kolibrisys.h" +#include +/* use stdarg.h +typedef char *va_list; +#define _roundsize(n) ( (sizeof(n) + 3) & ~3 ) +#define va_start(ap,v) (ap = (va_list)&v+_roundsize(v)) +#define va_arg(ap,t) ( *(t *)((ap += _roundsize(t)) - _roundsize(t)) ) +#define va_end(ap) (ap = (va_list)0) +*/ +#ifndef NULL +# define NULL ((void*)0) +#endif + +typedef unsigned int fpos_t; // 32bit is not enough! 4Gb limit +typedef unsigned int size_t; + +int format_print(char *dest, size_t maxlen,const char *fmt0, va_list argp); + +typedef struct { + char* buffer; + dword buffersize; + dword filesize; // too small + int filepos; // too small, may be -1 + char* filename; + int mode; + int ungetc_buf; + dword buffer_start; // 1st byte position + dword buffer_end; // points after last buffered data +} FILE; + +#define stderr ((FILE*)3) /* works only for fprintf!!! */ + + +#define FILE_OPEN_READ 0 +#define FILE_OPEN_WRITE 1 +#define FILE_OPEN_APPEND 2 +#define FILE_OPEN_TEXT 4 +#define FILE_OPEN_PLUS 8 +#define EOF (-1) +#define BUFSIZ (4096) +#define FILENAME_MAX (0x400) + +extern FILE* fopen(const char* filename, const char *mode); +extern int fclose(FILE* file); +extern int feof(FILE* file); +extern int fflush(FILE* file); +extern int fgetc(FILE* file); +extern int fgetpos(FILE* file,fpos_t* pos); +extern int fsetpos(FILE* file,const fpos_t* pos); +extern int fputc(int c,FILE* file); +extern int fread(void* buffer,int size,int count,FILE* file); +extern int fwrite(void *buffer,int size,int count,FILE* file); +extern long ftell(FILE* file); +#define SEEK_CUR 0 +#define SEEK_END 1 +#define SEEK_SET 2 +extern int fseek(FILE* file,long offset,int origin); +extern void rewind(FILE* file); +extern int cdecl fprintf(FILE* file, const char* format,...); +extern int fscanf(FILE* file,const char* format,...); +extern int ungetc(int c,FILE* file); + +extern int cdecl printf(const char *format,...); + +extern int vsnprintf(char *dest, size_t size,const char *format,va_list ap); +extern int cdecl snprintf(char *dest, size_t size, const char *format,...); +extern int cdecl sprintf(char *dest,const char *format,...); + +#define getc(a) fgetc(a) +#define putc(a, b) fputc(a, b) +char * fgets (char * str, int num, FILE * stream); +int putchar (int ch); +int getchar (void); +int puts (const char * str); +char * gets (char * str); + +typedef int (*virtual_getc)(void *sp, const void *obj); +typedef void (*virtual_ungetc)(void *sp, int c, const void *obj); +int format_scan(const void *src, const char *fmt, va_list argp, virtual_getc vgetc, virtual_ungetc vungetc); +int vscanf ( const char * format, va_list arg ); +int scanf ( const char * format, ...); +int vsscanf ( const char * s, const char * format, va_list arg ); +int sscanf ( const char * s, const char * format, ...); +int vfscanf ( FILE * stream, const char * format, va_list arg ); +int fputs ( const char * str, FILE * file ); +void clearerr ( FILE * stream ); +int ferror ( FILE * stream ); +void perror ( const char * str ); +int vprintf ( const char * format, va_list arg ); +int vsprintf (char * s, const char * format, va_list arg ); +int vfprintf ( FILE * stream, const char * format, va_list arg ); + + +int tiny_sprintf (char * s, const char * format, ... ); +int tiny_snprintf (char * s, size_t n, const char * format, ... ); +int tiny_vsnprintf (char * s, size_t n, const char * format, va_list args ); +// support %c, %s, %d, %x, %u, %% for 32-bit values only. no width specs, left align +// always zero-ended + +extern int errno; +/* errors codes from KOS, but minus */ +#ifndef E_SUCCESS + +# define E_SUCCESS (0) +# define E_UNSUPPORTED (-2) +# define E_UNKNOWNFS (-3) +# define E_NOTFOUND (-5) +# define E_EOF (-6) +# define E_INVALIDPTR (-7) +# define E_DISKFULL (-8) +# define E_FSYSERROR (-9) +# define E_ACCESS (-10) +# define E_HARDWARE (-11) +# define E_NOMEM (-12) +/* conversion errors */ +# define ERANGE (-20) +# define EINVAL (-21) +/* program run and pipe errors */ +# define E_NOMEM2 (-30) +# define E_FILEFMT (-31) +# define E_TOOMANY (-32) +# define E_PARAM (-33) +#endif + +#endif diff --git a/data/common/develop/tcc/include/stdlib.h b/data/common/develop/tcc/include/stdlib.h new file mode 100644 index 0000000000..5dc231baf2 --- /dev/null +++ b/data/common/develop/tcc/include/stdlib.h @@ -0,0 +1,77 @@ +#ifndef stdlib_h +#define stdlib_h +#include "kolibrisys.h" + +#define RAND_MAX 65535 +#ifndef NULL +# define NULL ((void*)0) +#endif + +#define abs(i) (((i)<0)?(-(i)):(i)) +#define labs(li) abs(li) + +#define min(a, b) ((a)<(b) ? (a) : (b)) +#define max(a, b) ((a)>(b) ? (a) : (b)) + + +extern int atoib(char *s,int b); +extern int atoi(char *s); +extern char *itoab(unsigned int n,char* s,int b); +extern char *__itoa(int n,char* s); + +// function using KOS syscalls +extern void* stdcall sysmalloc(dword size); +extern void stdcall sysfree(void *pointer); +extern void* stdcall sysrealloc(void* pointer,dword size); +extern void* syscalloc (size_t num, size_t size); + +// suballocator functions +extern void* wtmalloc(size_t size); +extern void wtfree(void *pointer); +extern void* wtrealloc(void* pointer, size_t size); +extern void* wtcalloc (size_t num, size_t size); +extern int wtmalloc_freelist_check(); +extern int wtmalloc_poiner_check(void *ptr); +extern void wtmalloc_freelist_print(); + +#ifdef USESYSALLOC +#define malloc(x) sysmalloc(x) +#define free(x) sysfree(x) +#define realloc(x,y) sysrealloc(x,y) +#define calloc(x,y) syscalloc(x,y) +#else +#define malloc(x) wtmalloc(x) +#define free(x) wtfree(x) +#define realloc(x,y) wtrealloc(x,y) +#define calloc(x,y) wtcalloc(x,y) +#endif + + +extern int rand (void); +extern void srand (unsigned int seed); + +double strtod (const char* str, char** endptr); +long double strtold (const char* str, char** endptr); +float strtof (const char* str, char** endptr); +long int strtol (const char* str, char** endptr, int base); +#define strtoul(s, ep, b) ((unsigned long int)strtol(s, ep, b)) + + +void exit (int status); /* close console if was initialized, also stay window [finished] when status is error < 0 */ +#define abort() exit(-1) + +typedef struct { + int quot; + int rem; +} div_t; + +typedef div_t ldiv_t; + +div_t div (int numer, int denom); +#define ldiv(a, b) div(a, b) +#define atol(a) atoi(a) +#define atof(a) strtod(a, NULL) + + + +#endif diff --git a/data/common/develop/tcc/include/string.h b/data/common/develop/tcc/include/string.h new file mode 100644 index 0000000000..f69a8036f7 --- /dev/null +++ b/data/common/develop/tcc/include/string.h @@ -0,0 +1,35 @@ +#ifndef string_h +#define string_h +typedef unsigned int size_t; + + +extern void* memchr(const void*,int,size_t); +extern int memcmp(const void*,const void*,size_t); +extern void* memcpy(void*,const void*,size_t); +extern void* memmove(void*,const void*,size_t); +extern void* memset(void*,int,size_t); +extern char* strcat(char*,const char*); +extern char* strchr(const char*,int); +extern int strcmp(const char*,const char*); +extern int strcoll(const char*,const char*); +extern char* strcpy(char*,const char*); +extern size_t strcspn(const char*,const char*); +extern int strlen(const char*); +extern char* strncat(char*,const char*,size_t); +extern int strncmp(const char*,const char*,size_t); +extern char* strncpy(char*,const char*,size_t); +extern char* strpbrk(const char*,const char*); +extern char* strrchr(const char*,int); +extern size_t strspn(const char*,const char*); +extern char* strstr(const char*,const char*); +extern char* strtok(char*,const char*); +extern int strxfrm(char*,const char*,int); +extern char* strdup(const char*); +extern char* strrev(char *p); +char * strerror ( int errnum ); + +#ifndef NULL +# define NULL ((void*)0) +#endif + +#endif diff --git a/data/common/develop/tcc/include/time.h b/data/common/develop/tcc/include/time.h new file mode 100644 index 0000000000..8904899371 --- /dev/null +++ b/data/common/develop/tcc/include/time.h @@ -0,0 +1,29 @@ +#ifndef _TIME_H +#define _TIME_H + + +typedef unsigned long int clock_t; +typedef unsigned long int time_t; +#define clock() get_tick_count() +#define CLOCKS_PER_SEC 100 + +struct tm { + int tm_sec; /* seconds after the minute 0-61*/ + int tm_min; /* minutes after the hour 0-59 */ + int tm_hour; /* hours since midnight 0-23 */ + int tm_mday; /* day of the month 1-31 */ + int tm_mon; /* months since January 0-11 */ + int tm_year; /* years since 1900 */ + int tm_wday; /* days since Sunday 0-6 */ + int tm_yday; /* days since January 1 0-365 */ + int tm_isdst; /* Daylight Saving Time flag */ +}; + +time_t mktime (struct tm * timeptr); +time_t time (time_t* timer); +struct tm * localtime (const time_t * timer); /* non-standard! ignore parameter and return just time now, not generate tm_isdst, tm_yday, tm_wday == -1 */ +double difftime (time_t end, time_t beginning); + +extern struct tm __buffertime; + +#endif \ No newline at end of file diff --git a/data/common/develop/tcc/include/varargs.h b/data/common/develop/tcc/include/varargs.h new file mode 100644 index 0000000000..d614366edb --- /dev/null +++ b/data/common/develop/tcc/include/varargs.h @@ -0,0 +1,12 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef _VARARGS_H +#define _VARARGS_H + +#error "TinyCC no longer implements ." +#error "Revise your code to use ." + +#endif diff --git a/data/common/develop/tcc/kos32-tcc.exe b/data/common/develop/tcc/kos32-tcc.exe new file mode 100644 index 0000000000000000000000000000000000000000..fb44b69813ecc6049a4a53add3e117abbd1e7841 GIT binary patch literal 335375 zcmcG%3w%`7)%QQS9BvXPD$#f!6%<4u-YN)aP^OL+G+t7z#TIYWR&A|jygU^MPEr|< zW8>YtT&*d2`a%$HCo$JwQaPtJ>#H8OKY?!|L0t+(nJ!FLH3!M%o(N4Y;M7!!5~ZIHf|2rbku|cCmG-$cIVRo+#Y;C-W;y> zs0jxjXmAtMA59^?-3GS1F$UZrhZ@}8qJK7U0@-5=aEBgda4G%0D8#q-=5UQi8PI>= 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 Qxv4ZpV%u@ej%Y3Z2cowN`2YX_ literal 0 HcmV?d00001 diff --git a/data/common/develop/tcc/kpack.exe b/data/common/develop/tcc/kpack.exe new file mode 100644 index 0000000000000000000000000000000000000000..3cdcc3fd694f429dd72429c0a8cc08049bfc2c51 GIT binary patch literal 14336 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
    cVW1P$1-p8o<# zi&3zk@$VP~%{4}0DsLDXP>30)K}fM#iM!y1B%0v0G7G+;t#z1iMCk=)$WWWdY_T6( zlL=i({r=FgCW(bG=`pu8Y31i=)}%msL_J}8Uj~W^2AH^Sz-0rK?QLY=eBw@MA*0>- z^->H>>TP%4$_D50)vUCA)7Q*K5qnsCf9n`hG>Y{NzT#Y7aE!96DXmLt&0Q>mp-9bV zDrhXfL_$cD+l9zYqE^yd`o60~%OA}vqSdl3cpM%NS|f&ilMJr`L#YSYL8D3Axr7iI zC}HIpHi(!=s_N25 zAsAI~NNpanxgL1$6Vp`OEk(4>C15Eo^;MKibq4tukQ6)w=nruaW~3A#1H9Y>%JzUsSpdE^RNtb`9%iPAHRTezt?Un|#@=;cP zcq-n?Ch+z&oClT@DcA+G{vzP!|4#t71c1XVNfVf>8dUE&BX5TFtCwt;YM1Il0x_Jp zXqwo{X2Bs-$#hZ#-D{^P8;g+BSPR8PfG@XZrI56*j*QP#@=YbrRB`}NkX0DJJa3v) z@(C;dfw0yFcxfrcIf-T`ZI@xeM}CHNNpS5?(Dg`_8yOm0qC;zTrqa{qy*ZJ;A$b3A z8uF8Qm-PJ(zIh)u9LQYQ#fbW{&HonGz>E^W#*GkPi98Kk;8@L(@gdv$@N}B8z4t`* zccQ*tETe3%muGu@2o14wC|!umJn#Q35>Fzzx01ZYkR-=S^4MpmKh)*JXpfDDN30g0 zqed4waYXqIoa*GRBkM0|JrU2VK;UBh9_xtlB%)a>0ottKYy)b;@rL58)Rs}^f@LQ4 zw!~T}q+=RIOj^jP=Nw7BBPEXVa4%kr%t+s2f=uNEW}<^v=+96i?WV+0D-6s}bX<)B zf&EvC#I%}0_CpHBw7)FCl?}qmaSD)F0x#CpfzmI4(HvYP}EM z0p6Tt6HQIE=IEeWo`7wu!bT}2<4)FVWw3785bbY4K?r_XMwg$qcDD}TH6ry*Y$71o z$D{))eDjBIK;4g7M{WkELTNQ5%P8|FTbH19>RnkY5O}pr_xx8 z7O8i$kR-k5im*by<1Q8cl6IGocjrN*GHd_qKY<|$)Jq!|*1k2;Alj(Tn%tUp((bij zqe9nY;f>h6&YOH&($gXQ7i_s_k33u~NU6`g^%L86StRf!ipGCb45gPlI*2kpn`MvU zUZEGdCB^OksJdyIx8Do*>}J`-&E2sX@(oH$w z9oV6}6(iQyidxYdXxMoU7j_l-JoyE|9Tv3gGbj;bx`=xnglz$4sXg_bLmvTiLH*Om>Tj8}+a2R(bct0g-Tb~-@QW0ZrnFUfd^ zYJmgoakKyt_Km3X$3P}jAfcz#G~)YpR|W-*4tBEoLQ0I!I5phzkw@)%KaI1F&B}=8 zK-)D%B=5f8R`>AUI!RN$WGCsalXUb1&Cf9U#C8#%Di~Yq(|GM5nOH8-up(;Z?e_Lb zb`sgO|6vfYY&sM6X49cBVsaZxv1N4j%lf5H*(o}ZJIGGrYx__g zS;cZ`9y#VL#Hn@TggTr5BiHx;0duaE53y`M%?MNc{Z>C^H(bC0NNBJUM-MNShUa|@ zKW`M!8aU8F0AN_juyOT{jX7;d$XVz`cB~CKi=aQqZ*2dM1UGzOaDewr`!Ei5gTwS+ zYP#97m#R#=ynLmk%;E%CZopjd_LWd*793=AcrQgXJK8aoc(LXIb%XQY;()-`;^4Go zOz>iR}>P!@&{Tn!KYtPSUT=*la!jFUiKo#qx0+yXouA+cZh}BLWD< z<@SHNceeMn^c-)$`iZQCkW?2Vcxj*DBq}mzE7@n4i5c>}%s!eos(lSd zGEv*SQI<-*>zI!%Q=#Q;IC#M~N;}Qkl4{qHHInPd9X9OeQQMYxC?}q8{yDt+JCd(E zHDvdt$gQa(g_kKNMALfFvImg3(e;jz;0pv%)E~Q_JL9a-9yF-(m*c9 zVDlNvw{svpc$7nt`y>F8PS~dKba2gFvV| z`?OF-kH{>WqpoTU`GM=e8BAr`&MA;an4!_u6R!QwqtG%-m>m*{s&Sk*u+SU+*Q3b) z$B}yApjUbw2S-}f2&+2Rok zPblv%;QzF((p@Y7eTDH)4Xb=X*) z!6IgXnIg4DhcBsS7hsJrt2^^>>&(Zc&+fq$02ZEb;{kgZ8qUPZ$MHiZ{Wg(hPQS-a zo*we|#lA}ZOUW!O&*+7%ZYU!4P8RELI05BJ(krRAvlyU~Ih~e%8_;gVA-lgXI@IW> z=0W(F865ZbDnH|M)Iohy0Axm|t3@P(5HEb3I&aUWH(NjdB~zQjw9_w|oTiygA}Vk5 zhO9p|oY$63c0{1|x| zStr$71o)vZ`7x^iF>e>|T>N|~alw()R;^8t@f+QD)KA4GSEYWhtlwr%{`Q1u%8)8l>Eud3HenQ8lp3sd$z^Ny6zpbvZPUt8Cz)pQLP7T%PiI1@D{)Lnq>GI!L z$7(4wJ#~+hpQ-^7fJVgseWKj=I+&awsFo4~#FUWb2UJ5$x1N4yX1AIV<2P0CADf)| zAgs&(6gGYXcKEdjep7_Xi1ItaT8+hp%YsFb#-#EwQCw7kUuSW7o`n>aNI$fANM;1T zf(|(%%3GX^B@AUa_)Siu*qW??Iy8j33Ve~{)IDyr#+fA!EK9jMBGMqWcSe+du4X+o z2wnM)kkEbW*_!(cNRxR`@|9*surG9KXMu-zj9&%4Nm?Y({h$0izD5uZkv*d_+7OS|?ecv4KF{`s z+Ix2I+U{xC>0d=Kf&A65JQ)H z?u$0uT_5)>xND*3))gyO+ya)%sILuogH5=$Y3J@HlA=6Tdw1PR&v*9Fz_!uPl6T*| zy9!VE`7uUS)6mym*2k{9J&PAF_Ux!d)9s5c(?k5bqjk0Mx~L~!U%SgzUwdedMVlnsvt;`;>obEs4(l_MKGUraf8GhKT>fk#j07&f zeg6Kxg0(_%eOmake -f Makefile.kos32 + +========= for compiler developers ========= +read .\source\readme_kos32.txt + +------ TODO ------- +-minimal memory allocator +-more libc stardard functions. see report below +-more Kolibly SysFn wrappers. see \libc\KOSfuncs_inc_status.txt +-add stdin, stderr, stdout emulation íå õâàòàåò stdin, stdout - ìîæíî ñäåëàòü êàê stderr!, íî íàäî âîçèòüñÿ çàîäíî ñ ferror & feof +-getchar, gets if returs errorcode (0, null) - you must exit program, because of closed console window +-ïðè íîðìàëüíîì âûõîäå çàêðûâàòü êîíñîëü + + +------ errors ------ +-not working: default search path are ./include ./lib from executable (under KOS need to use -Bpath_to_ktcc) +--start.o not found using -B (kos) - put near your.c file +-åñëè ïðîåêò ìíîãîôàéëîâûé - .dbg ãåíåðèò äóáëèðóþùèåñÿ ìåòêè äàííûõ, òèïà L.78 ìîæåò óêàçûâàòü íà äðóãîé ñåãìåíò ( +-.dbg sometimes generated improperly for source code labels + +----- fixed errors ------ +-if static var sized more than 14096+ -> crash compiled .exe (kos) +(^ default stack size set at compile time tccmeos:177 is below 4k) +FIX - use -stack=1280000 option +-con_set_title is NULL. fixed 180128 + + + +========= libc =========== +-no "finished" in title of console program after exit console - use con_exit() +-used system memory allocator (4096 bytes minimum) + + +libc not complete. overall status: +no files: +limits.h +locale.h +setjmp.h +signal.h +wchar.h +wctype.h + + + +functions absent list: + +stdio.h: +remove +rename +tmpfile +tmpnam +freopen +setbuf +setvbuf + + +stdlib.h: +atexit +getenv +system +bsearch +qsort +mblen +mbtowc +wctomb +mbstowcs +wcstombs + +string.h: +strxfrm + +time.h: - needs include kos32sys1.h +asctime +ctime +gmtime +localtime - non standard +strftime + + + + + + + Status or libc tests + +---FAILED--- +strtoul incorrect work with big unsigned > MAX_LONG + + +---NOT TESTED--- +no library fns realized +qsort +time + +---HANG--- +sscanf +>TEST_F(0x1234p56) - no %a formats + + +---STACK IS SMALL--- +use new -stack=1280000 option to pass test +tstring +strtodlong + + +--other-- +fscanf +-?scanf ignores width specs, '*' and [chars], cant read %a float +-%n counts as parameter + +snprintf +-some format misturbances +-may incorrect prints unsigned > 2147483647L + +ungetc +-ungetc fails if filepos == 0 - by design + +all file ops limited to 2Gb + + diff --git a/data/common/develop/tcc/samples/consoleio.c b/data/common/develop/tcc/samples/consoleio.c new file mode 100644 index 0000000000..f2d72c9c80 --- /dev/null +++ b/data/common/develop/tcc/samples/consoleio.c @@ -0,0 +1,23 @@ +// demonstration conio use, color text +// more info in conio.h + +#include + +int main() +{ + int i; + if (con_init_console_dll()) return 1; // init fail + +// con_write_asciiz("\033[0;31;42m test \n"); // red on green bk + + for(i = 30; i < 48; i++) + { + con_printf("\033[%dmColor 0x%02X: ", i, i); + con_write_asciiz("Text sample."); + + con_printf(" printf %s test %d\n", "small", i); + + } + + con_exit(0); +} \ No newline at end of file diff --git a/data/common/develop/tcc/samples/files.c b/data/common/develop/tcc/samples/files.c new file mode 100644 index 0000000000..f6c8f1033e --- /dev/null +++ b/data/common/develop/tcc/samples/files.c @@ -0,0 +1,43 @@ +#include +#include + +int main(int argc, char **argv) +{ + + int i; + char c; + FILE *f; + FILE *fin; + FILE *fout; + + //write to file + f=fopen("testfile.txt","w"); + + for(i=0;i<50;i++) + { + fputc('1',f); + } + fclose(f); + + //append to file + f=fopen("testfile.txt","a"); + + for(i=0;i<50;i++) + { + fputc('2',f); + } + fclose(f); + + //copy from testfile.txt to copyfile.txt + + fin=fopen("testfile.txt","r"); + fout=fopen("copyfile.txt","w"); + + while((c=fgetc(fin))!=EOF) + { + fputc(c,fout); + } + fclose(fin); + fclose(fout); + +} \ No newline at end of file diff --git a/data/common/develop/tcc/samples/simplewin_old.c b/data/common/develop/tcc/samples/simplewin_old.c new file mode 100644 index 0000000000..63bf266186 --- /dev/null +++ b/data/common/develop/tcc/samples/simplewin_old.c @@ -0,0 +1,61 @@ + +// simple sample by Ghost + +#include +#include +#include + +#define FONT0 0 +#define FONT1 0x10000000 + +#define BT_NORMAL 0 +#define BT_DEL 0x80000000 +#define BT_HIDE 0x40000000 +#define BT_NOFRAME 0x20000000 + +char header[]={" -= C demo programm. Compiled whith KTCC halyavin and andrew_programmer port =- "}; + +void rotate_str(char *str){ + char tmp; + int i; + tmp = str[0]; + for(i = 1; str[i]; i++)str[i - 1] = str[i]; + str[i - 1] = tmp; +} + +void draw_window(){ + static int offs = 0; + static int fcolor = 0; + static int col = 0; + + _ksys_window_redraw(1); + _ksys_draw_window(100, 100, 300, 120, 0xaabbcc, 2, 0x5080d0, 0, 0x5080d0); + _ksys_write_text(6 - offs, 8, fcolor | FONT0, header, strlen(header)); + _ksys_draw_bar(1, 6, 5, 13, 0x05080d0); + _ksys_draw_bar(274, 6, 26, 13, 0x05080d0); + _ksys_make_button(300 - 19, 5, 12, 12, 1 | BT_NORMAL, 0x6688dd); + _ksys_window_redraw(2); + + offs = (offs + 1) % 6; + if(!offs)rotate_str(header); + + fcolor += (col)?-0x80808:0x80808; + if(fcolor > 0xf80000 || fcolor == 0)col = !col; +} + +int main(int argc, char **argv){ + + while(!0){ + switch(_ksys_wait_for_event(10)){ + case 2:return 0; + + case 3: + if(_ksys_get_button_id() == 1)return 0; + break; + + default: + draw_window(); + break; + } + } +} diff --git a/data/common/develop/tcc/samples/winbasics.c b/data/common/develop/tcc/samples/winbasics.c new file mode 100644 index 0000000000..8b8b82f370 --- /dev/null +++ b/data/common/develop/tcc/samples/winbasics.c @@ -0,0 +1,148 @@ +/* + newlib-style window example +*/ + + +#include +#include +#include +#include +#include "kos32sys1.h" + +struct kolibri_system_colors sys_color_table; + +char statusbar[255]; +char proc_info[1024]; +char text_line[255]; + +enum BUTTONS +{ + BTN_QUIT = 1, + BTN_POP = 10, + BTN_UNLOCK = 11 +}; + +#define FONT_W 8 +#define FONT_H 14 +#define LINES 10 + +void draw_window() +{ + int win_hight, win_width, i, pos_y = get_skin_height() + 36; // 60 == 24+36 + + // start redraw + begin_draw(); + // define&draw window + sys_create_window(10, 40, 600, 400, "My window", /*sys_color_table.work_area*/0xFFFFFF, 0x13); + + get_proc_info(proc_info); + win_width = *(int*)(proc_info + 0x3E); // client, 2A windows + win_hight = *(int*)(proc_info + 0x42); // client, 2E windows + + define_button((10 << 16) + 80, (30 << 16) + 20, BTN_POP, sys_color_table.work_button); + draw_text_sys("BUTTON1", 15, 34, 0, 0x90000000 | sys_color_table.work_button_text); //0x80000000 asciiz + + define_button((100 << 16) + 100, (30 << 16) + 20, BTN_UNLOCK, sys_color_table.work_button); + draw_text_sys("BUTTTON2", 110, 34, 0, 0x90000000 | sys_color_table.work_button_text); + + // display statusbar + draw_bar(6, win_hight - 17, win_width - 11, 12, 0x80000000 | sys_color_table.work_area); //0x80000000 gradient + draw_text_sys(statusbar, 10, win_hight - 15, 0, 0x80000000 | sys_color_table.work_text); + + // display strings + for (i = LINES; i > 0; i--) + { + tiny_snprintf (text_line, sizeof text_line, "Line[%d]<>", i); + + text_line[(win_width - 10 - 5) / FONT_W + 1] = '\0'; // clip text size, seems to big lines crashing OS, and form len by window size +// draw_number_sys(nbytes, 5, pos_y, 6, 0x10000000); 8x12 font + draw_text_sys(text_line, 5, pos_y, 0, 0x90000000 /*| sys_color_table.work_text*/); + pos_y += FONT_H; + + if(pos_y + 29 > win_hight) break; // 12 font + 12 statusbar + 5 border + } + + // end redraw + end_draw(); +} + +int main() +{ + int gui_event; + uint32_t pressed_button = 0, mouse_button; + pos_t mouse_pos; + strcpy(statusbar, "Program running...Double click on TEXT for details"); + + get_system_colors(&sys_color_table); + set_event_mask(0xC0000027); // mouse events only when focused window and mouse inside + + do /* Start of main activity loop */ + { +// gui_event = wait_for_event(10); // 100 = 1 sec, case you have background work + gui_event = get_os_event(); + switch(gui_event) + { + case KOLIBRI_EVENT_NONE: + // background work + break; + case KOLIBRI_EVENT_REDRAW: + draw_window(); + break; + case KOLIBRI_EVENT_KEY: + // scroll + break; + case KOLIBRI_EVENT_BUTTON: + pressed_button = get_os_button(); + switch (pressed_button) + { + case BTN_POP: + strcpy(statusbar, "POP pressed...."); + draw_window(); + break; + case BTN_UNLOCK: + strcpy(statusbar, "UNLOCK pressed...."); + draw_window(); + break; + case BTN_QUIT: + return 0; + break; + } + break; + case KOLIBRI_EVENT_MOUSE: + mouse_pos = get_mouse_pos(POS_WINDOW); // window relative + mouse_button = get_mouse_eventstate(); + debug_board_printf("mouse ev (%d,%d)%x\n", mouse_pos.x, mouse_pos.y, mouse_button); + if (mouse_button & (1<<24)) // double click + { + int n = (mouse_pos.y - 60) / FONT_H; + if (n < 0 || n >= LINES) break; + debug_board_printf("click on str(%d), clip slot(%d)\n", n, LINES - n - 1); + tiny_sprintf(statusbar, "click on str(%d), clip slot(%d)\n", n, LINES - n - 1); + draw_window(); + } + // ignore + break; + } + } while(1) ; /* End of main activity loop */ + + return 0; +} + + + +void __attribute__ ((noinline)) debug_board_write_str(const char* str){ + while(*str) + debug_board_write_byte(*str++); +} + +void __attribute__ ((noinline)) debug_board_printf(const char *format,...) +{ + va_list ap; + char log_board[300]; + + va_start (ap, format); + tiny_vsnprintf(log_board, sizeof log_board, format, ap); + va_end(ap); + debug_board_write_str(log_board); + +} diff --git a/data/common/develop/tcc/tcc b/data/common/develop/tcc/tcc new file mode 100644 index 0000000000000000000000000000000000000000..be80cbdd45838fe21af5d78cfb4c2f1fcb95eb88 GIT binary patch literal 185768 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%0A}8e#nLH|GcYFm=f?qxK4~;4Gk9!Xl{d3mg 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 Hq3r(`m0&B8 literal 0 HcmV?d00001