OSDev
http://osdev.su/

Начинающий [видео]
http://osdev.su/viewtopic.php?f=6&t=96
Страница 1 из 1

Автор:  slavikru [ 02 авг 2007, 12:28 ]
Заголовок сообщения:  Начинающий [видео]

Привет. Кто подскажет, как мне войти в видеорежим и показать курсор ;) Помогите, я ещё начинающий :)

Вот мой код (пожалуйста дополните)

Код:
[ORG 0x7C00]

start:

cli
mov ax, cs
mov ds, ax
mov ss, ax
mov sp, start

sti

mov si, msg
call kputs

cli
hlt
jmp short $

kputs:

.loop:
lodsb
test al, al
jz .quit
mov ah, 0x0E
int 0x10
jmp short .loop
.quit:
ret

msg: db "Sample",0x0A,0x0D,0
times 510-($-$$) db 0
db 0xAA, 0x55

Автор:  pavia [ 02 авг 2007, 15:24 ]
Заголовок сообщения:  Re: Начинающий [видео]

Установка видео режима.
Через прерывания int 10h
Код:
mov ax,13h
int 10h


ah=0 - установка режима монитора
al - режим номер там графическии и текстовые.

Доков полно найдешь.

Есть еще VESA, служит для установки больших разрешений с большим числом цветов.
Код:
mov ax,4F02h
mov bx,100h
int 10h

ah= 4F VESA функции
al - функция
их много, вот несколько
FUNCTION 00H - RETURN VBE CONTROLLER INFORMATION
FUNCTION 01H - RETURN VBE MODE INFORMATION
FUNCTION 02H - SET VBE MODE
в
bx номер видео режима.
Номер видео режима и то какое разрешение ему соответствует. Устанавливается через первые две функции.
Через 00 получаем список режимов. А через 01 получаем их параметры.

Подробний читай VBE3.pdf лежит на сайте http://www.VESA.org

Установка видео режима через порты.
Порты VGA/EGA известны и описаны. Но установка видео режима непросто. Портов много, поэтому используются таблицы. Тут надо поискать пример. Правда это старые добрые разрешения. А вот разрешения такие, как у VESA. Так просто не установишь через порты так, как тут программирование зависит от видеокарты.

Насчет вывода мышки.
Так как драйвера у нас не стоят то старый досовскую мышь на int 33h вызывать бессмысленно.
Так что тут придеться писать драйвер мыши.
Описание протокола общения PS/2 и COM известно.

Автор:  phantom-84 [ 03 авг 2007, 16:36 ]
Заголовок сообщения:  Re: Начинающий [видео]

Изменение местоположения курсора тоже можно осуществить посредством сервиса BIOS:

mov ah, 02h
mov bh, pagenumber ; обычно 0
mov dh, row ; номер строки при нумерации с нуля
mov dl, column ; номер столбца при нумерации с нуля
int 10h

Автор:  next [ 05 авг 2007, 01:00 ]
Заголовок сообщения:  Re: Начинающий [видео]

Рекомендую начинать пробовать себя в осеписании с изучения рассылок lonesome'а и dron'а с Subscribe.ru (архивы: http://nextos.osdev.ru/arch/dron.zip, http://nextos.osdev.ru/arch/lonesome.zip). Также рекомендую почитать книжку/рассылку "Ассемблер?Это просто!" О.Калашникова - учебник по асму под дос "с нуля", там помнится тоже по поводу видео что-то было. Хорошо также иметь под рукой списки прерываний (BIOS)...

Автор:  sadko [ 05 авг 2007, 12:13 ]
Заголовок сообщения:  Re: Начинающий [видео]

Ага, и расспрашивать местных Гуру, чтобы навели на правильный путь.

Автор:  maximychgold [ 06 авг 2007, 19:07 ]
Заголовок сообщения:  Re: Начинающий [видео]

Удалено модератором

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/