Правильно.
Внимательней читай статью. Ты должен зарегистрировать сервис (в статье stdcall RegService, my_service, service_proc)
Вот тут я не знаю, что произойдет если не регистрировать сервис....
Кстати:
version dd 0x00030003
текущая 0x00050005!!!!!
и еще:
jmp $
насчет этого не уверен, некорректно как-то...
Как писать драйвера
Mihail
Значит твоя видеокарта не поддерживается. Драйвер работает на ATI 7500 - x800
Значит твоя видеокарта не поддерживается. Драйвер работает на ATI 7500 - x800
Драйвер должен зарегистрировать себя RegService и вернуть хэндл ядру в еах. Если еах=0 то ядро считает что усторойство не поддерживается или его не удаётся настроить и освобождает память которую драйвер занимает. Никаких дополнительных проверок хэндла не производится хотя надо их добавить.
Я полагаю что START вообще не запускается.k@sTIg@r wrote:Правильно.
Внимательней читай статью. Ты должен зарегистрировать сервис (в статье stdcall RegService, my_service, service_proc)
В http://fpauk.narod.ru/k_svn.605_src_f.rarversion dd 0x00030003
текущая 0x00050005!!!!!
k_0.6.5.0_src\kernel\drivers
везде 00030003
Как я понимаю, возвав load_driver дои еще:
jmp $
; START MULTITASKING
с jmp $ после START система должна зависнуть.
Но этого не происходит, работает как ни в чем не бывало.
Если не трудно пришли мне образ загрузочной дискеты
и исходники драйвера. fpauk@mail.ru
Last edited by KPG on Fri Dec 11, 2020 11:21 pm, edited 1 time in total.
Я запускаю под Bochs-2.3Serge wrote:Mihail
Значит твоя видеокарта не поддерживается. Драйвер работает на ATI 7500 - x800
После
proc START stdcall, state:dword
в kernel\drivers\ati2d.asm
я вствил
jmp $
но система не зависла.
Похоже, что драйвер вообще не загружается.
Mihail
Проверил в Боше, зависла как и положено. Посмотри образ, может скопировал патченный драйвер в другую папку.
Проверил в Боше, зависла как и положено. Посмотри образ, может скопировал патченный драйвер в другую папку.
Это я могу. Но тем-же JMP $ я это проверил.Serge wrote:Mihail
Посмотри образ, может скопировал патченный драйвер в другую папку.
Или в другую в смылсле не в /rd/1/DRIVERS ?
Я использовал образ из http://kolibrios.org/files/download/k_0.6.5.0_ru.7z
и заменил в нем старый ati2d.obj на мой с jmp $
после
proc START stdcall, state:dword
работает.
Mihail
Драйвер должен быть в папке /rd/1/DRIVERS. Если ты заменил драйвер то у тебя не запускается START. Вариантов три: ядро не может найти драйвер в /rd/1/DRIVERS, драйвер пытается импортировать несуществующие функции, версии драйверной модели не совпадают. Если ты брал оригинальный образ дистрибутива то исходники драйвера должны быть из дистриба или скачай последние версии исходников с SVN и замени ядро и все драйверы, а потом эксперементируй. Или протрассируй вызов load_driver в отладочном Боше.
Драйвер должен быть в папке /rd/1/DRIVERS. Если ты заменил драйвер то у тебя не запускается START. Вариантов три: ядро не может найти драйвер в /rd/1/DRIVERS, драйвер пытается импортировать несуществующие функции, версии драйверной модели не совпадают. Если ты брал оригинальный образ дистрибутива то исходники драйвера должны быть из дистриба или скачай последние версии исходников с SVN и замени ядро и все драйверы, а потом эксперементируй. Или протрассируй вызов load_driver в отладочном Боше.
Mihail
Что значит "работает" ?
Что значит "работает" ?
На данном этапе, я вывожу сообщение из своего драйвера на экранSerge wrote:Mihail
Что значит "работает" ?
(с помощью boot_log).
Драйвер FORTH исполняет исходный форт-текст в файле /sys/drivers/AUTOEXEC.F
Теперь драйвера могут быть представлены в виде исходных текстов Форта.
Т.е. модифицироваться под Колибри.
Почемуто зависает srv_handler при том, что service_proc ничего не делает.
Теперь драйвера могут быть представлены в виде исходных текстов Форта.
Т.е. модифицироваться под Колибри.
Почемуто зависает srv_handler при том, что service_proc ничего не делает.
Вопрос возник (fmon.asm#371):diamond wrote:Вот, написал статью, демонстрирующую программирование драйвера.
http://diamondz.land.ru/writedrv.htm
Приведённый там пример может быть полезен и безотносительно к обучению - написан фильтр, показывающий все обращения программ к файловой системе.
Code: Select all
jz @f
push str_skipped
call [con_printf]
@@:
В смысле, стек разбалансируется? Угу, ошибся, нужно дописать, к примеру, "pop ecx" после con_printf. (Правда, на практике это не сказывается - во-первых, на практике эта ситуация может возникнуть в совершенно исключительных случаях, во-вторых, небольшая разбалансированность стека в данной конкретной программе не мешает.)Galkov wrote:Вопрос возник (fmon.asm#371):
Ушёл к умным, знающим и культурным людям.
Да без проблем
Это я так: копаюсь, разбираюсь потихоньку, пытаюсь понять происходящее, уловить идеологию....
Не все пока понятно, конечно
В общем, в большей степени-то, я свое понимание пытаюсь контролировать
Это я так: копаюсь, разбираюсь потихоньку, пытаюсь понять происходящее, уловить идеологию....
Не все пока понятно, конечно
В общем, в большей степени-то, я свое понимание пытаюсь контролировать
Diamond, сообщи пожалуйста какой прогой ты создаёшь образы дистрибутивов. Как я уже сообщал Сержу мне тут пришлось переупаковать ваш исходный ISO-шник, и он после этого перестал грузиться. Работал обычной UltraISO и Bootise для загрузки на флешку так после этого даже Grub стал ругаться, он перестал понимать инструкцию: configure Grab4dos.log || chainloader (0xff), хотя с вашим исходным образом он её прекрасно понимал. Сообщи пожалуйста свои мысли по этому поводу
Who is online
Users browsing this forum: No registered users and 1 guest