Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Apr 20, 2019 8:06 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Sun Dec 16, 2018 9:41 pm 
Offline
User avatar

Joined: Sun Dec 16, 2018 1:59 am
Posts: 8
Доброго времени суток! Я недавно узнал о проекте, очень заинтересовался и хотел бы принять участие в разработке/портировании ПО. Администратор группы ВК сказал
Quote:
с моей точки зрения не хватает удобного текстового редактора с подсветкой кода

Я хочу сделать что-то (хотя у меня и другое видение о программах первой необходимости), но очень трудно начать, потому что не совсем понятно как организовать процесс разработки, т.е. мне интересно кто как работает в плане работает ли на живом железе/виртуальной машине, где разрабатывает - на целевой ос или вне ее, если так, то как переносить код/бинарники туда-сюда. Попробовал FTP-клиент (гуишный), он крашится при подключении, сеть отваливается постоянно на VirtualBox, утилитой настройки сети не восстанавливается, лечится только перезагрузкой. Хочется получить рекомендации "как начать" и м/б получить ссылки на конкретный код, который необходимо дорабатывать. Планирую писать на си (какой бы он ни был:-). Нахожусь в СПб, буду рад лично встретиться с другими участниками проекта. Спасибо!

_________________
This library provide an easy interface to the black magic...


Top
   
PostPosted: Mon Dec 17, 2018 12:05 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Добрый день.
plastictown wrote:
Планирую писать на си (какой бы он ни был:-)

На сколько я знаю для Колибри компилируются программы с помощью C-- и Borland C++ 5.02.
На C-- пишутся многие программы и он вроде-бы работает в самой Колибри. Администратор группы ВК (если имеется ввиду Leency, Кирилл) пишет программы на C--, думаю у него можно узнать более детальную информацию по работе с этим компилятором.
На Borland C++ есть пример компиляции программы life2. Этот компилятор не портирован в Колибри и наверное потому широкого распространения не получил. Хотя там очень интересный подход используется при компиляции. Сначала программа компилируется в ассемблерный код для TASM. Потом этот код преобразуется в код для fasm. Далее с помощью fasm компилируется исполняемый файл. Т.е. через Borland сначала получается ассемблерный код.


Top
   
PostPosted: Tue Dec 18, 2018 3:05 am 
Offline
User avatar

Joined: Sun Dec 16, 2018 1:59 am
Posts: 8
Да, я пытаюсь использовать tcc, могу собрать пока только пустой main(), потому что просто не могу понять, как собрать api целиком в виде заголовочников и библиотек, если таковой существует. Как-то все в виде отдельных ссылок на форуме. А Borland.. не хотелось бы кросс-компилить, очень неудобно перемещать бинарники, тем более, что на моей машине ОС нормально не запустилась, только на виртуалбоксе. Обидно просидеть до трех часов и не сделать вообще ничего полезного:)

_________________
This library provide an easy interface to the black magic...


Top
   
PostPosted: Tue Dec 18, 2018 3:11 am 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 431
работает в бесплатном vmware player, переношу через .flp (подключается в VMW) с помощью winimage 4.0
еще можно через USB-флешку

неудобно - нужно переподключать образ после изменений

С сейчас живой в 3х вариантах - gcc5.4+newlib, gcc + djgpp lib, tcc (единственный нативный-но примитивный)
1й и 3й вариант имеют АПИ в виде kos32sys?.h

C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего

все есть на форуме


Top
   
PostPosted: Wed Dec 19, 2018 2:32 am 
Offline
User avatar

Joined: Sun Dec 16, 2018 1:59 am
Posts: 8
Siemargl wrote:
еще можно через USB-флешку

Сделал загрузку с флешки в виртуалбоксе - в принципе нормально, не страшнее кросс-компиляции каким-нибудь linaro.
Siemargl wrote:
C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего

Мне leency, я полагаю, дал сегодня вектор в этом направлении, после прочтения доки по C-- остался один вопрос: там как-то хитро написано, что можно вроде бы собирать файлы obj, но использовать их нельзя, но можно использовать библиотеки, собранные на других языках. Правильно ли я понял?
Siemargl wrote:
все есть на форуме

Жуткая фраза:) Тем не менее, я собрал программку, которая даже запускается:) А нормально ли, что консольная программа после завершения не закрывается? я ее взял из примеров.

_________________
This library provide an easy interface to the black magic...


Top
   
PostPosted: Wed Dec 19, 2018 11:39 am 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 431
можно загружать .obj COFF формата со спец.заголовком сисфункцией

чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)


Top
   
PostPosted: Wed Dec 19, 2018 11:30 pm 
Offline
User avatar

Joined: Sun Dec 16, 2018 1:59 am
Posts: 8
Siemargl wrote:
чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)


В примере так и сделано.

Code:
con_exit stdcall (0);
ExitProcess();


На окне появляется надпись FINISHED и оно остается. Зато я научился создавать файл:)
Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
Я наверное не в ту ветку пишу все это:)


Top
   
PostPosted: Thu Dec 20, 2018 9:57 am 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 431
plastictown wrote:
Siemargl wrote:
чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)


В примере так и сделано.

Code:
con_exit stdcall (0);
ExitProcess();


На окне появляется надпись FINISHED и оно остается. Зато я научился создавать файл:)
Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
Я наверное не в ту ветку пишу все это:)

чтобы закрылось, надо con_exit (1)
http://websvn.kolibrios.org/filedetails ... ole_en.txt
рядом есть и дока на русском

непонятно про какой сисколл, но CD это компакт-диск, вероятно


Top
   
PostPosted: Fri Dec 21, 2018 2:23 am 
Offline
User avatar

Joined: Sun Dec 16, 2018 1:59 am
Posts: 8
Siemargl wrote:
чтобы закрылось, надо con_exit (1)
http://websvn.kolibrios.org/filedetails ... ole_en.txt
рядом есть и дока на русском
непонятно про какой сисколл, но CD это компакт-диск, вероятно

Я имел в виду 70 функцию. Про этот CD даже в голову не пришло. Наверное, скоро их совсем не станет.(
За доки спасибо! Очень удобные.

Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))

_________________
This library provide an easy interface to the black magic...


Top
   
PostPosted: Tue Jan 01, 2019 8:31 pm 
Offline

Joined: Sat Apr 22, 2017 6:11 pm
Posts: 222
plastictown wrote:
Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))

Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.

P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.


Top
   
PostPosted: Fri Jan 11, 2019 10:27 pm 
Offline
User avatar

Joined: Sun Dec 16, 2018 1:59 am
Posts: 8
theonlymirage wrote:
Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.

P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.


У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.

_________________
This library provide an easy interface to the black magic...


Top
   
PostPosted: Sat Jan 12, 2019 9:55 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1259
...эге-кхе-кхе...портировать Scintilla...кхе-хе...


Top
   
PostPosted: Tue Jan 15, 2019 2:54 am 
Offline
User avatar

Joined: Sun Dec 16, 2018 1:59 am
Posts: 8
Pathoswithin wrote:
...эге-кхе-кхе...портировать Scintilla...кхе-хе...


Не совсем понятно, что имеется в виду. Если это совет, то это слишком сложная работа при таком скудном наборе инструментов и библиотек, а вот генерация окна с элементами управления на основе текстового файла - на мой взгляд, может сильно ускорить разработку диалоговых окошек, хотя и поведение их придется расписывать так же. Плюс к тому - libconfig в принципе очень удобная штука. Юзал ее для генерации дерева элементов в 2D движке на OpenGL. Как минимум удобнее xml и не так громоздко выглядит.

_________________
This library provide an easy interface to the black magic...


Top
   
PostPosted: Tue Jan 15, 2019 5:07 pm 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1142
plastictown wrote:
У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.


Просто портировать, пусть на Си и остаются.

_________________
я лишь учусь


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 14 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited