diff --git a/README.md b/README.md index 4e118cac..b3f41e73 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ 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 94 iterations per second with byte code (11696) and 395 iterations with native code (10425 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 +stone performance is 94 iterations per second with byte code (11696) and 395 iterations with native code (10425 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 @@ -58,11 +59,12 @@ Supported Features: * reference types * member functions * constructors and destructors -* operator overloading (not complete yet) +* operator overloading * single inheritance of class and struct * const member functions * new, delete, new[] and delete[] * virtual member functions +* string and iostream classes ## Installation and Usage diff --git a/oscar64/oscar64.cpp b/oscar64/oscar64.cpp index 18bcde93..825eb2b1 100644 --- a/oscar64/oscar64.cpp +++ b/oscar64/oscar64.cpp @@ -74,7 +74,7 @@ int main2(int argc, const char** argv) #else strcpy(strProductName, "oscar64"); - strcpy(strProductVersion, "1.22.210"); + strcpy(strProductVersion, "1.23.211"); #ifdef __APPLE__ uint32_t length = sizeof(basePath); diff --git a/oscar64/oscar64.rc b/oscar64/oscar64.rc index 3dca3fd1..65dc55b4 100644 --- a/oscar64/oscar64.rc +++ b/oscar64/oscar64.rc @@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,22,210,0 - PRODUCTVERSION 1,22,210,0 + FILEVERSION 1,23,211,0 + PRODUCTVERSION 1,23,211,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -43,12 +43,12 @@ BEGIN BEGIN VALUE "CompanyName", "oscar64" VALUE "FileDescription", "oscar64 compiler" - VALUE "FileVersion", "1.22.210.0" + VALUE "FileVersion", "1.23.211.0" VALUE "InternalName", "oscar64.exe" VALUE "LegalCopyright", "Copyright (C) 2021" VALUE "OriginalFilename", "oscar64.exe" VALUE "ProductName", "oscar64" - VALUE "ProductVersion", "1.22.210.0" + VALUE "ProductVersion", "1.23.211.0" END END BLOCK "VarFileInfo" diff --git a/oscar64setup/oscar64setup.vdproj b/oscar64setup/oscar64setup.vdproj index 6d0410ca..df337d03 100644 --- a/oscar64setup/oscar64setup.vdproj +++ b/oscar64setup/oscar64setup.vdproj @@ -52,6 +52,12 @@ } "Entry" { + "MsmKey" = "8:_071CF34574024DBD95D2203D6E4279D0" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_0819C3D33D0942EF9E319C754E6C43D8" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -130,6 +136,12 @@ } "Entry" { + "MsmKey" = "8:_1A605A19ADAD413CB754523D4FE7C32F" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_1AAB1F90101E40B6937A64FD4BF9D469" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -418,6 +430,12 @@ } "Entry" { + "MsmKey" = "8:_63A827ECF1BC48CE96DB82B554FC323D" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_64C12019C1114C3282B32CD6B866C20A" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -496,6 +514,12 @@ } "Entry" { + "MsmKey" = "8:_7789738FE8854CE488C5248434E47211" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_79985361F09A43299E258E1A8E5ED934" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -562,6 +586,12 @@ } "Entry" { + "MsmKey" = "8:_85AF458C41734A099F879A01E6CEB35F" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_8827B6B07A1C4B32B08DF784E090381D" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -676,6 +706,12 @@ } "Entry" { + "MsmKey" = "8:_A14BC161099E420286E6A1595596D0F0" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_A18504BA88CE40128ED44BD1854F0A33" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -712,6 +748,12 @@ } "Entry" { + "MsmKey" = "8:_A62BFFC051304130B85007261BC97749" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_A8820F3446B9408E88692E85817C1B07" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -952,6 +994,12 @@ } "Entry" { + "MsmKey" = "8:_D651A6B3342C4D1ABC7FE873E253A1C5" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_D76DA8C7D3964C93ABE193A7B53A0A9B" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -1343,6 +1391,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_071CF34574024DBD95D2203D6E4279D0" + { + "SourcePath" = "8:..\\include\\opp\\iostream.h" + "TargetName" = "8:iostream.h" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_0819C3D33D0942EF9E319C754E6C43D8" { "SourcePath" = "8:..\\include\\gfx\\bitmap.h" @@ -1603,6 +1671,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1A605A19ADAD413CB754523D4FE7C32F" + { + "SourcePath" = "8:..\\include\\opp\\sstream.cpp" + "TargetName" = "8:sstream.cpp" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_1AAB1F90101E40B6937A64FD4BF9D469" { "SourcePath" = "8:..\\include\\setjmp.c" @@ -2563,6 +2651,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_63A827ECF1BC48CE96DB82B554FC323D" + { + "SourcePath" = "8:..\\include\\opp\\iostream.cpp" + "TargetName" = "8:iostream.cpp" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_64C12019C1114C3282B32CD6B866C20A" { "SourcePath" = "8:..\\include\\c64\\reu.h" @@ -2823,6 +2931,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_7789738FE8854CE488C5248434E47211" + { + "SourcePath" = "8:..\\include\\opp\\ifstream.h" + "TargetName" = "8:ifstream.h" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_79985361F09A43299E258E1A8E5ED934" { "SourcePath" = "8:..\\include\\gfx\\mcbitmap.c" @@ -3043,6 +3171,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_85AF458C41734A099F879A01E6CEB35F" + { + "SourcePath" = "8:..\\include\\opp\\ofstream.cpp" + "TargetName" = "8:ofstream.cpp" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_8827B6B07A1C4B32B08DF784E090381D" { "SourcePath" = "8:..\\samples\\memmap\\tsr.c" @@ -3423,6 +3571,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A14BC161099E420286E6A1595596D0F0" + { + "SourcePath" = "8:..\\include\\opp\\ofstream.h" + "TargetName" = "8:ofstream.h" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_A18504BA88CE40128ED44BD1854F0A33" { "SourcePath" = "8:..\\samples\\memmap\\easyflashreloc.c" @@ -3543,6 +3711,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A62BFFC051304130B85007261BC97749" + { + "SourcePath" = "8:..\\include\\opp\\sstream.h" + "TargetName" = "8:sstream.h" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_A8820F3446B9408E88692E85817C1B07" { "SourcePath" = "8:..\\samples\\make.bat" @@ -4343,6 +4531,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D651A6B3342C4D1ABC7FE873E253A1C5" + { + "SourcePath" = "8:..\\include\\opp\\ifstream.cpp" + "TargetName" = "8:ifstream.cpp" + "Tag" = "8:" + "Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC" + "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}:_D76DA8C7D3964C93ABE193A7B53A0A9B" { "SourcePath" = "8:..\\samples\\stdio\\make.bat" @@ -5296,15 +5504,15 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:oscar64" - "ProductCode" = "8:{9E7AB7F5-BA83-4377-B177-3D121EF176EB}" - "PackageCode" = "8:{2B7BCA1C-B5B7-47D2-8A8A-A8C694463BE0}" + "ProductCode" = "8:{E5A90B4B-CA2A-43EC-9597-90010989AF33}" + "PackageCode" = "8:{C6265FB3-0498-45EF-827C-27788C57AFAF}" "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.22.210" + "ProductVersion" = "8:1.23.211" "Manufacturer" = "8:oscar64" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:"