Annotation of uae/src/include/options.h, revision 1.1.1.28

1.1       root        1:  /*
                      2:   * UAE - The Un*x Amiga Emulator
                      3:   *
1.1.1.2   root        4:   * Stuff
1.1       root        5:   *
1.1.1.3   root        6:   * Copyright 1995, 1996 Ed Hanway
1.1.1.17  root        7:   * Copyright 1995-2001 Bernd Schmidt
1.1       root        8:   */
                      9: 
1.1.1.27  root       10: typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE,
                     11:               KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang;
1.1       root       12: 
1.1.1.5   root       13: extern long int version;
                     14: 
                     15: struct uaedev_mount_info;
1.1.1.3   root       16: 
1.1.1.7   root       17: struct strlist {
                     18:     struct strlist *next;
                     19:     char *str;
                     20: };
                     21: 
1.1.1.27  root       22: struct config_list {
                     23:     const char *filename;
                     24:     const char *description;
                     25:     const char *sortstr;
                     26: };
                     27: 
                     28: extern struct config_list *predef_configs;
                     29: extern int n_predef_configs;
                     30: 
                     31: struct uae_rect {
                     32:     int w, h;
                     33: };
                     34: 
                     35: extern struct uae_rect *gfx_fullscreen_modes, *gfx_windowed_modes;
                     36: extern int n_fullscreen_modes, n_windowed_modes;
                     37: 
                     38: #define FILTER_SOUND_OFF 0
                     39: #define FILTER_SOUND_EMUL 1
                     40: #define FILTER_SOUND_ON 2
                     41: 
                     42: #define FILTER_SOUND_TYPE_A500 0
                     43: #define FILTER_SOUND_TYPE_A1200 1
                     44: 
1.1.1.25  root       45: /* maximum number native input devices supported (single type) */
                     46: #define MAX_INPUT_DEVICES 6
                     47: /* maximum number of native input device's buttons and axles supported */
                     48: #define MAX_INPUT_DEVICE_EVENTS 256
                     49: /* 4 different customization settings */
                     50: #define MAX_INPUT_SETTINGS 4
                     51: #define MAX_INPUT_SUB_EVENT 4
                     52: #define MAX_INPUT_SIMULTANEOUS_KEYS 4
                     53: 
                     54: struct uae_input_device {
                     55:     char *name;
                     56:     uae_s16 eventid[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT];
                     57:     char *custom[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT];
                     58:     uae_u16 flags[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SUB_EVENT];
                     59:     uae_s16 extra[MAX_INPUT_DEVICE_EVENTS][MAX_INPUT_SIMULTANEOUS_KEYS];
                     60:     uae_u8 enabled;
                     61: };
                     62: 
1.1.1.27  root       63: typedef enum { DRV_NONE = -1, DRV_35_DD = 0, DRV_35_HD, DRV_525_SD, DRV_35_DD_ESCOM } drive_type;
                     64: 
                     65: enum { CP_GENERIC = 1, CP_CDTV, CP_CD32, CP_A500, CP_A500P, CP_A600, CP_A1000,
                     66:        CP_A1200, CP_A2000, CP_A3000, CP_A3000T, CP_A4000, CP_A4000T };
                     67: 
1.1.1.26  root       68: struct gfx_params {
                     69:     int width;
                     70:     int height;
                     71:     int lores;
                     72:     int linedbl;
                     73:     int correct_aspect;
                     74:     int xcenter;
                     75:     int ycenter;
1.1.1.27  root       76:     int leds_on_screen;
1.1.1.26  root       77: };
                     78: 
