- 3



// VBE 2.0

strcpy( vesaInfo.cSignature, "VBE2" );


// VBE

regs.h.ah = 0x4f;

regs.h.al = 0x00;

segregs.es = FP_SEG((void far *)&vesaInfo);

regs.x.di = FP_OFF((void far *)&vesaInfo);

int86x(0x10, &regs, &regs, &segregs);


// VBE

iResult = AnalyseResult(regs);

if(iResult != 0) return -1;


// vesaInfo

fprintf(file,": '%4.4s'\n",vesaInfo.cSignature );

fprintf(file, " : '%s'\n",

vesaInfo.fpInfoOEM );

fprintf(file, " VBE: %Xh \n", vesaInfo.usVersion);

fprintf(file, " : '%x%x%x%x' \n",

vesaInfo.ucCapabilities[0],vesaInfo.ucCapabilities[1],

vesaInfo.ucCapabilities[2],vesaInfo.ucCapabilities[3]);


fprintf(file, " VESA: \n");

for( i=0; i<50; i++ ) {

if(vesaInfo.fpModeTable[i] == 0xFFFF) break;

fprintf(file, " %Xh \n", vesaInfo.fpModeTable[i] );

}


// VBE 1.2

if( vesaInfo.usVersion >= 0x102 )

fprintf(file, " %d \n",

vesaInfo.usTotalMemory * 64);


//

// VBE 2.0

if( vesaInfo.usVersion >= 0x200 )

{

fprintf(file," : %04Xh\n",

vesaInfo.usRevVersion);

fprintf(file, " "

": '%s'\n",

vesaInfo.fpOEMRevVersion);

fprintf(file, " : '%s'\n",

vesaInfo.fpOEMName);