Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
 
 
Kukuxumushu
752 / 475 / 89
Регистрация: 13.06.2015
Сообщений: 1,628
Завершенные тесты: 2
#1

Список режимов монитора - Assembler

04.10.2016, 04:55. Просмотров 1117. Ответов 34
Метки нет (Все метки)

Через int 10h 4f00h и 4f01h я получаю список режимов видеокарты, а как получить список доступных режимов монитора?? Пробовал разобраться в 10h 4f15h, ничего там не понял, какая-то таблица устаревших режимов с неясными признаками их доступности.
http://www.cyberforum.ru/assembler/thread100986.html
Конечная задача проста - определить "родной" режим монитора и установить его.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2016, 04:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Список режимов монитора (Assembler):

Сформируйте управляющие слова для всех возможных режимов канала 2 таймера и напишите фрагмент программы
29. Сформируйте управляющие слова для задания всех возможных комбинаций режимов...

Получить список доступных видеорежимов монитора
Приветствую всех кодеров! Назрел один вопросец, хочу узнать возможные...

Выбор монитора за 10-13 тыс. Диагональ монитора 22-24, LED, FullHD, HDMI
Ребята, помогите подобрать хороший монитор!!! Мне понравился Samsung LCD 24"...

Артефакты переключения режимов...
Добрый день.. помогите пожалуйста исправить код...не получается нормально...

tinyMCE + JS переключение режимов
Вот делаю себе редактор. все работает, все зашибись. Сейчас при нажатии на...

34
Mikl___
Автор FAQ
11365 / 5908 / 534
Регистрация: 11.11.2010
Сообщений: 10,932
06.10.2016, 12:07 #21
Kukuxumushu,
название монитора, а следовательно поддерживаемые режимы можно получить через реестр, а также если дизассемблировать программу типа "EVEREST Ultimate Edition"
0
shmkv
651 / 370 / 57
Регистрация: 21.07.2015
Сообщений: 1,056
06.10.2016, 12:31 #22
Mikl___, вся эта инфа все равно получается из EDID. EDID в нормальных ОС читает драйвер.

Добавлено через 2 минуты
И это. VBE3 не имеет никого отношения к современности видюхи. У меня на старой материке 0го года встроенный чип с поддержкой VBE3, в тоже время моя видеокарта 10го года поддерживает только VBE2.
0
Mikl___
Автор FAQ
11365 / 5908 / 534
Регистрация: 11.11.2010
Сообщений: 10,932
06.10.2016, 12:47 #23
shmkv,
спасибо за инфу, не знал....
0
Kukuxumushu
752 / 475 / 89
Регистрация: 13.06.2015
Сообщений: 1,628
Завершенные тесты: 2
06.10.2016, 14:49  [ТС] #24
Цитата Сообщение от shmkv Посмотреть сообщение
Он там не заработает
Совсем печально.
Тогда последний, наверное, вопрос - как в VBE3 задать цветность в структуре CRTC?? Там нет такого поля.
Для исключения недоразумений конечно бы хотелось чётко знать и как остальные поля заполнять. Что-то понятно из вашей стать, но не всё.