1.1.1.3   root       79: struct uae_prefs {
1.1.1.7   root       80:     struct strlist *unknown_lines;
                     81: 
                     82:     char description[256];
1.1.1.27  root       83:     char sortstr[256];
1.1.1.18  root       84:     char info[256];
1.1.1.7   root       85: 
1.1.1.3   root       86:     int illegal_mem;
                     87:     int use_serial;
                     88:     int serial_demand;
                     89:     int parallel_demand;
1.1.1.7   root       90:     int use_gfxlib;
1.1.1.9   root       91:     int socket_emu;
1.1.1.7   root       92: 
                     93:     int start_debugger;
                     94:     int start_gui;
1.1.1.3   root       95: 
                     96:     KbdLang keyboard_lang;
                     97:     int allow_save;
                     98:     int emul_accuracy;
                     99:     int test_drawing_speed;
                    100: 
                    101:     int produce_sound;
1.1.1.23  root      102:     int sound_stereo;
1.1.1.27  root      103:     int sound_stereo_separation;
                    104:     int sound_mixed_stereo_delay;
1.1.1.3   root      105:     int sound_freq;
                    106:     int sound_maxbsiz;
1.1.1.10  root      107:     int sound_interpol;
1.1.1.27  root      108:     int sound_filter;
                    109:     int sound_filter_type;
1.1.1.3   root      110: 
1.1.1.9   root      111:     int gfx_framerate;
1.1.1.26  root      112:     struct gfx_params gfx_w, gfx_f;
1.1.1.5   root      113:     int gfx_afullscreen;
                    114:     int gfx_pfullscreen;
1.1.1.3   root      115:     int color_mode;
                    116: 
                    117:     int blits_32bit_enabled;
                    118:     int immediate_blits;
1.1.1.9   root      119:     unsigned int chipset_mask;
                    120:     int ntscmode;
1.1.1.15  root      121:     int collision_level;
1.1.1.27  root      122: 
                    123:     int cs_rtc;
                    124:     int cs_ide;
                    125:     int cs_a1000ram;
                    126:     int cs_fatgaryrev;
                    127:     int cs_ramseyrev;
1.1.1.3   root      128: 
                    129:     char df[4][256];
1.1.1.7   root      130:     char romfile[256];
1.1.1.27  root      131:     unsigned int rom_crc32;
1.1.1.21  root      132:     char romextfile[256];
1.1.1.7   root      133:     char keyfile[256];
                    134:     char prtname[256];
1.1.1.18  root      135:     char sername[256];
1.1.1.7   root      136: 
                    137:     char path_floppy[256];
                    138:     char path_hardfile[256];
                    139:     char path_rom[256];
1.1.1.3   root      140: 
                    141:     int m68k_speed;
1.1.1.27  root      142:     int cpu_model;
                    143:     int fpu_model;
1.1.1.3   root      144:     int address_space_24;
1.1.1.9   root      145: 
1.1.1.5   root      146:     uae_u32 z3fastmem_size;
                    147:     uae_u32 fastmem_size;
                    148:     uae_u32 chipmem_size;
                    149:     uae_u32 bogomem_size;
1.1.1.27  root      150:     uae_u32 mbresmem_low_size;
                    151:     uae_u32 mbresmem_high_size;
1.1.1.5   root      152:     uae_u32 gfxmem_size;
1.1.1.7   root      153: 
1.1.1.19  root      154:     int kickshifter;
                    155: 
1.1.1.5   root      156:     struct uaedev_mount_info *mountinfo;
1.1.1.27  root      157:     int bootrom;
1.1.1.7   root      158: 
1.1.1.14  root      159:     int nr_floppies;
1.1.1.27  root      160:     drive_type dfxtype[4];
1.1.1.14  root      161: 
1.1.1.7   root      162:     /* Target specific options */
                    163:     int x11_use_low_bandwidth;
                    164:     int x11_use_mitshm;
                    165:     int x11_use_dgamode;
                    166:     int x11_hide_cursor;
                    167:     int svga_no_linear;
1.1.1.9   root      168:     int win32_middle_mouse;
                    169:     int win32_logfile;
                    170:     int win32_iconified_nospeed;
                    171:     int win32_iconified_nosound;
1.1.1.19  root      172:     int win32_no_overlay; /* If this is set, we won't try and use any RGB overlays */
                    173:     int win32_automount_drives;
                    174: 
1.1.1.11  root      175:     int curses_reverse_video;
1.1.1.25  root      176: 
                    177:     int jport0;
                    178:     int jport1;
                    179:     int input_selected_setting;
                    180:     int input_joymouse_multiplier;
                    181:     int input_joymouse_deadzone;
                    182:     int input_joystick_deadzone;
                    183:     int input_joymouse_speed;
                    184:     int input_autofire_framecnt;
                    185:     int input_mouse_speed;
                    186:     struct uae_input_device joystick_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES];
                    187:     struct uae_input_device mouse_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES];
                    188:     struct uae_input_device keyboard_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES];
