X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdos%2Fmain.c;h=7f67e85b3b77cc677efc271d810d8cf1d97e4d2c;hb=280b3d2a948e965d7af7f017809c27a2b2ee2ce2;hp=0de90ed1d1a00ffcacdb6f6a797f41969b854122;hpb=d956a9d9273eebfacfda58cb3bafff017269d5dc;p=dosdemo diff --git a/src/dos/main.c b/src/dos/main.c index 0de90ed..7f67e85 100644 --- a/src/dos/main.c +++ b/src/dos/main.c @@ -8,8 +8,10 @@ #include "logger.h" #include "cdpmi.h" #include "audio.h" +#include "mouse.h" #include "sball.h" #include "vmath.h" +#include "cpuid.h" static int handle_sball_event(sball_event *ev); static void recalc_sball_matrix(float *xform); @@ -40,6 +42,16 @@ int main(int argc, char **argv) init_logger("demo.log"); +#ifdef __WATCOMC__ + printf("watcom build\n"); +#elif defined(__DJGPP__) + printf("djgpp build\n"); +#endif + + if(read_cpuid(&cpuid) == 0) { + print_cpuid(&cpuid); + } + /* au_init needs to be called early, before init_timer, and also before * we enter graphics mode, to use the midas configuration tool if necessary */ @@ -50,11 +62,15 @@ int main(int argc, char **argv) init_timer(100); kb_init(32); + if(init_pci() != -1) { + /* TODO detect and initialize S3 virge */ + } + if(init_video() == -1) { return 1; } - if((vmidx = match_video_mode(640, 480, 16)) == -1) { + if((vmidx = match_video_mode(FB_WIDTH, FB_HEIGHT, FB_BPP)) == -1) { return 1; } if(!(vmem = set_video_mode(vmidx, 1))) { @@ -69,7 +85,7 @@ int main(int argc, char **argv) } } - if(init(argc, argv) == -1) { + if(demo_init(argc, argv) == -1) { status = -1; goto break_evloop; } @@ -83,7 +99,7 @@ int main(int argc, char **argv) for(;;) { int key; while((key = kb_getkey()) != -1) { - demo_key(key, 1); + demo_keyboard(key, 1); if(quit) goto break_evloop; } @@ -99,11 +115,11 @@ int main(int argc, char **argv) } time_msec = get_msec(); - draw(); + demo_draw(); } break_evloop: - cleanup(); + demo_cleanup(); set_text_mode(); cleanup_video(); kb_shutdown(); @@ -119,6 +135,15 @@ void demo_quit(void) quit = 1; } +void demo_abort(void) +{ + set_text_mode(); + stop_logger(); + printf("demo_abort called. see demo.log for details. Last lines:\n\n"); + print_tail("demo.log"); + abort(); +} + #define TX(ev) ((ev)->motion.motion[0]) #define TY(ev) ((ev)->motion.motion[1]) #define TZ(ev) ((ev)->motion.motion[2])