Добавлено через 3 минуты
Цитата Сообщение от Mikl___ Посмотреть сообщение
можно получить через реестр
Если бы мне надо было получить что-то через реестр, я бы не спрашивал в разделе RealMode))
0
shmkv
651 / 370 / 57
Регистрация: 21.07.2015
Сообщений: 1,056
06.10.2016, 15:32 #25
Kukuxumushu, я вынужден извиниться за то, что ввел в заблуждение. Я сам возможности VBE3 никогда не использовал (переключал нестандартные режимы через регистры), но думал, что через него можно задать произвольные параметры. Сейчас внимательнее изучил эту структуру -- там можно задать только тайминги (ввели преимущественно для возможности выбора частоты обновления). Т. е. полноценно сменить режим с помощью них вряд ли получится. Можно попробовать установить режим с нужным bpp из списка и приписать к нему тайминги от другого режима. Но скорее всего это не приведет к изменениям ViewPort и Surface регистров и ты не сможешь получить доступ ко всему экрану (можешь подробнее об таком эффекте почитать в моей статье).
0
Kukuxumushu
752 / 475 / 89
Регистрация: 13.06.2015
Сообщений: 1,628
Завершенные тесты: 2
06.10.2016, 15:50  [ТС] #26
shmkv, т.е. я так понимаю, польза от VBE3 только в возможности смены частоты? Там в этой структуре вообще всё не очень понятно, зачем вот эти start/end, откуда их брать, зачем частоту пикселей писать вручную, если она зависит от остальных параметров и вычисляется по ним?
И раз уж VBE3 работать в Bochs не будет, то можно хотя бы найти видеобиос, в котором хоть 4f15 заработает? Дебажить перезагрузкой это ад.
0
shmkv
651 / 370 / 57
Регистрация: 21.07.2015
Сообщений: 1,056
06.10.2016, 19:46 #27
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
т.е. я так понимаю, польза от VBE3 только в возможности смены частоты?
Ну по сути, видимо, да.
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
Там в этой структуре вообще всё не очень понятно, зачем вот эти start/end, откуда их брать, зачем частоту пикселей писать вручную, если она зависит от остальных параметров и вычисляется по ним?
В моей статье есть ссылка на osdev wiki. Эти парметры можно легко вычислить по EDID.
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
зачем частоту пикселей писать вручную, если она зависит от остальных параметров и вычисляется по ним?
Все эти параметры (в т. ч. и частота генерации) связаны между собой. Но она не может быть вычислена из других параметров однозначно.
Цитата Сообщение от Kukuxumushu Посмотреть сообщение
И раз уж VBE3 работать в Bochs не будет, то можно хотя бы найти видеобиос, в котором хоть 4f15 заработает? Дебажить перезагрузкой это ад.
Вот ты говорил, что читал мою статью, а мне кажется, что нет. Я там код привел для чтения EDID на регистрах. Только он не переносим.

Добавлено через 3 часа 24 минуты
Kukuxumushu, ну как успехи?
1
Kukuxumushu
752 / 475 / 89
Регистрация: 13.06.2015
Сообщений: 1,628
Завершенные тесты: 2
06.10.2016, 19:59  [ТС] #28
Цитата Сообщение от shmkv Посмотреть сообщение
Kukuxumushu, ну как успехи?
Раз с совместимостью всё настолько плохо, решил с VBE3 вообще не мучиться и ставить наиболее близкий к родному режим с дефолтной частотой. При отсутствии поддержки и 4f15 - ставить режим 101.
0
R71MT
2979 / 1109 / 264
Регистрация: 29.07.2014
Сообщений: 2,118
Записей в блоге: 4
08.10.2016, 15:55 #29
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

