1) Ответ на 0x4F01 формируется динамически в RAM-памяти (Intel, nVidia).
->> У Интела, например, есть инструментарий для "ковыряний" в видеобиосе.
Intel® Embedded Graphics Drivers Video BIOS intel.com/design/intarch/swsup/graphics_drivers.htm
Есть и проекты по модификации таблиц в RAM 855resolution/915resolution (там можно поглядеть что модифицировать и где).
2) Ответ на 0x4F01 формируется как указатель на статичную таблицу (0xC000:0x????) в VideoBIOS (ATI RV410, CirrusLogic, Matrox, Trident, S3, Tseng ET4000).
->> здесь просто ищем неиспользуемый режим и "перебиваем" его на нужный.
После внесения исправлений контрольную сумму видеобиоса нужно пересчитать.
Есть и полезная утилита RAMBIOS, позволяюшая загрузить BIOS в RAM для теста, чтобы затем его прошить.
Формат таблицы описан тут: vesa.org/public/vbe/vbe3.pdf (эта таблица возвращается при вызове VESA функции 0x4F01).
Примерчик (VBE30 BIOS, nVidia GeForce4, 640x400x8bit, mode 0x100)*:
* Моделист получен этой программкой - bearwindows.boot-land.net/infovbe.zip
Тут есть два варианта:
1) Ответ на 0x4F01 формируется динамически в RAM-памяти (Intel, nVidia).
->> У Интела, например, есть инструментарий для "ковыряний" в видеобиосе.
Intel® Embedded Graphics Drivers Video BIOS
intel.com/design/intarch/swsup/graphics_drivers.htm
Есть и проекты по модификации таблиц в RAM 855resolution/915resolution (там можно поглядеть что модифицировать и где).
2) Ответ на 0x4F01 формируется как указатель на статичную таблицу (0xC000:0x????) в VideoBIOS (ATI RV410, CirrusLogic, Matrox, Trident, S3, Tseng ET4000).
->> здесь просто ищем неиспользуемый режим и "перебиваем" его на нужный.
После внесения исправлений контрольную сумму видеобиоса нужно пересчитать.
Есть и полезная утилита RAMBIOS, позволяюшая загрузить BIOS в RAM для теста, чтобы затем его прошить.