int wince_main(int argc, char **argv) { /* initialise Atari800 core */ if (!Atari800_Initialise(&argc, argv)) return 3; /* main loop */ for (;;) { if (emulator_active) { key_code = Atari_Keyboard(); Atari800_Frame(); if (display_screen) Atari_DisplayScreen(); } else { Sleep(100); } } }
int main(int argc, char **argv) { /* initialise Atari800 core */ if (!Atari800_Initialise(&argc, argv)) return 3; /* main loop */ while (TRUE) { int refresh_counter = 0; int keycode = Atari_Keyboard(); switch (keycode) { case AKEY_COLDSTART: Coldstart(); break; case AKEY_WARMSTART: Warmstart(); break; case AKEY_EXIT: Atari800_Exit(FALSE); exit(1); case AKEY_UI: #ifdef SOUND Sound_Pause(); #endif ui((UBYTE *)atari_screen); #ifdef SOUND Sound_Continue(); #endif break; case AKEY_SCREENSHOT: Save_PCX_file(FALSE, Find_PCX_name()); break; case AKEY_SCREENSHOT_INTERLACE: Save_PCX_file(TRUE, Find_PCX_name()); break; case AKEY_BREAK: key_break = 1; break; default: key_break = 0; key_code = keycode; break; } if (mouse_mode != MOUSE_OFF) { union REGS rg; rg.x.ax = 0x0b; int86(0x33, &rg, &rg); mouse_delta_x = (short) rg.x.cx; /* signed! */ mouse_delta_y = (short) rg.x.dx; /* signed! */ rg.x.ax = 0x03; int86(0x33, &rg, &rg); mouse_buttons = rg.x.bx; } if (++refresh_counter == refresh_rate) { Atari800_Frame(EMULATE_FULL); #ifndef DONT_SYNC_WITH_HOST atari_sync(); /* here seems to be the best place to sync */ #endif update_disk_led(); Atari_DisplayScreen((UBYTE *) atari_screen); refresh_counter = 0; } else { #ifdef VERY_SLOW Atari800_Frame(EMULATE_BASIC); #else /* VERY_SLOW */ Atari800_Frame(EMULATE_NO_SCREEN); #ifndef DONT_SYNC_WITH_HOST atari_sync(); #endif #endif /* VERY_SLOW */ } } }