Ага, программная... с загрузкой в процессор дескрипторов.Serge wrote:Mario_r4
Так у нас и так программная многозадачность.
"Ночные" сборки KolibriOS
-
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Mario_r4
Не пойму, что ты хочешь этим сказать.
Не пойму, что ты хочешь этим сказать.
Я тоже не понял твоего замечания.Serge wrote:Mario_r4
Не пойму, что ты хочешь этим сказать.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Дескрипторы имеют мало отношения к многозадачности, тем более все потоки используют один набор os_code os_stack app_code app_data. Это механизм защиты памяти.Ага, программная... с загрузкой в процессор дескрипторов.
Ну, если все так просто, то почему мы до сих пор плаваем в 8 битовом счетчике?
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Наверное потому, что оконная система и все структуры планировщика сделаны в виде статических массивов под 8-ми битный счётчик ? Но какое это имеет отношение программной или аппаратной многозадачности ? Аппаратный механизм переключения задач не умеет менять значение [CURRENT_TASK] и [current_slot]
Еще один вопрос. Сейчас блиттер, как я понимаю, может отрисовывать только в видеопамять, как я понимаю. Возможно сделать отрисовку и в обычную память тоже?
В таком случае - а она вообще на x86 бывает чисто аппаратной?Serge wrote:Наверное потому, что оконная система и все структуры планировщика сделаны в виде статических массивов под 8-ми битный счётчик ? Но какое это имеет отношение программной или аппаратной многозадачности ? Аппаратный механизм переключения задач не умеет менять значение [CURRENT_TASK] и [current_slot]
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Тут вопрос, что считать чисто аппаратной многозадачностью. Многозадачность возможна и на 8086, но не долго. В 80286/80386 появились аппаратные механизмы поддержки многозадачности. При некоторой смекалке можно одним нелёгким far jmp pword менять не только контекст процессора, но и глобальные переменные ядра, выполняя всю работу по переключению потока аппаратно.Mario_r4 wrote:В таком случае - а она вообще на x86 бывает чисто аппаратной?
SoUrcerer
А зачем, это функция для прикладной библиотеки, как memmove().
А зачем, это функция для прикладной библиотеки, как memmove().
Функция 72 - "Послать сообщение окну" у меня возвращает 72. Может я что-то не так делаю?
Code: Select all
--- Подфункция 1 - послать сообщение с параметром активному окну. ----
Параметры:
* eax = 72 - номер функции
* ebx = 1 - номер подфункции
* ecx = код события: 2 или 3
* edx = код клавиши для ecx=2, идентификатор кнопки для ecx=3
Возвращаемое значение:
* eax = 0 - успешно
* eax = 1 - буфер заполнен
- Attachments
-
-
example.zip (2.05 KiB)
- if (id==2) debugi(SendWindowMessage(evKey, 13));
Downloaded 136 times
-
Из хаоса в космос
Возвращает где? Real system, Qemu, VirtualBox, KlbrInWin?
Last edited by Mario_r4 on Fri Apr 05, 2013 11:32 pm, edited 2 times in total.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Qemu. Возвращает 72.
Из хаоса в космос
У меня твой пример пишет, что нажат Enter, когда тычу в кнопку.
Ты точно в ночной сборке, а не в каком-нибудь альтернативном ядре проверяешь? (USB или еще чего)
Ты точно в ночной сборке, а не в каком-нибудь альтернативном ядре проверяешь? (USB или еще чего)
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
У меня тоже пишет, не в этом дело. Посмотри на доску отладки. Функция должна возвращать или 0 или 1, а возвращает 72. Или в документации ошибка?
Из хаоса в космос