|
|
1.1 root 1: /* 1.1.1.4 ! root 2: Previous - dlgSystem.c 1.1 root 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.2 root 6: 1.1 root 7: */ 1.1.1.4 ! root 8: ! 9: const char DlgSystem_fileid[] = "Previous dlgSystem.c : " __DATE__ " " __TIME__; 1.1 root 10: 11: #include "main.h" 12: #include "configuration.h" 13: #include "dialog.h" 14: #include "sdlgui.h" 15: 16: 1.1.1.3 root 17: #define DLGSYS_CUBE030 4 1.1.1.4 ! root 18: #define DLGSYS_CUBE 5 ! 19: #define DLGSYS_CUBETURBO 6 ! 20: #define DLGSYS_SLAB 7 ! 21: #define DLGSYS_SLABTURBO 8 ! 22: #define DLGSYS_SLABCOLOR 9 1.1.1.3 root 23: 1.1.1.4 ! root 24: #define DLGSYS_CUSTOMIZE 10 ! 25: #define DLGSYS_RESET 11 1.1.1.3 root 26: 1.1.1.4 ! root 27: #define DLGSYS_EXIT 32 1.1.1.3 root 28: 29: /* Variable strings */ 30: char cpu_type[16] = "68030"; 31: char cpu_clock[16] = "25 MHz"; 32: char fpu_type[16] = "68882"; 1.1.1.4 ! root 33: char dsp_type[16] = "56001"; ! 34: char dsp_memory[16] = "24 kB"; ! 35: char main_memory[16] = "8 MB"; 1.1.1.3 root 36: char scsi_controller[16] = "NCR53C90"; 37: char rtc_chip[16] = "MC68HC68T1"; 1.1.1.4 ! root 38: char nbic_present[16] = "none"; 1.1.1.3 root 39: 40: /* Additional functions */ 41: void print_system_overview(void); 1.1.1.4 ! root 42: void update_system_selection(void); 1.1.1.3 root 43: void get_default_values(void); 1.1 root 44: 45: 1.1.1.3 root 46: static SGOBJ systemdlg[] = 1.1 root 47: { 1.1.1.4 ! root 48: { SGBOX, 0, 0, 0,0, 58,27, NULL }, ! 49: { SGTEXT, 0, 0, 22,1, 14,1, "System options" }, ! 50: ! 51: { SGBOX, 0, 0, 2,3, 25,17, NULL }, ! 52: { SGTEXT, 0, 0, 3,4, 14,1, "Machine type" }, ! 53: { SGRADIOBUT, 0, 0, 5,6, 15,1, "NeXT Computer" }, ! 54: { SGRADIOBUT, 0, 0, 5,8, 10,1, "NeXTcube" }, ! 55: { SGCHECKBOX, 0, 0, 7,9, 7,1, "Turbo" }, ! 56: { SGRADIOBUT, 0, 0, 5,11, 13,1, "NeXTstation" }, ! 57: { SGCHECKBOX, 0, 0, 7,12, 7,1, "Turbo" }, ! 58: { SGCHECKBOX, 0, 0, 7,13, 7,1, "Color" }, ! 59: ! 60: { SGBUTTON, SG_DEFAULT, 0, 5,16, 19,1, "Customize" }, ! 61: { SGBUTTON, SG_DEFAULT, 0, 5,18, 19,1, "System defaults" }, ! 62: ! 63: { SGTEXT, 0, 0, 30,4, 13,1, "System overview:" }, ! 64: { SGTEXT, 0, 0, 30,6, 13,1, "CPU clock:" }, ! 65: { SGTEXT, 0, 0, 44,6, 13,1, cpu_clock }, ! 66: { SGTEXT, 0, 0, 30,7, 13,1, "CPU type:" }, ! 67: { SGTEXT, 0, 0, 44,7, 13,1, cpu_type }, 1.1.1.3 root 68: { SGTEXT, 0, 0, 30,8, 13,1, "FPU type:" }, 69: { SGTEXT, 0, 0, 44,8, 13,1, fpu_type }, 1.1.1.4 ! root 70: { SGTEXT, 0, 0, 30,9, 13,1, "DSP type:" }, ! 71: { SGTEXT, 0, 0, 44,9, 13,1, dsp_type }, ! 72: { SGTEXT, 0, 0, 30,10, 13,1, "DSP memory:" }, ! 73: { SGTEXT, 0, 0, 44,10, 13,1, dsp_memory }, ! 74: { SGTEXT, 0, 0, 30,11, 13,1, "Main memory:" }, ! 75: { SGTEXT, 0, 0, 44,11, 13,1, main_memory }, ! 76: { SGTEXT, 0, 0, 30,12, 13,1, "SCSI chip:" }, ! 77: { SGTEXT, 0, 0, 44,12, 13,1, scsi_controller }, ! 78: { SGTEXT, 0, 0, 30,13, 13,1, "RTC chip:" }, ! 79: { SGTEXT, 0, 0, 44,13, 13,1, rtc_chip }, ! 80: { SGTEXT, 0, 0, 30,14, 13,1, "NBIC:" }, ! 81: { SGTEXT, 0, 0, 44,14, 13,1, nbic_present }, ! 82: ! 83: { SGTEXT, 0, 0, 4,21, 13,1, "Changing machine type resets all advanced options." }, ! 84: ! 85: { SGBUTTON, SG_DEFAULT, 0, 18,24, 21,1, "Back to main menu" }, ! 86: ! 87: { -1, 0, 0, 0,0, 0,0, NULL } ! 88: }; 1.1 root 89: 90: 1.1.1.3 root 91: /* Function to print system overview */ 1.1 root 92: 1.1.1.3 root 93: void print_system_overview(void) { 94: switch (ConfigureParams.System.nCpuLevel) { 95: case 0: 96: sprintf(cpu_type, "68000"); break; 97: case 1: 98: sprintf(cpu_type, "68010"); break; 99: case 2: 100: sprintf(cpu_type, "68020"); break; 101: case 3: 102: sprintf(cpu_type, "68030"); break; 103: case 4: 104: sprintf(cpu_type, "68040"); break; 105: case 5: 106: sprintf(cpu_type, "68060"); break; 107: default: break; 108: } 109: 110: sprintf(cpu_clock, "%i MHz", ConfigureParams.System.nCpuFreq); 111: 1.1.1.4 ! root 112: sprintf(main_memory, "%i MB", Configuration_CheckMemory(ConfigureParams.Memory.nMemoryBankSize)); ! 113: ! 114: sprintf(dsp_memory, "%i kB", ConfigureParams.System.bDSPMemoryExpansion?96:24); 1.1.1.3 root 115: 116: switch (ConfigureParams.System.n_FPUType) { 117: case FPU_NONE: 118: sprintf(fpu_type, "none"); break; 119: case FPU_68881: 120: sprintf(fpu_type, "68881"); break; 121: case FPU_68882: 122: sprintf(fpu_type, "68882"); break; 123: case FPU_CPU: 1.1.1.4 ! root 124: sprintf(fpu_type, "68040"); break; ! 125: default: break; ! 126: } ! 127: ! 128: switch (ConfigureParams.System.nDSPType) { ! 129: case DSP_TYPE_NONE: ! 130: case DSP_TYPE_DUMMY: ! 131: sprintf(dsp_type, "none"); break; ! 132: case DSP_TYPE_EMU: ! 133: sprintf(dsp_type, "56001"); break; ! 134: 1.1.1.3 root 135: default: break; 136: } 137: 138: switch (ConfigureParams.System.nSCSI) { 139: case NCR53C90: 140: sprintf(scsi_controller, "NCR53C90"); break; 141: case NCR53C90A: 142: sprintf(scsi_controller, "NCR53C90A"); break; 143: default: break; 144: } 145: 146: switch (ConfigureParams.System.nRTC) { 147: case MC68HC68T1: 148: sprintf(rtc_chip, "MC68HC68T1"); break; 1.1.1.4 ! root 149: case MCCS1850: ! 150: sprintf(rtc_chip, "MCCS1850"); break; 1.1.1.3 root 151: default: break; 152: } 153: 1.1.1.4 ! root 154: if (ConfigureParams.System.bNBIC) { ! 155: sprintf(nbic_present, "present"); ! 156: } else { ! 157: sprintf(nbic_present, "none"); ! 158: } ! 159: ! 160: update_system_selection(); 1.1 root 161: } 1.1.1.2 root 162: 163: 1.1.1.4 ! root 164: /* Function to select and unselect system options */ ! 165: void update_system_selection(void) { 1.1.1.3 root 166: switch (ConfigureParams.System.nMachineType) { 167: case NEXT_CUBE030: 1.1.1.4 ! root 168: systemdlg[DLGSYS_CUBE030].state |= SG_SELECTED; ! 169: systemdlg[DLGSYS_CUBE].state &= ~SG_SELECTED; ! 170: systemdlg[DLGSYS_CUBETURBO].state &= ~SG_SELECTED; ! 171: systemdlg[DLGSYS_SLAB].state &= ~SG_SELECTED; ! 172: systemdlg[DLGSYS_SLABCOLOR].state &= ~SG_SELECTED; ! 173: systemdlg[DLGSYS_SLABTURBO].state &= ~SG_SELECTED; ! 174: break; ! 175: case NEXT_CUBE040: ! 176: systemdlg[DLGSYS_CUBE030].state &= ~SG_SELECTED; ! 177: systemdlg[DLGSYS_CUBE].state |= SG_SELECTED; ! 178: if (ConfigureParams.System.bTurbo) { ! 179: systemdlg[DLGSYS_CUBETURBO].state |= SG_SELECTED; ! 180: } else { ! 181: systemdlg[DLGSYS_CUBETURBO].state &= ~SG_SELECTED; ! 182: } ! 183: systemdlg[DLGSYS_SLAB].state &= ~SG_SELECTED; ! 184: systemdlg[DLGSYS_SLABCOLOR].state &= ~SG_SELECTED; ! 185: systemdlg[DLGSYS_SLABTURBO].state &= ~SG_SELECTED; 1.1.1.3 root 186: break; 187: case NEXT_STATION: 1.1.1.4 ! root 188: systemdlg[DLGSYS_CUBE030].state &= ~SG_SELECTED; ! 189: systemdlg[DLGSYS_CUBE].state &= ~SG_SELECTED; ! 190: systemdlg[DLGSYS_CUBETURBO].state &= ~SG_SELECTED; ! 191: systemdlg[DLGSYS_SLAB].state |= SG_SELECTED; ! 192: if (ConfigureParams.System.bTurbo) { ! 193: systemdlg[DLGSYS_SLABTURBO].state |= SG_SELECTED; ! 194: } else { ! 195: systemdlg[DLGSYS_SLABTURBO].state &= ~SG_SELECTED; ! 196: } ! 197: if (ConfigureParams.System.bColor) { ! 198: systemdlg[DLGSYS_SLABCOLOR].state |= SG_SELECTED; ! 199: } else { ! 200: systemdlg[DLGSYS_SLABCOLOR].state &= ~SG_SELECTED; ! 201: } 1.1.1.3 root 202: break; 1.1.1.4 ! root 203: 1.1.1.3 root 204: default: 205: break; 206: } 207: } 1.1.1.2 root 208: 209: 1.1.1.4 ! root 210: /* Function to get default values for each system */ ! 211: void get_default_values(void) { ! 212: Configuration_SetSystemDefaults(); ! 213: } ! 214: ! 215: 1.1.1.2 root 216: /*-----------------------------------------------------------------------*/ 217: /** 218: * Show and process the "System" dialog (specific to winUAE cpu). 219: */ 220: void Dialog_SystemDlg(void) 221: { 222: int i; 1.1.1.3 root 223: int but; 1.1.1.2 root 224: 225: SDLGui_CenterDlg(systemdlg); 226: 227: /* Set up dialog from actual values: */ 1.1.1.3 root 228: 229: /* System type: */ 230: for (i = DLGSYS_CUBE030; i <= DLGSYS_SLAB; i++) 1.1.1.2 root 231: { 232: systemdlg[i].state &= ~SG_SELECTED; 233: } 1.1.1.3 root 234: if (ConfigureParams.System.nMachineType == NEXT_CUBE030) 235: systemdlg[DLGSYS_CUBE030].state |= SG_SELECTED; 236: else if (ConfigureParams.System.nMachineType == NEXT_STATION) 237: systemdlg[DLGSYS_SLAB].state |= SG_SELECTED; 238: 239: 240: /* System overview */ 241: print_system_overview(); 242: 1.1.1.2 root 243: 1.1.1.3 root 244: /* Draw and process the dialog: */ 245: 246: do 247: { 248: but = SDLGui_DoDialog(systemdlg, NULL); 249: switch (but) { 250: case DLGSYS_CUBE030: 251: ConfigureParams.System.nMachineType = NEXT_CUBE030; 252: get_default_values(); 253: break; 254: 1.1.1.4 ! root 255: case DLGSYS_CUBE: ! 256: if (ConfigureParams.System.nMachineType!=NEXT_CUBE040) { ! 257: ConfigureParams.System.bTurbo = false; ! 258: } ! 259: ConfigureParams.System.nMachineType = NEXT_CUBE040; 1.1.1.3 root 260: get_default_values(); 261: break; 262: 1.1.1.4 ! root 263: case DLGSYS_CUBETURBO: ! 264: if (ConfigureParams.System.bTurbo && ! 265: ConfigureParams.System.nMachineType==NEXT_CUBE040) { ! 266: ConfigureParams.System.bTurbo = false; 1.1.1.3 root 267: } else { 1.1.1.4 ! root 268: ConfigureParams.System.bTurbo = true; 1.1.1.3 root 269: } 1.1.1.4 ! root 270: ConfigureParams.System.nMachineType = NEXT_CUBE040; 1.1.1.3 root 271: get_default_values(); 272: break; 273: 1.1.1.4 ! root 274: case DLGSYS_SLAB: ! 275: if (ConfigureParams.System.nMachineType!=NEXT_STATION) { ! 276: ConfigureParams.System.bTurbo = false; ! 277: } 1.1.1.3 root 278: ConfigureParams.System.nMachineType = NEXT_STATION; 1.1.1.4 ! root 279: get_default_values(); ! 280: break; ! 281: ! 282: case DLGSYS_SLABCOLOR: ! 283: if (ConfigureParams.System.nMachineType!=NEXT_STATION) { ! 284: ConfigureParams.System.bTurbo = false; ! 285: } ! 286: if (ConfigureParams.System.bColor) { ! 287: ConfigureParams.System.bColor = false; 1.1.1.3 root 288: } else { 1.1.1.4 ! root 289: ConfigureParams.System.bColor = true; ! 290: } ! 291: ConfigureParams.System.nMachineType = NEXT_STATION; ! 292: get_default_values(); ! 293: break; ! 294: ! 295: case DLGSYS_SLABTURBO: ! 296: if (ConfigureParams.System.bTurbo && ! 297: ConfigureParams.System.nMachineType==NEXT_STATION) { 1.1.1.3 root 298: ConfigureParams.System.bTurbo = false; 1.1.1.4 ! root 299: } else { ! 300: ConfigureParams.System.bTurbo = true; 1.1.1.3 root 301: } 1.1.1.4 ! root 302: ConfigureParams.System.nMachineType = NEXT_STATION; 1.1.1.3 root 303: get_default_values(); 304: break; 305: 306: case DLGSYS_CUSTOMIZE: 307: Dialog_AdvancedDlg(); 308: break; 309: 310: case DLGSYS_RESET: 311: get_default_values(); 312: break; 313: 314: default: 315: break; 316: } 1.1.1.4 ! root 317: ! 318: print_system_overview(); 1.1.1.3 root 319: } 320: while (but != DLGSYS_EXIT && but != SDLGUI_QUIT 321: && but != SDLGUI_ERROR && !bQuitProgram); 322: 1.1.1.4 ! root 323: 1.1.1.3 root 324: /* Obsolete */ 325: ConfigureParams.System.bCompatibleCpu = 1; 326: ConfigureParams.System.bBlitter = 0; 327: ConfigureParams.System.bRealTimeClock = 0; 328: ConfigureParams.System.bPatchTimerD = 0; 329: ConfigureParams.System.bAddressSpace24 = 0; 330: ConfigureParams.System.bCycleExactCpu = 0; 331: ConfigureParams.System.bCompatibleFPU = 1; 332: ConfigureParams.System.bMMU = 1; 1.1.1.2 root 333: } 1.1.1.3 root 334:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.