|
|
1.1 ! root 1: /* ! 2: * UAE - The Un*x Amiga Emulator ! 3: * ! 4: * Main program ! 5: * ! 6: * (c) 1995 Bernd Schmidt, Ed Hanway ! 7: */ ! 8: ! 9: #include <assert.h> ! 10: #include <stdio.h> ! 11: #include <stdlib.h> ! 12: #include <string.h> ! 13: ! 14: #include "config.h" ! 15: #include "amiga.h" ! 16: #include "options.h" ! 17: #include "memory.h" ! 18: #include "custom.h" ! 19: #include "newcpu.h" ! 20: #include "disk.h" ! 21: #include "debug.h" ! 22: #include "xwin.h" ! 23: #include "os.h" ! 24: #include "filesys.h" ! 25: #include "keybuf.h" ! 26: ! 27: int framerate = DEFAULT_FRAMERATE; ! 28: bool dont_want_aspect = DEFAULT_NO_ASPECT; ! 29: bool use_fast_draw = true; ! 30: bool use_debugger = false; ! 31: bool use_slow_mem = false; ! 32: bool automount_uaedev = true; ! 33: bool produce_sound = true; ! 34: KbdLang keyboard_lang = DEFAULT_KBD_LANG; ! 35: ! 36: #ifdef __unix ! 37: ! 38: static bool mount_seen = false; ! 39: ! 40: static void parse_cmdline(int argc, char **argv) ! 41: { ! 42: int c; ! 43: extern char *optarg; ! 44: ! 45: while(((c = getopt(argc, argv, "l:Df:dxasSm:M:")) != EOF)) switch(c) { ! 46: case 'm': ! 47: case 'M': ! 48: { ! 49: /* mount file system (repeatable) ! 50: * syntax: [-m | -M] VOLNAME:/mount_point ! 51: * example: -M CDROM:/cdrom -m UNIXFS:./disk ! 52: */ ! 53: static char buf[256]; ! 54: char *s2; ! 55: bool readonly = (c == 'M'); ! 56: ! 57: if (mount_seen) ! 58: fprintf (stderr, "Multiple mounts not supported right now, sorry.\n"); ! 59: else { ! 60: mount_seen = true; ! 61: strcpy(buf, optarg); ! 62: s2 = strchr(buf, ':'); ! 63: if(s2) { ! 64: *s2++ = '\0'; ! 65: add_filesys_unit(buf, s2, readonly); ! 66: } else { ! 67: fprintf(stderr, "Usage: [-m | -M] VOLNAME:/mount_point\n"); ! 68: } ! 69: } ! 70: } ! 71: break; ! 72: ! 73: case 'S': ! 74: produce_sound = false; ! 75: break; ! 76: ! 77: case 'f': ! 78: framerate = atoi(optarg); ! 79: break; ! 80: ! 81: case 'd': ! 82: dont_want_aspect = false; ! 83: break; ! 84: ! 85: case 'x': ! 86: use_fast_draw = false; ! 87: break; ! 88: ! 89: case 'D': ! 90: use_debugger = true; ! 91: break; ! 92: ! 93: case 'l': ! 94: if (0 == strcasecmp(optarg, "de")) ! 95: keyboard_lang = KBD_LANG_DE; ! 96: else if (0 == strcasecmp(optarg, "us")) ! 97: keyboard_lang = KBD_LANG_US; ! 98: break; ! 99: ! 100: case 'a': ! 101: automount_uaedev = false; ! 102: break; ! 103: ! 104: case 's': ! 105: use_slow_mem = true; ! 106: break; ! 107: } ! 108: } ! 109: #endif ! 110: ! 111: int main(int argc, char **argv) ! 112: { ! 113: parse_cmdline(argc, argv); ! 114: ! 115: if (produce_sound && !init_sound()) { ! 116: fprintf(stderr, "Sound driver unavailable: Sound output disabled\n"); ! 117: produce_sound = false; ! 118: } ! 119: ! 120: init_joystick(); ! 121: keybuf_init (); ! 122: graphics_init(); ! 123: memory_init(); ! 124: custom_init(); ! 125: DISK_init(); ! 126: MC68000_init(); ! 127: MC68000_reset(); ! 128: ! 129: debug(); ! 130: ! 131: graphics_leave(); ! 132: close_joystick(); ! 133: #if 0 ! 134: extern void dump_counts(); ! 135: dump_counts(); ! 136: #endif ! 137: return 0; ! 138: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.