Цитата Сообщение от Kukuxumushu Посмотреть сообщение
то можно хотя бы найти видеобиос, в котором хоть 4f15 заработает? Дебажить перезагрузкой это ад.
VGA-ROM лежит по адресу C000:0000h. Байт после сигнатуры указывает на его размер в 512-байтных блоках (7Ah в дампе ниже). Скидывай в файл эту область, вот тебе и видеобиос. Можно даже через NTVDM:
Код
C:\>debug
-d c000:0
C000:0000  55 AA 7A EB 4B 37 34 30 - 30 E9 4C 19 77 CC 56 49   U.z.K7400.L.w.VI
C000:0010  44 45 4F 20 0D 00 00 00 - 84 02 9B 0E 00 00 49 42   DEO ..........IB
C000:0020  4D 20 56 47 41 20 43 6F - 6D 70 61 74 69 62 6C 65   M VGA Compatible
C000:0030  01 00 00 00 B0 10 B2 EF - 30 34 2F 30 34 2F 30 33   ........04/04/03
C000:0040  00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00   ................
C000:0050  E9 E7 E4 00 00 00 00 00 - 3F D0 30 7E 80 20 C0 80   ........?.0~. ..
C000:0060  00 00 00 00 10 00 00 80 - 22 00 A5 0C E9 D0 0D E9   ........".......
C000:0070  D7 0D 50 4D 49 44 6C 00 - 6F 00 00 00 00 A0 00 B0   ..PMIDl.o.......
-
Внутри - налицо вся работа с регистрами контроллёра. Из прерываний только INT-15 (5F14/15), но что-то Ральф о нём умалчивает. Дебажил свою NV-5200, весь код 16-битный.
3
shmkv
651 / 370 / 57
Регистрация: 21.07.2015
Сообщений: 1,056
08.10.2016, 16:44 #30
R71MT, проще уж из исходников открытых линуксовых драйверов понять.
1
Kukuxumushu
752 / 475 / 89
Регистрация: 13.06.2015
Сообщений: 1,628
Завершенные тесты: 2
08.10.2016, 17:02  [ТС] #31
Цитата Сообщение от R71MT Посмотреть сообщение
Дебажил свою NV-5200, весь код 16-битный
Ты в Bochs дебажил? Я снял дамп, а эта собака пишет мне invalid checksum.
0
R71MT
2979 / 1109 / 264
Регистрация: 29.07.2014
Сообщений: 2,118
Записей в блоге: 4
08.10.2016, 17:15 #32
Может большой (64K+) файл получил? Вообще-то я его не дебажил, а просто дизассемблировал. Там всё по-функциям, которые вызываются через CALL. Все функции собраны в хвосте.
0
Kukuxumushu
752 / 475 / 89
Регистрация: 13.06.2015
Сообщений: 1,628
Завершенные тесты: 2
08.10.2016, 17:16  [ТС] #33
Цитата Сообщение от R71MT Посмотреть сообщение
Может большой (64K+) файл получил?
48К
Эх, ну раз так, то толку от этого дампа ноль((
0
R71MT
2979 / 1109 / 264
Регистрация: 29.07.2014
Сообщений: 2,118
Записей в блоге: 4
08.10.2016, 17:17 #34
Код
* Referenced by a CALL at Addresses:
|:0001.4F4D, :0001.4F83, :0001.4F99, :0001.4FCE, :0001.4FDF
|:0001.5018, :0001.5031, :0001.504A, :0001.57B7
|
:0001.4DEA 52                     push dx
:0001.4DEB BACC03                 mov dx, 03CC
:0001.4DEE BB060A                 mov bx, 0A06
:0001.4DF1 EC                     in al, dx
:0001.4DF2 A801                   test al, 01
:0001.4DF4 7402                   je 4DF8
:0001.4DF6 B70E                   mov bh, 0E

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.4DF4(C)
|
:0001.4DF8 B2CE                   mov dl, CE
:0001.4DFA 8BC3                   mov ax, bx
:0001.4DFC EF                     out dx, ax
:0001.4DFD B80510                 mov ax, 1005
:0001.4E00 EF                     out dx, ax
:0001.4E01 B2C4                   mov dl, C4
:0001.4E03 B80203                 mov ax, 0302
:0001.4E06 EF                     out dx, ax
:0001.4E07 B80402                 mov ax, 0204
:0001.4E0A EF                     out dx, ax
:0001.4E0B 5A                     pop dx
:0001.4E0C C3                     ret
2
shmkv
651 / 370 / 57
Регистрация: 21.07.2015
Сообщений: 1,056
09.10.2016, 00:47 #35
Я вычитывал весь сегмент целиком и сохранял на диск, потом открывал в дизассемблере. Но ничего интересно я в своем VGA BIOS не наше. Разве что как можно узнать адрес регистров без залезания в конф. пространство PCI.
2
09.10.2016, 00:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2016, 00:47
Привет! Вот еще темы с решениями:

Правильная настройка монитора или Что делать, если от монитора болят глаза и голова
Приветствую. Немногие умеют правильно настроить монитор, многие не настраивают...

Переключение режимов звуковой карты
Как то оставлял тут вопрос по поводу работы со звуком, мне посоветовали...

Примеры режимов блока TRANSFER
Нужны модели с использованием блока TRANSFER (9 режимов), желательно чтобы они...

Смена режимов экрана в Directx9
Всем здрасьте. Мне надо сменить с экранного на полноэкраный режим. То есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru