Page 12 of 20

Re: Tiny C Compiler

Posted: Sun Nov 24, 2013 11:43 am
by punk_joker
Unusual wrote:а как тогда использовать BoxLib с компилятором tcc и что писать в коде?
Думаю тут лучше поможет SoUrcerer

Re: Tiny C Compiler

Posted: Sun Nov 24, 2013 11:49 am
by Unusual
Дмитрий, помогите с BoxLib, пожалуйста !

Re: Tiny C Compiler

Posted: Tue Nov 26, 2013 12:59 am
by z525
Я не специалист и не знаю поможет или нет:
примеры использования библиотек в СИ из console.obj
из box_lib.obj

Re: Tiny C Compiler

Posted: Tue Nov 26, 2013 10:08 am
by SoUrcerer
Всё верно, нужно взять console.obj и заменить функции console на функции box_lib. Может потребоваться объявление stdcall, дополнительных функций и использование dll.asm - модуля загрузки dll на fasm. Предлагаю посмотреть тут:
http://websvn.kolibrios.org/filedetails ... s%2Fhttp.c
Странно, почему-то в репозитарии нет dll.asm; добавлю по возможности. Он основан на dll.inc, но немного отличается - он в ELF и с экспортом.

Re: Tiny C Compiler

Posted: Fri Nov 29, 2013 1:02 am
by z525
Допустим есть некая библиотека написанная на ассемблере (хотябы теже самые console.obj
и box_lib.obj ). Как узнать как я должен вызывать эти функции на языке СИ - какие параметры нужно передавать и что эта функция возвращает, т.е. какой у функции должен быть заголовок (или у указателя)?

Re: Tiny C Compiler

Posted: Fri Nov 29, 2013 1:31 am
by 0CodErr
z525, для console.obj есть описание, например, здесь http://websvn.kolibrios.org/filedetails ... ole_en.txt
console.obj exports the following functions

typedef unsigned long dword; /* 32-bit unsigned integer */
typedef unsigned short word; /* 16-bit unsigned integer */

void __stdcall con_init(dword wnd_width, dword wnd_height,
dword scr_width, dword scr_height, const char* title);
[...]
void __stdcall con_exit(bool bCloseWindow);
[...]
void __stdcall con_set_title(const char* title);
[...]
void __stdcall con_write_asciiz(const char* string);
[...]

Re: Tiny C Compiler

Posted: Fri Nov 29, 2013 10:14 am
by SoUrcerer
А это, батенька, смотрите в документации к библиотеке. Например,
http://websvn.kolibrios.org/filedetails ... ttp_en.txt - здесь сразу указано, какие функции и какой формат.

А вот в network.obj смотрим:
http://websvn.kolibrios.org/filedetails ... lookup.asm
Здесь параметры передаются через стек, возвращаются в eax - видим обычный stdcall. О, и правда: http://www.opennet.ru/man.shtml?topic=g ... &russian=2

Code: Select all

int getaddrinfo(const char *node, const char *service,
                const struct addrinfo *hints,
                struct addrinfo **res);

Re: Tiny C Compiler

Posted: Sat Nov 30, 2013 8:40 am
by Косинус
[deleted by author]

Re: Tiny C Compiler

Posted: Sat Nov 30, 2013 9:58 am
by SoUrcerer
Держите. Work in progress. Файл tcckos.c просто внаглую скопирован из старого порта, и ещё не приведен в соответствие с остальным кодом - и не используется.

Re: Tiny C Compiler

Posted: Sat Nov 30, 2013 3:10 pm
by Косинус
[deleted by author]

Re: Tiny C Compiler

Posted: Fri Dec 06, 2013 10:22 pm
by z525
SoUrcerer wrote:А это, батенька, смотрите в документации к библиотеке.
0CodErr wrote: для console.obj есть описание, например, здесь
Для console.obj описание есть а вот для box_lib.obj такого описания я не нашел. Или искал плохо? Или в этой библиотеке все функции одинаково вызываются и поэтому нет особого описания. Но что тогда за схема вызова? Это нужно как-то самому отследить читая коды функций?

Re: Tiny C Compiler

Posted: Fri Dec 06, 2013 10:47 pm
by SoUrcerer
Там все управляется через структуры в основном. Я не особо разбирался; рекомендую проверить примеры, они реально выглядят простыми.

Re: Tiny C Compiler

Posted: Fri Dec 06, 2013 11:00 pm
by 0CodErr
z525, там должно быть stdcall. Кроме lib_init. А lib_init нужна при использовании tree_list или text_editor.
Также есть примеры на ЯВУ:
XDS Modula-2/Oberon-2 compiler: viewtopic.php?f=33&t=2280#p47919
FreeBasic: viewtopic.php?f=33&t=2202#p47749

Re: Tiny C Compiler

Posted: Sun Mar 02, 2014 10:41 pm
by ЕвгенийOdxfhjd
Как в консольном приложении, которое пишу на Tiny C, осуществить ввод с клавиатуры? Какой функцией воспользоваться и как её подключить?

Re: Tiny C Compiler

Posted: Mon Mar 03, 2014 5:52 pm
by Wildwest