life2

Entertainment for 5 minutes, hours, days
  • А bat'ник так и не заработал? А если полный путь, а не относительный подставить?
  • Надо бы убрать строку, так как она не рисуется все равно, а добавить задание цвета. И тогда можно залить.
    Сделал. Только обработки кнопок пока нет. Поэтому при нажатии на нее все закрывается. Но залью все равно
  • Вычислил где проблема, под виндовсом создается не правильный файл kos_make.inc, все пишется в одну строку :

    Code: Select all

    STACKSIZE equ 102400 \n HEAPSIZE equ 102400 \n ....................
    потому файлы не подключаются и компиляция в fasm не идет.
    Пробовал сделать так:

    Code: Select all

    echo STACKSIZE equ 102400> kos_make.inc
    echo HEAPSIZE equ 102400> kos_make.inc
    echo include "..\..\..\proc32.inc"> kos_make.inc
    echo include "..\..\..\bcc32\include\kos_start.inc"> kos_make.inc
    echo include "..\..\..\bcc32\include\kos_func.inc"> kos_make.inc
    echo include "..\..\..\bcc32\include\kos_heap.inc"> kos_make.inc
    и в файле остается последняя строка :cry:
    maxcodehack wrote:Надо бы убрать строку, так как она не рисуется все равно, а добавить задание цвета.
    Это про "Button 1"? Если да, то я просто не успел ее доделать. Там вобще можно еще оптимизировать функцию убрать 2 лишних поразрядных сдвига...
  • Остается одна строка потому что надо вместо > использовать >>
    А вообще не знаю, возможно ли это в batch, но както сверху завести переменную путь, и потом везде ее имя подставить. А то чуть путь изменится, и уже все, надо везде исправлять
    Вот у меня в мейкфайле так сделано
    А вообще компилятор староват, вроде же он до сихпор развивается в embarcadero. Только конечно получить его сложно, да и не факт что заработают t2fasm'ы
  • rev 8165
    Обновил пример window.cpp вместе с подключаемыми файлами
    - подключение файла "proc32.inc" перенесено в файл "kos_start.inc"
    - добавлен файл "KOSfuncs.inc" с константами функций
    - убрал макросы usedef, define, enddef, newdef, nextdef которые были нужны для компиляции непропатченым bcc32, сейчас с пропатченым bcc32 они не используются
    - в bat файле поставил удаление kos_make.inc в случае если существует window.kex
    - добавлена обертка на системную функцию SF_SET_CAPTION (71)
    - функци KolibriOnClose, KolibriOnIdle, KolibriOnSize, KolibriOnKeyPress, KolibriOnMouse стали не обязательными для компиляции приложения (Т.е. можно их не подключать и window.cpp будет работать без них, если они нужны то можно подключить и window.cpp будет с ними работать. Раньше обязательно нужно было их подключать иначе программа не компилировалась)
    - добавлены функции KolibriOnButton, SetWindowCaption
  • KolibriOnSize - это я так понимаю был ресайз окна?
    KolibriOnIdle - это я не знаю.
    KolibriOnClose - это уже не нужно
    KolibriOnKeyPress, KolibriOnMouse - а это нужно, ведь работать с клавиатурой и с мышью надо
  • Чуть изменил и добавил шаблон
  • maxcodehack wrote:KolibriOnIdle - это я не знаю
    тоже не знаю что это
    maxcodehack wrote:KolibriOnClose - это уже не нужно
    Это я так понимаю функция, которая должна сообщить программе можно ли закрывать окно. Например есть какой нибудь редактор, и в нем пользователь открыл и изменил документ. Потом не сохраняя нажал на кнопку выхода из программы. По идее KolibriOnClose должно спросить пользователя сохранить ли изменения в документе. Если пользователь согласился сохранить то KolibriOnClose вернуло false - нельзя закрывать окно. Если не согласился сохранять то KolibriOnClose вернуло true - можно закрывать.

    rev 8169
    исправил

    Code: Select all

    Set NAME=hello
    на

    Code: Select all

    Set NAME=window
  • Еще надо в переменные пути к инклудам чтоб в одном месте
  • maxcodehack wrote:Но теперь вроде все заменено.
    Может залить?
    залил обновленный код life2 в rev 8170 и еще немного подправил константы, подчистил код.

    Долго не мог разобраться как в life2 была сделана работа с памятью а когда понят то ... :shock:
    Оказывается при запуске программы она просит много памяти у операционной системы. Потом все функции выделения, удаления, перераспределения памяти занимаются просто выдачей указателей на определенные участки той памяти, которая была выдана приложению при запуске программы. Там используются какие-то страшные алгоритмы с хеш функциями, бинарными деревьями и еще не понятно чем ... Т.е. когда создавалась программа то функций 68.11, 68.12, 68.13 и 68.20 еще не было. И автор life2 сделал свой менеджер памяти внутри программы, который не может выделить более того что было дано программе при запуске системы...
    Короче говоря желательно все переделать на вызов системных функций 68.11, 68.12, 68.13 и 68.20.
  • IgorA wrote: Оказывается при запуске программы она просит много памяти у операционной системы. Потом все функции выделения, удаления, перераспределения памяти занимаются просто выдачей указателей на определенные участки той памяти, которая была выдана приложению при запуске программы. Там используются какие-то страшные алгоритмы с хеш функциями, бинарными деревьями и еще не понятно чем ...
    Что-то как-то много наворотов для обычной life... :D
    2004: Kolibri OS - Operating system that fits on a single floppy disk (Система которая умещается на дискете).
    2020: Kolibri OS - Operating system that can only be run under Virtual machine (Система которую можно запустить только на виртуальной машине).
  • А совместима ли лайф2 с инклудами из programs/bcc32/include?
  • maxcodehack wrote:А совместима ли лайф2 с инклудами из programs/bcc32/include?
    пока не совместима

    rev 8184
    Обновил life2, теперь память выделяется через ф. 68. Компиляция теперь может идти без ручного переноса строк с equ на верх файла, потому что строки с equ, которые были раньше пропали :o . Но при компиляции больших программ думаю такое еще будет возможно, что-бы переносить вручную строки с equ. Программа в сжатом виде стала меньше на 3кб. Отдельный пример по работе с файлом на bcc пока еще не готов.
  • rev 8190 добавлен пример file_open
    rev 8196 исправлена функция Alloc, оптимизация кода
    rev 8199 исправлена ошибка в life2 (сделанная в rev 8184) оптимизация кода, оптимизация кода life3
  • Who is online

    Users browsing this forum: No registered users and 3 guests