OSDev http://osdev.su/ |
|
Forth http://osdev.su/viewtopic.php?f=22&t=256 |
Страница 1 из 1 |
Автор: | mak4444 [ 09 фев 2009, 18:25 ] |
Заголовок сообщения: | Forth |
Начал Форт писать под EOS. Не знаю как считывать нажатие одной клавиши и как определить нажата-ли клавиша (если что-то в приемном буфере клавиатуры)? |
Автор: | Himik [ 09 фев 2009, 20:02 ] |
Заголовок сообщения: | Re: Forth |
Проект ОС пока что в тупике, и времени пока не хватает, поэтому хочу сразу сказать, что нет особого смысла сейчас что-то писать под EOS. Ну а в целом программирование точно такое же, как под Windows, поэтому просто используй WinAPI. Но реализованы не все функции, поэтому смотри список имеющихся функций в исходниках, в файлах с расширением LK. Отслеживать нажатия клавиш можно по сообщениям WM_KEYDOWN (в параметре wParam младшие 8 бит содержат код клавиши, а следующие 8 бит - флаги нажатия Alt,Shift,Ctrl,Numlock,Caps,Scroll), WM_KEYUP, WM_CHAR (чтобы это сообщение приходило, нужно вызываеть TranslateMessage). Если нужно получить целую строку, то используй ReadConsole(), это стандартная WinAPI процедура, справку на неё смотри в MSDN. Пример использования - в файле hello.cpp, через неё собственно говоря и работает консоль системы. Ещё есть целый класс консольных функций IConsole, пример тоже в файле hello.cpp. Сначала получаешь указатель на объект: IConsole* pConsole = (IConsole*)NtCurrentPeb()->nProcessParameters.hConsole; потом через pConsole вызываешь методы. |
Автор: | Гость [ 16 фев 2009, 22:33 ] |
Заголовок сообщения: | Re^2: Forth |
> хочу сразу сказать, что нет особого смысла сейчас что-то писать под EOS. Писать приложения следует как можно раньше. В результате реализаций пиложений могут быть выявлены наиболее объективные требования к системы Добавил Форт к EOS в качестве приложения http://depositfiles.com/files/ie4qplw1u Думал Форт в ядро внедрить, но и у меня времени пока не это нет. |
Автор: | Himik [ 17 фев 2009, 11:46 ] |
Заголовок сообщения: | Re^3: Forth |
Насчёт приложений совершенно согласен. Не знаю, что конкретно ты имел ввиду насчёт ядра, но в него ни каких языков программирования встраиваться не будет - всё должно находиться на уровне приложений. Твою программу пока не посмотрел, но если всё будет нормально, то помещу её в дистрибутив системы и образ диска. Касательно проекта, работа потихоньку идёт, но в основном над низкоуровневыми внутренностями ядра, поэтому малозаметно для пользователя. |
Автор: | Himik [ 21 фев 2009, 15:42 ] |
Заголовок сообщения: | Re^3: Forth |
Посмотрел твоё творение, вроде работает (кому интересно - в архиве есть файл cdrom.iso - образ CD. После загрузки с CD запустить файл f.exe). Но я Forth не знаю, поэтому кроме команды WORDS ничего не пробовал. По поводу реализации. Я так понял, что for4th.cpp это переделанный hello.cpp. Там осталось очень много мусора в виде лишних функций и строковых констант, желательно почистить. И ещё, в конце строки переменной msgStart поставь символы "\r\n", иначе текст сливается со следующей строкой. И в этой же строке стоит неполный адрес http://forth, исправь на http://forth.spb.su:8888 По поводу файла comp.bat, там 2 командные строки закомментированы, не ясно это нужные строки или не нужные. И верно, у тебя какая-то другая версия mkisofs.exe, у меня он сообщил об ошибке. Я использую этот файл: http://express-os.googlecode.com/files/mkisofs.exe |
Автор: | demirtos [ 24 мар 2009, 20:16 ] |
Заголовок сообщения: | Re: Forth |
А можно спросит вы вот EOS создаёте, и там WinAPI реализуються, а что присоединиться к ReactOS нельзя, или что? Вас там что, то не устраивает? Вот мне бы очень хотелось видеть поддержку USB в ReactOS, наверно там есть чем заняться? |
Автор: | Himik [ 26 мар 2009, 00:25 ] |
Заголовок сообщения: | Re^2: Forth |
В том и дело, что хочется сделать не Windows и не ReactOS. Существующая поддержка Win API это всего лишь шелуха. Она только лишь для того, чтобы хоть что-то было на пользовательском уровне, чтобы была возможность хоть как-то пользоваться системой, хоть как-то запускать программы, и тестировать ядро на реальных приложениях. Когда ядро будет более мощным, тогда можно будет подумать и над новым API взамен Windows API. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |