Я хочу сделать что-то (хотя у меня и другое видение о программах первой необходимости), но очень трудно начать, потому что не совсем понятно как организовать процесс разработки, т.е. мне интересно кто как работает в плане работает ли на живом железе/виртуальной машине, где разрабатывает - на целевой ос или вне ее, если так, то как переносить код/бинарники туда-сюда. Попробовал FTP-клиент (гуишный), он крашится при подключении, сеть отваливается постоянно на VirtualBox, утилитой настройки сети не восстанавливается, лечится только перезагрузкой. Хочется получить рекомендации "как начать" и м/б получить ссылки на конкретный код, который необходимо дорабатывать. Планирую писать на си (какой бы он ни был:-). Нахожусь в СПб, буду рад лично встретиться с другими участниками проекта. Спасибо!с моей точки зрения не хватает удобного текстового редактора с подсветкой кода
Участие в разработке
-
Доброго времени суток! Я недавно узнал о проекте, очень заинтересовался и хотел бы принять участие в разработке/портировании ПО. Администратор группы ВК сказалThis library provide an easy interface to the black magic...
Добрый день.
На C-- пишутся многие программы и он вроде-бы работает в самой Колибри. Администратор группы ВК (если имеется ввиду Leency, Кирилл) пишет программы на C--, думаю у него можно узнать более детальную информацию по работе с этим компилятором.
На Borland C++ есть пример компиляции программы life2. Этот компилятор не портирован в Колибри и наверное потому широкого распространения не получил. Хотя там очень интересный подход используется при компиляции. Сначала программа компилируется в ассемблерный код для TASM. Потом этот код преобразуется в код для fasm. Далее с помощью fasm компилируется исполняемый файл. Т.е. через Borland сначала получается ассемблерный код.
На сколько я знаю для Колибри компилируются программы с помощью C-- и Borland C++ 5.5.1.plastictown wrote:Планирую писать на си (какой бы он ни был:-)
На C-- пишутся многие программы и он вроде-бы работает в самой Колибри. Администратор группы ВК (если имеется ввиду Leency, Кирилл) пишет программы на C--, думаю у него можно узнать более детальную информацию по работе с этим компилятором.
На Borland C++ есть пример компиляции программы life2. Этот компилятор не портирован в Колибри и наверное потому широкого распространения не получил. Хотя там очень интересный подход используется при компиляции. Сначала программа компилируется в ассемблерный код для TASM. Потом этот код преобразуется в код для fasm. Далее с помощью fasm компилируется исполняемый файл. Т.е. через Borland сначала получается ассемблерный код.
Last edited by IgorA on Wed Nov 04, 2020 11:40 am, edited 1 time in total.
Да, я пытаюсь использовать tcc, могу собрать пока только пустой main(), потому что просто не могу понять, как собрать api целиком в виде заголовочников и библиотек, если таковой существует. Как-то все в виде отдельных ссылок на форуме. А Borland.. не хотелось бы кросс-компилить, очень неудобно перемещать бинарники, тем более, что на моей машине ОС нормально не запустилась, только на виртуалбоксе. Обидно просидеть до трех часов и не сделать вообще ничего полезного:)
This library provide an easy interface to the black magic...
работает в бесплатном vmware player, переношу через .flp (подключается в VMW) с помощью winimage 4.0
еще можно через USB-флешку
неудобно - нужно переподключать образ после изменений
С сейчас живой в 3х вариантах - gcc5.4+newlib, gcc + djgpp lib, tcc (единственный нативный-но примитивный)
1й и 3й вариант имеют АПИ в виде kos32sys?.h
C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего
все есть на форуме
еще можно через USB-флешку
неудобно - нужно переподключать образ после изменений
С сейчас живой в 3х вариантах - gcc5.4+newlib, gcc + djgpp lib, tcc (единственный нативный-но примитивный)
1й и 3й вариант имеют АПИ в виде kos32sys?.h
C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего
все есть на форуме
Сделал загрузку с флешки в виртуалбоксе - в принципе нормально, не страшнее кросс-компиляции каким-нибудь linaro.Siemargl wrote: еще можно через USB-флешку
Мне leency, я полагаю, дал сегодня вектор в этом направлении, после прочтения доки по C-- остался один вопрос: там как-то хитро написано, что можно вроде бы собирать файлы obj, но использовать их нельзя, но можно использовать библиотеки, собранные на других языках. Правильно ли я понял?Siemargl wrote: C-- это другой диалект (ниже уровнем чем С), но на нем написано больше всего
Жуткая фраза:) Тем не менее, я собрал программку, которая даже запускается:) А нормально ли, что консольная программа после завершения не закрывается? я ее взял из примеров.Siemargl wrote: все есть на форуме
This library provide an easy interface to the black magic...
можно загружать .obj COFF формата со спец.заголовком сисфункцией
чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
В примере так и сделано.Siemargl wrote: чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
Code: Select all
con_exit stdcall (0);
ExitProcess();
Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
Я наверное не в ту ветку пишу все это:)
чтобы закрылось, надо con_exit (1)plastictown wrote:В примере так и сделано.Siemargl wrote: чтобы закрыть консольное окно,нужно в конце программы вызвать функцию консоли con_exit как то так (удобно, если при ошибке окно с сообщением осталось)
На окне появляется надпись FINISHED и оно остается. Зато я научился создавать файл:)Code: Select all
con_exit stdcall (0); ExitProcess();
Хотя там странное дело Написано в доке на сисколл, что функция не работает для CD. Если CD - это текущая директория, то она работает, а если нет, тогда непонятно что такое CD:)
Я подумал, а не имеет ли смысла привести сигнатуры функций для c-- к posix-ным или так специально задумано? Тем более непонятно, что передавать в буфер, если я хочу просто создать пустой файл.
Еще интересно, нет ли документации на функции для c--? Просто по исходникам далеко не все очевидно, хотя бы какие нужно загружыть библиотеки для какой функции.
Я наверное не в ту ветку пишу все это:)
http://websvn.kolibrios.org/filedetails ... ole_en.txt
рядом есть и дока на русском
непонятно про какой сисколл, но CD это компакт-диск, вероятно
Я имел в виду 70 функцию. Про этот CD даже в голову не пришло. Наверное, скоро их совсем не станет.(Siemargl wrote: чтобы закрылось, надо con_exit (1)
http://websvn.kolibrios.org/filedetails ... ole_en.txt
рядом есть и дока на русском
непонятно про какой сисколл, но CD это компакт-диск, вероятно
За доки спасибо! Очень удобные.
Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))
This library provide an easy interface to the black magic...
Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.plastictown wrote: Дело за малым: придумать, чего же я такого полезного хочу сделать.-)))
P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.
У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.theonlymirage wrote: Для примера: ты можешь реализовать конвертер величин (секунды в минуты, минуты в часы, гигабайты в байты, километры в метры и т.д.). На мой взгляд такая программа полезная и не сильно сложная, для начала самая подходящая задача. Это только как пример того, что ты можешь сделать.
P.S. Чтобы полученные навыки работы с файлами зря не пропали, можно сохранять результат в файл или обрабатывать несколько значений из одного файла, сохраняя результат конвертации во второй.
This library provide an easy interface to the black magic...
...эге-кхе-кхе...портировать Scintilla...кхе-хе...
Не совсем понятно, что имеется в виду. Если это совет, то это слишком сложная работа при таком скудном наборе инструментов и библиотек, а вот генерация окна с элементами управления на основе текстового файла - на мой взгляд, может сильно ускорить разработку диалоговых окошек, хотя и поведение их придется расписывать так же. Плюс к тому - libconfig в принципе очень удобная штука. Юзал ее для генерации дерева элементов в 2D движке на OpenGL. Как минимум удобнее xml и не так громоздко выглядит.Pathoswithin wrote:...эге-кхе-кхе...портировать Scintilla...кхе-хе...
This library provide an easy interface to the black magic...
Просто портировать, пусть на Си и остаются.plastictown wrote: У меня родилась чуть другая идея. Думаю попробовать портировать на cmm libconfig или libjson-c и сделать автогенерацию интерфейса на основе текстового файла. Мне кажется, это хорошая идея.
to infinity and beyond
Who is online
Users browsing this forum: No registered users and 16 guests