Annotation of hatari/src/gui-sdl/dlgSystem.c, revision 1.1.1.8

1.1       root        1: /*
                      2:   Hatari - dlgSystem.c
                      3: 
                      4:   This file is distributed under the GNU Public License, version 2 or at
                      5:   your option any later version. Read the file gpl.txt for details.
                      6: */
1.1.1.7   root        7: const char DlgSystem_fileid[] = "Hatari dlgSystem.c : " __DATE__ " " __TIME__;
1.1       root        8: 
                      9: #include "main.h"
                     10: #include "configuration.h"
                     11: #include "dialog.h"
                     12: #include "sdlgui.h"
                     13: 
                     14: 
1.1.1.2   root       15: #define DLGSYS_68000    4
                     16: #define DLGSYS_68010    5
                     17: #define DLGSYS_68020    6
                     18: #define DLGSYS_68030    7
                     19: #define DLGSYS_68040    8
                     20: #define DLGSYS_ST       11
                     21: #define DLGSYS_STE      12
1.1.1.4   root       22: #define DLGSYS_TT       13
                     23: #define DLGSYS_FALCON   14
                     24: #define DLGSYS_8MHZ     17
                     25: #define DLGSYS_16MHZ    18
                     26: #define DLGSYS_32MHZ    19
1.1.1.7   root       27: #define DLGSYS_DSPOFF   21
                     28: #define DLGSYS_DSPDUMMY 22
                     29: #define DLGSYS_DSPON    23
                     30: #define DLGSYS_PREFETCH 24
                     31: #define DLGSYS_BLITTER  25
                     32: #define DLGSYS_RTC      26
                     33: #define DLGSYS_TIMERD   27
1.1       root       34: 
                     35: 
                     36: /* The "System" dialog: */
                     37: static SGOBJ systemdlg[] =
                     38: {
1.1.1.7   root       39:        { SGBOX, 0, 0, 0,0, 36,24, NULL },
1.1.1.2   root       40:        { SGTEXT, 0, 0, 11,1, 14,1, "System options" },
                     41: 
                     42:        { SGBOX, 0, 0, 2,3, 16,9, NULL },
                     43:        { SGTEXT, 0, 0, 3,4, 8,1, "CPU type:" },
1.1.1.8 ! root       44:        { SGRADIOBUT, 0, 0, 4,6, 7,1, "68000" },
        !            45:        { SGRADIOBUT, 0, 0, 4,7, 7,1, "68010" },
        !            46:        { SGRADIOBUT, 0, 0, 4,8, 7,1, "68020" },
        !            47:        { SGRADIOBUT, 0, 0, 4,9, 13,1, "68EC030+FPU" },
        !            48:        { SGRADIOBUT, 0, 0, 4,10, 7,1, "68040" },
1.1.1.2   root       49: 
                     50:        { SGBOX, 0, 0, 19,3, 15,9, NULL },
                     51:        { SGTEXT, 0, 0, 20,4, 13,1, "Machine type:" },
1.1.1.4   root       52:        { SGRADIOBUT, 0, 0, 23,6, 8,1, "ST" },
                     53:        { SGRADIOBUT, 0, 0, 23,7, 8,1, "STE" },
                     54:        { SGRADIOBUT, 0, 0, 23,8, 8,1, "TT *" },
                     55:        { SGRADIOBUT, 0, 0, 23,9, 8,1, "Falcon *" },
                     56:        { SGTEXT, 0, 0, 21,11, 12,1, "* incomplete" },
1.1.1.2   root       57: 
                     58:        { SGTEXT, 0, 0, 2,13, 15,1, "CPU clock (MHz):" },
                     59:        { SGRADIOBUT, 0, 0, 19,13, 3,1, "8" },
                     60:        { SGRADIOBUT, 0, 0, 24,13, 4,1, "16" },
                     61:        { SGRADIOBUT, 0, 0, 30,13, 4,1, "32" },
                     62: 
1.1.1.7   root       63:        { SGTEXT, 0, 0, 2,15, 11,1, "Falcon DSP:" },
                     64:        { SGRADIOBUT, 0, 0, 14,15, 5,1, "off" },
                     65:        { SGRADIOBUT, 0, 0, 21,15, 7,1, "dummy" },
                     66:        { SGRADIOBUT, 0, 0, 30,15, 4,1, "on" },
                     67: 
                     68:        { SGCHECKBOX, 0, 0, 2,17, 32,1, "Slower but more compatible CPU" },
                     69:        { SGCHECKBOX, 0, 0, 2,18, 20,1, "Blitter emulation" },
                     70:        { SGCHECKBOX, 0, 0, 2,19, 27,1, "Real time clock emulation" },
                     71:        { SGCHECKBOX, 0, 0, 2,20, 15,1, "Patch Timer-D" },
1.1.1.2   root       72: 
1.1.1.7   root       73:        { SGBUTTON, SG_DEFAULT, 0, 8,22, 20,1, "Back to main menu" },
1.1.1.2   root       74:        { -1, 0, 0, 0,0, 0,0, NULL }
1.1       root       75: };
                     76: 
                     77: 
                     78: /*-----------------------------------------------------------------------*/
