![]() |
|
![]() ![]() ![]() |
|
BNPmaster |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 ) не даёт какого-либо результата. Если кто-то, что-то знает - подскажите. Спасибо. |
|||
|
||||
Exekutor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 1.11.2005 Где: Казахстан. Костан ай Репутация: нет Всего: 4 |
Использовать драйвер видеокарты. -------------------- [color=blue][size=2]En taro addun, ma sol larinas[/size][/color] |
|||
|
||||
e-moe |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 3.8.2004 Где: Украина, Донецк Репутация: нет Всего: 4 |
Exekutor, Читай про VESA
|
|||
|
||||
Exekutor |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 1.11.2005 Где: Казахстан. Костан ай Репутация: нет Всего: 4 |
Прерывание 27h используется для резидентных com-программ.
DX - адрес первого байта за резидентной частью программы CS - на начало PSP -------------------- [color=blue][size=2]En taro addun, ma sol larinas[/size][/color] |
|||
|
||||
chyapay |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 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бита труколор А вообще-то: Зубков С.В. Ассемблер для ДОС, Виндовс и Юникс! |
|||
|
||||
monax |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 9.6.2005 Репутация: нет Всего: 4 |
BNPmaster, вот тут есть кое-что.
--------------------
Лаборатория программиста |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |