Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Цветной курсор [DOS], Цвет графического мышиного курсора 
V
    Опции темы
JAPH
Дата 30.1.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: нет
Всего: 23



Код

mov  ax, 0013h
int  10h
xor  ax, ax
int  33h

Дальше меняю форму курсора функцией 09h, только он получается белым smile
Как изменить его цвет (в идеале сделать разноцветным)? smile 
PM MAIL ICQ   Вверх
Anarki
Дата 1.5.2007, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: нет
Всего: 11



А что делает int 33?
И к чему остальной код?

Это сообщение отредактировал(а) Anarki - 2.5.2007, 09:06


--------------------
PM WWW   Вверх
JAPH
Дата 1.5.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: нет
Всего: 23



Зачем целиком цитировать предыдущий пост?!

INT 33h при AX=0 инициализирует мышь. После этого прерывания с ней можно работать.
Какой остальной код?

Это сообщение отредактировал(а) JAPH - 1.5.2007, 20:16


--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
Anarki
Дата 2.5.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: нет
Всего: 11



Немного не досмотрел название темки smile

А так я думаю написать свой код вывода курсора мыши на экран в графическом режиме и его установить как обработчик события перемещения через функцию 000CH INT 33H 

Цитата

3.3.13. Установить драйвер событий 
На входе:     AX = 000Ch;

              CX = маска вызова:
                бит 0 - вызов при перемещении мыши;
                бит 1 - вызов при нажатии левой клавиши;
                бит 2 - вызов при отпускании левой
                                клавиши;
                бит 3 - вызов при нажатии правой клавиши;
                бит 4 - вызов при отпускании правой
                                клавиши;
                бит 5 - вызов при нажатии средней клавиши;
                бит 6 - вызов при отпускании
                                средней клавиши;
                7Fh   - вызов при любом событии;
                00h   - отключение драйвера событий;

               ES:DX = адрес (дальний) подключаемого
                        драйвера событий.

На выходе:     Регистры не используются.



Функция позволяет программе создать свой собственный драйвер (обработчик) событий, связанных с перемещением мыши и нажатием/отпусканием клавиш мыши. 

Адрес подготовленной программы-драйвера передается при вызове функции в регистровой паре ES:DX. Драйвер должен быть оформлен в виде дальней процедуры, завершающейся командой дальнего возврата RETF. Когда драйвер получает управление, в регистрах процессора содержатся следующие значения: 
AX      Маска вызова, такая же, как и при вызове
        функции 0Ch.

BX      Состояние клавиш мыши:

                бит 0 - левая клавиша;
                бит 1 - правая клавиша;
                бит 2 - средняя клавиша.

CX      Горизонтальная координата курсора мыши.

DX      Вертикальная координата курсора мыши.

SI      Относительное перемещение мыши по горизонтали
        в миках.

DI      Относительное перемещение мыши по вертикали
        в миках.

DS      Сегмент данных драйвера мыши.



Так как регистр DS при вызове драйвера событий содержит сегмент данных драйвера мыши, ваш драйвер событий должен позаботиться о правильной установке этого регистра. Ваш драйвер событий не обязан сохранять и восстанавливать содержимое регистра DS и других регистров процессора. 

Отметим, что если вам необходимо отключить драйвер, выполните повторный вызов функции 0Ch, записав в регистр CX нулевое значение. Если ваша программа, устанавливающая собственный драйвер событий, завершает свою работу и передает управление MS-DOS, предварительно она обязательно должна отключить драйвер событий.

© http://www.frolov-lib.ru/books/bsp/v02/ch3.htm

Это сообщение отредактировал(а) Anarki - 2.5.2007, 16:10


--------------------
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.