Page 7 of 12

Posted: Wed Jul 18, 2007 5:18 pm
by Maxis
>Проверь и в PIO и в DMA режимах.
Проверил. Не грузится.

Posted: Thu Jul 19, 2007 7:14 am
by Mario79
andrew_programmer
В общем, вскрытие показало, что и в 0700 и в 0650 тоже самое. В принципе все логично – мы получаем через функцию 37 события мыши независимо от активности окна. Для ликвидации последствий раньше можно было при запуске приложения запомнить его номер через mcall 18, 7 и в дальнейшим при получении событий мыши проверять совпадает ли номер процесса активного окна с запомненным номером, если совпадает то обрабатывать события мыши, если нет, то не обрабатывать.
Но в ядрах выше 566 эти два значения в некоторых случаях не совпадают. В общем, в 566 ядре они совпадают, а в 571 не совпадают. У меня есть подозрение, что ошибка возникла в 569, поскольку только в этой ревизии были внесены изменения связанные с оконной системой.

Maxis
Ладно. Я выложу архив с набором ядер, и попробуем определить, на какой ревизии перестало работать. Возможно, в той, где я исправлял процедуру поиска разделов на жестком диске.
Кстати когда загружаешься, он вообще жесткий диск видит?

Posted: Thu Jul 19, 2007 12:17 pm
by Leency
Нашел баг - на последнем ядре с СВН и последними прогами если включён NumLoch, то если нажимать на клаве стрелку вверх, то в строке ввода появляеццо цифра 8, если вниз 2 и так далее, если Del то тоже какая-то цифра. Если выключем NumLoch, то если нажимать 4, то вводицо 7, а если остальные клавиши, то курсор куда-то прыгает.
Всё ещё не пофикшены баги:
- иконки нельзя добавлять, убирать, изменять;
- окно Y4 не схлопываеццо вверх при нажатии на заголовке ПКМ.

Posted: Thu Jul 19, 2007 3:45 pm
by Maxis
Mario79
После загрузки диск видит.

Posted: Fri Jul 20, 2007 7:40 am
by Mario79
Maxis
http://www.kolibri.hut1.ru/temp/kernels566_581.7z
Проверь и отпишись, с какого ядра перестает загружаться с 2-C:\kolibri.img (FAT32)

Leency
1. На чем выявлял баг клавиатуры?
2. На самом деле иконки и добавляются и удаляются и изменяются, но просто старые при перезапуске почему-то не удаляются и поверх них создаются новые, но если сохранить образ и перезагрузиться, то все изменения будут заметны.

Posted: Fri Jul 20, 2007 2:39 pm
by Maxis
Mario79
С 580 перестаёт грузиться.

Posted: Fri Jul 20, 2007 5:09 pm
by Leency
Mario79
2. Да, оно так и есть. Но разве это не баг??? ;) (раньше ведь было нормально)
1. Я тестил на прогах "run" и "kpack". Вместо стрелочек цифры при включённом намлуке.

И ещё вопрос немного не в тему - а какие-то проги всё ещё используют функции 6,32,33?

Posted: Fri Jul 20, 2007 11:13 pm
by Mario79
Maxis
http://www.kolibri.hut1.ru/temp/kernel581+.7z
Проверь это доработанное ядро. На моем старом компере тоже как оказалось, не загружалось с 2-C:\kolibri.img (FAT32), после доработки стало работать.

Leency
Не, спорю что баг, но ты просто описал неточно, вот я и поправил немного. :-)

Posted: Sat Jul 21, 2007 12:07 pm
by Maxis
Mario79
Проверил. Теперь система грузится.

Posted: Sat Jul 21, 2007 4:05 pm
by Mario79
Исправление залил на SVN (Ревизия 584). Рекомендую всем обновиться во избежание возможных проблем.

Posted: Mon Jul 23, 2007 10:27 pm
by Mario79
andrew_programmer
Попробуй вот это ядро. Я обнаружил небольшой недочет в DMA коде чтения. Возможно, оно поможет в решении твоей проблемы с жестким диском, а может, и нет. Во всяком случае, попытка – не пытка.
http://www.kolibri.hut1.ru/temp/kernel585+.7z

Posted: Tue Jul 24, 2007 2:55 pm
by diamond
Для ликвидации последствий раньше можно было при запуске приложения запомнить его номер через 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).

Posted: Tue Jul 24, 2007 3:05 pm
by diamond
Leency
В 0700 остался только mhc. Я всё же иногда переписываю старые приложения на новые функции, чтобы иметь возможность удалить из ядра старые функции (например, так уже произошло с 58.1+)

Posted: Tue Jul 24, 2007 4:34 pm
by Mario79
diamond
Спасибо за совет. Просто я не знал, как оно стало. Теперь в принципе можно вызвать 18.7 при первой перерисовке. Или все же возможны ситуации, когда окно уже не будет активным при первой перерисовке? (я не беру в расчет действия пользователя, которые само собой могут привести к такой ситуации, имеется в виду лишь работа самой системы).
И еще параллельный вопрос: неужели нельзя в одну из ячеек функции 9 занести слот процесса?

Posted: Tue Jul 24, 2007 6:46 pm
by Mike
думаю, что пишу не в ту ветку, однако...
купил на прошлой неделе резак...воткнул, и колибри перестала видеть мой дорогой сата нтфс винт, с которого (образ в корне с:) и грузится.. :(.
ситуевина: винт сата - воткнут в сата1 мастер, старый сидюк был в иде1 мастер, новый резак воткнут в иде2 мастер...вроде бы..
зы-оффтоп. чем снять характеристики компа, максимально полные для вас, уважаемые вы наши разработчики, дабы записать в соответствующую ветку?