Sigrid Haflínudóttirfirst dirty version of the portd7ad0686 years agoHistory
3945 lines · 71.6 KB · Text
RawDownload
/*	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.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t