Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2008, 20:12   #1
Mendler
Пользователь
 
Регистрация: 08.04.2008
Сообщений: 10
По умолчанию видео режимы

Какой существует видео режим кроме прерывания биос 10h?
Mendler вне форума Ответить с цитированием
Старый 08.04.2008, 21:25   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Mendler Посмотреть сообщение
Какой существует видео режим кроме прерывания биос 10h?
Прерывание - это не видеорежим.

Видеорежим устанавливается вызовом прерывания int 10h, 00

VESA (ассоциация) ввела стандарт на видеорежимы Super VGA Standart (какой-то номер) и, соответственно, в BIOS реализована поддержка вызовами того-же int 10h, 4Fh

Может переформулируете вопрос ?
alexBlack вне форума Ответить с цитированием
Старый 08.04.2008, 21:42   #3
Mendler
Пользователь
 
Регистрация: 08.04.2008
Сообщений: 10
По умолчанию

хм...ладно, какие еще есть видеосервисы кроме предоставляемых bios?
Mendler вне форума Ответить с цитированием
Старый 08.04.2008, 22:22   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

в DOS никаких.
alexBlack вне форума Ответить с цитированием
Старый 09.04.2008, 20:09   #5
Mendler
Пользователь
 
Регистрация: 08.04.2008
Сообщений: 10
По умолчанию

я как понимаю видео сервис int 10h медленный, логически должен быть как-нибудь быстрый?
Mendler вне форума Ответить с цитированием
Старый 09.04.2008, 21:02   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Mendler Посмотреть сообщение
я как понимаю видео сервис int 10h медленный, логически должен быть как-нибудь быстрый?
Для вывода на экран есть прямая завись в видеопамять.

Для смены режимов/активной страницы возможно прямое обращение к портам видеоконтроллера. Но это вряд ли будет быстрее, чем реализовано в int 10h

Что-то мы ходим кругами вокруг да около. Никак не пойму, что же такое вы хотите реализовать в DOS.
alexBlack вне форума Ответить с цитированием
Старый 09.04.2008, 21:09   #7
Mendler
Пользователь
 
Регистрация: 08.04.2008
Сообщений: 10
По умолчанию

Из уст преподователя: реализовать вывод линии используя два разных графических режима.
Mendler вне форума Ответить с цитированием
Старый 09.04.2008, 21:20   #8
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

По-моему можно не задумываться о смене страниц. Просто установить режим и вывести линию прямой записью в видеопамять.

Для вывода линии можно использовать алгоритм Bresengham'а. Примеры думаю несложно будет найти.

А два режима, наверное, для того, чтобы продемонстрировать ваше понимание работы видеопамяти. Можно взять самый простой режим - один байт на пиксел. Второй режим - что-то посложнее. Для вычисления координат точек придется применять сдвиги. В любом случае предварительно лучше почитать книгу о видеоадаптерах.
alexBlack вне форума Ответить с цитированием
Старый 09.04.2008, 21:28   #9
Mendler
Пользователь
 
Регистрация: 08.04.2008
Сообщений: 10
По умолчанию

первый алгоритм я реализовал... я полагаю это использование 0ch int 10h в цикле, а второй...мне сказали использовать int 10h, но как?
Mendler вне форума Ответить с цитированием
Старый 09.04.2008, 21:38   #10
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Mendler Посмотреть сообщение
первый алгоритм я реализовал... я полагаю это использование 0ch int 10h в цикле, а второй...мне сказали использовать int 10h, но как?
А, понятно. int 10h,0C - запись пиксела. Действительно медленно.

Второй вариант - прямая запись в видеопамять. int 10 здесь можно задействовать разве что для получения информации о текущем режиме.
Дальше об этом режиме нужно прочитать все, что только можно. А сам вывод будет делаться очень просто:

По координатам точки вычисляем смещение пиксела в видеостраницы
mov SI, [смещение]
mov DS, [базовый адрес видеостраницы - обычно A000h]
mov [DS:SI], <цвет символа>

Поищите --- Григорьев "Видеосистемы ПК"
там есть с примерами

Последний раз редактировалось alexBlack; 09.04.2008 в 21:45.
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео sf911 Помощь студентам 6 05.06.2008 22:54
видео sf911 Свободное общение 1 05.06.2008 19:55
Видео Stanislav Свободное общение 0 17.11.2007 14:29
видео и dat файлы bill Свободное общение 9 22.10.2007 12:17