]> git.sur5r.net Git - cc65/commitdiff
Fixed numeric OS ids. Added new OS OPENCBM
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 30 Mar 2005 19:28:28 +0000 (19:28 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 30 Mar 2005 19:28:28 +0000 (19:28 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3435 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ld65/config.c
src/ld65/o65.c
src/ld65/o65.h
src/ld65/scanner.h

index 9f9fba2c6516a35b9af19aee7103ab5fb660f5c4..6762ac0da245609e73f364d7dbd023589c94d298 100644 (file)
@@ -865,6 +865,7 @@ static void ParseO65 (void)
                {   "LUNIX",    CFGTOK_LUNIX            },
                {   "OSA65",    CFGTOK_OSA65            },
         {   "CC65",     CFGTOK_CC65             },
+        {   "OPENCBM",  CFGTOK_OPENCBM          },
     };
 
     /* Bitmask to remember the attributes we got already */
@@ -976,10 +977,11 @@ static void ParseO65 (void)
                } else {
                     CfgSpecialToken (OperatingSystems, ENTRY_COUNT (OperatingSystems), "OS type");
                     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");
+                        case CFGTOK_LUNIX:    OS = O65OS_LUNIX;     break;
+                        case CFGTOK_OSA65:    OS = O65OS_OSA65;     break;
+                        case CFGTOK_CC65:     OS = O65OS_CC65;      break;
+                        case CFGTOK_OPENCBM:  OS = O65OS_OPENCBM;   break;
+                        default:              CfgError ("Unexpected OS token");
                     }
                 }
                break;
index 49c024378a248e6a11664b866fcd313d3e70c424..714931308fc8852bfb5e14ddddb5751d70db2bdf 100644 (file)
@@ -1155,11 +1155,6 @@ void O65SetOS (O65Desc* D, unsigned OS, unsigned Version, unsigned Id)
 
     /* Write the correct option length */
     switch (OS) {
-       case O65OS_OSA65:
-       case O65OS_LUNIX:
-            /* No id for these two */
-                   O65SetOption (D, O65OPT_OS, Opt, 2);
-           break;
 
        case O65OS_CC65:
             /* Set the 16 bit id */
@@ -1169,7 +1164,10 @@ void O65SetOS (O65Desc* D, unsigned OS, unsigned Version, unsigned Id)
            break;
 
        default:
-           Internal ("Trying to set invalid O65 operating system: %u", OS);
+            /* No id for OS/A65, Lunix, and unknown OSes */
+                   O65SetOption (D, O65OPT_OS, Opt, 2);
+           break;
+
     }
 }
 
index d9e8832f885d23033a32599acfe5035f8f487826..aec220a3c204deeec8e7e8ed4794da9ec4ef1cbe 100644 (file)
@@ -66,6 +66,7 @@ typedef struct O65Desc O65Desc;
 #define O65OS_OSA65            1
 #define O65OS_LUNIX            2
 #define O65OS_CC65              3
+#define O65OS_OPENCBM           4
 #define O65OS_MAX               255
 
 
index 5604f59ed5c1beeefd0161c5883b2880ac13e038..e7a943257ea692c21b30ad1853139f391d636e31 100644 (file)
@@ -105,6 +105,7 @@ typedef enum {
     CFGTOK_LUNIX,
     CFGTOK_OSA65,
     CFGTOK_CC65,
+    CFGTOK_OPENCBM,
 
     CFGTOK_CONDES,
     CFGTOK_STARTADDRESS,