7 / 7 / 8
Регистрация: 19.06.2016
Сообщений: 134
|
|
1 | |
Узнать поддерживаемые режимы дисплея в защищённом режиме28.05.2018, 14:31. Показов 1642. Ответов 3
Метки нет (Все метки)
Есть ли способ узнать поддерживаемые режимы дисплея на ассемблере в защищённом режиме. Хочется достать инфу типа (Символов:Строк*(битность цвет))
0
|
28.05.2018, 14:31 | |
Ответы с готовыми решениями:
3
Как узнать поддерживаемые монитором разрешения? Память в защищенном режиме Прерывания в защищенном режиме Работа с файлами в защищенном режиме |
Эксперт Hardware
|
||||||
28.05.2018, 19:32 | 2 | |||||
Сообщение было отмечено Mikl___ как решение
Решение
без разницы, где ты находишься - хоть в реальном(RM), хоть в защищённом(PM) режиме.
ОС всё равно считывает поддерживаемые режимы из VGA-BIOS. Из доса - можешь получить чз fn.VESA=4F00h, из винды - можно считать с реестра: Код
INT-10h, АX = 4F00h - Получить общую SVGA-информацию ---------------------------------------------------- Вход: AX = 4F00h ES:DI = адрес буфера (512 байт). Вывод: AX = 004Fh, если данные записаны в буфер, АН = 01h, если произошла ошибка. нужно в голову буфера предварительно записать строку 'VBE2':
Описание полей буфера найдёшь в сети, поддерживаемые режимы размером слово (у меня 27-штук), начинаются с адреса 0e81:0150 и заканчиваются маркером(FFFF):Код
->d 110 0E81:0110 56 45 53 41 00 03 10 02 81 0E 01 00 00 00 50 01 VESA ♥►☻Б♫☺ P☺ 0E81:0120 81 0E 00 0F 00 01 52 02 81 0E 64 02 81 0E 97 02 Б♫ ☼ ☺R☻Б♫d☻Б♫Ч☻ 0E81:0130 81 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Б♫ 0E81:0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:0150 60 01 61 01 62 01 63 01 64 01 65 01 66 01 67 01 `☺a☺b☺c☺d☺e☺f☺g☺ 0E81:0160 68 01 3C 01 4D 01 5C 01 3A 01 4B 01 5A 01 07 01 h☺<☺M☺\☺:☺K☺Z☺.☺ 0E81:0170 1A 01 1B 01 05 01 17 01 18 01 12 01 14 01 15 01 →☺←☺♣☺↨☺↑☺↕☺¶☺§☺ 0E81:0180 01 01 03 01 11 01 FF FF 00 00 00 00 00 00 00 00 ☺☺♥☺◄☺** 0E81:0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:01A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:01B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:01D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:01E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:01F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:0210 49 6E 74 65 6C 28 72 29 20 38 32 39 34 35 47 20 Intel(r) 82945G 0E81:0220 43 68 69 70 73 65 74 20 46 61 6D 69 6C 79 20 47 Chipset Family G 0E81:0230 72 61 70 68 69 63 73 20 43 68 69 70 20 41 63 63 raphics Chip Acc 0E81:0240 65 6C 65 72 61 74 65 64 20 56 47 41 20 42 49 4F elerated VGA BIO 0E81:0250 53 00 49 6E 74 65 6C 20 43 6F 72 70 6F 72 61 74 S Intel Corporat 0E81:0260 69 6F 6E 00 49 6E 74 65 6C 28 72 29 20 38 32 39 ion Intel(r) 829 0E81:0270 34 35 47 20 43 68 69 70 73 65 74 20 46 61 6D 69 45G Chipset Fami 0E81:0280 6C 79 20 47 72 61 70 68 69 63 73 20 43 6F 6E 74 ly Graphics Cont 0E81:0290 72 6F 6C 6C 65 72 00 48 61 72 64 77 61 72 65 20 roller Hardware 0E81:02A0 56 65 72 73 69 6F 6E 20 30 2E 30 00 00 00 00 00 Version 0.0 0E81:02B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:02C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:02D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:02E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:02F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E81:0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ->
1
|
Модератор
|
|
28.05.2018, 22:18 | 3 |
Не очень хорошо помню этот вопрос.
В защищённом режиме SVGA предоставляет сервис (функции) не через прерывания, а через точку входа. Т.е. регистры заполняются как для прерывания SVGA (int 10h), но int не вызывается, а вызывается точка входа в сервис SVGA через call. И уже тогда можно смотреть параметры видеорежимов, как бы вызывая эту функцию (4200h). Но детали я уже не помню. Возможно, читал об этом в книге Владимира Кулакова. Там и примеры были. Добавлено через 1 минуту Но это касается только SVGA режимов. Для остальных - просто запоминают константы.
2
|
Эксперт Hardware
|
|
29.05.2018, 12:15 | 4 |
..глючный подход. (как и все сервисы защищённой моды)
Точку входа в РМ-функции, VESA возвращает 4F0Ah - у меня последний VBE3, и выдаёт ошибку: Код
В.Кулаков. Программирование на аппаратном уровне ------------------------------------------------ int-10h. Получить таблицу доступа к интерфейсу защищенного режима. Вход: АХ = 4F0Ah ВХ = 00h Выход: АХ = код возврата ES:DI = указатель на таблицу доступа к интерфейсу защищенного режима СХ = размер таблицы в байтах. но только не эти/кривые сервисы, тем более что разгребать полученный хлам придётся всю/оставшуюся жизнь. ИМХО..
1
|
29.05.2018, 12:15 | |
29.05.2018, 12:15 | |
Помогаю со студенческими работами здесь
4
Размер программы в защищенном режиме Удаленный доступ в защищенном режиме Особые случаи в защищённом режиме Программирование видеокарты в защищённом режиме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |