mirror of
https://github.com/cc65/cc65.git
synced 2024-11-18 15:05:14 +00:00
Allow numeric OS types in the config file
git-svn-id: svn://svn.cc65.org/cc65/trunk@3386 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
6c796774d8
commit
26ae91efff
@ -912,7 +912,7 @@ static void ParseO65 (void)
|
|||||||
CfgError ("Exported symbol `%s' cannot be an import", CfgSVal);
|
CfgError ("Exported symbol `%s' cannot be an import", CfgSVal);
|
||||||
}
|
}
|
||||||
/* Check if we have this symbol defined already. The entry
|
/* Check if we have this symbol defined already. The entry
|
||||||
* routine will check this also, but we get a more verbose
|
* routine will check this also, but we get a more verbose
|
||||||
* error message when checking it here.
|
* error message when checking it here.
|
||||||
*/
|
*/
|
||||||
if (O65GetExport (O65FmtDesc, CfgSValId) != 0) {
|
if (O65GetExport (O65FmtDesc, CfgSValId) != 0) {
|
||||||
@ -962,20 +962,27 @@ static void ParseO65 (void)
|
|||||||
default:
|
default:
|
||||||
CfgError ("Unexpected type token");
|
CfgError ("Unexpected type token");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CFGTOK_OS:
|
case CFGTOK_OS:
|
||||||
/* Cannot use this attribute twice */
|
/* Cannot use this attribute twice */
|
||||||
FlagAttr (&AttrFlags, atOS, "OS");
|
FlagAttr (&AttrFlags, atOS, "OS");
|
||||||
/* Get the operating system */
|
/* Get the operating system. It may be specified as name or
|
||||||
CfgSpecialToken (OperatingSystems, ENTRY_COUNT (OperatingSystems), "OS type");
|
* as a number in the range 1..255.
|
||||||
switch (CfgTok) {
|
*/
|
||||||
case CFGTOK_LUNIX: OS = O65OS_LUNIX; break;
|
if (CfgTok == CFGTOK_INTCON) {
|
||||||
case CFGTOK_OSA65: OS = O65OS_OSA65; break;
|
CfgRangeCheck (O65OS_MIN, O65OS_MAX);
|
||||||
case CFGTOK_CC65: OS = O65OS_CC65; break;
|
OS = (unsigned) CfgIVal;
|
||||||
default: CfgError ("Unexpected OS token");
|
} else {
|
||||||
}
|
CfgSpecialToken (OperatingSystems, ENTRY_COUNT (OperatingSystems), "OS type");
|
||||||
break;
|
switch (CfgTok) {
|
||||||
|
case CFGTOK_LUNIX: OS = O65OS_LUNIX; break;
|
||||||
|
case CFGTOK_OSA65: OS = O65OS_OSA65; break;
|
||||||
|
case CFGTOK_CC65: OS = O65OS_CC65; break;
|
||||||
|
default: CfgError ("Unexpected OS token");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case CFGTOK_ID:
|
case CFGTOK_ID:
|
||||||
/* Cannot have this attribute twice */
|
/* Cannot have this attribute twice */
|
||||||
@ -1010,8 +1017,8 @@ static void ParseO65 (void)
|
|||||||
|
|
||||||
/* Check for attributes that may not be combined */
|
/* Check for attributes that may not be combined */
|
||||||
if (OS == O65OS_CC65) {
|
if (OS == O65OS_CC65) {
|
||||||
if ((AttrFlags & (atImport | atExport)) != 0) {
|
if ((AttrFlags & (atImport | atExport)) != 0 && ModuleId < 0x8000) {
|
||||||
CfgError ("OS type CC65 may not have imports or exports");
|
CfgError ("OS type CC65 may not have imports or exports for ids < $8000");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (AttrFlags & atID) {
|
if (AttrFlags & atID) {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* */
|
/* */
|
||||||
/* (C) 1999-2003 Ullrich von Bassewitz */
|
/* (C) 1999-2005 Ullrich von Bassewitz */
|
||||||
/* Römerstrasse 52 */
|
/* Römerstrasse 52 */
|
||||||
/* D-70794 Filderstadt */
|
/* D-70794 Filderstadt */
|
||||||
/* EMail: uz@cc65.org */
|
/* EMail: uz@cc65.org */
|
||||||
@ -62,9 +62,11 @@ typedef struct O65Desc O65Desc;
|
|||||||
#define O65OPT_TIMESTAMP 4
|
#define O65OPT_TIMESTAMP 4
|
||||||
|
|
||||||
/* Operating system codes for O65OPT_OS */
|
/* Operating system codes for O65OPT_OS */
|
||||||
|
#define O65OS_MIN 1
|
||||||
#define O65OS_OSA65 1
|
#define O65OS_OSA65 1
|
||||||
#define O65OS_LUNIX 2
|
#define O65OS_LUNIX 2
|
||||||
#define O65OS_CC65 3
|
#define O65OS_CC65 3
|
||||||
|
#define O65OS_MAX 255
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user