1.1.1.8 ! root       79: /**
        !            80:  * Show and process the "System" dialog.
        !            81:  */
1.1       root       82: void Dialog_SystemDlg(void)
                     83: {
1.1.1.2   root       84:        int i;
1.1.1.7   root       85:        MACHINETYPE     mti;
1.1       root       86: 
1.1.1.2   root       87:        SDLGui_CenterDlg(systemdlg);
1.1       root       88: 
1.1.1.2   root       89:        /* Set up dialog from actual values: */
1.1       root       90: 
1.1.1.2   root       91:        for (i = DLGSYS_68000; i <= DLGSYS_68040; i++)
                     92:        {
                     93:                systemdlg[i].state &= ~SG_SELECTED;
                     94:        }
1.1.1.5   root       95:        systemdlg[DLGSYS_68000+ConfigureParams.System.nCpuLevel].state |= SG_SELECTED;
1.1.1.2   root       96: 
1.1.1.4   root       97:        for (i = DLGSYS_ST; i <= DLGSYS_FALCON; i++)
1.1.1.2   root       98:        {
                     99:                systemdlg[i].state &= ~SG_SELECTED;
                    100:        }
1.1.1.5   root      101:        systemdlg[DLGSYS_ST + ConfigureParams.System.nMachineType].state |= SG_SELECTED;
1.1.1.2   root      102: 
1.1.1.7   root      103:        /* CPU frequency: */
1.1.1.2   root      104:        for (i = DLGSYS_8MHZ; i <= DLGSYS_16MHZ; i++)
                    105:        {
                    106:                systemdlg[i].state &= ~SG_SELECTED;
                    107:        }
1.1.1.5   root      108:        if (ConfigureParams.System.nCpuFreq == 32)
1.1.1.7   root      109:                systemdlg[DLGSYS_32MHZ].state |= SG_SELECTED;
1.1.1.5   root      110:        else if (ConfigureParams.System.nCpuFreq == 16)
1.1.1.7   root      111:                systemdlg[DLGSYS_16MHZ].state |= SG_SELECTED;
1.1.1.2   root      112:        else
1.1.1.7   root      113:                systemdlg[DLGSYS_8MHZ].state |= SG_SELECTED;
                    114: 
                    115:        /* DSP mode: */
                    116:        for (i = DLGSYS_DSPOFF; i <= DLGSYS_DSPON; i++)
                    117:        {
                    118:                systemdlg[i].state &= ~SG_SELECTED;
                    119:        }
                    120:        if (ConfigureParams.System.nDSPType == DSP_TYPE_NONE)
                    121:                systemdlg[DLGSYS_DSPOFF].state |= SG_SELECTED;
                    122:        else if (ConfigureParams.System.nDSPType == DSP_TYPE_DUMMY)
                    123:                systemdlg[DLGSYS_DSPDUMMY].state |= SG_SELECTED;
                    124:        else
                    125:                systemdlg[DLGSYS_DSPON].state |= SG_SELECTED;
                    126: 
1.1.1.2   root      127: 
1.1.1.5   root      128:        if (ConfigureParams.System.bCompatibleCpu)
1.1.1.2   root      129:                systemdlg[DLGSYS_PREFETCH].state |= SG_SELECTED;
                    130:        else
                    131:                systemdlg[DLGSYS_PREFETCH].state &= ~SG_SELECTED;
                    132: 
1.1.1.5   root      133:        if (ConfigureParams.System.bBlitter)
1.1.1.2   root      134:                systemdlg[DLGSYS_BLITTER].state |= SG_SELECTED;
                    135:        else
                    136:                systemdlg[DLGSYS_BLITTER].state &= ~SG_SELECTED;
                    137: 
1.1.1.5   root      138:        if (ConfigureParams.System.bRealTimeClock)
1.1.1.2   root      139:                systemdlg[DLGSYS_RTC].state |= SG_SELECTED;
                    140:        else
                    141:                systemdlg[DLGSYS_RTC].state &= ~SG_SELECTED;
                    142: 
1.1.1.5   root      143:        if (ConfigureParams.System.bPatchTimerD)
1.1.1.2   root      144:                systemdlg[DLGSYS_TIMERD].state |= SG_SELECTED;
                    145:        else
                    146:                systemdlg[DLGSYS_TIMERD].state &= ~SG_SELECTED;
                    147: 
                    148:        /* Show the dialog: */
                    149:        SDLGui_DoDialog(systemdlg, NULL);
                    150: 
                    151:        /* Read values from dialog: */
                    152: 
                    153:        for (i = DLGSYS_68000; i <= DLGSYS_68040; i++)
                    154:        {
                    155:                if (systemdlg[i].state&SG_SELECTED)
                    156:                {
1.1.1.5   root      157:                        ConfigureParams.System.nCpuLevel = i-DLGSYS_68000;
1.1.1.2   root      158:                        break;
                    159:                }
                    160:        }
                    161: 
1.1.1.7   root      162:        for (mti = MACHINE_ST; mti <= MACHINE_FALCON; mti++)
1.1.1.2   root      163:        {
1.1.1.7   root      164:                if (systemdlg[mti + DLGSYS_ST].state&SG_SELECTED)
1.1.1.2   root      165:                {
1.1.1.7   root      166:                        ConfigureParams.System.nMachineType = mti;
1.1.1.2   root      167:                        break;
                    168:                }
                    169:        }
                    170: 
                    171:        if (systemdlg[DLGSYS_32MHZ].state & SG_SELECTED)
1.1.1.5   root      172:                ConfigureParams.System.nCpuFreq = 32;
1.1.1.2   root      173:        else if (systemdlg[DLGSYS_16MHZ].state & SG_SELECTED)
1.1.1.5   root      174:                ConfigureParams.System.nCpuFreq = 16;
1.1.1.2   root      175:        else
1.1.1.5   root      176:                ConfigureParams.System.nCpuFreq = 8;
1.1.1.2   root      177: 
1.1.1.7   root      178:        if (systemdlg[DLGSYS_DSPOFF].state & SG_SELECTED)
                    179:                ConfigureParams.System.nDSPType = DSP_TYPE_NONE;
                    180:        else if (systemdlg[DLGSYS_DSPDUMMY].state & SG_SELECTED)
                    181:                ConfigureParams.System.nDSPType = DSP_TYPE_DUMMY;
                    182:        else
                    183:                ConfigureParams.System.nDSPType = DSP_TYPE_EMU;
                    184: 
1.1.1.5   root      185:        ConfigureParams.System.bCompatibleCpu = (systemdlg[DLGSYS_PREFETCH].state & SG_SELECTED);
                    186:        ConfigureParams.System.bBlitter = (systemdlg[DLGSYS_BLITTER].state & SG_SELECTED);
                    187:        ConfigureParams.System.bRealTimeClock = (systemdlg[DLGSYS_RTC].state & SG_SELECTED);
                    188:        ConfigureParams.System.bPatchTimerD = (systemdlg[DLGSYS_TIMERD].state & SG_SELECTED);
1.1       root      189: }

unix.superglobalmegacorp.com

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