Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графические режимы из Assembler, Как установить нужное разрешение 
:(
    Опции темы
BNPmaster
Дата 6.7.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Всем привет,
Знает ли кто-нибудь как установить нужный
режим экрана в Assembler или в Turbo c 3.0 ,но не пользуясь
стандартной графической библиотекой.
В справочниках написано, что прерывание 10h BIOS позволяет 
устанавливать только VGA режим, максимальное 
разрешение при этом 640*480 16 цветов.
А что, если, нужно получить разрешение большее,
скажем 800*600 256 цветов или выше, что делать 
в этом случае?
Может это вообще не через BIOS надо делать?

Метод "научного тыка" показал, что если в TC 3.0 набрать код

void asm_video()
{
 _asm {
    mov ah,0
    mov al, byte ptr 27h

    int 10h
 }
}
 
то монитор перейдёт в режим больше напоминающий 1024*768, нежели 
максимально заявленный в справочниках 640*480.
Но никакого упоминания о режиме 27h я не нашёл. Более того 
использование режима 27h в "чистом" ассемблере (MASM 5.1 )
не даёт какого-либо результата.
Если кто-то, что-то знает - подскажите. 
Спасибо.

 
PM MAIL   Вверх
Exekutor
Дата 6.7.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

Репутация: нет
Всего: 4



Цитата

А что, если, нужно получить разрешение большее,
скажем 800*600 256 цветов или выше, что делать 
в этом случае?


Использовать драйвер видеокарты. 


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
e-moe
Дата 6.7.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 3.8.2004
Где: Украина, Донецк

Репутация: нет
Всего: 4



Exekutor, Читай про VESA 
PM MAIL WWW ICQ   Вверх
Exekutor
Дата 8.7.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

Репутация: нет
Всего: 4



Прерывание 27h используется для резидентных com-программ. 

DX - адрес первого байта за резидентной частью программы
CS - на начало PSP 


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
chyapay
Дата 18.8.2006, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.2.2006
Где: UA, Lviv

Репутация: нет
Всего: нет



Че-то ты Exekutor не понимаешь: какое там прерывание 27h, если int 10h ax=byte ptr [27h]=??h
ты че? по адресу [27h] может быть любой мусор т.к. это локальный адрес, в сегменте данных твоей проги. 
А прерывание 27h к этому не имеет ни малейшего отношения. Прерывание тут - 10h, то самое, которое отвечает за функции видео. 
Обычно к нему обращаются так:
mov ax, номер функции
mov bx/cd/dx....... - несколько параметров
int 10h - собственно вызов прерывания
mov errorcode, ax

Для установки видеорежима функция 4F02h в регистре BX значение отвечает за номер режима:

биты 0-6 - собственно номер режима
бит 7 - признак неочищения видеопамяти при остальных битах-нулях
бит 9 - нестандартный режим
биты 10-12 - зарезерв.
бит 13 - аппаратное ускорение
бит 14 - использование фреймбуфера
бит 15 - признак неочищения видеопамяти

например, подставь в BX значение 
 118h для режима 1024х768 32бита труколор

А вообще-то: Зубков С.В.   Ассемблер для ДОС, Виндовс и Юникс!
PM MAIL ICQ YIM   Вверх
monax
Дата 21.8.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 9.6.2005

Репутация: нет
Всего: 4



--------------------
Лаборатория программиста
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.