/* SPBLDOPT.i Copyright (C) 2007 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 BuiLD OPTions*/ /* option: model */ enum { gbk_mdl_Twig43, gbk_mdl_Twiggy, gbk_mdl_128K, gbk_mdl_512Ke, gbk_mdl_Plus, gbk_mdl_SE, gbk_mdl_SEFDHD, gbk_mdl_Classic, gbk_mdl_PB100, gbk_mdl_II, gbk_mdl_IIx, kNumModels}; LOCALVAR int cur_mdl;LOCALVAR ui3r olv_mdl; LOCALPROC ResetModelOption(void){ cur_mdl = kListOptionAuto; olv_mdl = 0;} LOCALFUNC char * GetModelName(int i){ char *s; switch (i) { case gbk_mdl_Twig43: s = "Twig43"; break; case gbk_mdl_Twiggy: s = "Twiggy"; break; case gbk_mdl_128K: s = "128K"; break; case gbk_mdl_512Ke: s = "512Ke"; break; case gbk_mdl_Plus: s = "Plus"; break; case gbk_mdl_SE: s = "SE"; break; case gbk_mdl_SEFDHD: s = "SEFDHD"; break; case gbk_mdl_Classic: s = "Classic"; break; case gbk_mdl_PB100: s = "PB100"; break; case gbk_mdl_II: s = "II"; break; case gbk_mdl_IIx: s = "IIx"; break; default: s = "(unknown Model)"; break; } return s;} LOCALFUNC tMyErr TryAsModelOptionNot(void){ return FindNamedOption("-m", kNumModels, GetModelName, &cur_mdl, &olv_mdl);} #define dfo_mdl() gbk_mdl_Plus LOCALVAR blnr cur_mIIorIIX; LOCALFUNC tMyErr ChooseModel(void){ if (kListOptionAuto == cur_mdl) { cur_mdl = dfo_mdl(); } cur_mIIorIIX = (gbk_mdl_II == cur_mdl) || (gbk_mdl_IIx == cur_mdl); #if 0 if (cur_mIIorIIX) { if (gbk_cpufam_68k == gbo_cpufam) { err = ReportParseFailure( "Mac II emulation is not supported on Macintosh 680x0"); } }#endif return kMyErr_noErr;} LOCALPROC WrtOptModelOption(void){ WrtOptNamedOption("-m", GetModelName, cur_mdl, dfo_mdl());} /* option: horizontal resolution */ LOCALVAR uimr cur_hres;LOCALVAR ui3r olv_hres; LOCALPROC ResetHResOption(void){ olv_hres = 0;} LOCALFUNC tMyErr TryAsHResOptionNot(void){ return NumberTryAsOptionNot("-hres", (long *)&cur_hres, &olv_hres);} LOCALFUNC uimr dfo_hres(void){ uimr v; if (cur_mIIorIIX) { v = 640; } else if (gbk_mdl_PB100 == cur_mdl) { v = 640; } else { v = 512; } return v;} LOCALFUNC tMyErr ChooseHRes(void){ tMyErr err; MyPStr t; MyPStr s; if (0 == olv_hres) { cur_hres = dfo_hres(); err = kMyErr_noErr; } else { if ((cur_hres & 0x1F) != 0) { PStrFromCStr(t, "-hres must be a multiple of 32." " The next lowest multiple is "); PStrFromUimr(cur_hres & ~ 0x1F, s); PStrAppend(t, s); err = ReportParseFailPStr(t); } else if (cur_hres < 128) { err = ReportParseFailure("-hres must be >= 128"); } else if (cur_hres >= (uimr)32 * 1024) { err = ReportParseFailure("-hres must be < 32k"); } else { err = kMyErr_noErr; } } return err;} LOCALPROC WrtOptHResOption(void){ WrtOptNumberOption("-hres", cur_hres, dfo_hres());} /* option: vertical resolution */ LOCALVAR uimr cur_vres;LOCALVAR ui3r olv_vres; LOCALPROC ResetVResOption(void){ olv_vres = 0;} LOCALFUNC tMyErr TryAsVResOptionNot(void){ return NumberTryAsOptionNot("-vres", (long *)&cur_vres, &olv_vres);} LOCALFUNC uimr dfo_vres(void){ uimr v; if (cur_mIIorIIX) { v = 480; } else if (gbk_mdl_PB100 == cur_mdl) { v = 400; } else { v = 342; } return v;} LOCALFUNC tMyErr ChooseVRes(void){ tMyErr err; if (0 == olv_vres) { cur_vres = dfo_vres(); err = kMyErr_noErr; } else { if (cur_vres < 128) { err = ReportParseFailure("-vres must be >= 128"); } else if (cur_vres >= (uimr)32 * 1024) { err = ReportParseFailure("-vres must be < 32k"); } else { err = kMyErr_noErr; } } return err;} LOCALPROC WrtOptVResOption(void){ WrtOptNumberOption("-vres", cur_vres, dfo_vres());} /* option: screen depth */ LOCALVAR uimr cur_ScrnDpth;LOCALVAR ui3r olv_ScrnDpth; LOCALPROC ResetScrnDpthOption(void){ olv_ScrnDpth = 0;} LOCALFUNC tMyErr TryAsScrnDpthOptionNot(void){ return NumberTryAsOptionNot("-depth", (long *)&cur_ScrnDpth, &olv_ScrnDpth);} LOCALFUNC uimr dfo_ScrnDpth(void){ uimr v; if (cur_mIIorIIX) { v = 3; } else { v = 0; } return v;} LOCALFUNC tMyErr ChooseScrnDpth(void){ tMyErr err; err = kMyErr_noErr; if (0 == olv_ScrnDpth) { cur_ScrnDpth = dfo_ScrnDpth(); } else { if (cur_mIIorIIX) { if (cur_ScrnDpth > 5) { err = ReportParseFailure("-depth must be <= 5"); } } else { if (cur_ScrnDpth != 0) { err = ReportParseFailure( "-depth must be 0 for this model"); } } } return err;} LOCALPROC WrtOptScrnDpth(void){ WrtOptNumberOption("-depth", cur_ScrnDpth, dfo_ScrnDpth());} /* option: Initial FullScreen */ LOCALVAR blnr WantInitFullScreen;LOCALVAR ui3r olv_InitFullScreen; LOCALPROC ResetInitFullScreen(void){ WantInitFullScreen = nanblnr; olv_InitFullScreen = 0;} LOCALFUNC tMyErr TryAsInitFullScreenNot(void){ return BooleanTryAsOptionNot("-fullscreen", &WantInitFullScreen, &olv_InitFullScreen);} LOCALFUNC blnr dfo_InitFullScreen(void){ blnr v; v = gbk_targfam_wnce == gbo_targfam; return v;} LOCALFUNC tMyErr ChooseInitFullScreen(void){ tMyErr err; err = kMyErr_noErr; if (nanblnr == WantInitFullScreen) { WantInitFullScreen = dfo_InitFullScreen(); } else { if (! WantInitFullScreen) { if (gbk_targ_wcar == cur_targ) { err = ReportParseFailure( "-fullscreen 0 is not supported for -t wcar"); } } } return err;} LOCALPROC WrtOptInitFullScreen(void){ WrtOptBooleanOption("-fullscreen", WantInitFullScreen, dfo_InitFullScreen());} /* option: Variable FullScreen */ LOCALVAR blnr WantVarFullScreen;LOCALVAR ui3r olv_VarFullScreen; LOCALPROC ResetVarFullScreen(void){ WantVarFullScreen = nanblnr; olv_VarFullScreen = 0;} LOCALFUNC tMyErr TryAsVarFullScreenNot(void){ return BooleanTryAsOptionNot("-var-fullscreen", &WantVarFullScreen, &olv_VarFullScreen);} LOCALFUNC blnr dfo_VarFullScreen(void){ blnr v; if ((gbk_apifam_gtk == gbo_apifam) || (gbk_targfam_wnce == gbo_targfam)) { v = falseblnr; } else { v = trueblnr; } return v;} LOCALFUNC tMyErr ChooseVarFullScreen(void){ tMyErr err; err = kMyErr_noErr; if (nanblnr == WantVarFullScreen) { WantVarFullScreen = dfo_VarFullScreen(); } else { if (WantVarFullScreen) { if (gbk_targ_wcar == cur_targ) { err = ReportParseFailure( "-var-fullscreen is not supported for -t wcar"); } } } return err;} LOCALPROC WrtOptVarFullScreen(void){ WrtOptBooleanOption("-var-fullscreen", WantVarFullScreen, dfo_VarFullScreen());} /* option: magnification factor */ LOCALVAR uimr cur_MagFctr;LOCALVAR ui3r olv_MagFctr; LOCALPROC ResetMagFctrOption(void){ olv_MagFctr = 0;} LOCALFUNC tMyErr TryAsMagFctrOptionNot(void){ return NumberTryAsOptionNot("-mf", (long *)&cur_MagFctr, &olv_MagFctr);} LOCALFUNC uimr dfo_MagFctr(void){ uimr v; if (gbk_apifam_gtk == gbo_apifam) { /* temporary, until implemented */ v = 1; } else { v = 2; } return v;} LOCALFUNC tMyErr ChooseMagFctr(void){ tMyErr err; err = kMyErr_noErr; if (0 == olv_MagFctr) { cur_MagFctr = dfo_MagFctr(); } else { if (cur_MagFctr < 1) { err = ReportParseFailure("-mf must be >= 1"); } } return err;} LOCALPROC WrtOptMagFctrOption(void){ WrtOptNumberOption("-mf", cur_MagFctr, dfo_MagFctr());} /* option: Initial Magnify */ LOCALVAR blnr WantInitMagnify;LOCALVAR ui3r olv_InitMagnify; LOCALPROC ResetInitMagnify(void){ WantInitMagnify = nanblnr; olv_InitMagnify = 0;} LOCALFUNC tMyErr TryAsInitMagnifyNot(void){ return BooleanTryAsOptionNot("-magnify", &WantInitMagnify, &olv_InitMagnify);} #define dfo_InitMagnify() falseblnr LOCALFUNC tMyErr ChooseInitMagnify(void){ tMyErr err; err = kMyErr_noErr; if (nanblnr == WantInitMagnify) { WantInitMagnify = dfo_InitMagnify(); } else { if (WantInitMagnify && (cur_MagFctr == 1)) { err = ReportParseFailure(Lines 1–500 of 3945. Load more
/* SPBLDOPT.i Copyright (C) 2007 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 BuiLD OPTions */ /* option: model */ enum { gbk_mdl_Twig43, gbk_mdl_Twiggy, gbk_mdl_128K, gbk_mdl_512Ke, gbk_mdl_Plus, gbk_mdl_SE, gbk_mdl_SEFDHD, gbk_mdl_Classic, gbk_mdl_PB100, gbk_mdl_II, gbk_mdl_IIx, kNumModels }; LOCALVAR int cur_mdl; LOCALVAR ui3r olv_mdl; LOCALPROC ResetModelOption(void) { cur_mdl = kListOptionAuto; olv_mdl = 0; } LOCALFUNC char * GetModelName(int i) { char *s; switch (i) { case gbk_mdl_Twig43: s = "Twig43"; break; case gbk_mdl_Twiggy: s = "Twiggy"; break; case gbk_mdl_128K: s = "128K"; break; case gbk_mdl_512Ke: s = "512Ke"; break; case gbk_mdl_Plus: s = "Plus"; break; case gbk_mdl_SE: s = "SE"; break; case gbk_mdl_SEFDHD: s = "SEFDHD"; break; case gbk_mdl_Classic: s = "Classic"; break; case gbk_mdl_PB100: s = "PB100"; break; case gbk_mdl_II: s = "II"; break; case gbk_mdl_IIx: s = "IIx"; break; default: s = "(unknown Model)"; break; } return s; } LOCALFUNC tMyErr TryAsModelOptionNot(void) { return FindNamedOption("-m", kNumModels, GetModelName, &cur_mdl, &olv_mdl); } #define dfo_mdl() gbk_mdl_Plus LOCALVAR blnr cur_mIIorIIX; LOCALFUNC tMyErr ChooseModel(void) { if (kListOptionAuto == cur_mdl) { cur_mdl = dfo_mdl(); } cur_mIIorIIX = (gbk_mdl_II == cur_mdl) || (gbk_mdl_IIx == cur_mdl); #if 0 if (cur_mIIorIIX) { if (gbk_cpufam_68k == gbo_cpufam) { err = ReportParseFailure( "Mac II emulation is not supported on Macintosh 680x0"); } } #endif return kMyErr_noErr; } LOCALPROC WrtOptModelOption(void) { WrtOptNamedOption("-m", GetModelName, cur_mdl, dfo_mdl()); } /* option: horizontal resolution */ LOCALVAR uimr cur_hres; LOCALVAR ui3r olv_hres; LOCALPROC ResetHResOption(void) { olv_hres = 0; } LOCALFUNC tMyErr TryAsHResOptionNot(void) { return NumberTryAsOptionNot("-hres", (long *)&cur_hres, &olv_hres); } LOCALFUNC uimr dfo_hres(void) { uimr v; if (cur_mIIorIIX) { v = 640; } else if (gbk_mdl_PB100 == cur_mdl) { v = 640; } else { v = 512; } return v; } LOCALFUNC tMyErr ChooseHRes(void) { tMyErr err; MyPStr t; MyPStr s; if (0 == olv_hres) { cur_hres = dfo_hres(); err = kMyErr_noErr; } else { if ((cur_hres & 0x1F) != 0) { PStrFromCStr(t, "-hres must be a multiple of 32." " The next lowest multiple is "); PStrFromUimr(cur_hres & ~ 0x1F, s); PStrAppend(t, s); err = ReportParseFailPStr(t); } else if (cur_hres < 128) { err = ReportParseFailure("-hres must be >= 128"); } else if (cur_hres >= (uimr)32 * 1024) { err = ReportParseFailure("-hres must be < 32k"); } else { err = kMyErr_noErr; } } return err; } LOCALPROC WrtOptHResOption(void) { WrtOptNumberOption("-hres", cur_hres, dfo_hres()); } /* option: vertical resolution */ LOCALVAR uimr cur_vres; LOCALVAR ui3r olv_vres; LOCALPROC ResetVResOption(void) { olv_vres = 0; } LOCALFUNC tMyErr TryAsVResOptionNot(void) { return NumberTryAsOptionNot("-vres", (long *)&cur_vres, &olv_vres); } LOCALFUNC uimr dfo_vres(void) { uimr v; if (cur_mIIorIIX) { v = 480; } else if (gbk_mdl_PB100 == cur_mdl) { v = 400; } else { v = 342; } return v; } LOCALFUNC tMyErr ChooseVRes(void) { tMyErr err; if (0 == olv_vres) { cur_vres = dfo_vres(); err = kMyErr_noErr; } else { if (cur_vres < 128) { err = ReportParseFailure("-vres must be >= 128"); } else if (cur_vres >= (uimr)32 * 1024) { err = ReportParseFailure("-vres must be < 32k"); } else { err = kMyErr_noErr; } } return err; } LOCALPROC WrtOptVResOption(void) { WrtOptNumberOption("-vres", cur_vres, dfo_vres()); } /* option: screen depth */ LOCALVAR uimr cur_ScrnDpth; LOCALVAR ui3r olv_ScrnDpth; LOCALPROC ResetScrnDpthOption(void) { olv_ScrnDpth = 0; } LOCALFUNC tMyErr TryAsScrnDpthOptionNot(void) { return NumberTryAsOptionNot("-depth", (long *)&cur_ScrnDpth, &olv_ScrnDpth); } LOCALFUNC uimr dfo_ScrnDpth(void) { uimr v; if (cur_mIIorIIX) { v = 3; } else { v = 0; } return v; } LOCALFUNC tMyErr ChooseScrnDpth(void) { tMyErr err; err = kMyErr_noErr; if (0 == olv_ScrnDpth) { cur_ScrnDpth = dfo_ScrnDpth(); } else { if (cur_mIIorIIX) { if (cur_ScrnDpth > 5) { err = ReportParseFailure("-depth must be <= 5"); } } else { if (cur_ScrnDpth != 0) { err = ReportParseFailure( "-depth must be 0 for this model"); } } } return err; } LOCALPROC WrtOptScrnDpth(void) { WrtOptNumberOption("-depth", cur_ScrnDpth, dfo_ScrnDpth()); } /* option: Initial FullScreen */ LOCALVAR blnr WantInitFullScreen; LOCALVAR ui3r olv_InitFullScreen; LOCALPROC ResetInitFullScreen(void) { WantInitFullScreen = nanblnr; olv_InitFullScreen = 0; } LOCALFUNC tMyErr TryAsInitFullScreenNot(void) { return BooleanTryAsOptionNot("-fullscreen", &WantInitFullScreen, &olv_InitFullScreen); } LOCALFUNC blnr dfo_InitFullScreen(void) { blnr v; v = gbk_targfam_wnce == gbo_targfam; return v; } LOCALFUNC tMyErr ChooseInitFullScreen(void) { tMyErr err; err = kMyErr_noErr; if (nanblnr == WantInitFullScreen) { WantInitFullScreen = dfo_InitFullScreen(); } else { if (! WantInitFullScreen) { if (gbk_targ_wcar == cur_targ) { err = ReportParseFailure( "-fullscreen 0 is not supported for -t wcar"); } } } return err; } LOCALPROC WrtOptInitFullScreen(void) { WrtOptBooleanOption("-fullscreen", WantInitFullScreen, dfo_InitFullScreen()); } /* option: Variable FullScreen */ LOCALVAR blnr WantVarFullScreen; LOCALVAR ui3r olv_VarFullScreen; LOCALPROC ResetVarFullScreen(void) { WantVarFullScreen = nanblnr; olv_VarFullScreen = 0; } LOCALFUNC tMyErr TryAsVarFullScreenNot(void) { return BooleanTryAsOptionNot("-var-fullscreen", &WantVarFullScreen, &olv_VarFullScreen); } LOCALFUNC blnr dfo_VarFullScreen(void) { blnr v; if ((gbk_apifam_gtk == gbo_apifam) || (gbk_targfam_wnce == gbo_targfam)) { v = falseblnr; } else { v = trueblnr; } return v; } LOCALFUNC tMyErr ChooseVarFullScreen(void) { tMyErr err; err = kMyErr_noErr; if (nanblnr == WantVarFullScreen) { WantVarFullScreen = dfo_VarFullScreen(); } else { if (WantVarFullScreen) { if (gbk_targ_wcar == cur_targ) { err = ReportParseFailure( "-var-fullscreen is not supported for -t wcar"); } } } return err; } LOCALPROC WrtOptVarFullScreen(void) { WrtOptBooleanOption("-var-fullscreen", WantVarFullScreen, dfo_VarFullScreen()); } /* option: magnification factor */ LOCALVAR uimr cur_MagFctr; LOCALVAR ui3r olv_MagFctr; LOCALPROC ResetMagFctrOption(void) { olv_MagFctr = 0; } LOCALFUNC tMyErr TryAsMagFctrOptionNot(void) { return NumberTryAsOptionNot("-mf", (long *)&cur_MagFctr, &olv_MagFctr); } LOCALFUNC uimr dfo_MagFctr(void) { uimr v; if (gbk_apifam_gtk == gbo_apifam) { /* temporary, until implemented */ v = 1; } else { v = 2; } return v; } LOCALFUNC tMyErr ChooseMagFctr(void) { tMyErr err; err = kMyErr_noErr; if (0 == olv_MagFctr) { cur_MagFctr = dfo_MagFctr(); } else { if (cur_MagFctr < 1) { err = ReportParseFailure("-mf must be >= 1"); } } return err; } LOCALPROC WrtOptMagFctrOption(void) { WrtOptNumberOption("-mf", cur_MagFctr, dfo_MagFctr()); } /* option: Initial Magnify */ LOCALVAR blnr WantInitMagnify; LOCALVAR ui3r olv_InitMagnify; LOCALPROC ResetInitMagnify(void) { WantInitMagnify = nanblnr; olv_InitMagnify = 0; } LOCALFUNC tMyErr TryAsInitMagnifyNot(void) { return BooleanTryAsOptionNot("-magnify", &WantInitMagnify, &olv_InitMagnify); } #define dfo_InitMagnify() falseblnr LOCALFUNC tMyErr ChooseInitMagnify(void) { tMyErr err; err = kMyErr_noErr; if (nanblnr == WantInitMagnify) { WantInitMagnify = dfo_InitMagnify(); } else { if (WantInitMagnify && (cur_MagFctr == 1)) { err = ReportParseFailure(