fprintf(file, "Íàçâàíèå âèäåîàäàïòåðà: '%s'\n",
vesaInfo.fpOEMProductName);
}
// Òåïåðü ïîëó÷àåì èíôîðìàöèþ äëÿ êàæäîãî äîñòóïíîãî
// ðåæèìà VESA
for( i=0; i<50; i++ ) {
// Ïîëó÷àåì î÷åðåäíîé íîìåð ðåæèìà VESA
if(vesaInfo.fpModeTable[i] == 0xFFFF) break;
fprintf(file, "\n\nÐåæèì %Xh \n",
vesaInfo.fpModeTable[i] );
// Ïîëó÷àåì èíôîðìàöèþ î ðåæèìå vesaInfo.fpModeTable[i]
regs.h.ah = 0x4f;
regs.h.al = 0x01;
regs.x.cx = vesaInfo.fpModeTable[i];
segregs.es = FP_SEG((void far *)&modeInfo);
regs.x.di = FP_OFF((void far *)&modeInfo);
int86x(0x10, ®s, ®s, &segregs);
// Ïðîâåðÿåì ðåçóëüòàò âûçîâà ôóíêöèè VBE
iResult = AnalyseResult(regs);
if(iResult != 0) return -1;
// Çàïèñûâàåì â ôàéë èíôîðìàöèþ èç ñòðóêòóðû modeInfo
fprintf(file, "Àòðèáóòû ðåæèìà: %04Xh \n",
modeInfo.usModeAttr);
fprintf(file, "Àòðèáóòû îêíà: A %02Xh \n",
modeInfo.ucWinAAttr);
fprintf(file, "Àòðèáóòû îêíà: B %02Xh \n",
modeInfo.ucWinBAttr);
fprintf(file, "Øàã ïîçèöèîíèðîâàíèÿ îêíà: %d Êáàéò \n",
modeInfo.usWinGranularity);
fprintf(file, "Ðàçìåð îêíà, Êáàéò: %d \n",
modeInfo.usWinSize );
fprintf(file, "Íà÷àëî ñåãìåíòà îêíà A: %04Xh \n",
modeInfo.usBegSegA );
fprintf(file, "Íà÷àëî ñåãìåíòà îêíà B: %04Xh \n",
modeInfo.usBegSegB );