IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Маска для мыша
zloy_pes
сообщение 22.01.2006 2:14
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской
Реальное имя: Веселовский Пётр Николаевич

Репутация: -  0  +


Вообщем такая вещь - хочу сделать курсор мышке с помощью маски, но не знаю как её нарисовать. Мне нужно, чтобы от курсора остался только 1 черный пиксель (тот который кончик указателя). Чёто написал, но вместо точки выводится какаято 'мочалка' mad.gif
.model tiny
.data
cmask db 0fh,0fh,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,
00,00,00,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
,00,00,00,00,00
.code
org 100h
start:
mov ax,13h;13h 320x200 256
int 10h
push 0a000h
pop es
call refresh

xor si,si
mov cx,5
ccycle:
push cx
mov ax,320
dec cx
mul cx
mov si,ax
mov cx,0ffh
cycle:
mov es:[si],cl
inc si
loop cycle
pop cx
loop ccycle
;Мышь:
xor ax,ax
int 33h
push ds ;ES:DX -
pop es ;адрес маски
mov dx,offset cmask;(или я не прав?)
mov ax,09h
int 33h
mov ax,01h
int 33h
;мышь загружена
xor ax,ax
int 16h
pop dx
mov ax,03h
int 10h
mov ax,4ch
int 21h
ret

refresh proc;Обновление экрана
mov ax,0f0fh
xor di,di
mov cx,64000
rep stosw
ret
refresh endp

pointprc proc;Процедура рисованя точки
push si
mov ax,320
mul si
mov si,ax
add si,bx
mov byte ptr es:[si],31h
pop si
ret
pointprc endp
end start


Сообщение отредактировано: volvo - 7.11.2009 20:54


--------------------
Money, hoes, cars and clothes
That's how all my niggaz know
Blowin dro, 24's
That's how all my niggaz roll...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Dark
сообщение 22.01.2006 7:22
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Ошибка здесь
Код

0fh,0fh,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,

00,00,00,00,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00



первые 32 бита - маска (ее лучше либо обнулить либо ff)
вторые - рисунок
рисунок - 64*64
каждый !бит! - это точка
т.е. 0f - это 15 точек
а комбинация 0f 0f - 15 точек черного 15 белого потом 15 точек черного 15 белого
лучше уж так

Код

cmask db
0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,

0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,

1h,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

//понятно что это все в одной строке ;)

Сообщение отредактировано: Dark - 22.01.2006 7:22


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.07.2025 14:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"