Page 53 of 91
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 2:19 am
by Mario_r4
Serge wrote:Mario_r4
Так у нас и так программная многозадачность.
Ага, программная... с загрузкой в процессор дескрипторов.
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 10:14 am
by Serge
Mario_r4
Не пойму, что ты хочешь этим сказать.
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 10:47 am
by Mario_r4
Serge wrote:Mario_r4
Не пойму, что ты хочешь этим сказать.
Я тоже не понял твоего замечания.
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 11:17 am
by Serge
Ага, программная... с загрузкой в процессор дескрипторов.
Дескрипторы имеют мало отношения к многозадачности, тем более все потоки используют один набор os_code os_stack app_code app_data. Это механизм защиты памяти.
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 12:26 pm
by Mario_r4
Ну, если все так просто, то почему мы до сих пор плаваем в 8 битовом счетчике?
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 12:57 pm
by Serge
Наверное потому, что оконная система и все структуры планировщика сделаны в виде статических массивов под 8-ми битный счётчик ? Но какое это имеет отношение программной или аппаратной многозадачности ? Аппаратный механизм переключения задач не умеет менять значение [CURRENT_TASK] и [current_slot]
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 1:13 pm
by SoUrcerer
Еще один вопрос. Сейчас блиттер, как я понимаю, может отрисовывать только в видеопамять, как я понимаю. Возможно сделать отрисовку и в обычную память тоже?
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 1:33 pm
by Mario_r4
Serge wrote:Наверное потому, что оконная система и все структуры планировщика сделаны в виде статических массивов под 8-ми битный счётчик ? Но какое это имеет отношение программной или аппаратной многозадачности ? Аппаратный механизм переключения задач не умеет менять значение [CURRENT_TASK] и [current_slot]
В таком случае - а она вообще на x86 бывает чисто аппаратной?
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 2:38 pm
by Serge
Mario_r4 wrote:В таком случае - а она вообще на x86 бывает чисто аппаратной?
Тут вопрос, что считать чисто аппаратной многозадачностью. Многозадачность возможна и на 8086, но не долго. В 80286/80386 появились аппаратные механизмы
поддержки многозадачности. При некоторой смекалке можно одним нелёгким far jmp pword менять не только контекст процессора, но и глобальные переменные ядра, выполняя всю работу по переключению потока аппаратно.
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 2:41 pm
by Serge
SoUrcerer
А зачем, это функция для прикладной библиотеки, как memmove().
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 10:59 pm
by Leency
Функция 72 - "Послать сообщение окну" у меня возвращает 72. Может я что-то не так делаю?
Code: Select all
--- Подфункция 1 - послать сообщение с параметром активному окну. ----
Параметры:
* eax = 72 - номер функции
* ebx = 1 - номер подфункции
* ecx = код события: 2 или 3
* edx = код клавиши для ecx=2, идентификатор кнопки для ecx=3
Возвращаемое значение:
* eax = 0 - успешно
* eax = 1 - буфер заполнен
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 11:28 pm
by Mario_r4
Возвращает где? Real system, Qemu, VirtualBox, KlbrInWin?
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 11:31 pm
by Leency
Qemu. Возвращает 72.
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 11:37 pm
by Mario_r4
У меня твой пример пишет, что нажат Enter, когда тычу в кнопку.
Ты точно в ночной сборке, а не в каком-нибудь альтернативном ядре проверяешь? (USB или еще чего)
Re: "Ночные" сборки KolibriOS
Posted: Fri Apr 05, 2013 11:41 pm
by Leency
У меня тоже пишет, не в этом дело. Посмотри на доску отладки. Функция должна возвращать или 0 или 1, а возвращает 72. Или в документации ошибка?