| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для Windows/Dos > Графические режимы из Assembler |
| Автор: BNPmaster 6.7.2006, 14:12 |
| Всем привет, Знает ли кто-нибудь как установить нужный режим экрана в 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 6.7.2006, 14:41 | ||
Использовать драйвер видеокарты. |
| Автор: e-moe 6.7.2006, 20:57 |
| Exekutor, Читай про VESA |
| Автор: Exekutor 8.7.2006, 13:03 |
| Прерывание 27h используется для резидентных com-программ. DX - адрес первого байта за резидентной частью программы CS - на начало PSP |
| Автор: chyapay 18.8.2006, 18:01 |
| Че-то ты 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 21.8.2006, 18:35 |
| BNPmaster, http://www.forum.ishodniki.ru/index.php?topic=7009.0 |