1.1.1.3   root      189: };
                    190: 
1.1.1.7   root      191: /* Contains the filename of .uaerc */
                    192: extern char optionsfile[];
1.1.1.27  root      193: extern void save_options (FILE *, const struct uae_prefs *);
1.1.1.7   root      194: 
                    195: extern void default_prefs (struct uae_prefs *);
                    196: extern void discard_prefs (struct uae_prefs *);
                    197: 
1.1.1.27  root      198: extern int parse_cmdline_option (struct uae_prefs *, char, char *);
1.1.1.10  root      199: 
1.1.1.27  root      200: extern int cfgfile_yesno (const char *option, const char *value, const char *name, int *location);
                    201: extern int cfgfile_uintval (const char *option, const char *value, const char *name, unsigned int *location, int scale);
                    202: extern int cfgfile_intval (const char *option, const char *value, const char *name, int *location, int scale);
                    203: extern int cfgfile_strval (const char *option, const char *value, const char *name, int *location, const char *table[], int more);
                    204: extern int cfgfile_string (const char *option, const char *value, const char *name, char *location, int maxsz);
1.1.1.7   root      205: extern char *cfgfile_subst_path (const char *path, const char *subst, const char *file);
                    206: 
1.1.1.27  root      207: extern int target_parse_option (struct uae_prefs *, const char *option, const char *value);
                    208: extern void target_save_options (FILE *, const struct uae_prefs *);
1.1.1.7   root      209: 
                    210: extern int cfgfile_load (struct uae_prefs *, const char *filename);
                    211: extern int cfgfile_save (struct uae_prefs *, const char *filename);
1.1.1.8   root      212: extern void cfgfile_parse_line (struct uae_prefs *p, char *);
                    213: extern int cfgfile_parse_option (struct uae_prefs *p, char *option, char *value);
1.1.1.7   root      214: extern int cfgfile_get_description (const char *filename, char *description);
                    215: extern void cfgfile_show_usage (void);
                    216: 
1.1.1.27  root      217: extern int cstype_from_prefs (struct uae_prefs *p);
                    218: extern void built_in_chipset_prefs (struct uae_prefs *p, int);
                    219: 
                    220: extern int fixup_prefs_dimensions (struct gfx_params *, struct uae_rect *, int);
1.1.1.5   root      221: 
                    222: extern void check_prefs_changed_custom (void);
                    223: extern void check_prefs_changed_cpu (void);
                    224: extern void check_prefs_changed_audio (void);
                    225: extern int check_prefs_changed_gfx (void);
                    226: 
1.1.1.3   root      227: extern struct uae_prefs currprefs, changed_prefs;
                    228: 
1.1.1.26  root      229: extern struct gfx_params *curr_gfx;
                    230: 
1.1.1.3   root      231: extern void machdep_init (void);
1.1       root      232: 
                    233: /* AIX doesn't think it is Unix. Neither do I. */
                    234: #if defined(_ALL_SOURCE) || defined(_AIX)
                    235: #undef __unix
                    236: #define __unix
                    237: #endif
                    238: 
1.1.1.2   root      239: #define MAX_COLOR_MODES 5
1.1       root      240: 
                    241: /* #define NEED_TO_DEBUG_BADLY */
                    242: 
1.1.1.2   root      243: #if !defined(USER_PROGRAMS_BEHAVE)
                    244: #define USER_PROGRAMS_BEHAVE 0
                    245: #endif
                    246: 
1.1.1.3   root      247: /* Some memsets which know that they can safely overwrite some more memory
                    248:  * at both ends and use that knowledge to align the pointers. */
                    249: 
1.1.1.2   root      250: #define QUADRUPLIFY(c) (((c) | ((c) << 8)) | (((c) | ((c) << 8)) << 16))
                    251: 
                    252: /* When you call this routine, bear in mind that it rounds the bounds and
                    253:  * may need some padding for the array. */
                    254: 
                    255: #define fuzzy_memset(p, c, o, l) fuzzy_memset_1 ((p), QUADRUPLIFY (c), (o) & ~3, ((l) + 4) >> 2)
1.1.1.10  root      256: STATIC_INLINE void fuzzy_memset_1 (void *p, uae_u32 c, int offset, int len)
1.1.1.2   root      257: {
1.1.1.3   root      258:     uae_u32 *p2 = (uae_u32 *)((char *)p + offset);
1.1.1.2   root      259:     int a = len & 7;
                    260:     len >>= 3;
                    261:     switch (a) {
                    262:      case 7: p2--; goto l1;
                    263:      case 6: p2-=2; goto l2;
                    264:      case 5: p2-=3; goto l3;
                    265:      case 4: p2-=4; goto l4;
                    266:      case 3: p2-=5; goto l5;
                    267:      case 2: p2-=6; goto l6;
                    268:      case 1: p2-=7; goto l7;
1.1.1.3   root      269:      case 0: if (!--len) return; break;
1.1.1.2   root      270:     }
                    271: 
                    272:     for (;;) {
                    273:        p2[0] = c;
                    274:        l1:
                    275:        p2[1] = c;
                    276:        l2:
                    277:        p2[2] = c;
                    278:        l3:
                    279:        p2[3] = c;
                    280:        l4:
                    281:        p2[4] = c;
                    282:        l5:
                    283:        p2[5] = c;
                    284:        l6:
                    285:        p2[6] = c;
                    286:        l7:
                    287:        p2[7] = c;
1.1.1.3   root      288: 
1.1.1.2   root      289:        if (!len)
                    290:            break;
                    291:        len--;
                    292:        p2 += 8;
                    293:     }
                    294: }
                    295: 
1.1.1.9   root      296: /* This one knows it will never be asked to clear more than 32 bytes.  Make sure you call this with a
                    297:    constant for the length.  */
1.1.1.3   root      298: #define fuzzy_memset_le32(p, c, o, l) fuzzy_memset_le32_1 ((p), QUADRUPLIFY (c), (o) & ~3, ((l) + 7) >> 2)
1.1.1.10  root      299: STATIC_INLINE void fuzzy_memset_le32_1 (void *p, uae_u32 c, int offset, int len)
1.1.1.2   root      300: {
1.1.1.3   root      301:     uae_u32 *p2 = (uae_u32 *)((char *)p + offset);
1.1.1.2   root      302: 
                    303:     switch (len) {
                    304:      case 9: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; p2[5] = c; p2[6] = c; p2[7] = c; p2[8] = c; break;
                    305:      case 8: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; p2[5] = c; p2[6] = c; p2[7] = c; break;
                    306:      case 7: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; p2[5] = c; p2[6] = c; break;
                    307:      case 6: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; p2[5] = c; break;
                    308:      case 5: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; break;
                    309:      case 4: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; break;
                    310:      case 3: p2[0] = c; p2[1] = c; p2[2] = c; break;
                    311:      case 2: p2[0] = c; p2[1] = c; break;
                    312:      case 1: p2[0] = c; break;
                    313:      case 0: break;
                    314:      default: printf("Hit the programmer.\n"); break;
                    315:     }
                    316: }
                    317: 
1.1.1.3   root      318: #if defined(AMIGA) && defined(__GNUC__)
                    319: #include "od-amiga/amiga-kludges.h"
                    320: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.