int test_controller() { if (lm_init() == NULL) { printf("\tvg_get_controller_info(): lm_init() failed \n"); return 1; } return vbe_get_controller_info(); }
int test_controller() { vbe_controller_info_t info; void* base=NULL; if(vbe_get_controller_info(&info, &base)){ printf("test_controller(): vbe_get_controller_info() failed\n"); return 1; } printf("VBE Signature : %s\n", info.VbeSignature); printf("VBE Version : ");print_vbe_version(info.VbeVersion); printf("\n"); printf("OEM String : %s\n", GET_ADDR(info.OemStringPtr, base)); printf("Total VRAM memory : %u (blocks of 64 kb)\n", info.TotalMemory); printf("OEM Software Revision: "); print_vbe_version(info.OemSoftwareRev); printf("\n"); printf("OEM Vendor Name : %s\n", GET_ADDR(info.OemVendorNamePtr, base),GET_ADDR(info.OemVendorNamePtr, base)); printf("OEM Product Name : %s\n", GET_ADDR(info.OemProductNamePtr, base)); printf("OEM Product Revision : %s\n", GET_ADDR(info.OemProductRevPtr, base)); unsigned long capabilities = (unsigned long) (*(info.Capabilities)); printf("Capabilities: 0x%x\n",capabilities); if((capabilities & BIT(0)) == 0) printf("\tDAC is fixed width, with 6 bits per primary color\n"); else printf("\tDAC width is switchable to 8 bits per primary color\n"); if((capabilities & BIT(1)) == 0) printf("\tController is VGA compatible\n"); else printf("\tController is not VGA compatible\n"); if((capabilities & BIT(2)) == 0) printf("\tNormal RAMDAC operation\n"); else printf("\tRAMDAC operation: Blank bit in Function 09h\n"); short* modes = GET_ADDR(info.VideoModePtr, base); size_t nummodes=0; printf("Supported modes:\n"); while(*modes != -1) { nummodes++; printf("Mode number %3d : 0x%X\n", nummodes,*modes); modes++; } if(nummodes == 0) printf("No modes supported\n"); return 0; }