uvmac/setup/SPOTHRCF.c
InvisibleUp a8e9bc990e Started a rewrite of the makefile generator.
Probably not worth it, let's be honest...
2019-07-27 14:58:45 -04:00

906 lines
25 KiB
C

/*
SPOTHRCF.i
Copyright (C) 2008 Paul C. Pratt
You can redistribute this file and/or modify it under the terms
of version 2 of the GNU General Public License as published by
the Free Software Foundation. You should have received a copy
of the license along with this file; see the file COPYING.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
license for more details.
*/
/*
program SPecific write OTHer ConFiguration files
*/
#include "COREDEFS.h"
LOCALPROC WriteAppCNFGGLOBContents(void)
{
WriteCommonCNFGGLOBContents();
if (cur_mIIorIIX) {
Write64bitConfig();
}
WriteBlankLineToDestFile();
WriteDestFileLn(
"/* capabilities provided by platform specific code */");
WriteBlankLineToDestFile();
WriteCompCondBool("MySoundEnabled", MySoundEnabled);
WriteAppSpecificCNFGGLOBoptions();
}
LOCALPROC WriteBldOpts(void)
{
Branch = MajorVersion;
WrtOptGNSettings();
WrtOptSPSettings();
}
LOCALPROC WriteAppCNFGRAPIContents(void)
{
WriteCommonCNFGRAPIContents();
WriteAppSpecificCNFGRAPIoptions();
WriteBlankLineToDestFile();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define kBldOpts \"");
WriteBldOpts();
WriteCStrToDestFile("\"");
WriteEndDestFileLn();
}
LOCALPROC WriteOneWire(char *a, char *b)
{
WriteBlankLineToDestFile();
WriteBgnDestFileLn();
WriteCStrToDestFile("\tWire_");
WriteCStrToDestFile(a);
WriteCStrToDestFile("_");
WriteCStrToDestFile(b);
WriteCStrToDestFile(",");
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define ");
WriteCStrToDestFile(b);
WriteCStrToDestFile(" (Wires[Wire_");
WriteCStrToDestFile(a);
WriteCStrToDestFile("_");
WriteCStrToDestFile(b);
WriteCStrToDestFile("])");
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define ");
WriteCStrToDestFile(a);
WriteCStrToDestFile(" (Wires[Wire_");
WriteCStrToDestFile(a);
WriteCStrToDestFile("_");
WriteCStrToDestFile(b);
WriteCStrToDestFile("])");
WriteEndDestFileLn();
}
LOCALPROC WriteConfigureWires(void)
{
WriteDestFileLn(
"/* the Wire variables are 1/0, not true/false */");
WriteBlankLineToDestFile();
WriteDestFileLn("enum {");
if (cur_mIIorIIX) {
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_unknown_SoundDisable,");
WriteDestFileLn(
"#define SoundDisable (Wires[Wire_unknown_SoundDisable])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_unknown_SoundVolb0,");
WriteDestFileLn(
"#define SoundVolb0 (Wires[Wire_unknown_SoundVolb0])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_unknown_SoundVolb1,");
WriteDestFileLn(
"#define SoundVolb1 (Wires[Wire_unknown_SoundVolb1])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_unknown_SoundVolb2,");
WriteDestFileLn(
"#define SoundVolb2 (Wires[Wire_unknown_SoundVolb2])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iA0_unknown,");
WriteDestFileLn(
"#define VIA1_iA0 (Wires[Wire_VIA1_iA0_unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iA1_unknown,");
WriteDestFileLn(
"#define VIA1_iA1 (Wires[Wire_VIA1_iA1_unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iA2_unknown,");
WriteDestFileLn(
"#define VIA1_iA2 (Wires[Wire_VIA1_iA2_unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn(
"\tWire_VIA1_iB7_unknown,"
" /* for compatibility with SoundDisable */");
WriteDestFileLn(
"#define VIA1_iB7 (Wires[Wire_VIA1_iB7_unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA2_InterruptRequest,");
WriteDestFileLn(
"#define VIA2_InterruptRequest"
" (Wires[Wire_VIA2_InterruptRequest])");
WriteDestFileLn(
"#define VIA2_interruptChngNtfy VIAorSCCinterruptChngNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA2_iA7_unknown,");
WriteDestFileLn(
"#define VIA2_iA7 (Wires[Wire_VIA2_iA7_unknown])");
WriteDestFileLn(
"#define VIA2_iA7_ChangeNtfy Addr32_ChangeNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA2_iA6_unknown,");
WriteDestFileLn(
"#define VIA2_iA6 (Wires[Wire_VIA2_iA6_unknown])");
WriteDestFileLn(
"#define VIA2_iA6_ChangeNtfy Addr32_ChangeNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA2_iB7_unknown,");
WriteDestFileLn(
"#define VIA2_iB7 (Wires[Wire_VIA2_iB7_unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA2_iCB2_unknown,");
WriteDestFileLn(
"#define VIA2_iCB2 (Wires[Wire_VIA2_iCB2_unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA2_iB2_PowerOff,");
WriteDestFileLn(
"#define VIA2_iB2 (Wires[Wire_VIA2_iB2_PowerOff])");
WriteDestFileLn(
"#define VIA2_iB2_ChangeNtfy PowerOff_ChangeNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA2_iB3_Addr32,");
WriteDestFileLn(
"#define VIA2_iB3 (Wires[Wire_VIA2_iB3_Addr32])");
WriteDestFileLn(
"#define Addr32 (Wires[Wire_VIA2_iB3_Addr32])");
WriteDestFileLn(
"#define VIA2_iB3_ChangeNtfy Addr32_ChangeNtfy");
}
if (cur_mdl <= gbk_mdl_Classic) {
WriteOneWire("VIA1_iA0", "SoundVolb0");
WriteOneWire("VIA1_iA1", "SoundVolb1");
WriteOneWire("VIA1_iA2", "SoundVolb2");
}
if ((cur_mdl <= gbk_mdl_Plus) || cur_mIIorIIX)
{
WriteOneWire("VIA1_iA4", "MemOverlay");
WriteDestFileLn(
"#define VIA1_iA4_ChangeNtfy MemOverlay_ChangeNtfy");
} else {
if (cur_mdl <= gbk_mdl_Classic) {
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iA4_DriveSel,");
WriteDestFileLn(
"#define VIA1_iA4 (Wires[Wire_VIA1_iA4_DriveSel])");
}
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_MemOverlay,");
WriteDestFileLn("#define MemOverlay (Wires[Wire_MemOverlay])");
}
if (cur_mdl <= gbk_mdl_Classic) {
WriteOneWire("VIA1_iA6", "SCRNvPage2");
}
if (gbk_mdl_PB100 == cur_mdl) {
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_SCCwaitrq,");
WriteDestFileLn("#define SCCwaitrq (Wires[Wire_SCCwaitrq])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iA0_PmuBus0,");
WriteDestFileLn("\tWire_VIA1_iA1_PmuBus1,");
WriteDestFileLn("\tWire_VIA1_iA2_PmuBus2,");
WriteDestFileLn("\tWire_VIA1_iA3_PmuBus3,");
WriteDestFileLn("\tWire_VIA1_iA4_PmuBus4,");
WriteDestFileLn("\tWire_VIA1_iA5_PmuBus5,");
WriteDestFileLn("\tWire_VIA1_iA6_PmuBus6,");
WriteDestFileLn("\tWire_VIA1_iA7_PmuBus7,");
WriteBlankLineToDestFile();
WriteDestFileLn(
"#define VIA1_iA0 (Wires[Wire_VIA1_iA0_PmuBus0])");
WriteDestFileLn(
"#define VIA1_iA1 (Wires[Wire_VIA1_iA1_PmuBus1])");
WriteDestFileLn(
"#define VIA1_iA2 (Wires[Wire_VIA1_iA2_PmuBus2])");
WriteDestFileLn(
"#define VIA1_iA3 (Wires[Wire_VIA1_iA3_PmuBus3])");
WriteDestFileLn(
"#define VIA1_iA4 (Wires[Wire_VIA1_iA4_PmuBus4])");
WriteDestFileLn(
"#define VIA1_iA5 (Wires[Wire_VIA1_iA5_PmuBus5])");
WriteDestFileLn(
"#define VIA1_iA6 (Wires[Wire_VIA1_iA6_PmuBus6])");
WriteDestFileLn(
"#define VIA1_iA7 (Wires[Wire_VIA1_iA7_PmuBus7])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB0_PmuToReady,");
WriteDestFileLn(
"#define VIA1_iB0 (Wires[Wire_VIA1_iB0_PmuToReady])");
WriteDestFileLn(
"#define PmuToReady (Wires[Wire_VIA1_iB0_PmuToReady])");
WriteDestFileLn(
"#define VIA1_iB0_ChangeNtfy PmuToReady_ChangeNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB1_PmuFromReady,");
WriteDestFileLn(
"#define VIA1_iB1 (Wires[Wire_VIA1_iB1_PmuFromReady])");
WriteDestFileLn(
"#define PmuFromReady (Wires[Wire_VIA1_iB1_PmuFromReady])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB2_Unknown,");
WriteDestFileLn(
"#define VIA1_iB2 (Wires[Wire_VIA1_iB2_Unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB3_Unknown,");
WriteDestFileLn(
"#define VIA1_iB3 (Wires[Wire_VIA1_iB3_Unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB4_Unknown,");
WriteDestFileLn(
"#define VIA1_iB4 (Wires[Wire_VIA1_iB4_Unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB5_Unknown,");
WriteDestFileLn(
"#define VIA1_iB5 (Wires[Wire_VIA1_iB5_Unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB6_Unknown,");
WriteDestFileLn(
"#define VIA1_iB6 (Wires[Wire_VIA1_iB6_Unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB7_Unknown,");
WriteDestFileLn(
"#define VIA1_iB7 (Wires[Wire_VIA1_iB7_Unknown])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iCB2_Unknown,");
WriteDestFileLn(
"#define VIA1_iCB2 (Wires[Wire_VIA1_iCB2_Unknown])");
} else {
WriteOneWire("VIA1_iA5", "IWMvSel");
WriteOneWire("VIA1_iA7", "SCCwaitrq");
WriteOneWire("VIA1_iB0", "RTCdataLine");
WriteDestFileLn(
"#define VIA1_iB0_ChangeNtfy RTCdataLine_ChangeNtfy");
WriteOneWire("VIA1_iB1", "RTCclock");
WriteDestFileLn(
"#define VIA1_iB1_ChangeNtfy RTCclock_ChangeNtfy");
WriteOneWire("VIA1_iB2", "RTCunEnabled");
WriteDestFileLn(
"#define VIA1_iB2_ChangeNtfy RTCunEnabled_ChangeNtfy");
if (cur_mdl <= gbk_mdl_Plus) {
WriteOneWire("VIA1_iA3", "SoundBuffer");
WriteOneWire("VIA1_iB3", "MouseBtnUp");
WriteOneWire("VIA1_iB4", "MouseX2");
WriteOneWire("VIA1_iB5", "MouseY2");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iCB2_KybdDat,");
WriteDestFileLn(
"#define VIA1_iCB2 (Wires[Wire_VIA1_iCB2_KybdDat])");
WriteDestFileLn(
"#define VIA1_iCB2_ChangeNtfy Kybd_DataLineChngNtfy");
} else {
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iA3_SCCvSync,");
WriteDestFileLn(
"#define VIA1_iA3 (Wires[Wire_VIA1_iA3_SCCvSync])");
WriteOneWire("VIA1_iB3", "ADB_Int");
WriteOneWire("VIA1_iB4", "ADB_st0");
WriteDestFileLn(
"#define VIA1_iB4_ChangeNtfy ADBstate_ChangeNtfy");
WriteOneWire("VIA1_iB5", "ADB_st1");
WriteDestFileLn(
"#define VIA1_iB5_ChangeNtfy ADBstate_ChangeNtfy");
WriteOneWire("VIA1_iCB2", "ADB_Data");
WriteDestFileLn(
"#define VIA1_iCB2_ChangeNtfy ADB_DataLineChngNtfy");
}
}
if (cur_mdl <= gbk_mdl_Plus) {
WriteOneWire("VIA1_iB6", "SCRNbeamInVid");
} else if (cur_mdl <= gbk_mdl_Classic) {
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_iB6_SCSIintenable,");
WriteDestFileLn(
"#define VIA1_iB6 (Wires[Wire_VIA1_iB6_SCSIintenable])");
}
if (cur_mdl <= gbk_mdl_Classic) {
WriteOneWire("VIA1_iB7", "SoundDisable");
}
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VIA1_InterruptRequest,");
WriteDestFileLn(
"#define VIA1_InterruptRequest"
" (Wires[Wire_VIA1_InterruptRequest])");
WriteDestFileLn(
"#define VIA1_interruptChngNtfy VIAorSCCinterruptChngNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_SCCInterruptRequest,");
WriteDestFileLn(
"#define SCCInterruptRequest"
" (Wires[Wire_SCCInterruptRequest])");
WriteDestFileLn(
"#define SCCinterruptChngNtfy VIAorSCCinterruptChngNtfy");
if (cur_mdl <= gbk_mdl_Plus) {
} else {
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_ADBMouseDisabled,");
WriteDestFileLn(
"#define ADBMouseDisabled (Wires[Wire_ADBMouseDisabled])");
}
if (cur_mIIorIIX) {
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VBLinterrupt,");
WriteDestFileLn(
"#define Vid_VBLinterrupt (Wires[Wire_VBLinterrupt])");
WriteDestFileLn("#define VIA2_iA0 (Wires[Wire_VBLinterrupt])");
WriteBlankLineToDestFile();
WriteDestFileLn("\tWire_VBLintunenbl,");
WriteDestFileLn(
"#define Vid_VBLintunenbl (Wires[Wire_VBLintunenbl])");
}
WriteBlankLineToDestFile();
WriteDestFileLn("\tkNumWires");
WriteDestFileLn("};");
}
LOCALPROC WriteConfigureVIA1(void)
{
WriteDestFileLn("/* VIA configuration */");
if (gbk_mdl_Classic == cur_mdl) {
WriteDestFileLn("#define VIA1_ORA_FloatVal 0xF7");
} else if (cur_mIIorIIX) {
WriteDestFileLn("#define VIA1_ORA_FloatVal 0xBF");
WriteDestFileLn(
"\t/* bit 6 used to check version of hardware */");
} else {
WriteDestFileLn("#define VIA1_ORA_FloatVal 0xFF");
}
WriteDestFileLn("#define VIA1_ORB_FloatVal 0xFF");
if (cur_mdl <= gbk_mdl_Classic) {
WriteDestFileLn("#define VIA1_ORA_CanIn 0x80");
WriteDestFileLn("#define VIA1_ORA_CanOut 0x7F");
} else if (gbk_mdl_PB100 == cur_mdl) {
WriteDestFileLn("#define VIA1_ORA_CanIn 0xFF");
WriteDestFileLn("#define VIA1_ORA_CanOut 0xFF");
} else if (cur_mIIorIIX) {
WriteDestFileLn("#define VIA1_ORA_CanIn 0x80");
WriteDestFileLn("#define VIA1_ORA_CanOut 0x3F");
} else {
WriteDestFileLn("#define VIA1_ORA_CanIn 0x00");
WriteDestFileLn("#define VIA1_ORA_CanOut 0x00");
}
if (cur_mdl <= gbk_mdl_Plus) {
WriteDestFileLn("#define VIA1_ORB_CanIn 0x79");
WriteDestFileLn("#define VIA1_ORB_CanOut 0x87");
} else if (cur_mdl <= gbk_mdl_Classic) {
WriteDestFileLn("#define VIA1_ORB_CanIn 0x09");
WriteDestFileLn("#define VIA1_ORB_CanOut 0xF7");
} else if (gbk_mdl_PB100 == cur_mdl) {
WriteDestFileLn("#define VIA1_ORB_CanIn 0x02");
WriteDestFileLn("#define VIA1_ORB_CanOut 0xFD");
} else if (cur_mIIorIIX) {
WriteDestFileLn("#define VIA1_ORB_CanIn 0x09");
WriteDestFileLn("#define VIA1_ORB_CanOut 0xB7");
} else {
WriteDestFileLn("#define VIA1_ORB_CanIn 0x00");
WriteDestFileLn("#define VIA1_ORB_CanOut 0x00");
}
if (cur_mdl <= gbk_mdl_Plus) {
WriteDestFileLn("#define VIA1_IER_Never0 (1 << 1)");
WriteDestFileLn(
"#define VIA1_IER_Never1 ((1 << 3) | (1 << 4))");
} else if (cur_mdl <= gbk_mdl_Classic) {
WriteDestFileLn("#define VIA1_IER_Never0 0x00");
WriteDestFileLn(
"#define VIA1_IER_Never1 ((1 << 3) | (1 << 4))");
} else if (gbk_mdl_PB100 == cur_mdl) {
WriteDestFileLn("#define VIA1_IER_Never0 0x00");
WriteDestFileLn("#define VIA1_IER_Never1 0x0C");
} else if (cur_mIIorIIX) {
WriteDestFileLn("#define VIA1_IER_Never0 0x00");
WriteDestFileLn("#define VIA1_IER_Never1 0x58");
} else {
WriteDestFileLn("#define VIA1_IER_Never0 0xFF");
WriteDestFileLn("#define VIA1_IER_Never1 0xFF");
}
if (gbk_mdl_PB100 == cur_mdl) {
WriteDestFileLn("#define VIA1_CB2modesAllowed 0x03");
WriteDestFileLn("#define VIA1_CA2modesAllowed 0x03");
} else {
WriteDestFileLn("#define VIA1_CB2modesAllowed 0x01");
WriteDestFileLn("#define VIA1_CA2modesAllowed 0x01");
}
}
LOCALPROC WriteConfigureVIA2(void)
{
WriteDestFileLn("/* VIA 2 configuration */");
WriteDestFileLn("#define VIA2_ORA_FloatVal 0xFF");
WriteDestFileLn("#define VIA2_ORB_FloatVal 0xFF");
if (cur_mIIorIIX) {
WriteDestFileLn("#define VIA2_ORA_CanIn 0x01");
WriteDestFileLn("#define VIA2_ORA_CanOut 0xC0");
} else {
WriteDestFileLn("#define VIA2_ORA_CanIn 0x00");
WriteDestFileLn("#define VIA2_ORA_CanOut 0x00");
}
if (cur_mIIorIIX) {
WriteDestFileLn("#define VIA2_ORB_CanIn 0x00");
WriteDestFileLn("#define VIA2_ORB_CanOut 0x8C");
} else {
WriteDestFileLn("#define VIA2_ORB_CanIn 0x00");
WriteDestFileLn("#define VIA2_ORB_CanOut 0x00");
}
if (cur_mIIorIIX) {
WriteDestFileLn("#define VIA2_IER_Never0 0x00");
WriteDestFileLn("#define VIA2_IER_Never1 0xED");
} else {
WriteDestFileLn("#define VIA2_IER_Never0 0xFF");
WriteDestFileLn("#define VIA2_IER_Never1 0xFF");
}
WriteDestFileLn("#define VIA2_CB2modesAllowed 0x01");
WriteDestFileLn("#define VIA2_CA2modesAllowed 0x01");
}
LOCALPROC WriteAppSTRCONSTcontents(void)
{
char *s;
switch (gbo_lang) {
case gbk_lang_eng:
s = "ENG";
break;
case gbk_lang_fre:
s = "FRE";
break;
case gbk_lang_ita:
s = "ITA";
break;
case gbk_lang_ger:
s = "GER";
break;
case gbk_lang_dut:
s = "DUT";
break;
case gbk_lang_spa:
s = "SPA";
break;
case gbk_lang_pol:
s = "POL";
break;
case gbk_lang_ptb:
s = "PTB";
break;
case gbk_lang_cat:
s = "CAT";
break;
case gbk_lang_cze:
s = "CZE";
break;
case gbk_lang_srl:
s = "SRL";
break;
default:
s = "???";
break;
}
WriteBgnDestFileLn();
WriteCStrToDestFile("#include ");
WriteQuoteToDestFile();
WriteCStrToDestFile("STRCN");
WriteCStrToDestFile(s);
WriteCStrToDestFile(".h");
WriteQuoteToDestFile();
WriteEndDestFileLn();
}
LOCALPROC WriteAppSOUNDGLUcontents(void)
{
char *s;
switch (gbo_sndapi) {
case gbk_sndapi_alsa:
s = "ALSA";
break;
case gbk_sndapi_ddsp:
s = "DDSP";
break;
default:
s = "???";
break;
}
WriteBgnDestFileLn();
WriteCStrToDestFile("#include ");
WriteQuoteToDestFile();
WriteCStrToDestFile("SGLU");
WriteCStrToDestFile(s);
WriteCStrToDestFile(".h");
WriteQuoteToDestFile();
WriteEndDestFileLn();
}
LOCALPROC WriteAppEMCONFIGcontents(void)
{
WriteDestFileLn("/*");
++DestFileIndent;
WriteDestFileLn(
"Configuration options used by platform independent code.");
WriteConfigurationWarning();
--DestFileIndent;
WriteDestFileLn("*/");
WriteBlankLineToDestFile();
WriteCompCondBool("EmClassicKbrd", EmClassicKbrd);
WriteCompCondBool("EmADB", EmADB);
WriteCompCondBool("EmRTC", EmRTC);
WriteCompCondBool("EmPMU", EmPMU);
WriteCompCondBool("EmVIA2", EmVIA2);
WriteCompCondBool("Use68020", em_cpu_vers >= 2);
WriteCompCondBool("EmFPU",
cur_mIIorIIX);
WriteCompCondBool("EmMMU", falseblnr);
WriteCompCondBool("EmASC", EmASC);
WriteBlankLineToDestFile();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define CurEmMd kEmMd_");
WriteCStrToDestFile(GetModelName(cur_mdl));
WriteEndDestFileLn();
WriteBlankLineToDestFile();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define kMyClockMult ");
if (cur_mIIorIIX) {
WriteCStrToDestFile("2");
} else {
WriteCStrToDestFile("1");
}
WriteEndDestFileLn();
WriteBlankLineToDestFile();
WriteCompCondBool("WantCycByPriOp", timingacc != 0);
WriteCompCondBool("WantCloserCyc", timingacc >= 2);
if (gbk_ide_mvc == cur_ide) {
if (gbk_cpufam_x64 == gbo_cpufam) {
WriteBlankLineToDestFile();
WriteDestFileLn("#define r_pc_p \"r15\"");
WriteDestFileLn("#define r_MaxCyclesToGo \"r14\"");
WriteDestFileLn("#define r_pc_pHi \"r13\"");
}
if (gbk_cpufam_ppc == gbo_cpufam) {
WriteBlankLineToDestFile();
WriteDestFileLn("#define r_regs \"r14\"");
WriteDestFileLn("#define r_pc_p \"r15\"");
WriteDestFileLn("#define r_MaxCyclesToGo \"r16\"");
WriteDestFileLn("#define r_pc_pHi \"r17\"");
}
if (gbk_cpufam_arm == gbo_cpufam) {
WriteBlankLineToDestFile();
WriteDestFileLn("#define r_regs \"r4\"");
WriteDestFileLn("#define r_pc_p \"r5\"");
if (gbk_targ_wcar != cur_targ) {
WriteDestFileLn("#define r_MaxCyclesToGo \"r6\"");
WriteDestFileLn("#define r_pc_pHi \"r7\"");
}
}
}
WriteBlankLineToDestFile();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define kRAMa_Size ");
WriteCStrToDestFile("0x");
WriteHexLongToOutput(1 << RAMa_Size);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define kRAMb_Size ");
if (0 == RAMb_Size) {
WriteCStrToDestFile("0");
} else {
WriteCStrToDestFile("0x");
WriteHexLongToOutput(1 << RAMb_Size);
}
WriteEndDestFileLn();
WriteBlankLineToDestFile();
if (NeedScrnHack) {
WriteCompCondBool("UseLargeScreenHack", NeedScrnHack);
}
WriteCompCondBool("IncludeVidMem", NeedVidMem);
if (NeedVidMem) {
WriteBgnDestFileLn();
WriteCStrToDestFile("#define kVidMemRAM_Size ");
WriteCStrToDestFile("0x");
WriteHexLongToOutput(VidMemSize);
WriteEndDestFileLn();
}
WriteBlankLineToDestFile();
WriteCompCondBool("EmVidCard", EmVidCard);
if (EmVidCard) {
WriteDestFileLn("#define kVidROM_Size 0x000800");
}
WriteBlankLineToDestFile();
if (cur_mIIorIIX) {
WriteDestFileLn("#define MaxATTListN 20");
} else {
WriteDestFileLn("#define MaxATTListN 16");
}
WriteCompCondBool("IncludeExtnPbufs",
(! WantMinExtn) && (gbk_apifam_gtk != gbo_apifam)
&& (gbk_apifam_nds != gbo_apifam));
WriteCompCondBool("IncludeExtnHostTextClipExchange",
(! WantMinExtn) && (gbk_apifam_gtk != gbo_apifam)
&& (gbk_apifam_sdl != gbo_apifam)
&& (gbk_apifam_nds != gbo_apifam));
WriteBlankLineToDestFile();
WriteCompCondBool("Sony_SupportDC42", SonySupportDC42);
WriteCompCondBool("Sony_SupportTags", SonySupportTags);
WriteCompCondBool("Sony_WantChecksumsUpdated",
SonyWantChecksumsUpdated);
WriteDestFileLn("#define Sony_VerifyChecksums 0");
WriteBgnDestFileLn();
WriteCStrToDestFile("#define CaretBlinkTime 0x");
WriteHexByteToOutput(cur_CaretBlinkTime);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define SpeakerVol 0x");
WriteHexByteToOutput(cur_SpeakerVol);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define DoubleClickTime 0x");
WriteHexByteToOutput(cur_DoubleClickTime);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define MenuBlink 0x");
WriteHexByteToOutput(cur_MenuBlink);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define AutoKeyThresh 0x");
WriteHexByteToOutput(cur_AutoKeyThresh);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define AutoKeyRate 0x");
WriteHexByteToOutput(cur_AutoKeyRate);
WriteEndDestFileLn();
if (cur_mIIorIIX) {
WriteBgnDestFileLn();
WriteCStrToDestFile("#define pr_HilColRed 0x");
WriteHexWordToOutput(cur_HilColRed);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define pr_HilColGreen 0x");
WriteHexWordToOutput(cur_HilColGreen);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define pr_HilColBlue 0x");
WriteHexWordToOutput(cur_HilColBlue);
WriteEndDestFileLn();
}
if (! WantAutoLocation) {
WriteBgnDestFileLn();
WriteCStrToDestFile("#define CurMacLatitude 0x");
WriteHexLongToOutput(cur_InitLatitude);
WriteEndDestFileLn();
WriteBgnDestFileLn();
WriteCStrToDestFile("#define CurMacLongitude 0x");
WriteHexLongToOutput(cur_InitLongitude);
WriteEndDestFileLn();
}
if (! WantAutoTimeZone) {
WriteBgnDestFileLn();
WriteCStrToDestFile("#define CurMacDelta 0x");
WriteHexLongToOutput(((WantTzDST ? 1UL : 0) << 31)
| (((ui5r)cur_TzDeltS) & 0x00FFFFFF));
WriteEndDestFileLn();
}
WriteBlankLineToDestFile();
WriteBlankLineToDestFile();
WriteConfigureWires();
WriteBlankLineToDestFile();
WriteBlankLineToDestFile();
WriteConfigureVIA1();
if (EmVIA2) {
WriteBlankLineToDestFile();
WriteConfigureVIA2();
}
WriteBlankLineToDestFile();
if (cur_mdl <= gbk_mdl_Plus) {
WriteDestFileLn("#define Mouse_Enabled SCC_InterruptsEnabled");
} else {
WriteDestFileLn("#define Mouse_Enabled() (! ADBMouseDisabled)");
}
WriteBlankLineToDestFile();
WriteDestFileLn(
"#define VIA1_iCA1_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy");
WriteDestFileLn(
"#define Sixtieth_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn(
"#define VIA1_iCA2_PulseNtfy"
" VIA1_iCA2_RTC_OneSecond_PulseNtfy");
WriteDestFileLn(
"#define RTC_OneSecond_PulseNtfy"
" VIA1_iCA2_RTC_OneSecond_PulseNtfy");
if (cur_mIIorIIX) {
WriteBlankLineToDestFile();
WriteDestFileLn(
"#define VIA2_iCA1_PulseNtfy"
" VIA2_iCA1_Vid_VBLinterrupt_PulseNtfy");
WriteDestFileLn(
"#define Vid_VBLinterrupt_PulseNotify"
" VIA2_iCA1_Vid_VBLinterrupt_PulseNtfy");
WriteBlankLineToDestFile();
WriteDestFileLn(
"#define VIA2_iCB1_PulseNtfy"
" VIA2_iCB1_ASC_interrupt_PulseNtfy");
WriteDestFileLn(
"#define ASC_interrupt_PulseNtfy"
" VIA2_iCB1_ASC_interrupt_PulseNtfy");
}
WriteBlankLineToDestFile();
WriteDestFileLn("#define GetSoundInvertTime VIA1_GetT1InvertTime");
if (EmClassicKbrd) {
WriteBlankLineToDestFile();
WriteDestFileLn("#define KYBD_ShiftInData VIA1_ShiftOutData");
WriteDestFileLn("#define KYBD_ShiftOutData VIA1_ShiftInData");
}
if (EmADB) {
WriteBlankLineToDestFile();
WriteDestFileLn("#define ADB_ShiftInData VIA1_ShiftOutData");
WriteDestFileLn("#define ADB_ShiftOutData VIA1_ShiftInData");
}
if (! WantDisableRomCheck) {
WriteCompCondBool("DisableRomCheck", WantDisableRomCheck);
}
if (! WantDisableRamTest) {
WriteCompCondBool("DisableRamTest", WantDisableRamTest);
}
if (gbk_AHM_none != cur_AltHappyMac) {
WriteBgnDestFileLn();
WriteCStrToDestFile("#define CurAltHappyMac kAHM_");
WriteCStrToDestFile(GetAltHappyMacName(cur_AltHappyMac));
WriteEndDestFileLn();
}
WriteBlankLineToDestFile();
if (cur_mIIorIIX) {
WriteDestFileLn("#define kExtn_Block_Base 0x50F0C000");
} else {
WriteDestFileLn("#define kExtn_Block_Base 0x00F40000");
}
WriteDestFileLn("#define kExtn_ln2Spc 5");
WriteBlankLineToDestFile();
if (gbk_mdl_PB100 == cur_mdl) {
WriteDestFileLn("#define kROM_Base 0x00900000");
} else if (cur_mIIorIIX) {
WriteDestFileLn("#define kROM_Base 0x00800000");
} else {
WriteDestFileLn("#define kROM_Base 0x00400000");
}
WriteDestFileLn("#define kROM_ln2Spc 20");
WriteBlankLineToDestFile();
WriteCompCondBool("WantDisasm", WantDisasm);
WriteCompCondBool("ExtraAbnormalReports", falseblnr);
}
LOCALPROC WriteAppSpecificConfigFiles(void)
{
WriteADstFile1("my_config_d",
"CNFGGLOB", ".h", "C Configuration file",
WriteAppCNFGGLOBContents);
WriteADstFile1("my_config_d",
"CNFGRAPI", ".h", "C API Configuration file",
WriteAppCNFGRAPIContents);
WriteADstFile1("my_config_d",
"EMCONFIG", ".h", "C Platform Independent Configuration file",
WriteAppEMCONFIGcontents);
WriteADstFile1("my_config_d",
"STRCONST", ".h", "Language Configuration file",
WriteAppSTRCONSTcontents);
if (gbk_sndapi_none != gbo_sndapi) {
WriteADstFile1("my_config_d",
"SOUNDGLU", ".h", "Sound Configuration file",
WriteAppSOUNDGLUcontents);
}
}