this repo has no description
1/*
2 SPOTHRCF.i
3 Copyright (C) 2008 Paul C. Pratt
4
5 You can redistribute this file and/or modify it under the terms
6 of version 2 of the GNU General Public License as published by
7 the Free Software Foundation. You should have received a copy
8 of the license along with this file; see the file COPYING.
9
10 This file is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 license for more details.
14*/
15
16/*
17 program SPecific write OTHer ConFiguration files
18*/
19
20LOCALPROC WriteAppCNFUIALLContents(void)
21{
22 WriteCommonCNFUIALLContents();
23
24 if (cur_mIIorIIX) {
25 Write64bitConfig();
26 }
27}
28
29LOCALPROC WriteAppCNFUIPICcontents(void)
30{
31 WriteDestFileLn("/*");
32 ++DestFileIndent;
33 WriteDestFileLn(
34 "see comment in PICOMMON.h");
35 WriteConfigurationWarning();
36 --DestFileIndent;
37 WriteDestFileLn("*/");
38}
39
40
41
42LOCALPROC WriteAppCNFUDALLContents(void)
43{
44 WriteDestFileLn("/*");
45 ++DestFileIndent;
46 WriteDestFileLn(
47 "see comment in OSGCOMUD.h");
48 WriteConfigurationWarning();
49 --DestFileIndent;
50 WriteDestFileLn("*/");
51
52 WriteBlankLineToDestFile();
53
54 WriteCompCondBool("MySoundEnabled", MySoundEnabled);
55
56 WriteAppSpecificCNFUDALLoptions();
57}
58
59LOCALPROC WriteBldOpts(void)
60{
61 Branch = MajorVersion;
62
63 WrtOptGNSettings();
64 WrtOptSPSettings();
65}
66
67LOCALPROC WriteAppCNFUIOSGContents(void)
68{
69 WriteCommonCNFUIOSGContents();
70
71 {
72 char *s = nullpr;
73
74 switch (gbo_apifam) {
75 case gbk_apifam_mac:
76 s = "MAC";
77 break;
78 case gbk_apifam_osx:
79 s = "OSX";
80 break;
81 case gbk_apifam_win:
82 s = "WIN";
83 break;
84 case gbk_apifam_xwn:
85 s = "XWN";
86 break;
87 case gbk_apifam_nds:
88 s = "NDS";
89 break;
90 case gbk_apifam_gtk:
91 s = "GTK";
92 break;
93 case gbk_apifam_sdl:
94 case gbk_apifam_sd2:
95 s = "SDL";
96 break;
97 case gbk_apifam_cco:
98 s = "CCO";
99 break;
100 }
101
102 if (nullpr != s) {
103 WriteBgnDestFileLn();
104 WriteCStrToDestFile("#define WantOSGLU");
105 WriteCStrToDestFile(s);
106 WriteCStrToDestFile(" 1");
107 WriteEndDestFileLn();
108 }
109 }
110
111 WriteBlankLineToDestFile();
112 WriteCDefQuote("kStrAppName", WriteStrAppUnabrevName);
113 WriteCDefQuote("kAppVariationStr", WriteAppVariationStr);
114 WriteCDefQuote("kStrCopyrightYear", WriteAppCopyrightYearStr);
115 WriteCDefQuote("kMaintainerName", WriteMaintainerName);
116 WriteCDefQuote("kStrHomePage", WriteHomePage);
117}
118
119LOCALPROC WriteAppCNFUDOSGContents(void)
120{
121 WriteCommonCNFUDOSGContents();
122 WriteAppSpecificCNFUDOSGoptions();
123
124 WriteBlankLineToDestFile();
125 WriteBgnDestFileLn();
126 WriteCStrToDestFile("#define kBldOpts \"");
127 WriteBldOpts();
128 WriteCStrToDestFile("\"");
129 WriteEndDestFileLn();
130}
131
132LOCALPROC WriteOneWire(char *a, char *b)
133{
134 WriteBlankLineToDestFile();
135
136 WriteBgnDestFileLn();
137 WriteCStrToDestFile("\tWire_");
138 WriteCStrToDestFile(a);
139 WriteCStrToDestFile("_");
140 WriteCStrToDestFile(b);
141 WriteCStrToDestFile(",");
142 WriteEndDestFileLn();
143
144 WriteBgnDestFileLn();
145 WriteCStrToDestFile("#define ");
146 WriteCStrToDestFile(b);
147 WriteCStrToDestFile(" (Wires[Wire_");
148 WriteCStrToDestFile(a);
149 WriteCStrToDestFile("_");
150 WriteCStrToDestFile(b);
151 WriteCStrToDestFile("])");
152 WriteEndDestFileLn();
153
154 WriteBgnDestFileLn();
155 WriteCStrToDestFile("#define ");
156 WriteCStrToDestFile(a);
157 WriteCStrToDestFile(" (Wires[Wire_");
158 WriteCStrToDestFile(a);
159 WriteCStrToDestFile("_");
160 WriteCStrToDestFile(b);
161 WriteCStrToDestFile("])");
162 WriteEndDestFileLn();
163}
164
165LOCALPROC WriteConfigureWires(void)
166{
167 WriteDestFileLn(
168 "/* the Wire variables are 1/0, not true/false */");
169 WriteBlankLineToDestFile();
170 WriteDestFileLn("enum {");
171 if (cur_mIIorIIX) {
172 WriteBlankLineToDestFile();
173 WriteDestFileLn("\tWire_unknown_SoundDisable,");
174 WriteDestFileLn(
175 "#define SoundDisable (Wires[Wire_unknown_SoundDisable])");
176 WriteBlankLineToDestFile();
177 WriteDestFileLn("\tWire_unknown_SoundVolb0,");
178 WriteDestFileLn(
179 "#define SoundVolb0 (Wires[Wire_unknown_SoundVolb0])");
180 WriteBlankLineToDestFile();
181 WriteDestFileLn("\tWire_unknown_SoundVolb1,");
182 WriteDestFileLn(
183 "#define SoundVolb1 (Wires[Wire_unknown_SoundVolb1])");
184 WriteBlankLineToDestFile();
185 WriteDestFileLn("\tWire_unknown_SoundVolb2,");
186 WriteDestFileLn(
187 "#define SoundVolb2 (Wires[Wire_unknown_SoundVolb2])");
188 WriteBlankLineToDestFile();
189 WriteDestFileLn("\tWire_VIA1_iA0_unknown,");
190 WriteDestFileLn(
191 "#define VIA1_iA0 (Wires[Wire_VIA1_iA0_unknown])");
192 WriteBlankLineToDestFile();
193 WriteDestFileLn("\tWire_VIA1_iA1_unknown,");
194 WriteDestFileLn(
195 "#define VIA1_iA1 (Wires[Wire_VIA1_iA1_unknown])");
196 WriteBlankLineToDestFile();
197 WriteDestFileLn("\tWire_VIA1_iA2_unknown,");
198 WriteDestFileLn(
199 "#define VIA1_iA2 (Wires[Wire_VIA1_iA2_unknown])");
200 WriteBlankLineToDestFile();
201 WriteDestFileLn(
202 "\tWire_VIA1_iB7_unknown,"
203 " /* for compatibility with SoundDisable */");
204 WriteDestFileLn(
205 "#define VIA1_iB7 (Wires[Wire_VIA1_iB7_unknown])");
206 WriteBlankLineToDestFile();
207 WriteDestFileLn("\tWire_VIA2_InterruptRequest,");
208 WriteDestFileLn(
209 "#define VIA2_InterruptRequest"
210 " (Wires[Wire_VIA2_InterruptRequest])");
211 WriteDestFileLn(
212 "#define VIA2_interruptChngNtfy VIAorSCCinterruptChngNtfy");
213 WriteBlankLineToDestFile();
214 WriteDestFileLn("\tWire_VIA2_iA7_unknown,");
215 WriteDestFileLn(
216 "#define VIA2_iA7 (Wires[Wire_VIA2_iA7_unknown])");
217 WriteDestFileLn(
218 "#define VIA2_iA7_ChangeNtfy Addr32_ChangeNtfy");
219 WriteBlankLineToDestFile();
220 WriteDestFileLn("\tWire_VIA2_iA6_unknown,");
221 WriteDestFileLn(
222 "#define VIA2_iA6 (Wires[Wire_VIA2_iA6_unknown])");
223 WriteDestFileLn(
224 "#define VIA2_iA6_ChangeNtfy Addr32_ChangeNtfy");
225 WriteBlankLineToDestFile();
226 WriteDestFileLn("\tWire_VIA2_iB7_unknown,");
227 WriteDestFileLn(
228 "#define VIA2_iB7 (Wires[Wire_VIA2_iB7_unknown])");
229 WriteBlankLineToDestFile();
230 WriteDestFileLn("\tWire_VIA2_iCB2_unknown,");
231 WriteDestFileLn(
232 "#define VIA2_iCB2 (Wires[Wire_VIA2_iCB2_unknown])");
233 WriteBlankLineToDestFile();
234 WriteDestFileLn("\tWire_VIA2_iB2_PowerOff,");
235 WriteDestFileLn(
236 "#define VIA2_iB2 (Wires[Wire_VIA2_iB2_PowerOff])");
237 WriteDestFileLn(
238 "#define VIA2_iB2_ChangeNtfy PowerOff_ChangeNtfy");
239 WriteBlankLineToDestFile();
240 WriteDestFileLn("\tWire_VIA2_iB3_Addr32,");
241 WriteDestFileLn(
242 "#define VIA2_iB3 (Wires[Wire_VIA2_iB3_Addr32])");
243 WriteDestFileLn(
244 "#define Addr32 (Wires[Wire_VIA2_iB3_Addr32])");
245 WriteDestFileLn(
246 "#define VIA2_iB3_ChangeNtfy Addr32_ChangeNtfy");
247 }
248
249 if (cur_mdl <= gbk_mdl_Classic) {
250 WriteOneWire("VIA1_iA0", "SoundVolb0");
251 WriteOneWire("VIA1_iA1", "SoundVolb1");
252 WriteOneWire("VIA1_iA2", "SoundVolb2");
253 }
254
255 if ((cur_mdl <= gbk_mdl_Plus) || cur_mIIorIIX)
256 {
257 WriteOneWire("VIA1_iA4", "MemOverlay");
258 WriteDestFileLn(
259 "#define VIA1_iA4_ChangeNtfy MemOverlay_ChangeNtfy");
260 } else {
261 if (cur_mdl <= gbk_mdl_Classic) {
262 WriteBlankLineToDestFile();
263 WriteDestFileLn("\tWire_VIA1_iA4_DriveSel,");
264 WriteDestFileLn(
265 "#define VIA1_iA4 (Wires[Wire_VIA1_iA4_DriveSel])");
266 }
267 WriteBlankLineToDestFile();
268 WriteDestFileLn("\tWire_MemOverlay,");
269 WriteDestFileLn("#define MemOverlay (Wires[Wire_MemOverlay])");
270 }
271
272 if (cur_mdl <= gbk_mdl_Classic) {
273 WriteOneWire("VIA1_iA6", "SCRNvPage2");
274 }
275
276 if (gbk_mdl_PB100 == cur_mdl) {
277 WriteBlankLineToDestFile();
278 WriteDestFileLn("\tWire_SCCwaitrq,");
279 WriteDestFileLn("#define SCCwaitrq (Wires[Wire_SCCwaitrq])");
280
281 WriteBlankLineToDestFile();
282 WriteDestFileLn("\tWire_VIA1_iA0_PmuBus0,");
283 WriteDestFileLn("\tWire_VIA1_iA1_PmuBus1,");
284 WriteDestFileLn("\tWire_VIA1_iA2_PmuBus2,");
285 WriteDestFileLn("\tWire_VIA1_iA3_PmuBus3,");
286 WriteDestFileLn("\tWire_VIA1_iA4_PmuBus4,");
287 WriteDestFileLn("\tWire_VIA1_iA5_PmuBus5,");
288 WriteDestFileLn("\tWire_VIA1_iA6_PmuBus6,");
289 WriteDestFileLn("\tWire_VIA1_iA7_PmuBus7,");
290 WriteBlankLineToDestFile();
291 WriteDestFileLn(
292 "#define VIA1_iA0 (Wires[Wire_VIA1_iA0_PmuBus0])");
293 WriteDestFileLn(
294 "#define VIA1_iA1 (Wires[Wire_VIA1_iA1_PmuBus1])");
295 WriteDestFileLn(
296 "#define VIA1_iA2 (Wires[Wire_VIA1_iA2_PmuBus2])");
297 WriteDestFileLn(
298 "#define VIA1_iA3 (Wires[Wire_VIA1_iA3_PmuBus3])");
299 WriteDestFileLn(
300 "#define VIA1_iA4 (Wires[Wire_VIA1_iA4_PmuBus4])");
301 WriteDestFileLn(
302 "#define VIA1_iA5 (Wires[Wire_VIA1_iA5_PmuBus5])");
303 WriteDestFileLn(
304 "#define VIA1_iA6 (Wires[Wire_VIA1_iA6_PmuBus6])");
305 WriteDestFileLn(
306 "#define VIA1_iA7 (Wires[Wire_VIA1_iA7_PmuBus7])");
307 WriteBlankLineToDestFile();
308 WriteDestFileLn("\tWire_VIA1_iB0_PmuToReady,");
309 WriteDestFileLn(
310 "#define VIA1_iB0 (Wires[Wire_VIA1_iB0_PmuToReady])");
311 WriteDestFileLn(
312 "#define PmuToReady (Wires[Wire_VIA1_iB0_PmuToReady])");
313 WriteDestFileLn(
314 "#define VIA1_iB0_ChangeNtfy PmuToReady_ChangeNtfy");
315 WriteBlankLineToDestFile();
316 WriteDestFileLn("\tWire_VIA1_iB1_PmuFromReady,");
317 WriteDestFileLn(
318 "#define VIA1_iB1 (Wires[Wire_VIA1_iB1_PmuFromReady])");
319 WriteDestFileLn(
320 "#define PmuFromReady (Wires[Wire_VIA1_iB1_PmuFromReady])");
321 WriteBlankLineToDestFile();
322 WriteDestFileLn("\tWire_VIA1_iB2_Unknown,");
323 WriteDestFileLn(
324 "#define VIA1_iB2 (Wires[Wire_VIA1_iB2_Unknown])");
325 WriteBlankLineToDestFile();
326 WriteDestFileLn("\tWire_VIA1_iB3_Unknown,");
327 WriteDestFileLn(
328 "#define VIA1_iB3 (Wires[Wire_VIA1_iB3_Unknown])");
329 WriteBlankLineToDestFile();
330 WriteDestFileLn("\tWire_VIA1_iB4_Unknown,");
331 WriteDestFileLn(
332 "#define VIA1_iB4 (Wires[Wire_VIA1_iB4_Unknown])");
333 WriteBlankLineToDestFile();
334 WriteDestFileLn("\tWire_VIA1_iB5_Unknown,");
335 WriteDestFileLn(
336 "#define VIA1_iB5 (Wires[Wire_VIA1_iB5_Unknown])");
337 WriteBlankLineToDestFile();
338 WriteDestFileLn("\tWire_VIA1_iB6_Unknown,");
339 WriteDestFileLn(
340 "#define VIA1_iB6 (Wires[Wire_VIA1_iB6_Unknown])");
341 WriteBlankLineToDestFile();
342 WriteDestFileLn("\tWire_VIA1_iB7_Unknown,");
343 WriteDestFileLn(
344 "#define VIA1_iB7 (Wires[Wire_VIA1_iB7_Unknown])");
345 WriteBlankLineToDestFile();
346 WriteDestFileLn("\tWire_VIA1_iCB2_Unknown,");
347 WriteDestFileLn(
348 "#define VIA1_iCB2 (Wires[Wire_VIA1_iCB2_Unknown])");
349 } else {
350 WriteOneWire("VIA1_iA5", "IWMvSel");
351
352 WriteOneWire("VIA1_iA7", "SCCwaitrq");
353
354 WriteOneWire("VIA1_iB0", "RTCdataLine");
355 WriteDestFileLn(
356 "#define VIA1_iB0_ChangeNtfy RTCdataLine_ChangeNtfy");
357
358 WriteOneWire("VIA1_iB1", "RTCclock");
359 WriteDestFileLn(
360 "#define VIA1_iB1_ChangeNtfy RTCclock_ChangeNtfy");
361
362 WriteOneWire("VIA1_iB2", "RTCunEnabled");
363 WriteDestFileLn(
364 "#define VIA1_iB2_ChangeNtfy RTCunEnabled_ChangeNtfy");
365
366 if (cur_mdl <= gbk_mdl_Plus) {
367 WriteOneWire("VIA1_iA3", "SoundBuffer");
368 WriteOneWire("VIA1_iB3", "MouseBtnUp");
369 WriteOneWire("VIA1_iB4", "MouseX2");
370 WriteOneWire("VIA1_iB5", "MouseY2");
371
372 WriteBlankLineToDestFile();
373 WriteDestFileLn("\tWire_VIA1_iCB2_KybdDat,");
374 WriteDestFileLn(
375 "#define VIA1_iCB2 (Wires[Wire_VIA1_iCB2_KybdDat])");
376 WriteDestFileLn(
377 "#define VIA1_iCB2_ChangeNtfy Kybd_DataLineChngNtfy");
378 } else {
379 WriteBlankLineToDestFile();
380 WriteDestFileLn("\tWire_VIA1_iA3_SCCvSync,");
381 WriteDestFileLn(
382 "#define VIA1_iA3 (Wires[Wire_VIA1_iA3_SCCvSync])");
383
384 WriteOneWire("VIA1_iB3", "ADB_Int");
385
386 WriteOneWire("VIA1_iB4", "ADB_st0");
387 WriteDestFileLn(
388 "#define VIA1_iB4_ChangeNtfy ADBstate_ChangeNtfy");
389
390 WriteOneWire("VIA1_iB5", "ADB_st1");
391 WriteDestFileLn(
392 "#define VIA1_iB5_ChangeNtfy ADBstate_ChangeNtfy");
393
394 WriteOneWire("VIA1_iCB2", "ADB_Data");
395 WriteDestFileLn(
396 "#define VIA1_iCB2_ChangeNtfy ADB_DataLineChngNtfy");
397 }
398 }
399
400 if (cur_mdl <= gbk_mdl_Plus) {
401 WriteOneWire("VIA1_iB6", "SCRNbeamInVid");
402 } else if (cur_mdl <= gbk_mdl_Classic) {
403 WriteBlankLineToDestFile();
404 WriteDestFileLn("\tWire_VIA1_iB6_SCSIintenable,");
405 WriteDestFileLn(
406 "#define VIA1_iB6 (Wires[Wire_VIA1_iB6_SCSIintenable])");
407 }
408
409 if (cur_mdl <= gbk_mdl_Classic) {
410 WriteOneWire("VIA1_iB7", "SoundDisable");
411 }
412
413 WriteBlankLineToDestFile();
414 WriteDestFileLn("\tWire_VIA1_InterruptRequest,");
415 WriteDestFileLn(
416 "#define VIA1_InterruptRequest"
417 " (Wires[Wire_VIA1_InterruptRequest])");
418 WriteDestFileLn(
419 "#define VIA1_interruptChngNtfy VIAorSCCinterruptChngNtfy");
420
421 WriteBlankLineToDestFile();
422 WriteDestFileLn("\tWire_SCCInterruptRequest,");
423 WriteDestFileLn(
424 "#define SCCInterruptRequest"
425 " (Wires[Wire_SCCInterruptRequest])");
426 WriteDestFileLn(
427 "#define SCCinterruptChngNtfy VIAorSCCinterruptChngNtfy");
428
429 if (cur_mdl <= gbk_mdl_Plus) {
430 } else {
431 WriteBlankLineToDestFile();
432 WriteDestFileLn("\tWire_ADBMouseDisabled,");
433 WriteDestFileLn(
434 "#define ADBMouseDisabled (Wires[Wire_ADBMouseDisabled])");
435 }
436
437 if (cur_mIIorIIX) {
438 WriteBlankLineToDestFile();
439 WriteDestFileLn("\tWire_VBLinterrupt,");
440 WriteDestFileLn(
441 "#define Vid_VBLinterrupt (Wires[Wire_VBLinterrupt])");
442 WriteDestFileLn("#define VIA2_iA0 (Wires[Wire_VBLinterrupt])");
443
444 WriteBlankLineToDestFile();
445 WriteDestFileLn("\tWire_VBLintunenbl,");
446 WriteDestFileLn(
447 "#define Vid_VBLintunenbl (Wires[Wire_VBLintunenbl])");
448 }
449
450 WriteBlankLineToDestFile();
451 WriteDestFileLn("\tkNumWires");
452 WriteDestFileLn("};");
453}
454
455LOCALPROC WriteConfigureVIA1(void)
456{
457 WriteDestFileLn("/* VIA configuration */");
458
459 if (gbk_mdl_Classic == cur_mdl) {
460 WriteDestFileLn("#define VIA1_ORA_FloatVal 0xF7");
461 } else if (cur_mIIorIIX) {
462 WriteDestFileLn("#define VIA1_ORA_FloatVal 0xBF");
463 WriteDestFileLn(
464 "\t/* bit 6 used to check version of hardware */");
465 } else {
466 WriteDestFileLn("#define VIA1_ORA_FloatVal 0xFF");
467 }
468
469 WriteDestFileLn("#define VIA1_ORB_FloatVal 0xFF");
470
471 if (cur_mdl <= gbk_mdl_Classic) {
472 WriteDestFileLn("#define VIA1_ORA_CanIn 0x80");
473 WriteDestFileLn("#define VIA1_ORA_CanOut 0x7F");
474 } else if (gbk_mdl_PB100 == cur_mdl) {
475 WriteDestFileLn("#define VIA1_ORA_CanIn 0xFF");
476 WriteDestFileLn("#define VIA1_ORA_CanOut 0xFF");
477 } else if (cur_mIIorIIX) {
478 WriteDestFileLn("#define VIA1_ORA_CanIn 0x80");
479 WriteDestFileLn("#define VIA1_ORA_CanOut 0x3F");
480 } else {
481 WriteDestFileLn("#define VIA1_ORA_CanIn 0x00");
482 WriteDestFileLn("#define VIA1_ORA_CanOut 0x00");
483 }
484
485 if (cur_mdl <= gbk_mdl_Plus) {
486 WriteDestFileLn("#define VIA1_ORB_CanIn 0x79");
487 WriteDestFileLn("#define VIA1_ORB_CanOut 0x87");
488 } else if (cur_mdl <= gbk_mdl_Classic) {
489 WriteDestFileLn("#define VIA1_ORB_CanIn 0x09");
490 WriteDestFileLn("#define VIA1_ORB_CanOut 0xF7");
491 } else if (gbk_mdl_PB100 == cur_mdl) {
492 WriteDestFileLn("#define VIA1_ORB_CanIn 0x02");
493 WriteDestFileLn("#define VIA1_ORB_CanOut 0xFD");
494 } else if (cur_mIIorIIX) {
495 WriteDestFileLn("#define VIA1_ORB_CanIn 0x09");
496 WriteDestFileLn("#define VIA1_ORB_CanOut 0xB7");
497 } else {
498 WriteDestFileLn("#define VIA1_ORB_CanIn 0x00");
499 WriteDestFileLn("#define VIA1_ORB_CanOut 0x00");
500 }
501
502 if (cur_mdl <= gbk_mdl_Plus) {
503 WriteDestFileLn("#define VIA1_IER_Never0 (1 << 1)");
504 WriteDestFileLn(
505 "#define VIA1_IER_Never1 ((1 << 3) | (1 << 4))");
506 } else if (cur_mdl <= gbk_mdl_Classic) {
507 WriteDestFileLn("#define VIA1_IER_Never0 0x00");
508 WriteDestFileLn(
509 "#define VIA1_IER_Never1 ((1 << 3) | (1 << 4))");
510 } else if (gbk_mdl_PB100 == cur_mdl) {
511 WriteDestFileLn("#define VIA1_IER_Never0 0x00");
512 WriteDestFileLn("#define VIA1_IER_Never1 0x0C");
513 } else if (cur_mIIorIIX) {
514 WriteDestFileLn("#define VIA1_IER_Never0 0x00");
515 WriteDestFileLn("#define VIA1_IER_Never1 0x58");
516 } else {
517 WriteDestFileLn("#define VIA1_IER_Never0 0xFF");
518 WriteDestFileLn("#define VIA1_IER_Never1 0xFF");
519 }
520
521 if (gbk_mdl_PB100 == cur_mdl) {
522 WriteDestFileLn("#define VIA1_CB2modesAllowed 0x03");
523 WriteDestFileLn("#define VIA1_CA2modesAllowed 0x03");
524 } else {
525 WriteDestFileLn("#define VIA1_CB2modesAllowed 0x01");
526 WriteDestFileLn("#define VIA1_CA2modesAllowed 0x01");
527 }
528}
529
530LOCALPROC WriteConfigureVIA2(void)
531{
532 WriteDestFileLn("/* VIA 2 configuration */");
533
534 WriteDestFileLn("#define VIA2_ORA_FloatVal 0xFF");
535 WriteDestFileLn("#define VIA2_ORB_FloatVal 0xFF");
536
537 if (cur_mIIorIIX) {
538 WriteDestFileLn("#define VIA2_ORA_CanIn 0x01");
539 WriteDestFileLn("#define VIA2_ORA_CanOut 0xC0");
540 } else {
541 WriteDestFileLn("#define VIA2_ORA_CanIn 0x00");
542 WriteDestFileLn("#define VIA2_ORA_CanOut 0x00");
543 }
544
545 if (cur_mIIorIIX) {
546 WriteDestFileLn("#define VIA2_ORB_CanIn 0x00");
547 WriteDestFileLn("#define VIA2_ORB_CanOut 0x8C");
548 } else {
549 WriteDestFileLn("#define VIA2_ORB_CanIn 0x00");
550 WriteDestFileLn("#define VIA2_ORB_CanOut 0x00");
551 }
552
553 if (cur_mIIorIIX) {
554 WriteDestFileLn("#define VIA2_IER_Never0 0x00");
555 WriteDestFileLn("#define VIA2_IER_Never1 0xED");
556 } else {
557 WriteDestFileLn("#define VIA2_IER_Never0 0xFF");
558 WriteDestFileLn("#define VIA2_IER_Never1 0xFF");
559 }
560
561 WriteDestFileLn("#define VIA2_CB2modesAllowed 0x01");
562 WriteDestFileLn("#define VIA2_CA2modesAllowed 0x01");
563}
564
565LOCALPROC WriteAppSTRCONSTcontents(void)
566{
567 char *s;
568
569 switch (gbo_lang) {
570 case gbk_lang_eng:
571 s = "ENG";
572 break;
573 case gbk_lang_fre:
574 s = "FRE";
575 break;
576 case gbk_lang_ita:
577 s = "ITA";
578 break;
579 case gbk_lang_ger:
580 s = "GER";
581 break;
582 case gbk_lang_dut:
583 s = "DUT";
584 break;
585 case gbk_lang_spa:
586 s = "SPA";
587 break;
588 case gbk_lang_pol:
589 s = "POL";
590 break;
591 case gbk_lang_ptb:
592 s = "PTB";
593 break;
594 case gbk_lang_cat:
595 s = "CAT";
596 break;
597 case gbk_lang_cze:
598 s = "CZE";
599 break;
600 case gbk_lang_srl:
601 s = "SRL";
602 break;
603 default:
604 s = "???";
605 break;
606 }
607
608 WriteBgnDestFileLn();
609 WriteCStrToDestFile("#include ");
610 WriteQuoteToDestFile();
611 WriteCStrToDestFile("STRCN");
612 WriteCStrToDestFile(s);
613 WriteCStrToDestFile(".h");
614 WriteQuoteToDestFile();
615 WriteEndDestFileLn();
616}
617
618LOCALPROC WriteAppSOUNDGLUcontents(void)
619{
620 char *s;
621
622 switch (gbo_sndapi) {
623 case gbk_sndapi_alsa:
624 s = "ALSA";
625 break;
626 case gbk_sndapi_ddsp:
627 s = "DDSP";
628 break;
629 default:
630 s = "???";
631 break;
632 }
633
634 WriteBgnDestFileLn();
635 WriteCStrToDestFile("#include ");
636 WriteQuoteToDestFile();
637 WriteCStrToDestFile("SGLU");
638 WriteCStrToDestFile(s);
639 WriteCStrToDestFile(".h");
640 WriteQuoteToDestFile();
641 WriteEndDestFileLn();
642}
643
644LOCALPROC WriteAppLOCALTLKcontents(void)
645{
646 char *s;
647
648 switch (gbo_lto) {
649 case gbk_lto_bpf:
650 s = "BPF";
651 break;
652 case gbk_lto_udp:
653 s = "UDP";
654 break;
655 default:
656 s = "???";
657 break;
658 }
659
660 WriteBgnDestFileLn();
661 WriteCStrToDestFile("#include ");
662 WriteQuoteToDestFile();
663 WriteCStrToDestFile("LTOVR");
664 WriteCStrToDestFile(s);
665 WriteCStrToDestFile(".h");
666 WriteQuoteToDestFile();
667 WriteEndDestFileLn();
668}
669
670LOCALPROC WriteAppCNFUDPICcontents(void)
671{
672 WriteDestFileLn("/*");
673 ++DestFileIndent;
674 WriteDestFileLn(
675 "see comment in PICOMMON.h");
676 WriteConfigurationWarning();
677 --DestFileIndent;
678 WriteDestFileLn("*/");
679
680 WriteBlankLineToDestFile();
681
682 WriteCompCondBool("EmClassicKbrd", EmClassicKbrd);
683 WriteCompCondBool("EmADB", EmADB);
684 WriteCompCondBool("EmRTC", EmRTC);
685 WriteCompCondBool("EmPMU", EmPMU);
686 WriteCompCondBool("EmVIA1", trueblnr);
687 WriteCompCondBool("EmVIA2", EmVIA2);
688 WriteCompCondBool("Use68020", em_cpu_vers >= 2);
689 WriteCompCondBool("EmFPU",
690 cur_mIIorIIX);
691 WriteCompCondBool("EmMMU", falseblnr);
692 WriteCompCondBool("EmClassicSnd", EmClassicSnd);
693 WriteCompCondBool("EmASC", EmASC);
694
695 WriteBlankLineToDestFile();
696
697 WriteBgnDestFileLn();
698 WriteCStrToDestFile("#define CurEmMd kEmMd_");
699 WriteCStrToDestFile(GetModelName(cur_mdl));
700 WriteEndDestFileLn();
701
702 WriteBlankLineToDestFile();
703
704 WriteBgnDestFileLn();
705 WriteCStrToDestFile("#define kMyClockMult ");
706 if (cur_mIIorIIX) {
707 WriteCStrToDestFile("2");
708 } else {
709 WriteCStrToDestFile("1");
710 }
711 WriteEndDestFileLn();
712
713 WriteBlankLineToDestFile();
714 WriteCompCondBool("WantCycByPriOp", timingacc != 0);
715 WriteCompCondBool("WantCloserCyc", timingacc >= 2);
716
717 WriteBlankLineToDestFile();
718 WriteDestFileLn("#define kAutoSlowSubTicks 16384");
719 WriteBgnDestFileLn();
720 WriteCStrToDestFile("#define kAutoSlowTime ");
721 if (cur_mIIorIIX) {
722 WriteCStrToDestFile("60");
723 } else {
724 WriteCStrToDestFile("34");
725 }
726 WriteEndDestFileLn();
727
728 if (gbk_ide_mvc == cur_ide) {
729 if (gbk_cpufam_x64 == gbo_cpufam) {
730 WriteBlankLineToDestFile();
731 WriteDestFileLn("#define r_pc_p \"r15\"");
732 WriteDestFileLn("#define r_MaxCyclesToGo \"r14\"");
733 WriteDestFileLn("#define r_pc_pHi \"r13\"");
734 }
735
736 if (gbk_cpufam_ppc == gbo_cpufam) {
737 WriteBlankLineToDestFile();
738 WriteDestFileLn("#define r_regs \"r14\"");
739 WriteDestFileLn("#define r_pc_p \"r15\"");
740 WriteDestFileLn("#define r_MaxCyclesToGo \"r16\"");
741 WriteDestFileLn("#define r_pc_pHi \"r17\"");
742 }
743
744 if (gbk_cpufam_arm == gbo_cpufam) {
745 WriteBlankLineToDestFile();
746 WriteDestFileLn("#define r_regs \"r4\"");
747 WriteDestFileLn("#define r_pc_p \"r5\"");
748 if (gbk_targ_wcar != cur_targ) {
749 WriteDestFileLn("#define r_MaxCyclesToGo \"r6\"");
750 WriteDestFileLn("#define r_pc_pHi \"r7\"");
751 }
752 }
753 } else if (gbk_ide_xcd == cur_ide) {
754 if (CurOfficialBin) {
755 if (gbk_cpufam_a64 == gbo_cpufam) {
756 WriteBlankLineToDestFile();
757 WriteDestFileLn("#define r_pc_p \"x15\"");
758 }
759 }
760 }
761
762 WriteBlankLineToDestFile();
763
764 WriteBgnDestFileLn();
765 WriteCStrToDestFile("#define kRAMa_Size ");
766 WriteCStrToDestFile("0x");
767 WriteHexLongToOutput(1 << RAMa_Size);
768 WriteEndDestFileLn();
769
770 WriteBgnDestFileLn();
771 WriteCStrToDestFile("#define kRAMb_Size ");
772 if (0 == RAMb_Size) {
773 WriteCStrToDestFile("0");
774 } else {
775 WriteCStrToDestFile("0x");
776 WriteHexLongToOutput(1 << RAMb_Size);
777 }
778 WriteEndDestFileLn();
779
780 WriteBlankLineToDestFile();
781
782 if (NeedScrnHack) {
783 WriteCompCondBool("UseLargeScreenHack", NeedScrnHack);
784 }
785 WriteCompCondBool("IncludeVidMem", NeedVidMem);
786 if (NeedVidMem) {
787 WriteBgnDestFileLn();
788 WriteCStrToDestFile("#define kVidMemRAM_Size ");
789 WriteCStrToDestFile("0x");
790 WriteHexLongToOutput(VidMemSize);
791 WriteEndDestFileLn();
792 }
793
794 WriteBlankLineToDestFile();
795
796 WriteCompCondBool("EmVidCard", EmVidCard);
797 if (EmVidCard) {
798 WriteDestFileLn("#define kVidROM_Size 0x000800");
799 }
800
801 WriteBlankLineToDestFile();
802
803 if (cur_mIIorIIX) {
804 WriteDestFileLn("#define MaxATTListN 20");
805 } else {
806 WriteDestFileLn("#define MaxATTListN 16");
807 }
808
809 WriteCompCondBool("IncludeExtnPbufs",
810 (! WantMinExtn) && (gbk_apifam_gtk != gbo_apifam)
811 && (gbk_apifam_nds != gbo_apifam));
812 WriteCompCondBool("IncludeExtnHostTextClipExchange",
813 (! WantMinExtn) && (gbk_apifam_gtk != gbo_apifam)
814 && (gbk_apifam_sdl != gbo_apifam)
815 && (gbk_apifam_nds != gbo_apifam));
816
817 WriteBlankLineToDestFile();
818
819 WriteCompCondBool("Sony_SupportDC42", SonySupportDC42);
820 WriteCompCondBool("Sony_SupportTags", SonySupportTags);
821 WriteCompCondBool("Sony_WantChecksumsUpdated",
822 SonyWantChecksumsUpdated);
823 WriteDestFileLn("#define Sony_VerifyChecksums 0");
824
825 WriteBgnDestFileLn();
826 WriteCStrToDestFile("#define CaretBlinkTime 0x");
827 WriteHexByteToOutput(cur_CaretBlinkTime);
828 WriteEndDestFileLn();
829
830 WriteBgnDestFileLn();
831 WriteCStrToDestFile("#define SpeakerVol 0x");
832 WriteHexByteToOutput(cur_SpeakerVol);
833 WriteEndDestFileLn();
834
835 WriteBgnDestFileLn();
836 WriteCStrToDestFile("#define DoubleClickTime 0x");
837 WriteHexByteToOutput(cur_DoubleClickTime);
838 WriteEndDestFileLn();
839
840 WriteBgnDestFileLn();
841 WriteCStrToDestFile("#define MenuBlink 0x");
842 WriteHexByteToOutput(cur_MenuBlink);
843 WriteEndDestFileLn();
844
845 WriteBgnDestFileLn();
846 WriteCStrToDestFile("#define AutoKeyThresh 0x");
847 WriteHexByteToOutput(cur_AutoKeyThresh);
848 WriteEndDestFileLn();
849
850 WriteBgnDestFileLn();
851 WriteCStrToDestFile("#define AutoKeyRate 0x");
852 WriteHexByteToOutput(cur_AutoKeyRate);
853 WriteEndDestFileLn();
854
855 if (cur_mIIorIIX) {
856 WriteBgnDestFileLn();
857 WriteCStrToDestFile("#define pr_HilColRed 0x");
858 WriteHexWordToOutput(cur_HilColRed);
859 WriteEndDestFileLn();
860
861 WriteBgnDestFileLn();
862 WriteCStrToDestFile("#define pr_HilColGreen 0x");
863 WriteHexWordToOutput(cur_HilColGreen);
864 WriteEndDestFileLn();
865
866 WriteBgnDestFileLn();
867 WriteCStrToDestFile("#define pr_HilColBlue 0x");
868 WriteHexWordToOutput(cur_HilColBlue);
869 WriteEndDestFileLn();
870 }
871
872 if (! WantAutoLocation) {
873 WriteBgnDestFileLn();
874 WriteCStrToDestFile("#define CurMacLatitude 0x");
875 WriteHexLongToOutput(cur_InitLatitude);
876 WriteEndDestFileLn();
877
878 WriteBgnDestFileLn();
879 WriteCStrToDestFile("#define CurMacLongitude 0x");
880 WriteHexLongToOutput(cur_InitLongitude);
881 WriteEndDestFileLn();
882 }
883 if (! WantAutoTimeZone) {
884 WriteBgnDestFileLn();
885 WriteCStrToDestFile("#define CurMacDelta 0x");
886 WriteHexLongToOutput(((WantTzDST ? 1UL : 0) << 31)
887 | (((ui5r)cur_TzDeltS) & 0x00FFFFFF));
888 WriteEndDestFileLn();
889 }
890
891 WriteBlankLineToDestFile();
892 WriteBlankLineToDestFile();
893
894 WriteConfigureWires();
895
896 WriteBlankLineToDestFile();
897
898
899
900 WriteBlankLineToDestFile();
901
902 WriteConfigureVIA1();
903
904
905 if (EmVIA2) {
906 WriteBlankLineToDestFile();
907 WriteConfigureVIA2();
908 }
909
910 WriteBlankLineToDestFile();
911 if (cur_mdl <= gbk_mdl_Plus) {
912 WriteDestFileLn("#define Mouse_Enabled SCC_InterruptsEnabled");
913 } else {
914 WriteDestFileLn("#define Mouse_Enabled() (! ADBMouseDisabled)");
915 }
916
917 WriteBlankLineToDestFile();
918 WriteDestFileLn(
919 "#define VIA1_iCA1_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy");
920 WriteDestFileLn(
921 "#define Sixtieth_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy");
922
923 WriteBlankLineToDestFile();
924 WriteDestFileLn(
925 "#define VIA1_iCA2_PulseNtfy"
926 " VIA1_iCA2_RTC_OneSecond_PulseNtfy");
927 WriteDestFileLn(
928 "#define RTC_OneSecond_PulseNtfy"
929 " VIA1_iCA2_RTC_OneSecond_PulseNtfy");
930
931 if (cur_mIIorIIX) {
932 WriteBlankLineToDestFile();
933 WriteDestFileLn(
934 "#define VIA2_iCA1_PulseNtfy"
935 " VIA2_iCA1_Vid_VBLinterrupt_PulseNtfy");
936 WriteDestFileLn(
937 "#define Vid_VBLinterrupt_PulseNotify"
938 " VIA2_iCA1_Vid_VBLinterrupt_PulseNtfy");
939
940 WriteBlankLineToDestFile();
941 WriteDestFileLn(
942 "#define VIA2_iCB1_PulseNtfy"
943 " VIA2_iCB1_ASC_interrupt_PulseNtfy");
944 WriteDestFileLn(
945 "#define ASC_interrupt_PulseNtfy"
946 " VIA2_iCB1_ASC_interrupt_PulseNtfy");
947 } else
948 if (gbk_mdl_PB100 == cur_mdl) {
949 WriteDestFileLn(
950 "/* !! define ASC_interrupt_PulseNtfy."
951 " but to what? */");
952 }
953
954 WriteBlankLineToDestFile();
955 WriteDestFileLn("#define GetSoundInvertTime VIA1_GetT1InvertTime");
956
957 if (EmClassicKbrd) {
958 WriteBlankLineToDestFile();
959 WriteDestFileLn("#define KYBD_ShiftInData VIA1_ShiftOutData");
960 WriteDestFileLn("#define KYBD_ShiftOutData VIA1_ShiftInData");
961 }
962 if (EmADB) {
963 WriteBlankLineToDestFile();
964 WriteDestFileLn("#define ADB_ShiftInData VIA1_ShiftOutData");
965 WriteDestFileLn("#define ADB_ShiftOutData VIA1_ShiftInData");
966 }
967
968 if (! WantDisableRomCheck) {
969 WriteCompCondBool("DisableRomCheck", WantDisableRomCheck);
970 }
971 if (! WantDisableRamTest) {
972 WriteCompCondBool("DisableRamTest", WantDisableRamTest);
973 }
974
975 if (gbk_AHM_none != cur_AltHappyMac) {
976 WriteBgnDestFileLn();
977 WriteCStrToDestFile("#define CurAltHappyMac kAHM_");
978 WriteCStrToDestFile(GetAltHappyMacName(cur_AltHappyMac));
979 WriteEndDestFileLn();
980 }
981
982 WriteBlankLineToDestFile();
983 if (cur_mIIorIIX) {
984 WriteDestFileLn("#define kExtn_Block_Base 0x50F0C000");
985 } else {
986 WriteDestFileLn("#define kExtn_Block_Base 0x00F40000");
987 }
988 WriteDestFileLn("#define kExtn_ln2Spc 5");
989
990 WriteBlankLineToDestFile();
991 if (gbk_mdl_PB100 == cur_mdl) {
992 WriteDestFileLn("#define kROM_Base 0x00900000");
993 } else if (cur_mIIorIIX) {
994 WriteDestFileLn("#define kROM_Base 0x00800000");
995 } else {
996 WriteDestFileLn("#define kROM_Base 0x00400000");
997 }
998 WriteDestFileLn("#define kROM_ln2Spc 20");
999
1000 WriteBlankLineToDestFile();
1001 WriteCompCondBool("WantDisasm", WantDisasm);
1002 WriteCompCondBool("ExtraAbnormalReports", falseblnr);
1003}
1004
1005LOCALPROC WriteAppSpecificConfigFiles(void)
1006{
1007 if (gbk_ide_prt != cur_ide) {
1008 WriteADstFile1("my_config_d",
1009 "CNFUIOSG", ".h", nullpr,
1010 WriteAppCNFUIOSGContents);
1011 WriteADstFile1("my_config_d",
1012 "CNFUIALL", ".h", nullpr,
1013 WriteAppCNFUIALLContents);
1014 WriteADstFile1("my_config_d",
1015 "CNFUIPIC", ".h", nullpr,
1016 WriteAppCNFUIPICcontents);
1017 }
1018
1019 WriteADstFile1("my_config_d",
1020 "CNFUDOSG", ".h", nullpr,
1021 WriteAppCNFUDOSGContents);
1022 WriteADstFile1("my_config_d",
1023 "CNFUDALL", ".h", nullpr,
1024 WriteAppCNFUDALLContents);
1025 WriteADstFile1("my_config_d",
1026 "CNFUDPIC", ".h", nullpr,
1027 WriteAppCNFUDPICcontents);
1028
1029 WriteADstFile1("my_config_d",
1030 "STRCONST", ".h", "Language Configuration file",
1031 WriteAppSTRCONSTcontents);
1032
1033 if (gbk_sndapi_none != gbo_sndapi) {
1034 WriteADstFile1("my_config_d",
1035 "SOUNDGLU", ".h", "Sound Configuration file",
1036 WriteAppSOUNDGLUcontents);
1037 }
1038
1039 if (gbo_lto != gbk_lto_none) {
1040 WriteADstFile1("my_config_d",
1041 "LOCALTLK", ".h", "LocalTalk Configuration file",
1042 WriteAppLOCALTLKcontents);
1043 }
1044}