diff --git a/README.md b/README.md index 9570e18..744e1dd 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ After extensive optimizations it turns out, that the interpreted code is not sig ## Limits and Errors -There are still several open areas, but most targets have been reached. The current Dhrystone performance is 81 iterations per second with byte code (11108) and 354 iterations with native code (10965 Bytes). This clearly shows that Dhrystone is not a valid benchmark for optimizing compilers, because it puts the 6502 on par with a 4MHz 8088 or 68k, which it clearly is not. +There are still several open areas, but most targets have been reached. The current Dhrystone performance is 81 iterations per second with byte code (11108) and 345 iterations with native code (10965 Bytes). This clearly shows that Dhrystone is not a valid benchmark for optimizing compilers, because it puts the 6502 on par with a 4MHz 8088 or 68k, which it clearly is not. ### Language @@ -57,7 +57,7 @@ A windows installer is provided with the release, the compiler is installed into ### Building -The compiler can also built using MSVC or GCC. A visual studio project and a makefile are part of the source repository. The makefile is in the make folder. +The compiler can also be built using MSVC or GCC. A visual studio project and a makefile are part of the source repository. The makefile is in the make folder. ### Compiler arguments diff --git a/include/ctype.c b/include/ctype.c new file mode 100644 index 0000000..bac6f8e --- /dev/null +++ b/include/ctype.c @@ -0,0 +1,88 @@ +#include "ctype.h" + +#define CC_CTRL 0x00 +#define CC_BREAK 0x01 +#define CC_SPACE 0x02 +#define CC_DIGIT 0x04 +#define CC_LOWER 0x08 +#define CC_UPPER 0x10 +#define CC_HEX 0x20 +#define CC_PUNCT 0x40 + +static const char _cinfo[128] = { + [0 ... 8] = CC_CTRL, + [9] = CC_SPACE, + [10 ... 13] = CC_BREAK, + [14 ... 31] = CC_CTRL, + [32] = CC_SPACE, + [33 ... 47] = CC_PUNCT, + [48 ... 57] = CC_DIGIT, + [58 ... 64] = CC_PUNCT, + [65 ... 70] = CC_UPPER | CC_HEX, + [71 ... 90] = CC_UPPER, + [91 ... 96] = CC_PUNCT, + [97 ... 102] = CC_LOWER | CC_HEX, + [103 ... 122] = CC_LOWER, + [123 ... 126] = CC_PUNCT, + [127] = CC_CTRL +}; + +bool isctrnl(char c) +{ + return (c < 128) && _cinfo[c] == CC_CTRL; +} + +bool isprint(char c) +{ + return (c < 128) && _cinfo[c] != CC_CTRL; +} + +bool isspace(char c) +{ + return (c < 128) && (_cinfo[c] & (CC_SPACE | CC_BREAK)); +} + +bool isblank(char c) +{ + return (c < 128) && (_cinfo[c] & CC_SPACE); +} + +bool isgraph(char c) +{ + return (c < 128) && (_cinfo[c] & (CC_LOWER | CC_UPPER | CC_DIGIT | CC_PUNCT)); +} + +bool ispunct(char c) +{ + return (c < 128) && (_cinfo[c] & CC_PUNCT); +} + +bool isalnum(char c) +{ + return (c < 128) && (_cinfo[c] & (CC_LOWER | CC_UPPER | CC_DIGIT)); +} + +bool isalpha(char c) +{ + return (c < 128) && (_cinfo[c] & (CC_LOWER | CC_UPPER)); +} + +bool isupper(char c) +{ + return (c < 128) && (_cinfo[c] & CC_UPPER); +} + +bool islower(char c) +{ + return (c < 128) && (_cinfo[c] & CC_LOWER); +} + +bool isdigit(char c) +{ + return (c < 128) && (_cinfo[c] & CC_DIGIT); +} + +bool isxdigit(char c) +{ + return (c < 128) && (_cinfo[c] & CC_HEX); +} diff --git a/include/ctype.h b/include/ctype.h new file mode 100644 index 0000000..3da3a47 --- /dev/null +++ b/include/ctype.h @@ -0,0 +1,32 @@ +#ifndef CTYPE_H +#define CTYPE_H + +inline bool isctrnl(char c); + +inline bool isprint(char c); + +inline bool isspace(char c); + +inline bool isblank(char c); + +inline bool isgraph(char c); + +inline bool ispunct(char c); + +inline bool isalnum(char c); + +inline bool isalpha(char c); + +inline bool isupper(char c); + +inline bool islower(char c); + +inline bool isdigit(char c); + +inline bool isxdigit(char c); + + +#pragma compile("ctype.c") + +#endif + diff --git a/include/fixmath.c b/include/fixmath.c index f0bbd6b..a040424 100644 --- a/include/fixmath.c +++ b/include/fixmath.c @@ -508,6 +508,52 @@ unsigned lmuldiv16by8(unsigned a, char b, char c) } } +unsigned lmuldiv8by8(char a, char b, char c) +{ + __asm { + + ldy #0 + sty accu + 0 + sty accu + 1 + sty accu + 2 + + ldx #16 + l2: + asl accu + 2 + rol accu + 0 + rol accu + 1 + + tya + asl b + rol + + bcc w2 + sbc c + bcc w3 + w2: + tay + sec + sbc c + bcc w1 + w3: + tay + + clc + lda accu + 2 + adc a + sta accu + 2 + bcc w1 + inc accu + 0 + bne w1 + inc accu + 1 + w1: + + dex + bne l2 + z1: + } +} + int lmuldiv16sby8(int a, char b, char c) { if (a < 0) diff --git a/include/fixmath.h b/include/fixmath.h index 277f005..7d14636 100644 --- a/include/fixmath.h +++ b/include/fixmath.h @@ -42,6 +42,8 @@ __native unsigned lmuldiv16by8(unsigned a, char b, char c); inline int lmuldiv16sby8(int a, char b, char c); +__native unsigned lmuldiv8by8(char a, char b, char c); + #pragma compile("fixmath.c") #endif diff --git a/include/stdarg.h b/include/stdarg.h new file mode 100644 index 0000000..678d770 --- /dev/null +++ b/include/stdarg.h @@ -0,0 +1,12 @@ +#ifndef STDARG_H +#define STDARG_H + +typedef void *va_list; + +#define va_start(list, name) (void) (list = &name + 1) + +#define va_arg(list, mode) ((mode *)(list = (char *)list + sizeof (mode)))[-1] + +#define va_end(list) (void)0 + +#endif diff --git a/oscar64/GlobalAnalyzer.cpp b/oscar64/GlobalAnalyzer.cpp index a30f652..d153aa8 100644 --- a/oscar64/GlobalAnalyzer.cpp +++ b/oscar64/GlobalAnalyzer.cpp @@ -328,7 +328,8 @@ Declaration * GlobalAnalyzer::Analyze(Expression* exp, Declaration* procDec) ldec = Analyze(exp->mLeft, procDec); rdec = Analyze(exp->mRight, procDec); RegisterProc(rdec); - break; + return ldec; + case EX_BINARY: ldec = Analyze(exp->mLeft, procDec); rdec = Analyze(exp->mRight, procDec); @@ -429,7 +430,7 @@ Declaration * GlobalAnalyzer::Analyze(Expression* exp, Declaration* procDec) case EX_TYPE: break; case EX_TYPECAST: - rdec = Analyze(exp->mRight, procDec); + return Analyze(exp->mRight, procDec); break; case EX_LOGICAL_AND: ldec = Analyze(exp->mLeft, procDec); diff --git a/oscar64/InterCodeGenerator.cpp b/oscar64/InterCodeGenerator.cpp index c81f203..f03bb37 100644 --- a/oscar64/InterCodeGenerator.cpp +++ b/oscar64/InterCodeGenerator.cpp @@ -1786,7 +1786,9 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration* ; else if ((vl.mType->mType == DT_TYPE_POINTER || vl.mType->mType == DT_TYPE_ARRAY) && (vr.mType->mType == DT_TYPE_POINTER || vr.mType->mType == DT_TYPE_ARRAY)) { - if (!vl.mType->mBase->IsConstSame(vr.mType->mBase)) + if (vl.mType->mBase->mType == DT_TYPE_VOID || vr.mType->mBase->mType == DT_TYPE_VOID) + ; + else if (!vl.mType->mBase->IsConstSame(vr.mType->mBase)) mErrors->Error(exp->mLocation, EERR_INCOMPATIBLE_OPERATOR, "Incompatible pointer types"); } else diff --git a/oscar64/NativeCodeGenerator.cpp b/oscar64/NativeCodeGenerator.cpp index 74b04cb..c9c9654 100644 --- a/oscar64/NativeCodeGenerator.cpp +++ b/oscar64/NativeCodeGenerator.cpp @@ -14803,6 +14803,18 @@ void NativeCodeBasicBlock::BlockSizeReduction(NativeCodeProcedure* proc) } i += 6; } + else if (i + 3 < mIns.Size() && + mIns[i + 0].ChangesAccuAndFlag() && + mIns[i + 1].mType == ASMIT_CMP && mIns[i + 1].mMode == ASMIM_IMMEDIATE && mIns[i + 1].mAddress == 0x01 && + mIns[i + 2].mType == ASMIT_LDA && mIns[i + 2].mMode == ASMIM_IMMEDIATE && mIns[i + 2].mAddress == 0x00 && + mIns[i + 3].mType == ASMIT_ROL && mIns[i + 3].mMode == ASMIM_IMPLIED) + { + mIns[j + 0] = mIns[i + 0]; + mIns[j + 1].mType = ASMIT_BEQ; mIns[j + 1].mMode = ASMIM_RELATIVE; mIns[j + 1].mAddress = 2; + mIns[j + 2].mType = ASMIT_LDA; mIns[j + 2].mMode = ASMIM_IMMEDIATE; mIns[j + 2].mAddress = 1; + j += 3; + i += 4; + } else if (i + 1 < mIns.Size() && mIns[i + 0].ChangesZFlag() && mIns[i + 1].mType == ASMIT_LDA && mIns[i + 0].SameEffectiveAddress(mIns[i + 1]) && !(mIns[i + 1].mLive & LIVE_CPU_REG_A)) { diff --git a/oscar64/Parser.cpp b/oscar64/Parser.cpp index 7034eea..17361b5 100644 --- a/oscar64/Parser.cpp +++ b/oscar64/Parser.cpp @@ -724,16 +724,58 @@ Expression* Parser::ParseInitExpression(Declaration* dtype) int index = 0; while (!(dtype->mFlags & DTF_DEFINED) || index < dtype->mSize) { + int nrep = 1; + + if (ConsumeTokenIf(TK_OPEN_BRACKET)) + { + Expression* istart = ParseRExpression(); + if (istart->mType != EX_CONSTANT || istart->mDecValue->mType != DT_CONST_INTEGER) + mErrors->Error(mScanner->mLocation, EERR_CONSTANT_INITIALIZER, "Constant index expected"); + else + { + index = dtype->mBase->mSize * istart->mDecValue->mInteger; + if (index >= dtype->mSize) + { + mErrors->Error(mScanner->mLocation, EERR_CONSTANT_INITIALIZER, "Constant initializer out of range"); + break; + } + + if (ConsumeTokenIf(TK_ELLIPSIS)) + { + Expression* iend = ParseRExpression(); + if (iend->mType != EX_CONSTANT || iend->mDecValue->mType != DT_CONST_INTEGER) + mErrors->Error(mScanner->mLocation, EERR_CONSTANT_INITIALIZER, "Constant index expected"); + else + { + nrep = iend->mDecValue->mInteger - istart->mDecValue->mInteger + 1; + + if (index + nrep * dtype->mBase->mSize > dtype->mSize) + { + mErrors->Error(mScanner->mLocation, EERR_CONSTANT_INITIALIZER, "Constant initializer out of range"); + break; + } + } + } + } + + ConsumeToken(TK_CLOSE_BRACKET); + ConsumeToken(TK_ASSIGN); + } + Expression* texp = ParseInitExpression(dtype->mBase); - Declaration* cdec = CopyConstantInitializer(index, dtype->mBase, texp); + for (int i = 0; i < nrep; i++) + { + Declaration* cdec = CopyConstantInitializer(index, dtype->mBase, texp); - if (last) - last->mNext = cdec; - else - dec->mParams = cdec; - last = cdec; + if (last) + last->mNext = cdec; + else + dec->mParams = cdec; + last = cdec; + + index += dtype->mBase->mSize; + } - index += dtype->mBase->mSize; if (!ConsumeTokenIf(TK_COMMA)) break; if (mScanner->mToken == TK_CLOSE_BRACE) diff --git a/oscar64/oscar64.cpp b/oscar64/oscar64.cpp index c9870c6..a89b9d0 100644 --- a/oscar64/oscar64.cpp +++ b/oscar64/oscar64.cpp @@ -73,7 +73,7 @@ int main2(int argc, const char** argv) #else strcpy(strProductName, "oscar64"); - strcpy(strProductVersion, "1.5.105"); + strcpy(strProductVersion, "1.5.106"); #ifdef __APPLE__ uint32_t length = sizeof(basePath); diff --git a/oscar64/oscar64.rc b/oscar64/oscar64.rc index b063937..13ec879 100644 --- a/oscar64/oscar64.rc +++ b/oscar64/oscar64.rc @@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,5,105,0 - PRODUCTVERSION 1,5,105,0 + FILEVERSION 1,5,106,0 + PRODUCTVERSION 1,5,106,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -43,12 +43,12 @@ BEGIN BEGIN VALUE "CompanyName", "oscar64" VALUE "FileDescription", "oscar64 compiler" - VALUE "FileVersion", "1.5.105.0" + VALUE "FileVersion", "1.5.106.0" VALUE "InternalName", "oscar64.exe" VALUE "LegalCopyright", "Copyright (C) 2021" VALUE "OriginalFilename", "oscar64.exe" VALUE "ProductName", "oscar64" - VALUE "ProductVersion", "1.5.105.0" + VALUE "ProductVersion", "1.5.106.0" END END BLOCK "VarFileInfo" diff --git a/oscar64setup/oscar64setup.vdproj b/oscar64setup/oscar64setup.vdproj index bb81f8d..90e4dfa 100644 --- a/oscar64setup/oscar64setup.vdproj +++ b/oscar64setup/oscar64setup.vdproj @@ -34,6 +34,12 @@ } "Entry" { + "MsmKey" = "8:_03D7013B0D39A89CEA9D267005ADCE39" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_04ABABC55200450383686DD782DD1548" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -154,6 +160,12 @@ } "Entry" { + "MsmKey" = "8:_326B44043E3720E0A341FB5627DA8873" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_3277DE1463544F67B7E7390175F8A9CF" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -166,6 +178,12 @@ } "Entry" { + "MsmKey" = "8:_36B4A1247BFCE001E1BAE7560E9CFEEA" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_379EE3C17FEC4C5EA79D07668CD05FC4" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -238,6 +256,12 @@ } "Entry" { + "MsmKey" = "8:_458189403F0009BC49371204B74F3BD3" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_47A877D439EE429BAB64C52FEF69EDA4" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -358,6 +382,12 @@ } "Entry" { + "MsmKey" = "8:_749A2BA18335F50EB53CCE7029861FBC" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_749F54DFBD4D404DA9C2E2D5BA7CDDBF" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -418,6 +448,12 @@ } "Entry" { + "MsmKey" = "8:_8667075410229C38BF63AC1CC776055E" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_8827B6B07A1C4B32B08DF784E090381D" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -658,6 +694,12 @@ } "Entry" { + "MsmKey" = "8:_C94FC3629B574FD3B4B86DADD8D77812" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_CC473A7B399D4B31A9DC8C94F7771EF7" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -718,12 +760,24 @@ } "Entry" { + "MsmKey" = "8:_D82F590F7B264CCEBE12A9427BD4A6C9" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_DA28A07E7836459C99161100D7C102B8" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { + "MsmKey" = "8:_DD5A4DD822437085CD584319732F2D4D" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_DEADBEA270134B77800770802B21859C" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -784,6 +838,12 @@ } "Entry" { + "MsmKey" = "8:_EA3C0BCB01F2639DFA2E37EC8436E5F6" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_ED872D39D58443D590B7C80604BC0FF4" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -814,6 +874,12 @@ } "Entry" { + "MsmKey" = "8:_F20F5618C7576D758C01D89C87469AF8" + "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_F35970F9D8FA46B09F36D7E9DE5532CA" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -838,6 +904,12 @@ } "Entry" { + "MsmKey" = "8:_FCF3696486DC430EA7BFACA8BE9731E7" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_FDDF38BFE6BA48C88ED8CB7EADD94159" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -989,6 +1061,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_03D7013B0D39A89CEA9D267005ADCE39" + { + "SourcePath" = "8:VCRUNTIME140.dll" + "TargetName" = "8:VCRUNTIME140.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_04ABABC55200450383686DD782DD1548" { "SourcePath" = "8:..\\samples\\games\\lander.c" @@ -1389,6 +1481,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_326B44043E3720E0A341FB5627DA8873" + { + "SourcePath" = "8:api-ms-win-crt-stdio-l1-1-0.dll" + "TargetName" = "8:api-ms-win-crt-stdio-l1-1-0.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3277DE1463544F67B7E7390175F8A9CF" { "SourcePath" = "8:..\\samples\\rasterirq\\autocrawler.c" @@ -1429,6 +1541,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_36B4A1247BFCE001E1BAE7560E9CFEEA" + { + "SourcePath" = "8:api-ms-win-crt-math-l1-1-0.dll" + "TargetName" = "8:api-ms-win-crt-math-l1-1-0.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_379EE3C17FEC4C5EA79D07668CD05FC4" { "SourcePath" = "8:..\\samples\\memmap\\easyflash.c" @@ -1669,6 +1801,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_458189403F0009BC49371204B74F3BD3" + { + "SourcePath" = "8:api-ms-win-crt-string-l1-1-0.dll" + "TargetName" = "8:api-ms-win-crt-string-l1-1-0.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_47A877D439EE429BAB64C52FEF69EDA4" { "SourcePath" = "8:..\\samples\\memmap\\largemem.c" @@ -2069,6 +2221,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_749A2BA18335F50EB53CCE7029861FBC" + { + "SourcePath" = "8:api-ms-win-crt-runtime-l1-1-0.dll" + "TargetName" = "8:api-ms-win-crt-runtime-l1-1-0.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_749F54DFBD4D404DA9C2E2D5BA7CDDBF" { "SourcePath" = "8:..\\samples\\resources\\breakoutchars.bin" @@ -2269,6 +2441,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8667075410229C38BF63AC1CC776055E" + { + "SourcePath" = "8:api-ms-win-crt-filesystem-l1-1-0.dll" + "TargetName" = "8:api-ms-win-crt-filesystem-l1-1-0.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8827B6B07A1C4B32B08DF784E090381D" { "SourcePath" = "8:..\\samples\\memmap\\tsr.c" @@ -3069,6 +3261,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C94FC3629B574FD3B4B86DADD8D77812" + { + "SourcePath" = "8:..\\include\\stdarg.h" + "TargetName" = "8:stdarg.h" + "Tag" = "8:" + "Folder" = "8:_7C0D28C244F14A21B5F72213BBE59B6F" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CC473A7B399D4B31A9DC8C94F7771EF7" { "SourcePath" = "8:..\\samples\\memmap\\charsethi.c" @@ -3269,6 +3481,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D82F590F7B264CCEBE12A9427BD4A6C9" + { + "SourcePath" = "8:..\\include\\ctype.h" + "TargetName" = "8:ctype.h" + "Tag" = "8:" + "Folder" = "8:_7C0D28C244F14A21B5F72213BBE59B6F" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DA28A07E7836459C99161100D7C102B8" { "SourcePath" = "8:..\\include\\c64\\memmap.h" @@ -3289,6 +3521,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DD5A4DD822437085CD584319732F2D4D" + { + "SourcePath" = "8:api-ms-win-crt-heap-l1-1-0.dll" + "TargetName" = "8:api-ms-win-crt-heap-l1-1-0.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DEADBEA270134B77800770802B21859C" { "SourcePath" = "8:..\\samples\\games\\connectfour.c" @@ -3489,6 +3741,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_EA3C0BCB01F2639DFA2E37EC8436E5F6" + { + "SourcePath" = "8:VERSION.dll" + "TargetName" = "8:VERSION.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ED872D39D58443D590B7C80604BC0FF4" { "SourcePath" = "8:..\\samples\\kernalio\\fileread.c" @@ -3589,6 +3861,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F20F5618C7576D758C01D89C87469AF8" + { + "SourcePath" = "8:api-ms-win-crt-locale-l1-1-0.dll" + "TargetName" = "8:api-ms-win-crt-locale-l1-1-0.dll" + "Tag" = "8:" + "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F35970F9D8FA46B09F36D7E9DE5532CA" { "SourcePath" = "8:..\\include\\c64\\charwin.h" @@ -3649,6 +3941,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FCF3696486DC430EA7BFACA8BE9731E7" + { + "SourcePath" = "8:..\\include\\ctype.c" + "TargetName" = "8:ctype.c" + "Tag" = "8:" + "Folder" = "8:_7C0D28C244F14A21B5F72213BBE59B6F" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FDDF38BFE6BA48C88ED8CB7EADD94159" { "SourcePath" = "8:..\\include\\gfx\\bitmap.c" @@ -3945,15 +4257,15 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:oscar64" - "ProductCode" = "8:{406BC6F9-178C-4F55-8841-568E49B13E6A}" - "PackageCode" = "8:{37C93EF5-4005-4CD6-B3E1-7A1383214775}" + "ProductCode" = "8:{D1944B7D-1094-4FDC-B4D1-55610B2C3743}" + "PackageCode" = "8:{7B1EFF4D-5BCD-4761-998C-684DE721D818}" "UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}" "AspNetVersion" = "8:2.0.50727.0" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" "InstallAllUsers" = "11:FALSE" - "ProductVersion" = "8:1.5.105" + "ProductVersion" = "8:1.5.106" "Manufacturer" = "8:oscar64" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:"