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$   Крыса и 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

 

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