]> git.sur5r.net Git - cc65/blobdiff - src/da65/config.c
Encode option strings in the string pool
[cc65] / src / da65 / config.c
index d76aa6993b04748336ba6842f583916b179fd44e..f6fefab7f9acf656f7e76ea309291aebb91da41e 100644 (file)
@@ -34,6 +34,7 @@
 
 
 #include <stdio.h>
+#include <string.h>
 #if defined(_MSC_VER)
 /* Microsoft compiler */
 #  include <io.h>
@@ -67,6 +68,7 @@ static void GlobalSection (void)
                {   "INPUTNAME",        CFGTOK_INPUTNAME        },
        {   "OUTPUTNAME",       CFGTOK_OUTPUTNAME       },
        {   "PAGELENGTH",       CFGTOK_PAGELENGTH       },
+       {   "STARTADDR",        CFGTOK_STARTADDR        },
     };
 
     /* Skip the token */
@@ -113,6 +115,15 @@ static void GlobalSection (void)
                PageLength = CfgIVal;
                CfgNextTok ();
                break;
+
+           case CFGTOK_STARTADDR:
+               CfgNextTok ();
+               CfgAssureInt ();
+               CfgRangeCheck (0x0000, 0xFFFF);
+               StartAddr = CfgIVal;
+               CfgNextTok ();
+               break;
+
        }
 
        /* Directive is followed by a semicolon */
@@ -142,6 +153,7 @@ static void RangeSection (void)
        {   "DWORDTABLE",       CFGTOK_DWORDTAB },
        {   "ADDRTABLE",        CFGTOK_ADDRTAB  },
        {   "RTSTABLE",         CFGTOK_RTSTAB   },
+       {   "TEXTTABLE",        CFGTOK_TEXTTAB  },
     };
 
 
@@ -202,6 +214,7 @@ static void RangeSection (void)
                    case CFGTOK_DWORDTAB:       Type = atDWordTab;      break;
                    case CFGTOK_ADDRTAB:        Type = atAddrTab;       break;
                            case CFGTOK_RTSTAB:         Type = atRtsTab;        break;
+                   case CFGTOK_TEXTTAB:        Type = atTextTab;       break;
                }
                Needed |= tType;
                CfgNextTok ();