]> git.sur5r.net Git - cc65/commitdiff
Removed c1p65 object file converter.
authorStephan Mühlstrasser <stephan.muehlstrasser@web.de>
Mon, 5 Jan 2015 19:55:45 +0000 (20:55 +0100)
committerStephan Mühlstrasser <stephan.muehlstrasser@web.de>
Mon, 5 Jan 2015 19:55:45 +0000 (20:55 +0100)
Now using srec_cat from the srecord package.

src/Makefile
src/c1p65/main.c [deleted file]
src/cc65.sln

index 34706fab57830b76d08c1b8446f29fcc4df68312..5aafc4bb8f4b9a44b5d65c531f116bda15679e09 100644 (file)
@@ -3,7 +3,6 @@ ifneq ($(shell echo),)
 endif
 
 PROGS = ar65  \
-        c1p65 \
         ca65  \
         cc65  \
         cl65  \
diff --git a/src/c1p65/main.c b/src/c1p65/main.c
deleted file mode 100644 (file)
index bf74f73..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-/* Object file conversion utility for Challenger 1P\r
-\r
-   by Stephan Muehlstrasser\r
-*/\r
-\r
-\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <stdarg.h>\r
-#include <string.h>\r
-#include <errno.h>\r
-#include <time.h>\r
-\r
-/* common stuff */\r
-#include "abend.h"\r
-#include "cmdline.h"\r
-#include "fname.h"\r
-#include "chartype.h"\r
-#include "target.h"\r
-#include "version.h"\r
-#include "xmalloc.h"\r
-\r
-static void Usage (void)\r
-{\r
-    printf (\r
-        "Usage: %s [options] file\n"\r
-        "Short options:\n"\r
-        "  -V\t\t\tPrint the version number\n"\r
-        "  -h\t\t\tHelp (this text)\n"\r
-               "  -n\t\tNo automatic start after loading program\n"\r
-               "  -o name\t\tName the C1P output file (default: <input>.c1p)\n"\r
-               "  -S addr\t\tLoad address (default 0x300)\n"\r
-        "\n"\r
-        "Long options:\n"\r
-        "  --help\t\tHelp (this text)\n"\r
-        "  --version\t\tPrint the version number\n",\r
-        ProgName);\r
-}\r
-\r
-static void OptHelp (const char* Opt attribute ((unused)),\r
-                     const char* Arg attribute ((unused)))\r
-/* Print usage information and exit */\r
-{\r
-    Usage ();\r
-    exit (EXIT_SUCCESS);\r
-}\r
-\r
-\r
-static void OptVersion (const char* Opt attribute ((unused)),\r
-                        const char* Arg attribute ((unused)))\r
-/* Print the program version */\r
-{\r
-    fprintf (stderr, "grc65 V%s\n", GetVersionAsString ());\r
-}\r
-\r
-\r
-static unsigned long CvtNumber (const char* Arg, const char* Number)\r
-/* Convert a number from a string. Allow '$' and '0x' prefixes for hex\r
- * numbers. Duplicated from ld65's main.c.\r
- */\r
-{\r
-    unsigned long Val;\r
-    int           Converted;\r
-\r
-    /* Convert */\r
-    if (*Number == '$') {\r
-        ++Number;\r
-        Converted = sscanf (Number, "%lx", &Val);\r
-    } else {\r
-        Converted = sscanf (Number, "%li", (long*)&Val);\r
-    }\r
-\r
-    /* Check if we do really have a number */\r
-    if (Converted != 1) {\r
-        AbEnd ("Invalid number given in argument: %s\n", Arg);\r
-    }\r
-\r
-    /* Return the result */\r
-    return Val;\r
-}\r
-\r
-/* Commands of C1P PROM monitor */\r
-#define ADDRESS_MODE_CMD       '.'\r
-#define DATA_MODE_CMD          '/'\r
-#define EXECUTE_CMD                    'G'\r
-#define DATA_MODE_ADDRESS      0x00FB\r
-\r
-/* Transform the cc65 executable binary into a series of\r
-   commands that make the C1P PROM monitor load the bytes\r
-   into memory.\r
-*/\r
-static void Transform (unsigned long StartAddress, FILE *In, FILE *Out,\r
-       unsigned AutoStart)\r
-{\r
-       int c;\r
-\r
-       /* Position to the start address */\r
-       fprintf(Out, "%c%04.4X%c", ADDRESS_MODE_CMD,\r
-               StartAddress & 0xFFFF, DATA_MODE_CMD);\r
-\r
-       /* Loop over all input bytes and enter them one by one */\r
-       for (c = getc(In); c != EOF; c = getc(In)) {\r
-               fprintf(Out, "%02.2X\r", (unsigned int) c & 0xFF);\r
-       }\r
-\r
-       if (AutoStart) {\r
-               /* Execute */\r
-               fprintf (Out, "%c%04.4x%c",\r
-                       ADDRESS_MODE_CMD, (unsigned int) StartAddress & 0xFFFF,\r
-                       EXECUTE_CMD);\r
-       }\r
-       else {\r
-               /* Store 00 to 0x00FB to enable keyboard input at the end */\r
-               fprintf(Out, "%c%04.4X%c%02.2X", ADDRESS_MODE_CMD,\r
-                       0x00FB, DATA_MODE_CMD, 0x00);\r
-       }\r
-} \r
-\r
-/* Default suffix for C1P object file */\r
-#define C1P_SUFFIX ".c1p"\r
-\r
-int main (int argc, char *argv[])\r
-{\r
-    /* Program long options */\r
-    static const LongOpt OptTab[] = {\r
-        { "--help",    0, OptHelp},\r
-        { "--version", 0, OptVersion},\r
-    };\r
-\r
-       /* Initialize input and output file name */\r
-    const char* InputFile = 0;\r
-    const char* OutputFile = 0;\r
-       char *GeneratedOutputFile = 0;\r
-\r
-       /* Initialize file pointers */\r
-       FILE *InputFileFp = 0;\r
-       FILE *OutputFileFp = 0;\r
-\r
-       /* Initialize with default start address defined in c1p.cfg */\r
-       unsigned long StartAddr = 0x200;\r
-\r
-       /* Start program automatically after loading */\r
-       unsigned AutoStart = 1;\r
-\r
-    unsigned int I;\r
-\r
-    /* Initialize the cmdline module */\r
-    InitCmdLine (&argc, &argv, "c1p65");\r
-\r
-    /* Check the parameters */\r
-    I = 1;\r
-    while (I < ArgCount) {\r
-\r
-        /* Get the argument */\r
-        const char* Arg = ArgVec [I];\r
-\r
-        /* Check for an option */\r
-        if (Arg[0] == '-') {\r
-            switch (Arg[1]) {\r
-\r
-                case '-':\r
-                    LongOption (&I, OptTab, sizeof(OptTab)/sizeof(OptTab[0]));\r
-                    break;\r
-\r
-                               case 'n':\r
-                                       AutoStart = 0;\r
-                                       break;\r
-\r
-                               case 'o':\r
-                                       OutputFile = GetArg(&I, 2);\r
-                                       break;\r
-\r
-                               case 'S':\r
-                    StartAddr = CvtNumber (Arg, GetArg (&I, 2));\r
-                    break;\r
-\r
-                case 'h':\r
-                case '?':\r
-                    OptHelp (Arg, 0);\r
-                    break;\r
-\r
-                case 'V':\r
-                    OptVersion (Arg, 0);\r
-                    break;\r
-\r
-                default:\r
-                    UnknownOption (Arg);\r
-            }\r
-\r
-        } else {\r
-            if (InputFile) {\r
-                fprintf (stderr, "additional file specs ignored\n");\r
-            } else {\r
-                InputFile = Arg;\r
-            }\r
-        }\r
-\r
-        /* Next argument */\r
-        ++I;\r
-    }\r
-\r
-    if (!InputFile) AbEnd ("No input file");\r
-\r
-       if (!OutputFile) {\r
-               const size_t len = strlen(InputFile) + sizeof(C1P_SUFFIX);\r
-               \r
-               GeneratedOutputFile = (char *) xmalloc(len);\r
-               sprintf(GeneratedOutputFile, "%s%s", InputFile, C1P_SUFFIX);\r
-               OutputFile = GeneratedOutputFile;\r
-       }\r
-\r
-       /* Open input and output files */\r
-       InputFileFp = fopen(InputFile, "rb");\r
-       if (!InputFileFp) AbEnd ("Unable to open input file");\r
-\r
-       OutputFileFp = fopen(OutputFile, "wb");\r
-       if (!OutputFileFp) AbEnd ("Unable to open output file");\r
-\r
-       /* Generate object file */\r
-       Transform (StartAddr, InputFileFp, OutputFileFp, AutoStart);\r
-\r
-       /* Cleanup */\r
-       if (fclose(InputFileFp) == EOF) AbEnd ("Error closing input file");\r
-\r
-       if (fclose(OutputFileFp) == EOF) AbEnd ("Error closing output file");\r
-\r
-       if (GeneratedOutputFile) {\r
-               xfree(GeneratedOutputFile);\r
-       }\r
-\r
-    return EXIT_SUCCESS;\r
-}\r
index 543038755fbd72ac96f299d05bc4a2e962085ca9..9d0f2cc2e6c81bed643c8675e4cdc2b1a8703665 100644 (file)
-\r
-Microsoft Visual Studio Solution File, Format Version 12.00\r
-# Visual Studio 2013\r
-VisualStudioVersion = 12.0.31101.0\r
-MinimumVisualStudioVersion = 10.0.40219.1\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{71DC1F68-BFC4-478C-8655-C8E9C9654D2B}"\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cc65", "cc65.vcxproj", "{B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ca65", "ca65.vcxproj", "{D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ar65", "ar65.vcxproj", "{5E8C19C6-B167-440C-8BEF-3CBF109CDB49}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ld65", "ld65.vcxproj", "{26C749A0-814C-47A2-9D36-AE92AE932FE4}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cl65", "cl65.vcxproj", "{F657912F-050A-488B-B203-50ED5715CDD7}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "da65", "da65.vcxproj", "{0BCFB793-2B25-40E2-B265-75848824AC4C}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "co65", "co65.vcxproj", "{F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grc65", "grc65.vcxproj", "{E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "od65", "od65.vcxproj", "{FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sp65", "sp65.vcxproj", "{4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sim65", "sim65.vcxproj", "{002A366E-2863-46A8-BDDE-DDF534AAEC73}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "c1p65", "c1p65.vcxproj", "{4E031DE0-82B4-4204-8529-536626F7E0DF}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}\r
-       EndProjectSection\r
-EndProject\r
-Global\r
-       GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
-               Debug|Win32 = Debug|Win32\r
-               Release|Win32 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Debug|Win32.Build.0 = Debug|Win32\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Release|Win32.ActiveCfg = Release|Win32\r
-               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Release|Win32.Build.0 = Release|Win32\r
-               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Debug|Win32.Build.0 = Debug|Win32\r
-               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Release|Win32.ActiveCfg = Release|Win32\r
-               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Release|Win32.Build.0 = Release|Win32\r
-               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Debug|Win32.Build.0 = Debug|Win32\r
-               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Release|Win32.ActiveCfg = Release|Win32\r
-               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Release|Win32.Build.0 = Release|Win32\r
-               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Debug|Win32.Build.0 = Debug|Win32\r
-               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Release|Win32.ActiveCfg = Release|Win32\r
-               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Release|Win32.Build.0 = Release|Win32\r
-               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Debug|Win32.Build.0 = Debug|Win32\r
-               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Release|Win32.ActiveCfg = Release|Win32\r
-               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Release|Win32.Build.0 = Release|Win32\r
-               {F657912F-050A-488B-B203-50ED5715CDD7}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {F657912F-050A-488B-B203-50ED5715CDD7}.Debug|Win32.Build.0 = Debug|Win32\r
-               {F657912F-050A-488B-B203-50ED5715CDD7}.Release|Win32.ActiveCfg = Release|Win32\r
-               {F657912F-050A-488B-B203-50ED5715CDD7}.Release|Win32.Build.0 = Release|Win32\r
-               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Debug|Win32.Build.0 = Debug|Win32\r
-               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Release|Win32.ActiveCfg = Release|Win32\r
-               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Release|Win32.Build.0 = Release|Win32\r
-               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Debug|Win32.Build.0 = Debug|Win32\r
-               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Release|Win32.ActiveCfg = Release|Win32\r
-               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Release|Win32.Build.0 = Release|Win32\r
-               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Debug|Win32.Build.0 = Debug|Win32\r
-               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Release|Win32.ActiveCfg = Release|Win32\r
-               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Release|Win32.Build.0 = Release|Win32\r
-               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Debug|Win32.Build.0 = Debug|Win32\r
-               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Release|Win32.ActiveCfg = Release|Win32\r
-               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Release|Win32.Build.0 = Release|Win32\r
-               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Debug|Win32.Build.0 = Debug|Win32\r
-               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Release|Win32.ActiveCfg = Release|Win32\r
-               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Release|Win32.Build.0 = Release|Win32\r
-               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Debug|Win32.Build.0 = Debug|Win32\r
-               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Release|Win32.ActiveCfg = Release|Win32\r
-               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Release|Win32.Build.0 = Release|Win32\r
-               {4E031DE0-82B4-4204-8529-536626F7E0DF}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {4E031DE0-82B4-4204-8529-536626F7E0DF}.Debug|Win32.Build.0 = Debug|Win32\r
-               {4E031DE0-82B4-4204-8529-536626F7E0DF}.Release|Win32.ActiveCfg = Release|Win32\r
-               {4E031DE0-82B4-4204-8529-536626F7E0DF}.Release|Win32.Build.0 = Release|Win32\r
-       EndGlobalSection\r
-       GlobalSection(SolutionProperties) = preSolution\r
-               HideSolutionNode = FALSE\r
-       EndGlobalSection\r
-EndGlobal\r
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common.vcxproj", "{71DC1F68-BFC4-478C-8655-C8E9C9654D2B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cc65", "cc65.vcxproj", "{B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ca65", "ca65.vcxproj", "{D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ar65", "ar65.vcxproj", "{5E8C19C6-B167-440C-8BEF-3CBF109CDB49}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ld65", "ld65.vcxproj", "{26C749A0-814C-47A2-9D36-AE92AE932FE4}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cl65", "cl65.vcxproj", "{F657912F-050A-488B-B203-50ED5715CDD7}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "da65", "da65.vcxproj", "{0BCFB793-2B25-40E2-B265-75848824AC4C}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "co65", "co65.vcxproj", "{F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grc65", "grc65.vcxproj", "{E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "od65", "od65.vcxproj", "{FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sp65", "sp65.vcxproj", "{4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sim65", "sim65.vcxproj", "{002A366E-2863-46A8-BDDE-DDF534AAEC73}"
+       ProjectSection(ProjectDependencies) = postProject
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B} = {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}
+       EndProjectSection
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Win32 = Debug|Win32
+               Release|Win32 = Release|Win32
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Debug|Win32.ActiveCfg = Debug|Win32
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Debug|Win32.Build.0 = Debug|Win32
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Release|Win32.ActiveCfg = Release|Win32
+               {71DC1F68-BFC4-478C-8655-C8E9C9654D2B}.Release|Win32.Build.0 = Release|Win32
+               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Debug|Win32.ActiveCfg = Debug|Win32
+               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Debug|Win32.Build.0 = Debug|Win32
+               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Release|Win32.ActiveCfg = Release|Win32
+               {B17EDBD5-DC04-4970-9CBD-56A98B6A3FCA}.Release|Win32.Build.0 = Release|Win32
+               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Debug|Win32.ActiveCfg = Debug|Win32
+               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Debug|Win32.Build.0 = Debug|Win32
+               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Release|Win32.ActiveCfg = Release|Win32
+               {D28CB737-E6CA-49C4-8CE9-FF05F86DD4EC}.Release|Win32.Build.0 = Release|Win32
+               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Debug|Win32.ActiveCfg = Debug|Win32
+               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Debug|Win32.Build.0 = Debug|Win32
+               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Release|Win32.ActiveCfg = Release|Win32
+               {5E8C19C6-B167-440C-8BEF-3CBF109CDB49}.Release|Win32.Build.0 = Release|Win32
+               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Debug|Win32.ActiveCfg = Debug|Win32
+               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Debug|Win32.Build.0 = Debug|Win32
+               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Release|Win32.ActiveCfg = Release|Win32
+               {26C749A0-814C-47A2-9D36-AE92AE932FE4}.Release|Win32.Build.0 = Release|Win32
+               {F657912F-050A-488B-B203-50ED5715CDD7}.Debug|Win32.ActiveCfg = Debug|Win32
+               {F657912F-050A-488B-B203-50ED5715CDD7}.Debug|Win32.Build.0 = Debug|Win32
+               {F657912F-050A-488B-B203-50ED5715CDD7}.Release|Win32.ActiveCfg = Release|Win32
+               {F657912F-050A-488B-B203-50ED5715CDD7}.Release|Win32.Build.0 = Release|Win32
+               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Debug|Win32.ActiveCfg = Debug|Win32
+               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Debug|Win32.Build.0 = Debug|Win32
+               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Release|Win32.ActiveCfg = Release|Win32
+               {0BCFB793-2B25-40E2-B265-75848824AC4C}.Release|Win32.Build.0 = Release|Win32
+               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Debug|Win32.ActiveCfg = Debug|Win32
+               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Debug|Win32.Build.0 = Debug|Win32
+               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Release|Win32.ActiveCfg = Release|Win32
+               {F5DB5D1A-05BC-48FE-B346-4E96DD522AA2}.Release|Win32.Build.0 = Release|Win32
+               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Debug|Win32.ActiveCfg = Debug|Win32
+               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Debug|Win32.Build.0 = Debug|Win32
+               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Release|Win32.ActiveCfg = Release|Win32
+               {E0FD0AB3-3BEE-496F-8108-A8E0F8933F39}.Release|Win32.Build.0 = Release|Win32
+               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Debug|Win32.ActiveCfg = Debug|Win32
+               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Debug|Win32.Build.0 = Debug|Win32
+               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Release|Win32.ActiveCfg = Release|Win32
+               {FF8576C2-1253-44FE-A51B-D9AE35F3CEAD}.Release|Win32.Build.0 = Release|Win32
+               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Debug|Win32.ActiveCfg = Debug|Win32
+               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Debug|Win32.Build.0 = Debug|Win32
+               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Release|Win32.ActiveCfg = Release|Win32
+               {4388D1AF-C7EA-4AD4-8E80-CA1FB7BF76BF}.Release|Win32.Build.0 = Release|Win32
+               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Debug|Win32.ActiveCfg = Debug|Win32
+               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Debug|Win32.Build.0 = Debug|Win32
+               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Release|Win32.ActiveCfg = Release|Win32
+               {002A366E-2863-46A8-BDDE-DDF534AAEC73}.Release|Win32.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal