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

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
                      7:   * Copyright 1995-97 Bernd Schmidt
1.1       root        8:   */
                      9: 
                     10: #define UAEMAJOR 0
1.1.1.3   root       11: #define UAEMINOR 7
1.1.1.4 ! root       12: #define UAEURSAMINOR 6
1.1       root       13: 
1.1.1.2   root       14: typedef enum { KBD_LANG_US, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang;
1.1       root       15: 
                     16: extern int version;
1.1.1.3   root       17: 
                     18: struct uae_prefs {
                     19:     int framerate;
                     20:     int illegal_mem;
                     21:     int no_xhair;
                     22:     int use_serial;
                     23:     int serial_demand;
                     24:     int parallel_demand;
                     25:     int automount_uaedev;
                     26: 
                     27:     int fake_joystick;
                     28:     KbdLang keyboard_lang;
                     29:     int allow_save;
                     30:     int emul_accuracy;
                     31:     int test_drawing_speed;
                     32: 
                     33:     int produce_sound;
                     34:     int stereo;
                     35:     int sound_bits;
                     36:     int sound_freq;
                     37:     int sound_minbsiz;
                     38:     int sound_maxbsiz;
                     39: 
                     40:     int gfx_width;
                     41:     int gfx_height;
                     42:     int gfx_lores;
                     43:     int gfx_linedbl;
                     44:     int gfx_correct_aspect;
                     45:     int gfx_xcenter;
                     46:     int gfx_ycenter;
                     47:     int color_mode;
                     48: 
                     49:     /* X11 specific options */
                     50:     int use_low_bandwidth;
                     51:     int use_mitshm;
                     52: 
                     53:     int blits_32bit_enabled;
                     54:     int immediate_blits;
                     55: 
                     56:     char df[4][256];
                     57: 
                     58:     int m68k_speed;
                     59:     int cpu_level;
                     60:     int cpu_compatible;
                     61:     int address_space_24;
                     62: };
                     63: 
                     64: #define JSEM_DECODEVAL(n,v) (((v) >> (n*8)) & 255)
                     65: /* Determine how port n is configured with the value v in fake_joystick */
                     66: #define JSEM_ISJOY0(n,v) (JSEM_DECODEVAL(n,v) == 0)
                     67: #define JSEM_ISJOY1(n,v) (JSEM_DECODEVAL(n,v) == 1)
                     68: #define JSEM_ISMOUSE(n,v) (JSEM_DECODEVAL(n,v) == 2)
                     69: #define JSEM_ISNUMPAD(n,v) (JSEM_DECODEVAL(n,v) == 3)
                     70: #define JSEM_ISCURSOR(n,v) (JSEM_DECODEVAL(n,v) == 4)
                     71: #define JSEM_ISSOMEWHEREELSE(n,v) (JSEM_DECODEVAL(n,v) == 5)
                     72: extern const char *gameport_state (int n);
                     73: 
                     74: /* These preferences make sense only at startup. */
                     75: extern int no_gui, use_debugger, use_gfxlib;
                     76: 
                     77: extern struct uae_prefs currprefs, changed_prefs;
                     78: 
                     79: extern void write_log (const char *);
                     80: extern void machdep_init (void);
1.1       root       81: 
                     82: /* AIX doesn't think it is Unix. Neither do I. */
                     83: #if defined(_ALL_SOURCE) || defined(_AIX)
                     84: #undef __unix
                     85: #define __unix
                     86: #endif
                     87: 
1.1.1.3   root       88: extern char romfile[], keyfile[], prtname[], sername[];
                     89: 
                     90: extern int cloanto_rom;
1.1       root       91: 
1.1.1.2   root       92: #define MAX_COLOR_MODES 5
1.1       root       93: 
1.1.1.2   root       94: extern int fast_memcmp(const void *foo, const void *bar, int len);
                     95: extern int memcmpy(void *foo, const void *bar, int len);
1.1       root       96: 
                     97: /*
                     98:  * You can specify numbers from 0 to 5 here. It is possible that higher
                     99:  * numbers will make the CPU emulation slightly faster, but if the setting
                    100:  * is too high, you will run out of memory while compiling.
                    101:  * Best to leave this as it is.
                    102:  */
                    103: #define CPU_EMU_SIZE 0
                    104: 
                    105: /* #define NEED_TO_DEBUG_BADLY */
                    106: 
1.1.1.2   root      107: #if !defined(USER_PROGRAMS_BEHAVE)
                    108: #define USER_PROGRAMS_BEHAVE 0
                    109: #endif
                    110: 
1.1.1.3   root      111: /* Some memsets which know that they can safely overwrite some more memory
                    112:  * at both ends and use that knowledge to align the pointers. */
                    113: 
1.1.1.2   root      114: #define QUADRUPLIFY(c) (((c) | ((c) << 8)) | (((c) | ((c) << 8)) << 16))
                    115: 
                    116: /* When you call this routine, bear in mind that it rounds the bounds and
                    117:  * may need some padding for the array. */
                    118: 
                    119: #define fuzzy_memset(p, c, o, l) fuzzy_memset_1 ((p), QUADRUPLIFY (c), (o) & ~3, ((l) + 4) >> 2)
1.1.1.3   root      120: static __inline__ void fuzzy_memset_1 (void *p, uae_u32 c, int offset, int len)
1.1.1.2   root      121: {
1.1.1.3   root      122:     uae_u32 *p2 = (uae_u32 *)((char *)p + offset);
1.1.1.2   root      123:     int a = len & 7;
                    124:     len >>= 3;
                    125:     switch (a) {
                    126:      case 7: p2--; goto l1;
                    127:      case 6: p2-=2; goto l2;
                    128:      case 5: p2-=3; goto l3;
                    129:      case 4: p2-=4; goto l4;
                    130:      case 3: p2-=5; goto l5;
                    131:      case 2: p2-=6; goto l6;
                    132:      case 1: p2-=7; goto l7;
1.1.1.3   root      133:      case 0: if (!--len) return; break;
1.1.1.2   root      134:     }
                    135: 
                    136:     for (;;) {
                    137:        p2[0] = c;
                    138:        l1:
                    139:        p2[1] = c;
                    140:        l2:
                    141:        p2[2] = c;
                    142:        l3:
                    143:        p2[3] = c;
                    144:        l4:
                    145:        p2[4] = c;
                    146:        l5:
                    147:        p2[5] = c;
                    148:        l6:
                    149:        p2[6] = c;
                    150:        l7:
                    151:        p2[7] = c;
1.1.1.3   root      152: 
1.1.1.2   root      153:        if (!len)
                    154:            break;
                    155:        len--;
                    156:        p2 += 8;
                    157:     }
                    158: }
                    159: 
1.1.1.3   root      160: #define fuzzy_memset_le32(p, c, o, l) fuzzy_memset_le32_1 ((p), QUADRUPLIFY (c), (o) & ~3, ((l) + 7) >> 2)
                    161: static __inline__ void fuzzy_memset_le32_1 (void *p, uae_u32 c, int offset, int len)
1.1.1.2   root      162: {
1.1.1.3   root      163:     uae_u32 *p2 = (uae_u32 *)((char *)p + offset);
1.1.1.2   root      164: 
                    165:     switch (len) {
                    166:      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;
                    167:      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;
                    168:      case 7: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; p2[5] = c; p2[6] = c; break;
                    169:      case 6: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; p2[5] = c; break;
                    170:      case 5: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; p2[4] = c; break;
                    171:      case 4: p2[0] = c; p2[1] = c; p2[2] = c; p2[3] = c; break;
                    172:      case 3: p2[0] = c; p2[1] = c; p2[2] = c; break;
                    173:      case 2: p2[0] = c; p2[1] = c; break;
                    174:      case 1: p2[0] = c; break;
                    175:      case 0: break;
                    176:      default: printf("Hit the programmer.\n"); break;
                    177:     }
                    178: }
                    179: 
1.1.1.3   root      180: /*
                    181:  * Frame rate hack. Currently only implemented for Pentium (P6?) CPUs.
                    182:  */
                    183: #if !defined __GNUC_MINOR__
                    184: #undef HAVE_RDTSC
                    185: #endif
                    186: 
                    187: #undef HAVE_INLINE_RPT
                    188: #ifdef HAVE_RDTSC
                    189: #define FRAME_RATE_HACK
                    190: 
                    191: typedef unsigned long frame_time_t;
                    192: static inline frame_time_t read_processor_time (void)
                    193: {
                    194:     frame_time_t foo;
                    195:     /* Don't assume the assembler knows rdtsc */
                    196:     __asm__ __volatile__ (".byte 0x0f,0x31" : "=a" (foo) :);
                    197:     return foo;
                    198: }
                    199: #define HAVE_INLINE_RPT
                    200: #else
                    201: typedef int frame_time_t;
                    202: #endif
                    203: 
                    204: #if defined FRAME_RATE_HACK && !defined HAVE_INLINE_RPT
                    205: extern frame_time_t read_processor_time (void);
                    206: #endif
                    207: extern frame_time_t vsynctime, vsyncmintime;
                    208: 
                    209: #if defined(AMIGA) && defined(__GNUC__)
                    210: #include "od-amiga/amiga-kludges.h"
                    211: #endif
                    212: 

unix.superglobalmegacorp.com

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