Формат таблицы описан тут: http://www.vesa.org/public/vbe/vbe3.pdf (эта таблица возвращается

Формат таблицы описан тут: vesa.org/public/vbe/vbe3.pdf (эта таблица возвращается при вызове VESA функции 0x4F01).

Примерчик (VBE30 BIOS, nVidia GeForce4, 640x400x8bit, mode 0x100)*:

VBE_MODEINFO ModesVBE[] = {
{ 0x0100, // VESA Mode
  0x039F, // ModeAttr
  0x07,  0x00, // WinAA, WinBA
  0x0040,  0x0040, // WinGrnl,  WinSize
  0xA000,  0x0000, 0xC000B57F, // WinA SEG, WinB SEG, WinFunc ptr
  640, // BpSL
  640,  400, 8, 16, 1, 8, // XRes x YRes, XChar, YChar, Planes, BPP
  1, 4, 0, 14, 1, // NoB, MM, szB, NoI, res1
  0, 0, 0, 0, 0, 0, 0, 0, // red, green, blue, rsvd ms/fp
  0, // DCMI
  0xD8000000,  0x00000000,  0, // LFB ptr / OSMO ptr / OSMS 
  640, 14, 14, // LBpSL, BNNoIP, LNNoIP
  0, 0, 0, 0, 0, 0, 0, 0, // lin. red, green, blue, rsvd ms/fp
 229500000, " "}, // MaxPCLK(Hz), char res2[189]

* Моделист получен этой программкой - 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 для теста, чтобы затем его прошить.