Колибри 0.7.0.0

Share your distros and discuss others'
  • andrew_programmer
    В общем, вскрытие показало, что и в 0700 и в 0650 тоже самое. В принципе все логично – мы получаем через функцию 37 события мыши независимо от активности окна. Для ликвидации последствий раньше можно было при запуске приложения запомнить его номер через mcall 18, 7 и в дальнейшим при получении событий мыши проверять совпадает ли номер процесса активного окна с запомненным номером, если совпадает то обрабатывать события мыши, если нет, то не обрабатывать.
    Но в ядрах выше 566 эти два значения в некоторых случаях не совпадают. В общем, в 566 ядре они совпадают, а в 571 не совпадают. У меня есть подозрение, что ошибка возникла в 569, поскольку только в этой ревизии были внесены изменения связанные с оконной системой.

    Maxis
    Ладно. Я выложу архив с набором ядер, и попробуем определить, на какой ревизии перестало работать. Возможно, в той, где я исправлял процедуру поиска разделов на жестком диске.
    Кстати когда загружаешься, он вообще жесткий диск видит?
  • Нашел баг - на последнем ядре с СВН и последними прогами если включён NumLoch, то если нажимать на клаве стрелку вверх, то в строке ввода появляеццо цифра 8, если вниз 2 и так далее, если Del то тоже какая-то цифра. Если выключем NumLoch, то если нажимать 4, то вводицо 7, а если остальные клавиши, то курсор куда-то прыгает.
    Всё ещё не пофикшены баги:
    - иконки нельзя добавлять, убирать, изменять;
    - окно Y4 не схлопываеццо вверх при нажатии на заголовке ПКМ.
  • Mario79
    После загрузки диск видит.
  • Maxis
    http://www.kolibri.hut1.ru/temp/kernels566_581.7z
    Проверь и отпишись, с какого ядра перестает загружаться с 2-C:\kolibri.img (FAT32)

    Leency
    1. На чем выявлял баг клавиатуры?
    2. На самом деле иконки и добавляются и удаляются и изменяются, но просто старые при перезапуске почему-то не удаляются и поверх них создаются новые, но если сохранить образ и перезагрузиться, то все изменения будут заметны.
  • Mario79
    С 580 перестаёт грузиться.
  • Mario79
    2. Да, оно так и есть. Но разве это не баг??? ;) (раньше ведь было нормально)
    1. Я тестил на прогах "run" и "kpack". Вместо стрелочек цифры при включённом намлуке.

    И ещё вопрос немного не в тему - а какие-то проги всё ещё используют функции 6,32,33?
  • Maxis
    http://www.kolibri.hut1.ru/temp/kernel581+.7z
    Проверь это доработанное ядро. На моем старом компере тоже как оказалось, не загружалось с 2-C:\kolibri.img (FAT32), после доработки стало работать.

    Leency
    Не, спорю что баг, но ты просто описал неточно, вот я и поправил немного. :-)
  • Mario79
    Проверил. Теперь система грузится.
  • Исправление залил на SVN (Ревизия 584). Рекомендую всем обновиться во избежание возможных проблем.
  • andrew_programmer
    Попробуй вот это ядро. Я обнаружил небольшой недочет в DMA коде чтения. Возможно, оно поможет в решении твоей проблемы с жестким диском, а может, и нет. Во всяком случае, попытка – не пытка.
    http://www.kolibri.hut1.ru/temp/kernel585+.7z
  • Для ликвидации последствий раньше можно было при запуске приложения запомнить его номер через mcall 18, 7 и в дальнейшим при получении событий мыши проверять совпадает ли номер процесса активного окна с запомненным номером, если совпадает то обрабатывать события мыши, если нет, то не обрабатывать.
    Но в ядрах выше 566 эти два значения в некоторых случаях не совпадают. В общем, в 566 ядре они совпадают, а в 571 не совпадают. У меня есть подозрение, что ошибка возникла в 569, поскольку только в этой ревизии были внесены изменения связанные с оконной системой.
    Никакая это не ошибка. Функция 18.7 получает номер активного окна. До svn.569 при загрузке приложения окно активизировалось при загрузке приложения. Начиная с svn.569 окно активизируется при первой отрисовке. Так что вызов 18.7 сразу после загрузки вернёт слот активного в этот момент окна. И вообще, PID самого себя рекомендуется узнавать указанием -1 в функции 9, а слот самого себя можно получить по PID'у циклическими вызовами той же функции 9 с увеличивающимся ecx. Но рекомендуемый способ проверки, является ли окно активным, следующий: вызываем не 18.7, а функцию 9 с ecx=-1, считываем позицию в оконном стеке и сравниваем с вернувшимся значением (cmp ax, word [ebx+4] / jnz inactive).
    Ушёл к умным, знающим и культурным людям.
  • Leency
    В 0700 остался только mhc. Я всё же иногда переписываю старые приложения на новые функции, чтобы иметь возможность удалить из ядра старые функции (например, так уже произошло с 58.1+)
  • diamond
    Спасибо за совет. Просто я не знал, как оно стало. Теперь в принципе можно вызвать 18.7 при первой перерисовке. Или все же возможны ситуации, когда окно уже не будет активным при первой перерисовке? (я не беру в расчет действия пользователя, которые само собой могут привести к такой ситуации, имеется в виду лишь работа самой системы).
    И еще параллельный вопрос: неужели нельзя в одну из ячеек функции 9 занести слот процесса?
  • думаю, что пишу не в ту ветку, однако...
    купил на прошлой неделе резак...воткнул, и колибри перестала видеть мой дорогой сата нтфс винт, с которого (образ в корне с:) и грузится.. :(.
    ситуевина: винт сата - воткнут в сата1 мастер, старый сидюк был в иде1 мастер, новый резак воткнут в иде2 мастер...вроде бы..
    зы-оффтоп. чем снять характеристики компа, максимально полные для вас, уважаемые вы наши разработчики, дабы записать в соответствующую ветку?
  • Who is online

    Users browsing this forum: No registered users and 10 guests