Колибри 0.7.7.0

Share your distros and discuss others'
  • А в лог atikms.log при этом что-нибудь пишется?
  • А, всё, понял. У меня kpack более новой версии, который сохраняет тип исходного файла в заголовок упакованного, а распаковщик в ядре при этом проверить и поправить я забыл.
    fixed in svn.1450
    Ушёл к умным, знающим и культурным людям.
  • заметил, что в режиме VGA (640x480, 16 цветов) при двойном щелчке по заголовку не разворачиваются окна (KFAR, KFM, Tinypad). проверял в QEmu.
  • С ревизии 1466 событие мыши (номер 6) окну не передается, если пользователь захватил окно за верхнюю часть и таскает, как только отпустит событие снова начинает генерироваться.
    Как плюс - нет лишних генераций событий и их обработки, что должно снизить немного нагрузку на систему.
    Ну, и на KFM и OpenDialog теперь не происходит сдвига курсора и кликов по активной области компонента FileBrowser (Box_Lib) в момент таскания. Вроде все работает без проблем, если кто что заметит подозрительное - просьба сообщить.
  • Albom wrote:заметил, что в режиме VGA (640x480, 16 цветов) при двойном щелчке по заголовку не разворачиваются окна (KFAR, KFM, Tinypad).
    Последовательность событий следующая. Пользователь жмёт на левую кнопку мыши (далее ЛКМ) на заголовке окна. Ядро в лице главного потока записывает время нажатия и инициирует процесс перетаскивания окна. Пользователь отпускает ЛКМ. Главный поток завершает процесс перетаскивания окна и отрабатывает действия по перемещению окна, в том числе перерасчёт и перерисовку всех окон в старом и новом прямоугольниках. Естественно, туда попадает и окно рабочего стола с фоновым рисунком. После чего главный поток начинает старательно вычислять фон под окном в тормозном VGA-режиме. Пользователь снова жмёт ЛКМ, но главный поток этого не видит, потому что занят вычислением фона. Закончив расчёты, главный поток видит второе нажатие ЛКМ, сравнивает время нажатия со временем предыдущего нажатия, видит, что прошла куча времени (и не видит, что он сам это время и использовал) (конкретное значение, на случай, если кому интересно, - больше полусекунды), делает вывод, что это независимое нажатие, и не думает разворачивать окно.
    В svn.1474 сделал пропуск действий по перемещению окна, если оно не переместилось. Стало легче.
    Ушёл к умным, знающим и культурным людям.
  • Добавил в load_lib.mac новый макрос @use_library_mem :

    Code: Select all

    @use_library_mem mem_alloc,mem_free,mem_realloc,dll_load
    Этот макрос можно использовать для инициализации функций с именами 'lib_init', которые используют функции для работы с памятью. На другие программы это никак влиять не должно. Если пользователю нужен макрос @use_library_mem тогда он должен будет написать его вместо @use_library. Первый параметр не должен быть 0-м, остальные могут, при условии что подключаемые библиотеки не используют этих функций. Все на svn rev 1488.
  • Изменения на svn 1489.
    Удалил все функции работы с памятью из 'box_lib.obj' теперь они присоединяются через функцию 'lib_init'.
    Все программы использующие элементы 'tree_list' и 'text_editor' должны подключать функцию 'lib_init' для подключения функций работы с памятью.
    Программы использующие другие элементы: editbox, checkbox, optionbox, ... могут подключаться к 'box_lib.obj' по старой схеме, минуя 'lib_init'.
  • Прошу добавить открытие программы scrshoot по нажатию PrintScreen.
    Из хаоса в космос
  • SVN 1494 Просьба протестировать работу 66 сис. функции.
  • <Lrz>
    Можно подробнее про изменения в 66 функции?
  • SVN 1494: "66 system function have call without shift registers."
    ушёл...
  • Asper wrote:<Lrz>
    Можно подробнее про изменения в 66 функции?
    Я провожу мной запланированную ранее работу http://wiki.kolibrios.org/wiki/Plan/ru
    Если коротко, то при каждом вызове сис. функции, ранее происходило переключение регистров, и только потом попадало на обратотчик сис. функции.

    Code: Select all

    cross_order:
            ; load all registers in crossed order
            mov     eax, ebx
            mov     ebx, ecx
            mov     ecx, edx
            mov     edx, esi
            mov     esi, edi
            movzx   edi, byte[esp+28 + 4]
            call    dword [servetable+edi*4]
            ret
    
    Я уже переписал значительную часть сис. функций на прямой вызов. осталось переписать всего 5 сис. функций.

    Это даст увеличение скорости выполнения (такты) и уменьшение размера ядра.
  • А зачем, собственно, нужно было переключение регистров?
    ушёл...
  • Nasarus wrote:А зачем, собственно, нужно было переключение регистров?
    Спроси у Ville Mikael Turjanmaa, villemt@itu.jyu.fi
  • Who is online

    Users browsing this forum: No registered users and 15 guests