life2
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
life2
Игра life2 - Conway's life
Единственный пример программы на BorlandC++
http://websvn.kolibrios.org/listing.php ... c9bc90d7ba
Единственный пример программы на BorlandC++
http://websvn.kolibrios.org/listing.php ... c9bc90d7ba
Last edited by maxcodehack on Tue Nov 03, 2020 5:39 pm, edited 1 time in total.
Re: life2
Попробуй строки с equ в начало файла перекинуть.Хотя таким подобный способом helloworld из статьи diamond'а собрался.
Еще нужно настроить автосборку life2 на сервере
Code: Select all
@@Kolibri@ReadCommonColors$qpui equ @Kolibri@ReadCommonColors$qpui
@@Kolibri@GetPid$qv equ @Kolibri@GetPid$qv
@@Kolibri@Lock$qp14Kolibri@TMutex equ @Kolibri@Lock$qp14Kolibri@TMutex
...
@@Kolibri@GetMouseButton$qv equ @Kolibri@GetMouseButton$qv
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: life2
Попробую.
Только на сервере это как-то нужно обойти.
И чтобы новый fasm работал
UPD
Да, заработало, спасибо.
Только на сервере лучше обойти нормально.
Еще заметил что title у окна какой то неправильный, маленький. Хотя в том примере diamond'а заголовок нормальный
И еще, удалить бы экзешники с сервера. Они на сервере не нужны для сборки. t2fasm отлично пересобирается для linux, а вот что делать с bmp2h
Только на сервере это как-то нужно обойти.
И чтобы новый fasm работал
UPD
Да, заработало, спасибо.
Только на сервере лучше обойти нормально.
Еще заметил что title у окна какой то неправильный, маленький. Хотя в том примере diamond'а заголовок нормальный
И еще, удалить бы экзешники с сервера. Они на сервере не нужны для сборки. t2fasm отлично пересобирается для linux, а вот что делать с bmp2h

Re: life2
Новый fasm не работает по 2-м причинам:maxcodehack wrote:И чтобы новый fasm работал
1) в коде есть макрос define, которым программа t2fasm обделывает все функции из полученного *.asm файла.
В новых версиях fasm появилась команда define, которая совпадает с именем макроса и потому компиляция не идет.
По этой причине я в (rev 8129) в подключаемых *.inc файлах заменил макрос define на макрос proc, однако осталась проблема с программой t2fasm.
2) в коде который создает bcc32 имена некоторых меток начинаются со знака $.
А в новых версиях fasm имена меток не могут начинаться со знака $.
Т.е. для компиляции нужно исправить эти проблемы.
Предлагаю такой вариант решения:
Создаем *.asm файл с таким содержанием: Ложим его рядом с компилятором bcc32.exe и делаем ему кряк, описанный в *.asm файле. Исходный файл bcc32.exe куда-нибудь убираем, чтобы не мешал. Переименовываем получившийся скомпилированный файл в bcc32.exe. После чего компилируем все как обычно, но при этом убираем макрос macro define x,[link] ... из файла kos_start.inc .
Может получилось еще сложнее и более накручено, но зато у меня компилируется новым fasm-ом. Кряк компилятору делается одноразово и должен подходить к компиляции разных *.cpp файлов.
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: life2

