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

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

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

> Крыса и Vesa [ЗАРАБОТАЛО!], Как заставить работать мышку в VES'е...?
MixRin.RU$
сообщение 22.01.2006 23:07
Сообщение #1


Новичок
*

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

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


Работает ли мышь в граф. режиме 101h?
mov     ax, 4F02h
mov bx, 101h
int 10h
Просто в 13h пашет, а в этом нет, друг говорит там надо напрямую с портами возится blink.gif

а вот соббсно код проги:
.model tiny
.386
.data
VMC dd ? ;адрес процедуры BIOS
star_vid dw ?
Info dw 256 DUP(0)
cmask
db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh
db 00000000b,10000000b,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

.code
org 100h
start: call where_VMC ;записываем адрес VMC
call init_vga ;установка видео-режима 640x480x8
call refresh ;экран белого цвета
call draw_color
;---------------
;xor ax,ax
;int 33h
;push ds
;pop es
;mov dx,offset cmask
;mov ax,09h
;int 33h
;mov ax,01h
;int 33h
;-------неработающий код--------


check_esc: xor ax, ax
int 16h
cmp ax, 011Bh ;проверка на ескейп
je end_prog
jmp check_esc
end_prog: mov ax, 4F02h
mov bx, star_vid
int 10h
ret
;----------------------------
where_VMC proc
push ds
pop es
mov di, offset Info
mov ax, 4f01h
mov cx, 0101h
int 10h
mov eax, es:[di + 0Ch] ;добываем адрес на VMC процедуру
mov VMC, eax
ret
where_VMC endp
refresh proc
mov cx, 5
nxtwin: dec cx
mov dx, cx
inc cx
push cx
xor bx, bx
mov ax, 4F05h
call VMC
mov ax, 0f0fh
xor si, si
mov cx, 8000h ;заполняем экран белым
rep stosw
pop cx
loop nxtwin
ret
refresh endp
init_vga proc
push 0A000h
pop es
mov ax, 4F03h
int 10h
mov star_vid, bx ;запоминаем старый режим и входим в 640х480х8
mov ax, 4F02h
mov bx, 101h
int 10h
ret
init_vga endp
;ax - координата по Y, bx - координата по X, dl - код цвета
draw_point proc
push ax
push bx
push dx
dec ax
dec bx
mov dx, 280h
mul dx
add ax, bx
adc dx, 0
mov si, ax
xor bx, bx
mov ax, 4F05h ;рисуем точку по координате bx, by с цветом dl (нумерация точек: 0..639;0..479)
call VMC
pop dx
mov es:[si], dl
pop bx
pop ax
ret
draw_point endp
draw_color proc
push 0A000h
pop es
xor ax, ax
xor bx, bx
xor dl, dl
inc bx
mov cx, 40h
cycle2: push cx
xor dl, dl ;цветная фигулина
xor bx, bx
inc ax
inc bx
mov cx, 1feh
cycle1: call draw_point
inc dl
inc bx
loop cycle1
pop cx
loop cycle2
ret
draw_color endp
end start

PS: здесь стоят комменты не на оператор, а на всю процедуру...

Сообщение отредактировано: volvo - 3.11.2006 0:20
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
MixRin.RU$
сообщение 23.01.2006 17:09
Сообщение #2


Новичок
*

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

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


Вот под режим 320х240х8бит работает: unsure.gif
.model tiny
.data
mouse_mask
db 07fh, 0ffh, 03fh, 0ffh, 01fh, 0ffh, 00fh, 0ffh, 007h, 0ffh, 04fh, 0ffh, 0e7h, 0ffh, 0e7h, 0ffh
db 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh, 0ffh
db 00h, 00h, 00h, 00h, 40h, 00h, 60h, 00h, 20h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
.code
org 100h
start: mov ax, 13h ;13h 320x200 256
int 10h
push 0a000h ;сегмент видеобуфера
pop es
call refresh ;заполнение экрана зеленым цветом
xor ax, ax ;-\
int 33h ;--\
push ds ;---\
pop es ;----\
mov dx, offset mouse_mask ;-----> инициализация мышки =)
mov ax,09h ;----/
int 33h ;---/
mov ax,01h ;--/
int 33h ;-/
check_esc: xor ax, ax
int 16h
cmp ax, 011Bh ;проверка на ескейп
je end_prog
jmp check_esc
end_prog: mov ax, 03h
int 10h
ret
;---------------------------
refresh proc
mov ax, 0202h
xor di, di
mov cx, 8000h
rep stosw
ret
refresh endp
end start
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
MixRin.RU$   Крыса и Vesa [ЗАРАБОТАЛО!]   22.01.2006 23:07
MixRin.RU$   Вот под режим 320х240х8бит работает: :unsure: .mod...   23.01.2006 17:09
Altair   Это же VESA.... я вот здесь кое что писал... А ...   23.01.2006 17:21
MixRin.RU$   сижу тихо, мирно в 32 битах :) А можешь небольшо...   23.01.2006 22:48
Dark   Угу, пишешь свой вывод курсора, свое стирание его,...   23.01.2006 21:01
Dark   Это альтаи р к тому что сидит в своем Free Pascal ...   23.01.2006 23:04
MixRin.RU$   ах он негодяй :yes2: так никак низзя намутить кры...   23.01.2006 23:11
Altair   хех... баним или подождем пока ? почему нельз...   24.01.2006 2:10
MixRin.RU$   слово 'негодяй' не является не нормативной...   24.01.2006 16:37
Altair   (да понял я твою фразу :) ) Именно в конце, я та...   24.01.2006 16:50
MixRin.RU$   Мило, только он сразу выходит когда начинаю двигат...   24.01.2006 17:34
Altair   вот и у меня, но на старом компе все работало я ...   24.01.2006 17:48
MixRin.RU$   а алгоритм, как ее загружать, какие прерывания юза...   24.01.2006 22:32
MixRin.RU$   Мне тут друг говорит, что в 32-ух битных режимах н...   24.01.2006 23:09
zloy_pes   Thanx   24.01.2006 23:09
MixRin.RU$   Thanx да, респект злому псу =)   24.01.2006 23:15


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

 



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