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

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.
1.1.1.9   root        6:   
                      7:   This file contains 2 system panels :
                      8:     - 1 for the old uae CPU
                      9:     - 1 for the new WinUae cpu
                     10:     
                     11:   The selection is made during compilation with the ENABLE_WINUAE_CPU define
                     12: 
1.1       root       13: */
1.1.1.7   root       14: const char DlgSystem_fileid[] = "Hatari dlgSystem.c : " __DATE__ " " __TIME__;
1.1       root       15: 
                     16: #include "main.h"
                     17: #include "configuration.h"
                     18: #include "dialog.h"
                     19: #include "sdlgui.h"
                     20: 
                     21: 
1.1.1.9   root       22: /* The old Uae cpu "System" dialog: */
                     23: #ifndef ENABLE_WINUAE_CPU
                     24: 
1.1.1.2   root       25: #define DLGSYS_68000    4
                     26: #define DLGSYS_68010    5
                     27: #define DLGSYS_68020    6
                     28: #define DLGSYS_68030    7
                     29: #define DLGSYS_68040    8
                     30: #define DLGSYS_ST       11
                     31: #define DLGSYS_STE      12
1.1.1.4   root       32: #define DLGSYS_TT       13
                     33: #define DLGSYS_FALCON   14
                     34: #define DLGSYS_8MHZ     17
                     35: #define DLGSYS_16MHZ    18
                     36: #define DLGSYS_32MHZ    19
1.1.1.7   root       37: #define DLGSYS_DSPOFF   21
                     38: #define DLGSYS_DSPDUMMY 22
                     39: #define DLGSYS_DSPON    23
                     40: #define DLGSYS_PREFETCH 24
                     41: #define DLGSYS_BLITTER  25
                     42: #define DLGSYS_RTC      26
                     43: #define DLGSYS_TIMERD   27
1.1.1.10! root       44: #define DLGSYS_FASTBOOT 28
1.1       root       45: 
                     46: static SGOBJ systemdlg[] =
                     47: {
1.1.1.10! root       48:        { SGBOX, 0, 0, 0,0, 36,25, NULL },
1.1.1.2   root       49:        { SGTEXT, 0, 0, 11,1, 14,1, "System options" },
                     50: 
                     51:        { SGBOX, 0, 0, 2,3, 16,9, NULL },
                     52:        { SGTEXT, 0, 0, 3,4, 8,1, "CPU type:" },
1.1.1.8   root       53:        { SGRADIOBUT, 0, 0, 4,6, 7,1, "68000" },
                     54:        { SGRADIOBUT, 0, 0, 4,7, 7,1, "68010" },
                     55:        { SGRADIOBUT, 0, 0, 4,8, 7,1, "68020" },
                     56:        { SGRADIOBUT, 0, 0, 4,9, 13,1, "68EC030+FPU" },
                     57:        { SGRADIOBUT, 0, 0, 4,10, 7,1, "68040" },
1.1.1.2   root       58: 
                     59:        { SGBOX, 0, 0, 19,3, 15,9, NULL },
                     60:        { SGTEXT, 0, 0, 20,4, 13,1, "Machine type:" },
1.1.1.4   root       61:        { SGRADIOBUT, 0, 0, 23,6, 8,1, "ST" },
                     62:        { SGRADIOBUT, 0, 0, 23,7, 8,1, "STE" },
                     63:        { SGRADIOBUT, 0, 0, 23,8, 8,1, "TT *" },
                     64:        { SGRADIOBUT, 0, 0, 23,9, 8,1, "Falcon *" },
                     65:        { SGTEXT, 0, 0, 21,11, 12,1, "* incomplete" },
1.1.1.2   root       66: 
                     67:        { SGTEXT, 0, 0, 2,13, 15,1, "CPU clock (MHz):" },
                     68:        { SGRADIOBUT, 0, 0, 19,13, 3,1, "8" },
                     69:        { SGRADIOBUT, 0, 0, 24,13, 4,1, "16" },
                     70:        { SGRADIOBUT, 0, 0, 30,13, 4,1, "32" },
                     71: 
1.1.1.7   root       72:        { SGTEXT, 0, 0, 2,15, 11,1, "Falcon DSP:" },
                     73:        { SGRADIOBUT, 0, 0, 14,15, 5,1, "off" },
                     74:        { SGRADIOBUT, 0, 0, 21,15, 7,1, "dummy" },
                     75:        { SGRADIOBUT, 0, 0, 30,15, 4,1, "on" },
                     76: 
                     77:        { SGCHECKBOX, 0, 0, 2,17, 32,1, "Slower but more compatible CPU" },
                     78:        { SGCHECKBOX, 0, 0, 2,18, 20,1, "Blitter emulation" },
                     79:        { SGCHECKBOX, 0, 0, 2,19, 27,1, "Real time clock emulation" },
                     80:        { SGCHECKBOX, 0, 0, 2,20, 15,1, "Patch Timer-D" },
1.1.1.10! root       81:        { SGCHECKBOX, 0, 0, 2,21, 27,1, "Patch TOS for faster boot" },
1.1.1.2   root       82: 
1.1.1.10! root       83:        { SGBUTTON, SG_DEFAULT, 0, 8,23, 20,1, "Back to main menu" },
1.1.1.2   root       84:        { -1, 0, 0, 0,0, 0,0, NULL }
1.1       root       85: };
                     86: 
                     87: 
                     88: /*-----------------------------------------------------------------------*/
