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

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.5 ! root        7: const char DlgSystem_rcsid[] = "Hatari $Id: dlgSystem.c,v 1.11 2008/06/08 16:07:42 eerot Exp $";
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
                     27: #define DLGSYS_PREFETCH 20
                     28: #define DLGSYS_BLITTER  21
                     29: #define DLGSYS_RTC      22
                     30: #define DLGSYS_TIMERD   23
                     31: #define DLGSYS_SLOWFDC  24
1.1       root       32: 
                     33: 
                     34: /* The "System" dialog: */
                     35: static SGOBJ systemdlg[] =
                     36: {
1.1.1.2   root       37:        { SGBOX, 0, 0, 0,0, 36,23, NULL },
                     38:        { SGTEXT, 0, 0, 11,1, 14,1, "System options" },
                     39: 
                     40:        { SGBOX, 0, 0, 2,3, 16,9, NULL },
                     41:        { SGTEXT, 0, 0, 3,4, 8,1, "CPU type:" },
                     42:        { SGRADIOBUT, 0, 0, 6,6, 7,1, "68000" },
                     43:        { SGRADIOBUT, 0, 0, 6,7, 7,1, "68010" },
                     44:        { SGRADIOBUT, 0, 0, 6,8, 7,1, "68020" },
                     45:        { SGRADIOBUT, 0, 0, 6,9, 11,1, "68020+FPU" },
                     46:        { SGRADIOBUT, 0, 0, 6,10, 7,1, "68040" },
                     47: 
                     48:        { SGBOX, 0, 0, 19,3, 15,9, NULL },
                     49:        { SGTEXT, 0, 0, 20,4, 13,1, "Machine type:" },
1.1.1.4   root       50:        { SGRADIOBUT, 0, 0, 23,6, 8,1, "ST" },
                     51:        { SGRADIOBUT, 0, 0, 23,7, 8,1, "STE" },
                     52:        { SGRADIOBUT, 0, 0, 23,8, 8,1, "TT *" },
                     53:        { SGRADIOBUT, 0, 0, 23,9, 8,1, "Falcon *" },
                     54:        { SGTEXT, 0, 0, 21,11, 12,1, "* incomplete" },
1.1.1.2   root       55: 
                     56:        { SGTEXT, 0, 0, 2,13, 15,1, "CPU clock (MHz):" },
                     57:        { SGRADIOBUT, 0, 0, 19,13, 3,1, "8" },
                     58:        { SGRADIOBUT, 0, 0, 24,13, 4,1, "16" },
                     59:        { SGRADIOBUT, 0, 0, 30,13, 4,1, "32" },
                     60: 
                     61:        { SGCHECKBOX, 0, 0, 2,15, 32,1, "Slower but more compatible CPU" },
                     62:        { SGCHECKBOX, 0, 0, 2,16, 20,1, "Blitter emulation" },
                     63:        { SGCHECKBOX, 0, 0, 2,17, 27,1, "Real time clock emulation" },
                     64:        { SGCHECKBOX, 0, 0, 2,18, 15,1, "Patch Timer-D" },
                     65:        { SGCHECKBOX, 0, 0, 2,19, 25,1, "Slow down FDC emulation" },
                     66: 
1.1.1.4   root       67:        { SGBUTTON, SG_DEFAULT, 0, 8,21, 20,1, "Back to main menu" },
1.1.1.2   root       68:        { -1, 0, 0, 0,0, 0,0, NULL }
1.1       root       69: };
                     70: 
                     71: 
                     72: /*-----------------------------------------------------------------------*/
                     73: /*
                     74:   Show and process the "System" dialog.
                     75: */
                     76: void Dialog_SystemDlg(void)
                     77: {
1.1.1.2   root       78:        int i;
1.1       root       79: 
1.1.1.2   root       80:        SDLGui_CenterDlg(systemdlg);
1.1       root       81: 
1.1.1.2   root       82:        /* Set up dialog from actual values: */
1.1       root       83: 
1.1.1.2   root       84:        for (i = DLGSYS_68000; i <= DLGSYS_68040; i++)
                     85:        {
                     86:                systemdlg[i].state &= ~SG_SELECTED;
                     87:        }
1.1.1.5 ! root       88:        systemdlg[DLGSYS_68000+ConfigureParams.System.nCpuLevel].state |= SG_SELECTED;
1.1.1.2   root       89: 
1.1.1.4   root       90:        for (i = DLGSYS_ST; i <= DLGSYS_FALCON; i++)
1.1.1.2   root       91:        {
                     92:                systemdlg[i].state &= ~SG_SELECTED;
                     93:        }
1.1.1.5 ! root       94:        systemdlg[DLGSYS_ST + ConfigureParams.System.nMachineType].state |= SG_SELECTED;
1.1.1.2   root       95: 
                     96:        for (i = DLGSYS_8MHZ; i <= DLGSYS_16MHZ; i++)
                     97:        {
                     98:                systemdlg[i].state &= ~SG_SELECTED;
                     99:        }
1.1.1.5 ! root      100:        if (ConfigureParams.System.nCpuFreq == 32)
1.1.1.2   root      101:          systemdlg[DLGSYS_32MHZ].state |= SG_SELECTED;
1.1.1.5 ! root      102:        else if (ConfigureParams.System.nCpuFreq == 16)
1.1.1.2   root      103:          systemdlg[DLGSYS_16MHZ].state |= SG_SELECTED;
                    104:        else
                    105:          systemdlg[DLGSYS_8MHZ].state |= SG_SELECTED;
                    106: 
1.1.1.5 ! root      107:        if (ConfigureParams.System.bCompatibleCpu)
1.1.1.2   root      108:                systemdlg[DLGSYS_PREFETCH].state |= SG_SELECTED;
                    109:        else
                    110:                systemdlg[DLGSYS_PREFETCH].state &= ~SG_SELECTED;
                    111: 
1.1.1.5 ! root      112:        if (ConfigureParams.System.bBlitter)
1.1.1.2   root      113:                systemdlg[DLGSYS_BLITTER].state |= SG_SELECTED;
                    114:        else
                    115:                systemdlg[DLGSYS_BLITTER].state &= ~SG_SELECTED;
                    116: 
1.1.1.5 ! root      117:        if (ConfigureParams.System.bRealTimeClock)
1.1.1.2   root      118:                systemdlg[DLGSYS_RTC].state |= SG_SELECTED;
                    119:        else
                    120:                systemdlg[DLGSYS_RTC].state &= ~SG_SELECTED;
                    121: 
1.1.1.5 ! root      122:        if (ConfigureParams.System.bPatchTimerD)
1.1.1.2   root      123:                systemdlg[DLGSYS_TIMERD].state |= SG_SELECTED;
                    124:        else
                    125:                systemdlg[DLGSYS_TIMERD].state &= ~SG_SELECTED;
                    126: 
1.1.1.5 ! root      127:        if (ConfigureParams.System.bSlowFDC)
1.1.1.2   root      128:                systemdlg[DLGSYS_SLOWFDC].state |= SG_SELECTED;
                    129:        else
                    130:                systemdlg[DLGSYS_SLOWFDC].state &= ~SG_SELECTED;
                    131: 
                    132:        /* Show the dialog: */
                    133:        SDLGui_DoDialog(systemdlg, NULL);
                    134: 
                    135:        /* Read values from dialog: */
                    136: 
                    137:        for (i = DLGSYS_68000; i <= DLGSYS_68040; i++)
                    138:        {
                    139:                if (systemdlg[i].state&SG_SELECTED)
                    140:                {
1.1.1.5 ! root      141:                        ConfigureParams.System.nCpuLevel = i-DLGSYS_68000;
1.1.1.2   root      142:                        break;
                    143:                }
                    144:        }
                    145: 
1.1.1.4   root      146:        for (i = DLGSYS_ST; i <= DLGSYS_FALCON; i++)
1.1.1.2   root      147:        {
                    148:                if (systemdlg[i].state&SG_SELECTED)
                    149:                {
1.1.1.5 ! root      150:                        ConfigureParams.System.nMachineType = i-DLGSYS_ST;
1.1.1.2   root      151:                        break;
                    152:                }
                    153:        }
                    154: 
                    155:        if (systemdlg[DLGSYS_32MHZ].state & SG_SELECTED)
1.1.1.5 ! root      156:                ConfigureParams.System.nCpuFreq = 32;
1.1.1.2   root      157:        else if (systemdlg[DLGSYS_16MHZ].state & SG_SELECTED)
1.1.1.5 ! root      158:                ConfigureParams.System.nCpuFreq = 16;
1.1.1.2   root      159:        else
1.1.1.5 ! root      160:                ConfigureParams.System.nCpuFreq = 8;
1.1.1.2   root      161: 
1.1.1.5 ! root      162:        ConfigureParams.System.bCompatibleCpu = (systemdlg[DLGSYS_PREFETCH].state & SG_SELECTED);
        !           163:        ConfigureParams.System.bBlitter = (systemdlg[DLGSYS_BLITTER].state & SG_SELECTED);
        !           164:        ConfigureParams.System.bRealTimeClock = (systemdlg[DLGSYS_RTC].state & SG_SELECTED);
        !           165:        ConfigureParams.System.bPatchTimerD = (systemdlg[DLGSYS_TIMERD].state & SG_SELECTED);
        !           166:        ConfigureParams.System.bSlowFDC = (systemdlg[DLGSYS_SLOWFDC].state & SG_SELECTED);
1.1       root      167: }

unix.superglobalmegacorp.com

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