А вот исправить define и $ можно
Попробовать надо
Re: half-life2
скоро будет готова?
Я один из тех, кто ещё не программист, но уже не новичок.
Редактор в группе "KolibriOS - официальная группа".
Редактор в группе "KolibriOS - официальная группа".
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: life2
Думаю можно заменить define на define_f что-бы не совпадало. А заменить $ без кряка будет сложновато, нужно находить все метки в коде в программе t2fasmmaxcodehack wrote:А вот исправить define и $ можно
Пока что у нас нет выбора.maxcodehack wrote:По мне как то кряк использовать не очень хорошо
rev 8133
Убрал еще немного Menuet-а из кода.
Оказалось что файлы menuet.h в life2 и в примере "Hello word" разные ... Настроить работу нового примера "Hello word" пока не получается. Компилируется но не печатает текст, потому как diamond ввел новую функцию MenuetOnDraw и изменил алгоритм рисования.
Потому на вики пока менять еще не буду.
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: life2
Был какой то глюк svn'а
___________________
Крякнул компилятор, компилирую фасмом:
Это life2
А когда пробую helloworld собрать новым фасмом:
___________________
Крякнул компилятор, компилирую фасмом:
Code: Select all
flat assembler version 1.71.57 (16384 kilobytes memory)
kos_cdlg.inc [45]:
mov ebx,[ebp+MENUET_THREAD_DATA_X*4]
processed: mov ebx,[ebp+MENUET_THREAD_DATA_X*4]
error: undefined symbol 'MENUET_THREAD_DATA_X'.
А когда пробую helloworld собрать новым фасмом:
Code: Select all
flat assembler version 1.71.57 (16384 kilobytes memory)
include\me_func.inc [80]:
nextdef MenuetEntryPoint
include\me_start.inc [85] nextdef [3]:
end if
processed: end if
error: unexpected instruction.
Re: life2
Такое бывает если пользователь делает изменения в файле и на svn также делаются изменения в этом же месте. Например ты заменил макрос define на _define, а я заменил define на define_f. При обновлении файла svn не хочет удалять твои правки и пишет сразу 3 версии кода, что было, твою версию и что стало на svn. Можно попробовать просто удалить файл и загрузить его снова, должна загрузиться последняя версия.maxcodehack wrote:<<<<<<< .mine
macro _define x,[link]
||||||| .r8129
macro define x,[link]
=======
macro define_f x,[link]
>>>>>>> .r8133
это я забыл файл kos_cdlg.inc обновить, потому не работало, скинул его в rev 8134maxcodehack wrote:flat assembler version 1.71.57 (16384 kilobytes memory)
kos_cdlg.inc [45]:
mov ebx,[ebp+MENUET_THREAD_DATA_X*4]
processed: mov ebx,[ebp+MENUET_THREAD_DATA_X*4]
error: undefined symbol 'MENUET_THREAD_DATA_X'.
helloworld у меня пока что не работает, потому для него нужен другой файл kolibri.inc я пока не знаю как с этим быть ложить 2 файла сразу не хочется, а в один файл пока свести не могу. Получается или будет life2 работать или helloworld смотря какой файл положить.
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: life2
Теперь осталась только одна проблема - с equ
И конечно полностью избавится от менуэт, и слиять код диамонда и yogev ezra
И конечно полностью избавится от менуэт, и слиять код диамонда и yogev ezra
Last edited by maxcodehack on Thu Nov 05, 2020 6:53 pm, edited 1 time in total.
Re: life2
Файлы для компиляции обновленного Hello word от diamond-а положил в архив.
Для компиляции нужно взять недостающие новые файлы из папки life. Разница там в стилях окна и в функции рисования, потому пока свести к общему знаменателю не получается.
для этого нужно доработать перестановку этих строк в t2fasm.maxcodehack wrote:Теперь осталась только одна проблема - с equ
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: life2
Еще один вопрос. Не нравится мне, что все лежит в папке с игрой. Вдруг вот еще на нем программы будут, что копировать? По мне можно в contrib создать папку kos32-bcc, и там будет лежать t2fasm, патч, и helloworld, и набор библиотек. Тогда путь указывать к одной папке.
Только это можно сделать тогда, когда слияем набор инклудников
grep'нул. Поможет полностью избавится от менуэта: Можно использовать хорошие штуки - найти и заменить - в текстовых редакторах
Только это можно сделать тогда, когда слияем набор инклудников
grep'нул. Поможет полностью избавится от менуэта: Можно использовать хорошие штуки - найти и заменить - в текстовых редакторах
-
- Posts: 412
- Joined: Mon Sep 07, 2020 7:09 pm
Re: life2
Позаменял в редаторе menuet на kolibri
На SVN пока не заливаю, но ВСЕ РАБОТАЕТ. Просто просмотри
На SVN пока не заливаю, но ВСЕ РАБОТАЕТ. Просто просмотри
- Attachments
-
- life2__KOS.zip
- (327.64 KiB) Downloaded 170 times
Re: life2
Думаю что нужно отдельную папку сделать для Bcc. Но в ней для начала закинуть helloworld, потому как life2 программа сильно накрученная и для первоначальных примеров работы не подходит. В ней рисование окна скорее всего делается по таймеру, а в helloworld окно рисуется при системной перерисовке, потому они не стыкуются между собой. Также если делать такую папку то в последствии хорошо было-бы наклепать разных примеров, наподобие как у 0CodErr-а про Delphi http://board.kolibrios.org/viewtopic.ph ... lit=Delphimaxcodehack wrote:Еще один вопрос. Не нравится мне, что все лежит в папке с игрой. Вдруг вот еще на нем программы будут, что копировать? По мне можно в contrib создать папку kos32-bcc, и там будет лежать t2fasm, патч, и helloworld, и набор библиотек.
Я так и делал в Notepad++, просто все сразу не убирал потому как не компилировалось... Например долго не мог выловить ошибку с функциями использующими TMutex:maxcodehack wrote:Можно использовать хорошие штуки - найти и заменить - в текстовых редакторах
Code: Select all
@Kolibri@Lock$qp14Kolibri@TMutex
Это очень хорошо что работает.maxcodehack wrote:Позаменял в редаторе menuet на kolibri
На SVN пока не заливаю, но ВСЕ РАБОТАЕТ. Просто просмотри
Who is online
Users browsing this forum: No registered users and 0 guests