Помощь - Поиск - Пользователи - Календарь
Полная версия: Мышь пропала
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
Shadow
:D
-=-=-=
интересно а куда девается мышь
в VESA
-=-=-=-
и как ее вернуть
-=-=-
GLuk
Драйвер не поддерживает VESA видеорежимы, напиши свой драйвер...
Shadow
Гм а поточнее
-=-=--=-=-=
:-/
драйверы никогда не писал
GLuk
В смысле драйвер мыши рассчитан только на ОЕМ видеорежимы (0-10ш), а VESA режимы не поддерживаются.
В принципе написать драйвер мыши для конкретного видеорежима не так сложно, а зачем тебе это??
AlaRic
Тут уже дрова пишут я смотрю....сильное звено!  8)
Shadow
:D
-=-=-
Да мне DARK все пытается кинуть библию по VESA но ана ткаи и некидается
всетаки решил все писать сам
-=-=
вот пости Брезентхейм готов
и так далее по тохоньку
-=-=-
Dark
На тему мыши: драйвер остается, просто он не поддерживает вывод курсора а на тему библиотеки - будь в аське и я кину через нее... а для VESA надо написать собственный вывод курсора - всего то...
Shadow
:D
-=-=-
я таки ужо пробовал неборатает
-=-=-
??? :-/
dark0ut
Если мыш девается - посмотри подключена ли она...иногда помогает ;)
Shadow
:D
-=-=
я так понял что его нада рисовать
-----
потому что
---
mov ax,1
int 33h
---
работает а самого курсора нет
:-/
GLuk
точно... ведь можно свой обработчик написать и передать драйверу его координаты... а тогда я об этом чой-то не подумал   :-/
Dark
попробуй выводить по координатам мыщи точку белую... но тока ее еще надо увидеть у меня это примерно так:

xm:=0;
ym:=0;
vesaputpix(xm,ym*3,0);
getmstatus(xm,ym,but);
vesaputpix(xm,ym*3,0);

if (but<>b1) then
begin
b1:=but;
// что то делаем
end;


ym*3 - это для режима 800*600, т.к. там максимум выдает 199, а по xm - 796.

Это кусок из моего редактора картинок, где я щас как раз внедряю мышь.

На 320*200 все норма - переделал под 800*600*256.
GLuk
Да зачем выпендриваться-то, написать свой обработчик. А драйвер будет передавать данные о перемещении мыши... Тама вроде бы даже ф-ия есть такая спец.
Dark
Имеется в виду, что дос-драйвер мыши "знает" режимы только до VGA(включительно) т.е. в реж. 320*200 курсор есть, а в режиме 800*600*256 нету... но координаты считаются... или ты можешь предложить мне другой драйвер?
GLuk
Тама в функциях драйвера есть такая штучка, как вызов 33h прерывания с AX=0Ch, CX - маска для вызова функции по адресу в ES:DX. И драйвер при возникновении события указанного в маске передает абсолютно все инфу (на ту проц.), касающуюся координат, кнопок и прочего.

Драйвер я конечно могу написать, но только для конкретного видеорежима, чтобы сильно много не выпендриваться. А вот дрова для мауса с поддержкой VESA-видеорежимов под ДОС я где-то видал, поищи в Google...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.