Petscii translation in stdio and conio
This commit is contained in:
parent
da57ae00c5
commit
5372d49b50
15
README.md
15
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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,21 +1,77 @@
|
|||
#include "stdio.h"
|
||||
#include <stdlib.h>
|
||||
#include "conio.h"
|
||||
#include "stdlib.h"
|
||||
|
||||
__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 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
|
||||
bne w1
|
||||
lda #13
|
||||
w1:
|
||||
jsr 0xffd2
|
||||
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
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
void putchar(char c);
|
||||
|
||||
char getchar(void);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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,13 +94,13 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_B2B920A649CF4027457BBAB004078A03"
|
||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||
"MsmKey" = "8:_B4265CBF352343D2867DBCCE67D9F493"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_B4265CBF352343D2867DBCCE67D9F493"
|
||||
"MsmKey" = "8:_C239EFB1C3A646809AD2740ABDE747B0"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
|
@ -136,18 +112,6 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_DC9FDF52011EB7C47318682BA0B3F26F"
|
||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_DE2BF7C92569053E7C3DCE88AB7E2566"
|
||||
"OwnerKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_E218D776D9014F99BE2B046AEF2D6E8B"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -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:"
|
||||
|
|
Loading…
Reference in New Issue