removed clang-format and clang_complete files from the repo
[dosdemo] / src / dos / main.c
index 0de90ed..7f67e85 100644 (file)
@@ -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])