#ifdef MXLIB
VGAmodeX(1, &gvar);
#else
- mxSetMode(3);
+ probe_dos();
+ if (!probe_vga()) {
+ printf("VGA probe failed\n");
+ return 1;
+ }
+ int10_setmode(19);
+ update_state_from_vga();
+ vga_enable_256color_modex(); // VGA mode X
+ vga_state.vga_width = 320; // VGA lib currently does not update this
+ vga_state.vga_height = 240; // VGA lib currently does not update this
+
+//#if 1 // 320x240 test mode: this is how Project 16 is using our code, enable for test case
+ {
+ struct vga_mode_params cm;
+
+ vga_read_crtc_mode(&cm);
+
+ // 320x240 mode 60Hz
+ cm.vertical_total = 525;
+ cm.vertical_start_retrace = 0x1EA;
+ cm.vertical_end_retrace = 0x1EC;
+ cm.vertical_display_end = 480;
+ cm.vertical_blank_start = 489;
+ cm.vertical_blank_end = 517;
+
+ vga_write_crtc_mode(&cm,0);
+ }
+ vga_state.vga_height = 240; // VGA lib currently does not update this
+//#endif
#endif
bakapee.xx = rand()&0%gvar.video.page[0].width;
bakapee.yy = rand()&0%gvar.video.page[0].height;
}
else
{
- #ifndef MXLIB
- mxChangeMode(0);
+#ifndef MXLIB
+ int10_setmode(3);
#else
VGAmodeX(0, &gvar);
#endif
// user imput switch
- fprintf(stderr, "xx=%d yy=%d\n", bakapee.xx, bakapee.yy);
+ fprintf(stderr, "xx=%d yy=%d tile=%d\n", bakapee.xx, bakapee.yy, bakapee.tile);
printf("Enter 1, 2, 3, 4, or 6 to run a screensaver, or enter 0 to quit.\n", getch()); // prompt the user
//scanf("%d", &key);
if(scanf("%d", &key) != 1)
}
getch();
//if(key==3){xx=yy=0;} // crazy screen saver wwww
- if(key==0){ d=0; }else{
- gvar.video.page[0] = modexDefaultPage(&gvar.video.page[0]);
- gvar.video.page[0].width += (TILEWH*2);
- gvar.video.page[0].height += (TILEWH*2);
+ switch (key)
+ {
+ case 0:
+ d=0;
+ break;
+ case 65536:
+ switch (bakapee.tile)
+ {
+ case 0:
+ bakapee.tile=1;
+ break;
+ case 1:
+ bakapee.tile=0;
+ break;
+ }
+ d=2;
+ default:
#ifdef MXLIB
- VGAmodeX(1, &gvar);
+ gvar.video.page[0] = modexDefaultPage(&gvar.video.page[0]);
+ gvar.video.page[0].width += (TILEWH*2);
+ gvar.video.page[0].height += (TILEWH*2);
+ VGAmodeX(1, &gvar);
#else
- mxChangeMode(3);
+ probe_dos();
+ if (!probe_vga()) {
+ printf("VGA probe failed\n");
+ return 1;
+ }
+ int10_setmode(19);
+ update_state_from_vga();
+ vga_enable_256color_modex(); // VGA mode X
+ vga_state.vga_width = 320; // VGA lib currently does not update this
+ vga_state.vga_height = 240; // VGA lib currently does not update this
+
+//#if 1 // 320x240 test mode: this is how Project 16 is using our code, enable for test case
+ {
+ struct vga_mode_params cm;
+
+ vga_read_crtc_mode(&cm);
+
+ // 320x240 mode 60Hz
+ cm.vertical_total = 525;
+ cm.vertical_start_retrace = 0x1EA;
+ cm.vertical_end_retrace = 0x1EC;
+ cm.vertical_display_end = 480;
+ cm.vertical_blank_start = 489;
+ cm.vertical_blank_end = 517;
+
+ vga_write_crtc_mode(&cm,0);
+ }
+ vga_state.vga_height = 240; // VGA lib currently does not update this
+//#endif
#endif
- modexShowPage(&gvar.video.page[0]);
+ modexShowPage(&gvar.video.page[0]);
+ break;
}
}
}