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. Или в документации ошибка?