|
|
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: ! 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: ! 13: */ ! 14: const char DlgAdvanced_fileid[] = "Hatari dlgAdvanced.c : " __DATE__ " " __TIME__; ! 15: ! 16: #include "main.h" ! 17: #include "configuration.h" ! 18: #include "dialog.h" ! 19: #include "sdlgui.h" ! 20: ! 21: ! 22: #define DLGADV_68030 4 ! 23: #define DLGADV_68040 5 ! 24: #define DLGADV_68060 6 ! 25: ! 26: #define DLGADV_16MHZ 9 ! 27: #define DLGADV_20MHZ 10 ! 28: #define DLGADV_25MHZ 11 ! 29: #define DLGADV_33MHZ 12 ! 30: #define DLGADV_40MHZ 13 ! 31: ! 32: #define DLGADV_FPU68881 16 ! 33: #define DLGADV_FPU68882 17 ! 34: #define DLGADV_FPU040 18 ! 35: ! 36: #define DLGADV_SCSI_OLD 21 ! 37: #define DLGADV_SCSI_NEW 22 ! 38: ! 39: #define DLGADV_RTC_OLD 25 ! 40: #define DLGADV_RTC_NEW 26 ! 41: ! 42: #define DLGADV_ADB 29 ! 43: ! 44: #define DLGADV_EXIT 30 ! 45: ! 46: ! 47: static SGOBJ advanceddlg[] = ! 48: { ! 49: { SGBOX, 0, 0, 0,0, 57,29, NULL }, ! 50: { SGTEXT, 0, 0, 18,1, 14,1, "Advanced system options" }, ! 51: ! 52: { SGBOX, 0, 0, 2,3, 14,13, NULL }, ! 53: { SGTEXT, 0, 0, 3,4, 14,1, "CPU type" }, ! 54: { SGRADIOBUT, 0, 0, 4,6, 7,1, "68030" }, ! 55: { SGRADIOBUT, 0, 0, 4,8, 7,1, "68040" }, ! 56: { SGRADIOBUT, 0, 0, 4,10, 7,1, "68060" }, ! 57: ! 58: { SGBOX, 0, 0, 17,3, 14,13, NULL }, ! 59: { SGTEXT, 0, 0, 18,4, 14,1, "CPU clock" }, ! 60: { SGRADIOBUT, 0, 0, 19,6, 8,1, "16 MHz" }, ! 61: { SGRADIOBUT, 0, 0, 19,8, 8,1, "20 MHz" }, ! 62: { SGRADIOBUT, 0, 0, 19,10, 8,1, "25 MHz" }, ! 63: { SGRADIOBUT, 0, 0, 19,12, 8,1, "33 MHz" }, ! 64: { SGRADIOBUT, 0, 0, 19,14, 8,1, "40 MHz" }, ! 65: ! 66: { SGBOX, 0, 0, 32,3, 23,13, NULL }, ! 67: { SGTEXT, 0, 0, 33,4, 14,1, "FPU type" }, ! 68: { SGRADIOBUT, 0, 0, 34,6, 7,1, "68881" }, ! 69: { SGRADIOBUT, 0, 0, 34,8, 7,1, "68882" }, ! 70: { SGRADIOBUT, 0, 0, 34,10, 16,1, "68040 internal" }, ! 71: ! 72: { SGBOX, 0, 0, 2,17, 18,7, NULL }, ! 73: { SGTEXT, 0, 0, 3,18, 14,1, "SCSI controller" }, ! 74: { SGRADIOBUT, 0, 0, 4,20, 10,1, "NCR53C90" }, ! 75: { SGRADIOBUT, 0, 0, 4,22, 11,1, "NCR53C90A" }, ! 76: ! 77: { SGBOX, 0, 0, 21,17, 16,7, NULL }, ! 78: { SGTEXT, 0, 0, 22,18, 14,1, "RTC chip" }, ! 79: { SGRADIOBUT, 0, 0, 23,20, 12,1, "MC68HC68T1" }, ! 80: { SGRADIOBUT, 0, 0, 23,22, 9,1, "MCS1850" }, ! 81: ! 82: { SGBOX, 0, 0, 38,17, 17,7, NULL }, ! 83: { SGTEXT, 0, 0, 39,18, 14,1, "ADB" }, ! 84: { SGCHECKBOX, 0, 0, 40,20, 13,1, "Emulate ADB" }, ! 85: ! 86: { SGBUTTON, SG_DEFAULT, 0, 18,26, 22,1, "Back to system menu" }, ! 87: { -1, 0, 0, 0,0, 0,0, NULL } ! 88: }; ! 89: ! 90: ! 91: ! 92: /*-----------------------------------------------------------------------*/ ! 93: /** ! 94: * Show and process the "Advanced" dialog (specific to winUAE cpu). ! 95: */ ! 96: void Dialog_AdvancedDlg(void) { ! 97: ! 98: int i; ! 99: int but; ! 100: ! 101: SDLGui_CenterDlg(advanceddlg); ! 102: ! 103: /* Set up dialog from actual values: */ ! 104: ! 105: for (i = DLGADV_68030; i <= DLGADV_68060; i++) ! 106: { ! 107: advanceddlg[i].state &= ~SG_SELECTED; ! 108: } ! 109: switch (ConfigureParams.System.nCpuLevel) ! 110: { ! 111: case 3: ! 112: advanceddlg[DLGADV_68030].state |= SG_SELECTED; ! 113: break; ! 114: case 4: ! 115: advanceddlg[DLGADV_68040].state |= SG_SELECTED; ! 116: break; ! 117: case 5: ! 118: advanceddlg[DLGADV_68060].state |= SG_SELECTED; ! 119: break; ! 120: default: ! 121: break; ! 122: } ! 123: ! 124: for (i = DLGADV_16MHZ; i <= DLGADV_40MHZ; i++) ! 125: { ! 126: advanceddlg[i].state &= ~SG_SELECTED; ! 127: } ! 128: switch (ConfigureParams.System.nCpuFreq) ! 129: { ! 130: case 16: ! 131: advanceddlg[DLGADV_16MHZ].state |= SG_SELECTED; ! 132: break; ! 133: case 20: ! 134: advanceddlg[DLGADV_20MHZ].state |= SG_SELECTED; ! 135: break; ! 136: case 25: ! 137: advanceddlg[DLGADV_25MHZ].state |= SG_SELECTED; ! 138: break; ! 139: case 33: ! 140: advanceddlg[DLGADV_33MHZ].state |= SG_SELECTED; ! 141: break; ! 142: case 40: ! 143: advanceddlg[DLGADV_40MHZ].state |= SG_SELECTED; ! 144: break; ! 145: default: ! 146: break; ! 147: } ! 148: ! 149: for (i = DLGADV_FPU68881; i <= DLGADV_FPU040; i++) ! 150: { ! 151: advanceddlg[i].state &= ~SG_SELECTED; ! 152: } ! 153: switch (ConfigureParams.System.n_FPUType) ! 154: { ! 155: case FPU_68881: ! 156: advanceddlg[DLGADV_FPU68881].state |= SG_SELECTED; ! 157: break; ! 158: case FPU_68882: ! 159: advanceddlg[DLGADV_FPU68882].state |= SG_SELECTED; ! 160: break; ! 161: case FPU_CPU: ! 162: advanceddlg[DLGADV_FPU040].state |= SG_SELECTED; ! 163: break; ! 164: default: ! 165: break; ! 166: } ! 167: ! 168: for (i = DLGADV_SCSI_OLD; i <= DLGADV_SCSI_NEW; i++) ! 169: { ! 170: advanceddlg[i].state &= ~SG_SELECTED; ! 171: } ! 172: switch (ConfigureParams.System.nSCSI) ! 173: { ! 174: case NCR53C90: ! 175: advanceddlg[DLGADV_SCSI_OLD].state |= SG_SELECTED; ! 176: break; ! 177: case NCR53C90A: ! 178: advanceddlg[DLGADV_SCSI_NEW].state |= SG_SELECTED; ! 179: break; ! 180: default: ! 181: break; ! 182: } ! 183: ! 184: for (i = DLGADV_RTC_OLD; i <= DLGADV_RTC_NEW; i++) ! 185: { ! 186: advanceddlg[i].state &= ~SG_SELECTED; ! 187: } ! 188: switch (ConfigureParams.System.nRTC) ! 189: { ! 190: case MC68HC68T1: ! 191: advanceddlg[DLGADV_RTC_OLD].state |= SG_SELECTED; ! 192: break; ! 193: case MCS1850: ! 194: advanceddlg[DLGADV_RTC_NEW].state |= SG_SELECTED; ! 195: break; ! 196: default: ! 197: break; ! 198: } ! 199: ! 200: if (ConfigureParams.System.bADB) ! 201: advanceddlg[DLGADV_ADB].state |= SG_SELECTED; ! 202: else ! 203: advanceddlg[DLGADV_ADB].state &= ~SG_SELECTED; ! 204: ! 205: ! 206: ! 207: /* Draw and process the dialog: */ ! 208: ! 209: do ! 210: { ! 211: but = SDLGui_DoDialog(advanceddlg, NULL); ! 212: printf("Button: %i\n", but); ! 213: switch (but) { ! 214: ! 215: default: ! 216: break; ! 217: } ! 218: } ! 219: while (but != DLGADV_EXIT && but != SDLGUI_QUIT ! 220: && but != SDLGUI_ERROR && !bQuitProgram); ! 221: ! 222: ! 223: /* Read values from dialog: */ ! 224: ! 225: if (advanceddlg[DLGADV_68030].state & SG_SELECTED) ! 226: ConfigureParams.System.nCpuLevel = 3; ! 227: else if (advanceddlg[DLGADV_68040].state & SG_SELECTED) ! 228: ConfigureParams.System.nCpuLevel = 4; ! 229: else ! 230: ConfigureParams.System.nCpuLevel = 5; ! 231: ! 232: if (advanceddlg[DLGADV_16MHZ].state & SG_SELECTED) ! 233: ConfigureParams.System.nCpuFreq = 16; ! 234: else if (advanceddlg[DLGADV_20MHZ].state & SG_SELECTED) ! 235: ConfigureParams.System.nCpuFreq = 20; ! 236: else if (advanceddlg[DLGADV_20MHZ].state & SG_SELECTED) ! 237: ConfigureParams.System.nCpuFreq = 25; ! 238: else if (advanceddlg[DLGADV_33MHZ].state & SG_SELECTED) ! 239: ConfigureParams.System.nCpuFreq = 33; ! 240: else ! 241: ConfigureParams.System.nCpuFreq = 40; ! 242: ! 243: if (advanceddlg[DLGADV_FPU68881].state & SG_SELECTED) ! 244: ConfigureParams.System.n_FPUType = FPU_68881; ! 245: else if (advanceddlg[DLGADV_FPU68882].state & SG_SELECTED) ! 246: ConfigureParams.System.n_FPUType = FPU_68882; ! 247: else ! 248: ConfigureParams.System.n_FPUType = FPU_CPU; ! 249: ! 250: if (advanceddlg[DLGADV_SCSI_OLD].state & SG_SELECTED) ! 251: ConfigureParams.System.nSCSI = NCR53C90; ! 252: else ! 253: ConfigureParams.System.nSCSI = NCR53C90A; ! 254: ! 255: if (advanceddlg[DLGADV_RTC_OLD].state & SG_SELECTED) ! 256: ConfigureParams.System.nRTC = MC68HC68T1; ! 257: else ! 258: ConfigureParams.System.nRTC = MCS1850; ! 259: ! 260: if (advanceddlg[DLGADV_ADB].state & SG_SELECTED) ! 261: ConfigureParams.System.bADB = true; ! 262: else ! 263: ConfigureParams.System.bADB = false; ! 264: } ! 265:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.