Fix assembler label low/high byte immediate
This commit is contained in:
parent
1d761886b5
commit
fae377132f
|
@ -356,6 +356,7 @@ void * sformat(void * data, putstrfn fn, const char * fmt, int * fps)
|
||||||
nformi(&si, buff, *fps++, false);
|
nformi(&si, buff, *fps++, false);
|
||||||
data = fn(data, buff);
|
data = fn(data, buff);
|
||||||
}
|
}
|
||||||
|
#ifndef NOFLOAT
|
||||||
else if (c == 'f' || c == 'g' || c == 'e')
|
else if (c == 'f' || c == 'g' || c == 'e')
|
||||||
{
|
{
|
||||||
nformf(&si, buff, *(float *)fps, c);
|
nformf(&si, buff, *(float *)fps, c);
|
||||||
|
@ -363,6 +364,7 @@ void * sformat(void * data, putstrfn fn, const char * fmt, int * fps)
|
||||||
fps ++;
|
fps ++;
|
||||||
fps ++;
|
fps ++;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else if (c == 's')
|
else if (c == 's')
|
||||||
{
|
{
|
||||||
data = fn(data, (char *)*fps++);
|
data = fn(data, (char *)*fps++);
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
Compiler::Compiler(void)
|
Compiler::Compiler(void)
|
||||||
: mByteCodeFunctions(nullptr), mNativeCode(false)
|
: mByteCodeFunctions(nullptr), mNativeCode(false), mDefines({nullptr, nullptr})
|
||||||
{
|
{
|
||||||
mErrors = new Errors();
|
mErrors = new Errors();
|
||||||
mCompilationUnits = new CompilationUnits(mErrors);
|
mCompilationUnits = new CompilationUnits(mErrors);
|
||||||
|
@ -29,6 +29,15 @@ void Compiler::ForceNativeCode(bool native)
|
||||||
mNativeCode = native;
|
mNativeCode = native;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Compiler::AddDefine(const Ident* ident, const char* value)
|
||||||
|
{
|
||||||
|
Define define;
|
||||||
|
define.mIdent = ident;
|
||||||
|
define.mValue = value;
|
||||||
|
mDefines.Push(define);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Compiler::ParseSource(void)
|
bool Compiler::ParseSource(void)
|
||||||
{
|
{
|
||||||
CompilationUnit* cunit;
|
CompilationUnit* cunit;
|
||||||
|
@ -37,6 +46,10 @@ bool Compiler::ParseSource(void)
|
||||||
if (mPreprocessor->OpenSource(cunit->mFileName, true))
|
if (mPreprocessor->OpenSource(cunit->mFileName, true))
|
||||||
{
|
{
|
||||||
Scanner* scanner = new Scanner(mErrors, mPreprocessor);
|
Scanner* scanner = new Scanner(mErrors, mPreprocessor);
|
||||||
|
|
||||||
|
for (int i = 0; i < mDefines.Size(); i++)
|
||||||
|
scanner->AddMacro(mDefines[i].mIdent, mDefines[i].mValue);
|
||||||
|
|
||||||
Parser* parser = new Parser(mErrors, scanner, mCompilationUnits);
|
Parser* parser = new Parser(mErrors, scanner, mCompilationUnits);
|
||||||
|
|
||||||
parser->Parse();
|
parser->Parse();
|
||||||
|
|
|
@ -23,10 +23,19 @@ public:
|
||||||
|
|
||||||
bool mNativeCode;
|
bool mNativeCode;
|
||||||
|
|
||||||
|
struct Define
|
||||||
|
{
|
||||||
|
const Ident* mIdent;
|
||||||
|
const char* mValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
GrowingArray<Define> mDefines;
|
||||||
|
|
||||||
bool ParseSource(void);
|
bool ParseSource(void);
|
||||||
bool GenerateCode(void);
|
bool GenerateCode(void);
|
||||||
bool WriteOutputFile(const char* targetPath);
|
bool WriteOutputFile(const char* targetPath);
|
||||||
int ExecuteCode(void);
|
int ExecuteCode(void);
|
||||||
|
|
||||||
void ForceNativeCode(bool native);
|
void ForceNativeCode(bool native);
|
||||||
|
void AddDefine(const Ident* ident, const char* value);
|
||||||
};
|
};
|
||||||
|
|
|
@ -1553,6 +1553,29 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
||||||
case ASMIM_IMPLIED:
|
case ASMIM_IMPLIED:
|
||||||
break;
|
break;
|
||||||
case ASMIM_IMMEDIATE:
|
case ASMIM_IMMEDIATE:
|
||||||
|
if (aexp->mType == DT_CONST_INTEGER)
|
||||||
|
d[offset++] = cexp->mLeft->mDecValue->mInteger & 255;
|
||||||
|
else if (aexp->mType == DT_LABEL_REF)
|
||||||
|
{
|
||||||
|
if (aexp->mBase->mBase->mVarIndex < 0)
|
||||||
|
{
|
||||||
|
InterCodeBasicBlock* bblock = nullptr;
|
||||||
|
TranslateExpression(procType, proc, bblock, aexp->mBase->mBase->mValue, breakBlock, continueBlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
InterVariable::Reference ref;
|
||||||
|
ref.mFunction = false;
|
||||||
|
ref.mUpper = aexp->mFlags & DTF_UPPER_BYTE;
|
||||||
|
ref.mLower = !(aexp->mFlags & DTF_UPPER_BYTE);
|
||||||
|
ref.mAddr = offset;
|
||||||
|
ref.mIndex = aexp->mBase->mBase->mVarIndex;
|
||||||
|
ref.mOffset = aexp->mOffset + aexp->mBase->mInteger;
|
||||||
|
|
||||||
|
references.Push(ref);
|
||||||
|
|
||||||
|
offset += 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case ASMIM_ZERO_PAGE:
|
case ASMIM_ZERO_PAGE:
|
||||||
case ASMIM_ZERO_PAGE_X:
|
case ASMIM_ZERO_PAGE_X:
|
||||||
case ASMIM_INDIRECT_X:
|
case ASMIM_INDIRECT_X:
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
#include "Linker.h"
|
||||||
|
|
||||||
|
Linker::Linker(Errors* errors)
|
||||||
|
: mErrors(errors), mSections(nullptr), mReferences(nullptr), mObjects(nullptr)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Linker::~Linker(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int Linker::AddSection(const Ident* section, int start, int size)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Linker::AddSectionData(const Ident* section, int id, const uint8* data, int size)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8* Linker::AddSectionSpace(const Ident* section, int id, int size)
|
||||||
|
{
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Linker::AddReference(const LinkerReference& ref)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "MachineTypes.h"
|
||||||
|
#include "Ident.h"
|
||||||
|
#include "Array.h"
|
||||||
|
#include "Errors.h"
|
||||||
|
|
||||||
|
struct LinkerReference
|
||||||
|
{
|
||||||
|
int mSection, mID, mOffset;
|
||||||
|
int mRefSection, mRefID, mRefOffset;
|
||||||
|
bool mLowByte, mHighByte;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct LinkerSection
|
||||||
|
{
|
||||||
|
const Ident* mIdent;
|
||||||
|
int mID;
|
||||||
|
int mStart, mSize;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct LinkerObject
|
||||||
|
{
|
||||||
|
const Ident* mIdent;
|
||||||
|
int mID;
|
||||||
|
int mSize;
|
||||||
|
uint8* mData;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Linker
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Linker(Errors * errors);
|
||||||
|
~Linker(void);
|
||||||
|
|
||||||
|
int AddSection(const Ident* section, int start, int size);
|
||||||
|
void AddSectionData(const Ident* section, int id, const uint8* data, int size);
|
||||||
|
uint8 * AddSectionSpace(const Ident* section, int id, int size);
|
||||||
|
void AddReference(const LinkerReference& ref);
|
||||||
|
|
||||||
|
GrowingArray<LinkerReference*> mReferences;
|
||||||
|
GrowingArray<LinkerSection*> mSections;
|
||||||
|
GrowingArray<LinkerObject*> mObjects;
|
||||||
|
|
||||||
|
void Link(void);
|
||||||
|
protected:
|
||||||
|
Errors* mErrors;
|
||||||
|
};
|
|
@ -340,6 +340,13 @@ static inline int HexValue(char ch)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Scanner::AddMacro(const Ident* ident, const char* value)
|
||||||
|
{
|
||||||
|
Macro* macro = new Macro(ident);
|
||||||
|
macro->SetString(value);
|
||||||
|
mDefines->Insert(macro);
|
||||||
|
}
|
||||||
|
|
||||||
void Scanner::NextToken(void)
|
void Scanner::NextToken(void)
|
||||||
{
|
{
|
||||||
for (;;)
|
for (;;)
|
||||||
|
@ -636,6 +643,29 @@ void Scanner::NextRawToken(void)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case '%':
|
case '%':
|
||||||
|
if (mAssemblerMode)
|
||||||
|
{
|
||||||
|
int n = 0;
|
||||||
|
__int64 mant = 0;
|
||||||
|
while (NextChar())
|
||||||
|
{
|
||||||
|
if (mTokenChar >= '0' && mTokenChar <= '9')
|
||||||
|
mant = mant * 16 + (int)mTokenChar - (int)'0';
|
||||||
|
else if (mTokenChar >= 'a' && mTokenChar <= 'f')
|
||||||
|
mant = mant * 16 + 10 + (int)mTokenChar - (int)'a';
|
||||||
|
else if (mTokenChar >= 'A' && mTokenChar <= 'F')
|
||||||
|
mant = mant * 16 + 10 + (int)mTokenChar - (int)'A';
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n == 0)
|
||||||
|
mErrors->Error(mLocation, "Missing digits in hex constant");
|
||||||
|
|
||||||
|
mToken = TK_INTEGER;
|
||||||
|
mTokenInteger = mant;
|
||||||
|
}
|
||||||
mToken = TK_MOD;
|
mToken = TK_MOD;
|
||||||
NextChar();
|
NextChar();
|
||||||
if (mTokenChar == '=')
|
if (mTokenChar == '=')
|
||||||
|
@ -1194,6 +1224,24 @@ void Scanner::ParseNumberToken(void)
|
||||||
mToken = TK_INTEGER;
|
mToken = TK_INTEGER;
|
||||||
mTokenInteger = mant;
|
mTokenInteger = mant;
|
||||||
}
|
}
|
||||||
|
else if (mant == 0 && (mTokenChar == 'b' || mTokenChar == 'B'))
|
||||||
|
{
|
||||||
|
int n = 0;
|
||||||
|
while (NextChar())
|
||||||
|
{
|
||||||
|
if (mTokenChar >= '0' && mTokenChar <= '1')
|
||||||
|
mant = mant * 2 + (int)mTokenChar - (int)'0';
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (n == 0)
|
||||||
|
Error("Missing digits in binary constant");
|
||||||
|
|
||||||
|
mToken = TK_INTEGER;
|
||||||
|
mTokenInteger = mant;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
|
|
|
@ -192,6 +192,8 @@ public:
|
||||||
void SetAssemblerMode(bool mode);
|
void SetAssemblerMode(bool mode);
|
||||||
|
|
||||||
bool mAssemblerMode;
|
bool mAssemblerMode;
|
||||||
|
|
||||||
|
void AddMacro(const Ident* ident, const char* value);
|
||||||
protected:
|
protected:
|
||||||
void NextRawToken(void);
|
void NextRawToken(void);
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ int main(int argc, const char** argv)
|
||||||
InitDeclarations();
|
InitDeclarations();
|
||||||
InitAssembler();
|
InitAssembler();
|
||||||
|
|
||||||
if (argc > 0)
|
if (argc > 1)
|
||||||
{
|
{
|
||||||
char basePath[200], crtPath[200], includePath[200], targetPath[200];
|
char basePath[200], crtPath[200], includePath[200], targetPath[200];
|
||||||
char strProductName[100], strProductVersion[200];
|
char strProductName[100], strProductVersion[200];
|
||||||
|
@ -119,6 +119,21 @@ int main(int argc, const char** argv)
|
||||||
{
|
{
|
||||||
emulate = true;
|
emulate = true;
|
||||||
}
|
}
|
||||||
|
else if (arg[1] == 'd')
|
||||||
|
{
|
||||||
|
char def[100];
|
||||||
|
int i = 2;
|
||||||
|
while (arg[i] && arg[i] != '=')
|
||||||
|
{
|
||||||
|
def[i - 2] = arg[i];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
def[i - 2] = 0;
|
||||||
|
if (arg[i] == '=')
|
||||||
|
compiler->AddDefine(Ident::Unique(def), _strdup(arg + i + 1));
|
||||||
|
else
|
||||||
|
compiler->AddDefine(Ident::Unique(def), "");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
compiler->mErrors->Error(loc, "Invalid command line argument", arg);
|
compiler->mErrors->Error(loc, "Invalid command line argument", arg);
|
||||||
}
|
}
|
||||||
|
@ -147,7 +162,8 @@ int main(int argc, const char** argv)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("oscar64 {-i=includePath} [-o=output.prg] [-cr=runtime.c] [-e] {source.c}\n");
|
printf("oscar64 {-i=includePath} [-o=output.prg] [-cr=runtime.c] [-e] [-n] [-dSYMBOL[=value]] {source.c}\n");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,27,0
|
FILEVERSION 1,0,28,0
|
||||||
PRODUCTVERSION 1,0,27,0
|
PRODUCTVERSION 1,0,28,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -43,12 +43,12 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "oscar64"
|
VALUE "CompanyName", "oscar64"
|
||||||
VALUE "FileDescription", "oscar64 compiler"
|
VALUE "FileDescription", "oscar64 compiler"
|
||||||
VALUE "FileVersion", "1.0.27.0"
|
VALUE "FileVersion", "1.0.28.0"
|
||||||
VALUE "InternalName", "oscar64.exe"
|
VALUE "InternalName", "oscar64.exe"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2021"
|
VALUE "LegalCopyright", "Copyright (C) 2021"
|
||||||
VALUE "OriginalFilename", "oscar64.exe"
|
VALUE "OriginalFilename", "oscar64.exe"
|
||||||
VALUE "ProductName", "oscar64"
|
VALUE "ProductName", "oscar64"
|
||||||
VALUE "ProductVersion", "1.0.27.0"
|
VALUE "ProductVersion", "1.0.28.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -151,6 +151,7 @@
|
||||||
<ClCompile Include="Ident.cpp" />
|
<ClCompile Include="Ident.cpp" />
|
||||||
<ClCompile Include="InterCode.cpp" />
|
<ClCompile Include="InterCode.cpp" />
|
||||||
<ClCompile Include="InterCodeGenerator.cpp" />
|
<ClCompile Include="InterCodeGenerator.cpp" />
|
||||||
|
<ClCompile Include="Linker.cpp" />
|
||||||
<ClCompile Include="NativeCodeGenerator.cpp" />
|
<ClCompile Include="NativeCodeGenerator.cpp" />
|
||||||
<ClCompile Include="NumberSet.cpp" />
|
<ClCompile Include="NumberSet.cpp" />
|
||||||
<ClCompile Include="oscar64.cpp" />
|
<ClCompile Include="oscar64.cpp" />
|
||||||
|
@ -171,6 +172,7 @@
|
||||||
<ClInclude Include="Ident.h" />
|
<ClInclude Include="Ident.h" />
|
||||||
<ClInclude Include="InterCode.h" />
|
<ClInclude Include="InterCode.h" />
|
||||||
<ClInclude Include="InterCodeGenerator.h" />
|
<ClInclude Include="InterCodeGenerator.h" />
|
||||||
|
<ClInclude Include="Linker.h" />
|
||||||
<ClInclude Include="MachineTypes.h" />
|
<ClInclude Include="MachineTypes.h" />
|
||||||
<ClInclude Include="NativeCodeGenerator.h" />
|
<ClInclude Include="NativeCodeGenerator.h" />
|
||||||
<ClInclude Include="NumberSet.h" />
|
<ClInclude Include="NumberSet.h" />
|
||||||
|
|
|
@ -63,6 +63,9 @@
|
||||||
<ClCompile Include="NativeCodeGenerator.cpp">
|
<ClCompile Include="NativeCodeGenerator.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="Linker.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="Array.h">
|
<ClInclude Include="Array.h">
|
||||||
|
@ -125,6 +128,9 @@
|
||||||
<ClInclude Include="NativeCodeGenerator.h">
|
<ClInclude Include="NativeCodeGenerator.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="Linker.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="oscar64.rc">
|
<ResourceCompile Include="oscar64.rc">
|
||||||
|
|
|
@ -22,6 +22,18 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
|
"MsmKey" = "8:_10AA1A8F5637EB7BCE5B2C363F0D2715"
|
||||||
|
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
|
"MsmKey" = "8:_284672F9297967D1B24B7BBC58FB364F"
|
||||||
|
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
"MsmKey" = "8:_317711E6E48744A18655469B4C53767E"
|
"MsmKey" = "8:_317711E6E48744A18655469B4C53767E"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -52,6 +64,12 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
|
"MsmKey" = "8:_A34F785CB2CDC70381777BD1CC2CE2D8"
|
||||||
|
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
"MsmKey" = "8:_D0E45B48D76B4407B0BDE4378C1DB2C7"
|
"MsmKey" = "8:_D0E45B48D76B4407B0BDE4378C1DB2C7"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -123,6 +141,14 @@
|
||||||
"PrerequisitesLocation" = "2:1"
|
"PrerequisitesLocation" = "2:1"
|
||||||
"Url" = "8:"
|
"Url" = "8:"
|
||||||
"ComponentsUrl" = "8:"
|
"ComponentsUrl" = "8:"
|
||||||
|
"Items"
|
||||||
|
{
|
||||||
|
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2"
|
||||||
|
{
|
||||||
|
"Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)"
|
||||||
|
"ProductCode" = "8:.NETFramework,Version=v4.7.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"Release"
|
"Release"
|
||||||
|
@ -197,6 +223,46 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_10AA1A8F5637EB7BCE5B2C363F0D2715"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:VCRUNTIME140D.dll"
|
||||||
|
"TargetName" = "8:VCRUNTIME140D.dll"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_C95D3F098F884652A04D707B55B980EE"
|
||||||
|
"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}:_284672F9297967D1B24B7BBC58FB364F"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:VERSION.dll"
|
||||||
|
"TargetName" = "8:VERSION.dll"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_C95D3F098F884652A04D707B55B980EE"
|
||||||
|
"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"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_317711E6E48744A18655469B4C53767E"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\include\\math.c"
|
"SourcePath" = "8:..\\include\\math.c"
|
||||||
|
@ -297,6 +363,26 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A34F785CB2CDC70381777BD1CC2CE2D8"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:ucrtbased.dll"
|
||||||
|
"TargetName" = "8:ucrtbased.dll"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_C95D3F098F884652A04D707B55B980EE"
|
||||||
|
"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}:_D0E45B48D76B4407B0BDE4378C1DB2C7"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D0E45B48D76B4407B0BDE4378C1DB2C7"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\include\\stdlib.h"
|
"SourcePath" = "8:..\\include\\stdlib.h"
|
||||||
|
@ -504,15 +590,15 @@
|
||||||
{
|
{
|
||||||
"Name" = "8:Microsoft Visual Studio"
|
"Name" = "8:Microsoft Visual Studio"
|
||||||
"ProductName" = "8:oscar64"
|
"ProductName" = "8:oscar64"
|
||||||
"ProductCode" = "8:{CD74845D-4D02-4A8D-8842-2FFD4FB25C7A}"
|
"ProductCode" = "8:{7BECBC9C-5747-4DC7-9269-74622309CE77}"
|
||||||
"PackageCode" = "8:{6A5FA045-8AF8-4431-9240-8113D869B895}"
|
"PackageCode" = "8:{B46B4FD6-08B7-407A-9F78-7A6676D5123D}"
|
||||||
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
||||||
"AspNetVersion" = "8:2.0.50727.0"
|
"AspNetVersion" = "8:2.0.50727.0"
|
||||||
"RestartWWWService" = "11:FALSE"
|
"RestartWWWService" = "11:FALSE"
|
||||||
"RemovePreviousVersions" = "11:TRUE"
|
"RemovePreviousVersions" = "11:TRUE"
|
||||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||||
"InstallAllUsers" = "11:FALSE"
|
"InstallAllUsers" = "11:FALSE"
|
||||||
"ProductVersion" = "8:1.0.27"
|
"ProductVersion" = "8:1.0.28"
|
||||||
"Manufacturer" = "8:oscar64"
|
"Manufacturer" = "8:oscar64"
|
||||||
"ARPHELPTELEPHONE" = "8:"
|
"ARPHELPTELEPHONE" = "8:"
|
||||||
"ARPHELPLINK" = "8:"
|
"ARPHELPLINK" = "8:"
|
||||||
|
|
Loading…
Reference in New Issue