X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdos%2Fmain.c;h=566d47e9f8939e50e61fbdced4f0e22adab15c3c;hb=refs%2Fheads%2Fmaster;hp=7535681505f1149fad0a51494ed321a7cfb6e9e6;hpb=93f68e445b0a4f10f2b15383aafed8a216a4a228;p=dosdemo diff --git a/src/dos/main.c b/src/dos/main.c index 7535681..7f67e85 100644 --- a/src/dos/main.c +++ b/src/dos/main.c @@ -8,6 +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); @@ -38,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 */ @@ -48,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))) { @@ -67,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; } @@ -81,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; } @@ -97,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(); @@ -117,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])