this repo has no description
at main 1044 lines 28 kB view raw
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}