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