1.1.1.8   root       89: /**
                     90:  * Show and process the "System" dialog.
                     91:  */
1.1       root       92: void Dialog_SystemDlg(void)
                     93: {
1.1.1.2   root       94:        int i;
1.1.1.7   root       95:        MACHINETYPE     mti;
1.1       root       96: 
1.1.1.2   root       97:        SDLGui_CenterDlg(systemdlg);
1.1       root       98: 
1.1.1.2   root       99:        /* Set up dialog from actual values: */
1.1       root      100: 
1.1.1.2   root      101:        for (i = DLGSYS_68000; i <= DLGSYS_68040; i++)
                    102:        {
                    103:                systemdlg[i].state &= ~SG_SELECTED;
                    104:        }
1.1.1.5   root      105:        systemdlg[DLGSYS_68000+ConfigureParams.System.nCpuLevel].state |= SG_SELECTED;
1.1.1.2   root      106: 
1.1.1.4   root      107:        for (i = DLGSYS_ST; i <= DLGSYS_FALCON; i++)
1.1.1.2   root      108:        {
                    109:                systemdlg[i].state &= ~SG_SELECTED;
                    110:        }
1.1.1.5   root      111:        systemdlg[DLGSYS_ST + ConfigureParams.System.nMachineType].state |= SG_SELECTED;
1.1.1.2   root      112: 
1.1.1.7   root      113:        /* CPU frequency: */
1.1.1.2   root      114:        for (i = DLGSYS_8MHZ; i <= DLGSYS_16MHZ; i++)
                    115:        {
                    116:                systemdlg[i].state &= ~SG_SELECTED;
                    117:        }
1.1.1.5   root      118:        if (ConfigureParams.System.nCpuFreq == 32)
1.1.1.7   root      119:                systemdlg[DLGSYS_32MHZ].state |= SG_SELECTED;
1.1.1.5   root      120:        else if (ConfigureParams.System.nCpuFreq == 16)
1.1.1.7   root      121:                systemdlg[DLGSYS_16MHZ].state |= SG_SELECTED;
1.1.1.2   root      122:        else
1.1.1.7   root      123:                systemdlg[DLGSYS_8MHZ].state |= SG_SELECTED;
                    124: 
                    125:        /* DSP mode: */
                    126:        for (i = DLGSYS_DSPOFF; i <= DLGSYS_DSPON; i++)
                    127:        {
                    128:                systemdlg[i].state &= ~SG_SELECTED;
                    129:        }
                    130:        if (ConfigureParams.System.nDSPType == DSP_TYPE_NONE)
                    131:                systemdlg[DLGSYS_DSPOFF].state |= SG_SELECTED;
                    132:        else if (ConfigureParams.System.nDSPType == DSP_TYPE_DUMMY)
                    133:                systemdlg[DLGSYS_DSPDUMMY].state |= SG_SELECTED;
                    134:        else
                    135:                systemdlg[DLGSYS_DSPON].state |= SG_SELECTED;
                    136: 
1.1.1.2   root      137: 
1.1.1.5   root      138:        if (ConfigureParams.System.bCompatibleCpu)
1.1.1.2   root      139:                systemdlg[DLGSYS_PREFETCH].state |= SG_SELECTED;
                    140:        else
                    141:                systemdlg[DLGSYS_PREFETCH].state &= ~SG_SELECTED;
                    142: 
1.1.1.5   root      143:        if (ConfigureParams.System.bBlitter)
1.1.1.2   root      144:                systemdlg[DLGSYS_BLITTER].state |= SG_SELECTED;
                    145:        else
                    146:                systemdlg[DLGSYS_BLITTER].state &= ~SG_SELECTED;
                    147: 
1.1.1.5   root      148:        if (ConfigureParams.System.bRealTimeClock)
1.1.1.2   root      149:                systemdlg[DLGSYS_RTC].state |= SG_SELECTED;
                    150:        else
                    151:                systemdlg[DLGSYS_RTC].state &= ~SG_SELECTED;
                    152: 
1.1.1.5   root      153:        if (ConfigureParams.System.bPatchTimerD)
1.1.1.2   root      154:                systemdlg[DLGSYS_TIMERD].state |= SG_SELECTED;
                    155:        else
                    156:                systemdlg[DLGSYS_TIMERD].state &= ~SG_SELECTED;
                    157: 
1.1.1.10! root      158:        if (ConfigureParams.System.bFastBoot)
        !           159:                systemdlg[DLGSYS_FASTBOOT].state |= SG_SELECTED;
        !           160:        else
        !           161:                systemdlg[DLGSYS_FASTBOOT].state &= ~SG_SELECTED;
        !           162: 
1.1.1.2   root      163:        /* Show the dialog: */
                    164:        SDLGui_DoDialog(systemdlg, NULL);
                    165: 
                    166:        /* Read values from dialog: */
                    167: 
                    168:        for (i = DLGSYS_68000; i <= DLGSYS_68040; i++)
                    169:        {
                    170:                if (systemdlg[i].state&SG_SELECTED)
                    171:                {
1.1.1.5   root      172:                        ConfigureParams.System.nCpuLevel = i-DLGSYS_68000;
1.1.1.2   root      173:                        break;
                    174:                }
                    175:        }
                    176: 
1.1.1.7   root      177:        for (mti = MACHINE_ST; mti <= MACHINE_FALCON; mti++)
1.1.1.2   root      178:        {
1.1.1.7   root      179:                if (systemdlg[mti + DLGSYS_ST].state&SG_SELECTED)
1.1.1.2   root      180:                {
1.1.1.7   root      181:                        ConfigureParams.System.nMachineType = mti;
1.1.1.2   root      182:                        break;
                    183:                }
                    184:        }
                    185: 
                    186:        if (systemdlg[DLGSYS_32MHZ].state & SG_SELECTED)
1.1.1.5   root      187:                ConfigureParams.System.nCpuFreq = 32;
1.1.1.2   root      188:        else if (systemdlg[DLGSYS_16MHZ].state & SG_SELECTED)
1.1.1.5   root      189:                ConfigureParams.System.nCpuFreq = 16;
1.1.1.2   root      190:        else
1.1.1.5   root      191:                ConfigureParams.System.nCpuFreq = 8;
1.1.1.2   root      192: 
1.1.1.7   root      193:        if (systemdlg[DLGSYS_DSPOFF].state & SG_SELECTED)
                    194:                ConfigureParams.System.nDSPType = DSP_TYPE_NONE;
                    195:        else if (systemdlg[DLGSYS_DSPDUMMY].state & SG_SELECTED)
                    196:                ConfigureParams.System.nDSPType = DSP_TYPE_DUMMY;
                    197:        else
                    198:                ConfigureParams.System.nDSPType = DSP_TYPE_EMU;
                    199: 
1.1.1.5   root      200:        ConfigureParams.System.bCompatibleCpu = (systemdlg[DLGSYS_PREFETCH].state & SG_SELECTED);
                    201:        ConfigureParams.System.bBlitter = (systemdlg[DLGSYS_BLITTER].state & SG_SELECTED);
                    202:        ConfigureParams.System.bRealTimeClock = (systemdlg[DLGSYS_RTC].state & SG_SELECTED);
                    203:        ConfigureParams.System.bPatchTimerD = (systemdlg[DLGSYS_TIMERD].state & SG_SELECTED);
1.1.1.10! root      204:        ConfigureParams.System.bFastBoot = (systemdlg[DLGSYS_FASTBOOT].state & SG_SELECTED);
1.1       root      205: }
1.1.1.9   root      206: 
                    207: /* The new WinUae cpu "System" dialog: */
                    208: #else
                    209: 
                    210: #define DLGSYS_68000      4
                    211: #define DLGSYS_68010      5
                    212: #define DLGSYS_68020      6
                    213: #define DLGSYS_68030      7
                    214: #define DLGSYS_68040      8
                    215: #define DLGSYS_68060      9
                    216: #define DLGSYS_ST         12
                    217: #define DLGSYS_STE        13
                    218: #define DLGSYS_TT         14
                    219: #define DLGSYS_FALCON     15
                    220: #define DLGSYS_8MHZ       18
                    221: #define DLGSYS_16MHZ      19
                    222: #define DLGSYS_32MHZ      20
                    223: #define DLGSYS_DSPOFF     23
                    224: #define DLGSYS_DSPDUMMY   24
                    225: #define DLGSYS_DSPON      25
                    226: #define DLGSYS_24BITS     28
                    227: #define DLGSYS_PREFETCH   29
                    228: #define DLGSYS_CYC_EXACT  30
                    229: #define DLGSYS_RTC        31
                    230: #define DLGSYS_TIMERD     32
                    231: #define DLGSYS_BLITTER    33
                    232: #define DLGSYS_MMU_EMUL   34
                    233: #define DLGSYS_FPU_NONE   37
                    234: #define DLGSYS_FPU_68881  38
                    235: #define DLGSYS_FPU_68882  39
                    236: #define DLGSYS_FPU_CPU_IN 40
                    237: #define DLGSYS_FPU_COMPAT 41
                    238: 
                    239: 
                    240: static SGOBJ systemdlg[] =
                    241: {
                    242:        { SGBOX, 0, 0, 0,0, 60,25, NULL },
                    243:        { SGTEXT, 0, 0, 23,1, 14,1, "System options" },
                    244: 
                    245:        { SGBOX, 0, 0, 19,3, 11,9, NULL },
                    246:        { SGTEXT, 0, 0, 20,3, 8,1, "CPU type" },
                    247:        { SGRADIOBUT, 0, 0, 20,5, 7,1, "68000" },
                    248:        { SGRADIOBUT, 0, 0, 20,6, 7,1, "68010" },
                    249:        { SGRADIOBUT, 0, 0, 20,7, 7,1, "68020" },
                    250:        { SGRADIOBUT, 0, 0, 20,8, 13,1, "68030" },
                    251:        { SGRADIOBUT, 0, 0, 20,9, 13,1, "68040" },
                    252:        { SGRADIOBUT, 0, 0, 20,10, 7,1, "68060" },
                    253: 
                    254:        { SGBOX, 0, 0, 2,3, 15,9, NULL },
                    255:        { SGTEXT, 0, 0, 3,3, 13,1, "Machine type" },
                    256:        { SGRADIOBUT, 0, 0, 3,5, 8,1, "ST" },
                    257:        { SGRADIOBUT, 0, 0, 3,6, 8,1, "STE" },
                    258:        { SGRADIOBUT, 0, 0, 3,7, 8,1, "TT" },
                    259:        { SGRADIOBUT, 0, 0, 3,8, 8,1, "Falcon" },
                    260: 
                    261:        { SGBOX, 0, 0, 32,3, 12,9, NULL },
                    262:        { SGTEXT, 0, 0, 33,3, 15,1, "CPU clock" },
                    263:        { SGRADIOBUT, 0, 0, 33,5, 3,1, " 8 Mhz" },
                    264:        { SGRADIOBUT, 0, 0, 33,6, 4,1, "16 Mhz" },
                    265:        { SGRADIOBUT, 0, 0, 33,7, 4,1, "32 Mhz" },
                    266: 
                    267:        { SGBOX, 0, 0, 46,3, 12,9, NULL },
                    268:        { SGTEXT, 0, 0, 47,3, 11,1, "Falcon DSP" },
                    269:        { SGRADIOBUT, 0, 0, 47,5, 5,1, "None" },
                    270:        { SGRADIOBUT, 0, 0, 47,6, 7,1, "Dummy" },
                    271:        { SGRADIOBUT, 0, 0, 47,7, 4,1, "Full" },
                    272: 
                    273:        { SGBOX, 0, 0, 2,13, 28,9, NULL },
                    274:        { SGTEXT, 0, 0, 3,13, 11,1, "CPU Pamameters" },
                    275:        { SGCHECKBOX, 0, 0, 3,15, 15,1, "24 bits addressing" },
                    276:        { SGCHECKBOX, 0, 0, 3,16, 32,1, "Prefetch mode, slower" },
                    277:        { SGCHECKBOX, 0, 0, 3,17, 32,1, "Cycle exact,   slower" },
                    278:        { SGCHECKBOX, 0, 0, 3,18, 27,1, "Real time clock emulation" },
                    279:        { SGCHECKBOX, 0, 0, 3,19, 15,1, "Patch Timer-D" },
                    280:        { SGCHECKBOX, 0, 0, 3,20, 20,1, "Blitter emulation" },
                    281:        { SGCHECKBOX, 0, 0, 3,21, 15,1, "MMU emulation" },
                    282: 
                    283:        { SGBOX, 0, 0, 32,13, 26,9, NULL },
                    284:        { SGTEXT, 0, 0, 33,13, 11,1, "FPU" },
                    285:        { SGRADIOBUT, 0, 0, 33,15, 5,1, "None" },
                    286:        { SGRADIOBUT, 0, 0, 33,16, 7,1, "68881" },
                    287:        { SGRADIOBUT, 0, 0, 33,17, 4,1, "68882" },
                    288:        { SGRADIOBUT, 0, 0, 33,18, 4,1, "CPU internal" },
                    289:        { SGCHECKBOX, 0, 0, 33,20, 4,1, "More compatible, slower" },
                    290: 
                    291:        { SGBUTTON, SG_DEFAULT, 0, 21,23, 20,1, "Back to main menu" },
                    292:        { -1, 0, 0, 0,0, 0,0, NULL }
                    293: };
                    294: 
                    295: 
                    296: /*-----------------------------------------------------------------------*/
                    297: /**
                    298:  * Show and process the "System" dialog (specific to winUAE cpu).
                    299:  */
                    300: void Dialog_SystemDlg(void)
                    301: {
                    302:        int i;
                    303:        MACHINETYPE     mti;
                    304: 
                    305:        SDLGui_CenterDlg(systemdlg);
                    306: 
                    307:        /* Set up dialog from actual values: */
                    308: 
                    309:        for (i = DLGSYS_68000; i <= DLGSYS_68060; i++)
                    310:        {
                    311:                systemdlg[i].state &= ~SG_SELECTED;
                    312:        }
                    313:        systemdlg[DLGSYS_68000+ConfigureParams.System.nCpuLevel].state |= SG_SELECTED;
                    314: 
                    315:        for (i = DLGSYS_ST; i <= DLGSYS_FALCON; i++)
                    316:        {
                    317:                systemdlg[i].state &= ~SG_SELECTED;
                    318:        }
                    319:        systemdlg[DLGSYS_ST + ConfigureParams.System.nMachineType].state |= SG_SELECTED;
                    320: 
                    321:        /* CPU frequency: */
                    322:        for (i = DLGSYS_8MHZ; i <= DLGSYS_16MHZ; i++)
                    323:        {
                    324:                systemdlg[i].state &= ~SG_SELECTED;
                    325:        }
                    326:        if (ConfigureParams.System.nCpuFreq == 32)
                    327:                systemdlg[DLGSYS_32MHZ].state |= SG_SELECTED;
                    328:        else if (ConfigureParams.System.nCpuFreq == 16)
                    329:                systemdlg[DLGSYS_16MHZ].state |= SG_SELECTED;
                    330:        else
                    331:                systemdlg[DLGSYS_8MHZ].state |= SG_SELECTED;
                    332: 
                    333:        /* DSP mode: */
                    334:        for (i = DLGSYS_DSPOFF; i <= DLGSYS_DSPON; i++)
                    335:        {
                    336:                systemdlg[i].state &= ~SG_SELECTED;
                    337:        }
                    338:        if (ConfigureParams.System.nDSPType == DSP_TYPE_NONE)
                    339:                systemdlg[DLGSYS_DSPOFF].state |= SG_SELECTED;
                    340:        else if (ConfigureParams.System.nDSPType == DSP_TYPE_DUMMY)
                    341:                systemdlg[DLGSYS_DSPDUMMY].state |= SG_SELECTED;
                    342:        else
                    343:                systemdlg[DLGSYS_DSPON].state |= SG_SELECTED;
                    344: 
                    345:        /* More compatible CPU, Prefetch mode */
                    346:        if (ConfigureParams.System.bCompatibleCpu)
                    347:                systemdlg[DLGSYS_PREFETCH].state |= SG_SELECTED;
                    348:        else
                    349:                systemdlg[DLGSYS_PREFETCH].state &= ~SG_SELECTED;
                    350: 
                    351:        /* Emulate Blitter */
                    352:        if (ConfigureParams.System.bBlitter)
                    353:                systemdlg[DLGSYS_BLITTER].state |= SG_SELECTED;
                    354:        else
                    355:                systemdlg[DLGSYS_BLITTER].state &= ~SG_SELECTED;
                    356: 
                    357:        /* Real time clock CPU */
                    358:        if (ConfigureParams.System.bRealTimeClock)
                    359:                systemdlg[DLGSYS_RTC].state |= SG_SELECTED;
                    360:        else
                    361:                systemdlg[DLGSYS_RTC].state &= ~SG_SELECTED;
                    362: 
                    363:        /* Patch timer D */
                    364:        if (ConfigureParams.System.bPatchTimerD)
                    365:                systemdlg[DLGSYS_TIMERD].state |= SG_SELECTED;
                    366:        else
                    367:                systemdlg[DLGSYS_TIMERD].state &= ~SG_SELECTED;
                    368: 
                    369:        /* Adress space 24 bits */
                    370:        if (ConfigureParams.System.bAddressSpace24)
                    371:                systemdlg[DLGSYS_24BITS].state |= SG_SELECTED;
                    372:        else
                    373:                systemdlg[DLGSYS_24BITS].state &= ~SG_SELECTED;
                    374:                
                    375:        /* Cycle exact CPU */
                    376:        if (ConfigureParams.System.bCycleExactCpu)
                    377:                systemdlg[DLGSYS_CYC_EXACT].state |= SG_SELECTED;
                    378:        else
                    379:                systemdlg[DLGSYS_CYC_EXACT].state &= ~SG_SELECTED;
                    380: 
                    381:        /* FPU emulation */
                    382:        for (i = DLGSYS_FPU_NONE; i <= DLGSYS_FPU_CPU_IN; i++)
                    383:        {
                    384:                systemdlg[i].state &= ~SG_SELECTED;
                    385:        }
                    386:        if (ConfigureParams.System.n_FPUType == FPU_NONE)
                    387:                systemdlg[DLGSYS_FPU_NONE].state |= SG_SELECTED;
                    388:        else if (ConfigureParams.System.n_FPUType == FPU_68881)
                    389:                systemdlg[DLGSYS_FPU_68881].state |= SG_SELECTED;
                    390:        else if (ConfigureParams.System.n_FPUType == FPU_68882)
                    391:                systemdlg[DLGSYS_FPU_68882].state |= SG_SELECTED;
                    392:        else
                    393:                systemdlg[DLGSYS_FPU_CPU_IN].state |= SG_SELECTED;
                    394: 
                    395:        /* More compatible FPU */
                    396:        if (ConfigureParams.System.bCompatibleFPU)
                    397:                systemdlg[DLGSYS_FPU_COMPAT].state |= SG_SELECTED;
                    398:        else
                    399:                systemdlg[DLGSYS_FPU_COMPAT].state &= ~SG_SELECTED;
                    400: 
                    401:        /* MMU Emulation */
                    402:        if (ConfigureParams.System.bMMU)
                    403:                systemdlg[DLGSYS_MMU_EMUL].state |= SG_SELECTED;
                    404:        else
                    405:                systemdlg[DLGSYS_MMU_EMUL].state &= ~SG_SELECTED;
                    406: 
                    407:                
                    408:        /* Show the dialog: */
                    409:        SDLGui_DoDialog(systemdlg, NULL);
                    410: 
                    411:        /* Read values from dialog: */
                    412: 
                    413:        for (i = DLGSYS_68000; i <= DLGSYS_68060; i++)
                    414:        {
                    415:                if (systemdlg[i].state&SG_SELECTED)
                    416:                {
                    417:                        ConfigureParams.System.nCpuLevel = i-DLGSYS_68000;
                    418:                        break;
                    419:                }
                    420:        }
                    421: 
                    422:        for (mti = MACHINE_ST; mti <= MACHINE_FALCON; mti++)
                    423:        {
                    424:                if (systemdlg[mti + DLGSYS_ST].state&SG_SELECTED)
                    425:                {
                    426:                        ConfigureParams.System.nMachineType = mti;
                    427:                        break;
                    428:                }
                    429:        }
                    430: 
                    431:        if (systemdlg[DLGSYS_32MHZ].state & SG_SELECTED)
                    432:                ConfigureParams.System.nCpuFreq = 32;
                    433:        else if (systemdlg[DLGSYS_16MHZ].state & SG_SELECTED)
                    434:                ConfigureParams.System.nCpuFreq = 16;
                    435:        else
                    436:                ConfigureParams.System.nCpuFreq = 8;
                    437: 
                    438:        if (systemdlg[DLGSYS_DSPOFF].state & SG_SELECTED)
                    439:                ConfigureParams.System.nDSPType = DSP_TYPE_NONE;
                    440:        else if (systemdlg[DLGSYS_DSPDUMMY].state & SG_SELECTED)
                    441:                ConfigureParams.System.nDSPType = DSP_TYPE_DUMMY;
                    442:        else
                    443:                ConfigureParams.System.nDSPType = DSP_TYPE_EMU;
                    444: 
                    445:        ConfigureParams.System.bCompatibleCpu = (systemdlg[DLGSYS_PREFETCH].state & SG_SELECTED);
                    446:        ConfigureParams.System.bBlitter = (systemdlg[DLGSYS_BLITTER].state & SG_SELECTED);
                    447:        ConfigureParams.System.bRealTimeClock = (systemdlg[DLGSYS_RTC].state & SG_SELECTED);
                    448:        ConfigureParams.System.bPatchTimerD = (systemdlg[DLGSYS_TIMERD].state & SG_SELECTED);
                    449:        ConfigureParams.System.bAddressSpace24 = (systemdlg[DLGSYS_24BITS].state & SG_SELECTED);
                    450:        ConfigureParams.System.bCycleExactCpu = (systemdlg[DLGSYS_CYC_EXACT].state & SG_SELECTED);
                    451: 
                    452:        /* FPU emulation */
                    453:        if (systemdlg[DLGSYS_FPU_NONE].state & SG_SELECTED)
                    454:                ConfigureParams.System.n_FPUType = FPU_NONE;
                    455:        else if (systemdlg[DLGSYS_FPU_68881].state & SG_SELECTED)
                    456:                ConfigureParams.System.n_FPUType = FPU_68881;
                    457:        else if (systemdlg[DLGSYS_FPU_68882].state & SG_SELECTED)
                    458:                ConfigureParams.System.n_FPUType = FPU_68882;
                    459:        else
                    460:                ConfigureParams.System.n_FPUType = FPU_CPU;
                    461: 
                    462:        ConfigureParams.System.bCompatibleFPU = (systemdlg[DLGSYS_FPU_COMPAT].state & SG_SELECTED);
                    463:        ConfigureParams.System.bMMU = (systemdlg[DLGSYS_MMU_EMUL].state & SG_SELECTED);
                    464: }
                    465: #endif

unix.superglobalmegacorp.com

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