- for(i=0; i<1024; i++) { /* impose an upper limit to avoid inf-loops */
- if(modes[i] == 0xffff) {
- break; /* reached the end */
+ vbe_init_ver = VBE_VER_MAJOR(vbe.ver);
+ return 0;
+}
+
+void *set_video_mode(int xsz, int ysz, int bpp, int nbuf)
+{
+ int i, nmodes;
+ int best_match_mode = -1;
+ struct vbe_mode_info minf;
+
+ if(!vbe_init_ver) {
+ if(init_vbe() == -1) {
+ fprintf(stderr, "failed to initialize VBE\n");
+ return 0;
+ }
+ if(vbe_init_ver < 2) {
+ fprintf(stderr, "VBE >= 2.0 required\n");
+ return 0;