#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);
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
*/
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))) {
}
}
- if(init(argc, argv) == -1) {
+ if(demo_init(argc, argv) == -1) {
status = -1;
goto break_evloop;
}
for(;;) {
int key;
while((key = kb_getkey()) != -1) {
- demo_key(key, 1);
+ demo_keyboard(key, 1);
if(quit) goto break_evloop;
}
}
time_msec = get_msec();
- draw();
+ demo_draw();
}
break_evloop:
- cleanup();
+ demo_cleanup();
set_text_mode();
cleanup_video();
kb_shutdown();
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])