From 5372d49b50513350d40a98e68ce3c39e7c4ac6dc Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Tue, 12 Oct 2021 17:54:10 +0200 Subject: [PATCH] Petscii translation in stdio and conio --- README.md | 15 ++- include/c64/vic.h | 28 ++-- include/conio.c | 94 +++++++++++-- include/conio.h | 22 +++ include/stdio.c | 89 +++++++++--- include/stdio.h | 1 + oscar64/InterCodeGenerator.cpp | 23 ++-- oscar64/oscar64.cpp | 2 +- oscar64/oscar64.rc | 8 +- oscar64setup/oscar64setup.vdproj | 224 +++---------------------------- 10 files changed, 243 insertions(+), 263 deletions(-) diff --git a/README.md b/README.md index 9c4c96ce..34f63ed0 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ The goal is to implement the actual C standard and not some subset for performan ## Limits and Errors -After four weeks, the compiler has now matured significantly. There are still several open areas. +There are still several open areas, but most targets have been reached. The current Dhrystone performance is 35 iterations per second with byte code (12259) and 203 iterations with native code (13572 Bytes). ### Language @@ -76,6 +76,19 @@ The compiler is command line driven, and creates an executable .prg file. A list of source files can be provided. +## Console input and output + +The C64 does not use ASCII it uses a derivative called PETSCII. There are two fonts, one with uppercase and one with uppercase and lowercase characters. It also used CR (13) as line terminator instead of LF (10). The stdio and conio libaries can perform translations. + +The translation mode is selected in conio with the variable "giocharmap" and the function "iocharmap" which will also switch the font. + + iocharmap(IOCHM_PETSCII_2); + printf("Hello World\"); + +Will switch to the lowercase PETSCII font and translate the strings while printing. + +Input from the console will also be translated accordingly. + ## Inline Assembler Inline assembler can be embedded inside of any functions, regardles of their compilation target of byte code or native. diff --git a/include/c64/vic.h b/include/c64/vic.h index 6d456509..cb14683f 100644 --- a/include/c64/vic.h +++ b/include/c64/vic.h @@ -23,21 +23,21 @@ enum VICColors { VCOL_BLACK, VCOL_WHITE, - BCOL_RED, - BCOL_CYAN, - BCOL_PURPLE, - BCOL_GREEN, - BCOL_BLUE, - BCOL_YELLOW, + VCOL_RED, + VCOL_CYAN, + VCOL_PURPLE, + VCOL_GREEN, + VCOL_BLUE, + VCOL_YELLOW, - BCOL_ORANGE, - BCOL_BROWN, - BCOL_LT_RED, - BCOL_DARK_GREY, - BCOL_MED_GREY, - BCOL_LT_GREEN, - BCOL_LT_BLUE, - BCOL_LT_GREY + VCOL_ORANGE, + VCOL_BROWN, + VCOL_LT_RED, + VCOL_DARK_GREY, + VCOL_MED_GREY, + VCOL_LT_GREEN, + VCOL_LT_BLUE, + VCOL_LT_GREY }; struct VIC diff --git a/include/conio.c b/include/conio.c index 921a868f..5c3d94f5 100644 --- a/include/conio.c +++ b/include/conio.c @@ -1,5 +1,75 @@ #include "conio.h" +static IOCharMap giocharmap = IOCHM_ASCII; + +void iocharmap(IOCharMap chmap) +{ + giocharmap = chmap; + if (chmap == IOCHM_PETSCII_1) + putchar(128 + 14); + else if (chmap == IOCHM_PETSCII_2) + putchar(14); +} + +__asm putpch +{ + ldx giocharmap + cpx #IOCHM_ASCII + bcc w3 + + cmp #10 + bne w1 + lda #13 + w1: + cpx #IOCHM_PETSCII_1 + bcc w3 + + cmp #65 + bcc w3 + cmp #123 + bcs w3 + cmp #97 + bcs w2 + cmp #91 + bcs w3 + w2: + eor #$20 + cpx #IOCHM_PETSCII_2 + beq w3 + and #$df + w3: + jmp 0xffd2 +} + +__asm getpch +{ + jsr 0xffe4 + + ldx giocharmap + cpx #IOCHM_ASCII + bcc w3 + + cmp #13 + bne w1 + lda #10 + w1: + cpx #IOCHM_PETSCII_1 + bcc w3 + + cmp #65 + bcc w3 + cmp #123 + bcs w3 + cmp #97 + bcs w2 + cmp #91 + bcs w3 + w2: + eor #$20 + w3: +} + + int kbhit(void) { __asm @@ -16,12 +86,12 @@ int getche(void) __asm { L1: - jsr $ffe4 + jsr getpch cmp #0 beq L1 sta accu - jsr $ffd2 + jsr putpch lda #0 sta accu + 1 } @@ -33,7 +103,7 @@ int getch(void) __asm { L1: - jsr $ffe4 + jsr getpch cmp #0 beq L1 @@ -60,16 +130,17 @@ void clrscr(void) } } -void gotoxy(int x, int y) +void textcursor(bool show) +{ + *(char *)0xcc = show ? 0 : 1; +} + +void gotoxy(int cx, int cy) { __asm { - ldy #y - lda (fp), y - tax - ldy #x - lda (fp), y - tay + ldy cy + ldx cx clc jsr $fff0 } @@ -79,8 +150,7 @@ void textcolor(int c) { __asm { - ldy #c - lda (fp), y + lda c sta $0286 } } diff --git a/include/conio.h b/include/conio.h index bb55fe1c..370e5d8a 100644 --- a/include/conio.h +++ b/include/conio.h @@ -1,6 +1,24 @@ #ifndef CONIO_H #define CONIO_H +enum IOCharMap +{ + IOCHM_TRANSPARENT, + IOCHM_ASCII, + IOCHM_PETSCII_1, + IOCHM_PETSCII_2 +}; + +extern IOCharMap giocharmap; + +// Switch character map to transparent bypass, petscii font 1 or +// petscii font 2. Translation is performed for all reading and +// writing operations. The ascii mode will only translate the +// line end CR into an LF + +void iocharmap(IOCharMap chmap); + + int kbhit(void); int getche(void); @@ -19,6 +37,10 @@ int wherex(void); int wherey(void); +// show or hide the text cursor + +void textcursor(bool show); + #pragma compile("conio.c") #endif diff --git a/include/stdio.c b/include/stdio.c index 80c5a7bb..d674f281 100644 --- a/include/stdio.c +++ b/include/stdio.c @@ -1,21 +1,77 @@ #include "stdio.h" -#include +#include "conio.h" +#include "stdlib.h" -void putchar(char c) +__asm putpch { - __asm { - lda c + ldx giocharmap + cpx #IOCHM_ASCII + bcc w3 + + cmp #10 bne w1 lda #13 w1: - jsr 0xffd2 + cpx #IOCHM_PETSCII_1 + bcc w3 + + cmp #65 + bcc w3 + cmp #123 + bcs w3 + cmp #97 + bcs w2 + cmp #91 + bcs w3 + w2: + eor #$20 + cpx #IOCHM_PETSCII_2 + beq w3 + and #$df + w3: + jmp 0xffd2 +} + +__asm getpch +{ + jsr 0xffcf + + ldx giocharmap + cpx #IOCHM_ASCII + bcc w3 + + cmp #13 + bne w1 + lda #10 + w1: + cpx #IOCHM_PETSCII_1 + bcc w3 + + cmp #65 + bcc w3 + cmp #123 + bcs w3 + cmp #97 + bcs w2 + cmp #91 + bcs w3 + w2: + eor #$20 + w3: +} + +void putchar(char c) +{ + __asm { + lda c + jmp putpch } } char getchar(void) { __asm { - jsr 0xffcf + jsr getpch sta accu lda #0 sta accu + 1 @@ -25,21 +81,16 @@ char getchar(void) void puts(const char * str) { __asm { + loop: ldy #0 lda (str), y beq done - loop: - cmp #10 - bne w1 - lda #13 - w1: - jsr 0xffd2 + + jsr putpch + inc str - bne next + bne loop inc str + 1 - next: - ldy #0 - lda (str), y bne loop done: } @@ -49,14 +100,14 @@ char * gets(char * str) { __asm { loop: - jsr 0xffcf + jsr getpch ldy #0 - cmp #13 + cmp #10 beq done sta (str), y inc str bne loop - inc srt + 1 + inc str + 1 bne loop done: lda #0 diff --git a/include/stdio.h b/include/stdio.h index 292b9cf5..2659cf4c 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -3,6 +3,7 @@ #include + void putchar(char c); char getchar(void); diff --git a/oscar64/InterCodeGenerator.cpp b/oscar64/InterCodeGenerator.cpp index 72d273d2..0698e276 100644 --- a/oscar64/InterCodeGenerator.cpp +++ b/oscar64/InterCodeGenerator.cpp @@ -432,16 +432,21 @@ void InterCodeGenerator::TranslateAssembler(InterCodeModule* mod, Expression* ex } else if (aexp->mType == DT_LABEL_REF) { - if (!aexp->mBase->mBase->mLinkerObject) - TranslateAssembler(mod, aexp->mBase->mBase->mValue, nullptr); + if (aexp->mBase->mBase) + { + if (!aexp->mBase->mBase->mLinkerObject) + TranslateAssembler(mod, aexp->mBase->mBase->mValue, nullptr); - LinkerReference ref; - ref.mObject = dec->mLinkerObject; - ref.mOffset = offset; - ref.mFlags = LREF_LOWBYTE | LREF_HIGHBYTE; - ref.mRefObject = aexp->mBase->mBase->mLinkerObject; - ref.mRefOffset = aexp->mOffset + aexp->mBase->mInteger; - dec->mLinkerObject->AddReference(ref); + LinkerReference ref; + ref.mObject = dec->mLinkerObject; + ref.mOffset = offset; + ref.mFlags = LREF_LOWBYTE | LREF_HIGHBYTE; + ref.mRefObject = aexp->mBase->mBase->mLinkerObject; + ref.mRefOffset = aexp->mOffset + aexp->mBase->mInteger; + dec->mLinkerObject->AddReference(ref); + } + else + mErrors->Error(aexp->mLocation, EERR_ASM_INVALD_OPERAND, "Undefined label"); offset += 2; } diff --git a/oscar64/oscar64.cpp b/oscar64/oscar64.cpp index 6ab2f6ce..ab32495f 100644 --- a/oscar64/oscar64.cpp +++ b/oscar64/oscar64.cpp @@ -75,7 +75,7 @@ int main(int argc, const char** argv) DWORD length = ::GetModuleFileNameA(NULL, basePath, sizeof(basePath)); #else - printf("Starting oscar64 1.1.40\n"); + printf("Starting oscar64 1.1.41\n"); #ifdef __APPLE__ uint32_t length = sizeof(basePath); diff --git a/oscar64/oscar64.rc b/oscar64/oscar64.rc index ffc9412d..e364bedb 100644 --- a/oscar64/oscar64.rc +++ b/oscar64/oscar64.rc @@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,1,40,0 - PRODUCTVERSION 1,1,40,0 + FILEVERSION 1,1,41,0 + PRODUCTVERSION 1,1,41,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -43,12 +43,12 @@ BEGIN BEGIN VALUE "CompanyName", "oscar64" VALUE "FileDescription", "oscar64 compiler" - VALUE "FileVersion", "1.1.40.0" + VALUE "FileVersion", "1.1.41.0" VALUE "InternalName", "oscar64.exe" VALUE "LegalCopyright", "Copyright (C) 2021" VALUE "OriginalFilename", "oscar64.exe" VALUE "ProductName", "oscar64" - VALUE "ProductVersion", "1.1.40.0" + VALUE "ProductVersion", "1.1.41.0" END END BLOCK "VarFileInfo" diff --git a/oscar64setup/oscar64setup.vdproj b/oscar64setup/oscar64setup.vdproj index bed51711..51ff2777 100644 --- a/oscar64setup/oscar64setup.vdproj +++ b/oscar64setup/oscar64setup.vdproj @@ -14,12 +14,6 @@ "BackwardsCompatibleGUIDGeneration" = "8:TRUE" "Hierarchy" { - "Entry" - { - "MsmKey" = "8:_03D7013B0D39A89CEA9D267005ADCE39" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" - "MsmSig" = "8:_UNDEFINED" - } "Entry" { "MsmKey" = "8:_0D8B657E4A954DBFAF14055CDFFB384C" @@ -40,20 +34,14 @@ } "Entry" { - "MsmKey" = "8:_2CA3A525072974368303677563606FFE" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_317711E6E48744A18655469B4C53767E" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_3FA71395262A4AB4A1C2839FD6B91190" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmKey" = "8:_3AFDC86156F04AABB8D82218C17005F2" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -76,18 +64,6 @@ } "Entry" { - "MsmKey" = "8:_777CE896BB0B3C09C1B5FB6CB3BFE84F" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_7A40466D5E5D2D3FD71213A0C0AA5075" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_7EA67552E0B34B9BA70152AD9E369EA6" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -118,32 +94,20 @@ } "Entry" { - "MsmKey" = "8:_B2B920A649CF4027457BBAB004078A03" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_B4265CBF352343D2867DBCCE67D9F493" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_D0E45B48D76B4407B0BDE4378C1DB2C7" + "MsmKey" = "8:_C239EFB1C3A646809AD2740ABDE747B0" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_DC9FDF52011EB7C47318682BA0B3F26F" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_DE2BF7C92569053E7C3DCE88AB7E2566" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" + "MsmKey" = "8:_D0E45B48D76B4407B0BDE4378C1DB2C7" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -184,12 +148,6 @@ } "Entry" { - "MsmKey" = "8:_EA3C0BCB01F2639DFA2E37EC8436E5F6" - "OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_EDDED74E9AC24D9C8C7811F3A20ACA53" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -293,26 +251,6 @@ } "File" { - "{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}:_0D8B657E4A954DBFAF14055CDFFB384C" { "SourcePath" = "8:..\\include\\crt.c" @@ -373,26 +311,6 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_2CA3A525072974368303677563606FFE" - { - "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}:_317711E6E48744A18655469B4C53767E" { "SourcePath" = "8:..\\include\\math.c" @@ -413,12 +331,12 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3FA71395262A4AB4A1C2839FD6B91190" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3AFDC86156F04AABB8D82218C17005F2" { - "SourcePath" = "8:api-ms-win-crt-stdio-l1-1-0.dll" - "TargetName" = "8:api-ms-win-crt-stdio-l1-1-0.dll" + "SourcePath" = "8:..\\include\\c64\\vic.h" + "TargetName" = "8:vic.h" "Tag" = "8:" - "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Folder" = "8:_247D4CAD3CB843B3A8A4DC2D90F47C28" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -430,7 +348,7 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3FFD08277B804985BDF072C0C1877287" @@ -493,46 +411,6 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_777CE896BB0B3C09C1B5FB6CB3BFE84F" - { - "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}:_7A40466D5E5D2D3FD71213A0C0AA5075" - { - "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}:_7EA67552E0B34B9BA70152AD9E369EA6" { "SourcePath" = "8:..\\include\\c64\\joystick.h" @@ -633,12 +511,12 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B2B920A649CF4027457BBAB004078A03" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B4265CBF352343D2867DBCCE67D9F493" { - "SourcePath" = "8:api-ms-win-crt-math-l1-1-0.dll" - "TargetName" = "8:api-ms-win-crt-math-l1-1-0.dll" + "SourcePath" = "8:..\\include\\c64\\joystick.c" + "TargetName" = "8:joystick.c" "Tag" = "8:" - "Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4" + "Folder" = "8:_247D4CAD3CB843B3A8A4DC2D90F47C28" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -650,13 +528,13 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" - "IsDependency" = "11:TRUE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B4265CBF352343D2867DBCCE67D9F493" + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_C239EFB1C3A646809AD2740ABDE747B0" { - "SourcePath" = "8:..\\include\\c64\\joystick.c" - "TargetName" = "8:joystick.c" + "SourcePath" = "8:..\\include\\c64\\types.h" + "TargetName" = "8:types.h" "Tag" = "8:" "Folder" = "8:_247D4CAD3CB843B3A8A4DC2D90F47C28" "Condition" = "8:" @@ -693,46 +571,6 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_DC9FDF52011EB7C47318682BA0B3F26F" - { - "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}:_DE2BF7C92569053E7C3DCE88AB7E2566" - { - "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}:_E218D776D9014F99BE2B046AEF2D6E8B" { "SourcePath" = "8:..\\include\\stdlib.c" @@ -853,26 +691,6 @@ "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}:_EDDED74E9AC24D9C8C7811F3A20ACA53" { "SourcePath" = "8:..\\include\\stdio.c" @@ -1002,15 +820,15 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:oscar64" - "ProductCode" = "8:{B454BC86-EF23-4C62-8A7B-812DC9099703}" - "PackageCode" = "8:{7E765723-5387-4BC6-9543-542D3C759786}" + "ProductCode" = "8:{40AF707C-0E9B-4786-A353-C49A7288B8E5}" + "PackageCode" = "8:{7C6E8F8C-262F-4230-92A2-4E3E95F7B70E}" "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.1.40" + "ProductVersion" = "8:1.1.41" "Manufacturer" = "8:oscar64" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:"