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

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
        !            12: #define UAEURSAMINOR 5
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.