|
|
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;
1.1.1.2 ! root 236: else if (advanceddlg[DLGADV_25MHZ].state & SG_SELECTED)
1.1 root 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.