Move Corecompare to Tools directory
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,149 +0,0 @@
|
|||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
08FB7793FE84155DC02AAC07 /* Project object */ = {
|
|
||||||
activeArchitecture = ppc;
|
|
||||||
activeBuildConfigurationName = Release;
|
|
||||||
activeExecutable = EF8E674E0DA226B4000B54B0 /* corecompare */;
|
|
||||||
activeTarget = 8DD76FA90486AB0100D96B5E /* corecompare */;
|
|
||||||
addToTargets = (
|
|
||||||
8DD76FA90486AB0100D96B5E /* corecompare */,
|
|
||||||
);
|
|
||||||
breakpoints = (
|
|
||||||
);
|
|
||||||
codeSenseManager = EF8E67550DA226BA000B54B0 /* Code sense */;
|
|
||||||
executables = (
|
|
||||||
EF8E674E0DA226B4000B54B0 /* corecompare */,
|
|
||||||
);
|
|
||||||
perUserDictionary = {
|
|
||||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
|
||||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
|
||||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
|
||||||
PBXFileTableDataSourceColumnWidthsKey = (
|
|
||||||
20,
|
|
||||||
243,
|
|
||||||
20,
|
|
||||||
48,
|
|
||||||
43,
|
|
||||||
43,
|
|
||||||
20,
|
|
||||||
);
|
|
||||||
PBXFileTableDataSourceColumnsKey = (
|
|
||||||
PBXFileDataSource_FiletypeID,
|
|
||||||
PBXFileDataSource_Filename_ColumnID,
|
|
||||||
PBXFileDataSource_Built_ColumnID,
|
|
||||||
PBXFileDataSource_ObjectSize_ColumnID,
|
|
||||||
PBXFileDataSource_Errors_ColumnID,
|
|
||||||
PBXFileDataSource_Warnings_ColumnID,
|
|
||||||
PBXFileDataSource_Target_ColumnID,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
|
||||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
|
||||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
|
||||||
PBXFileTableDataSourceColumnWidthsKey = (
|
|
||||||
20,
|
|
||||||
203,
|
|
||||||
60,
|
|
||||||
20,
|
|
||||||
48,
|
|
||||||
43,
|
|
||||||
43,
|
|
||||||
);
|
|
||||||
PBXFileTableDataSourceColumnsKey = (
|
|
||||||
PBXFileDataSource_FiletypeID,
|
|
||||||
PBXFileDataSource_Filename_ColumnID,
|
|
||||||
PBXTargetDataSource_PrimaryAttribute,
|
|
||||||
PBXFileDataSource_Built_ColumnID,
|
|
||||||
PBXFileDataSource_ObjectSize_ColumnID,
|
|
||||||
PBXFileDataSource_Errors_ColumnID,
|
|
||||||
PBXFileDataSource_Warnings_ColumnID,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
PBXPerProjectTemplateStateSaveDate = 228834066;
|
|
||||||
PBXWorkspaceStateSaveDate = 228834066;
|
|
||||||
};
|
|
||||||
sourceControlManager = EF8E67540DA226BA000B54B0 /* Source Control */;
|
|
||||||
userBuildSettings = {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
8DD76FA90486AB0100D96B5E /* corecompare */ = {
|
|
||||||
activeExec = 0;
|
|
||||||
executables = (
|
|
||||||
EF8E674E0DA226B4000B54B0 /* corecompare */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
EF8E674E0DA226B4000B54B0 /* corecompare */ = {
|
|
||||||
isa = PBXExecutable;
|
|
||||||
activeArgIndices = (
|
|
||||||
);
|
|
||||||
argumentStrings = (
|
|
||||||
);
|
|
||||||
autoAttachOnCrash = 1;
|
|
||||||
breakpointsEnabled = 0;
|
|
||||||
configStateDict = {
|
|
||||||
};
|
|
||||||
customDataFormattersEnabled = 1;
|
|
||||||
debuggerPlugin = GDBDebugging;
|
|
||||||
disassemblyDisplayState = 0;
|
|
||||||
dylibVariantSuffix = "";
|
|
||||||
enableDebugStr = 1;
|
|
||||||
environmentEntries = (
|
|
||||||
);
|
|
||||||
executableSystemSymbolLevel = 0;
|
|
||||||
executableUserSymbolLevel = 0;
|
|
||||||
libgmallocEnabled = 0;
|
|
||||||
name = corecompare;
|
|
||||||
sourceDirectories = (
|
|
||||||
);
|
|
||||||
};
|
|
||||||
EF8E67540DA226BA000B54B0 /* Source Control */ = {
|
|
||||||
isa = PBXSourceControlManager;
|
|
||||||
fallbackIsa = XCSourceControlManager;
|
|
||||||
isSCMEnabled = 0;
|
|
||||||
scmConfiguration = {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
EF8E67550DA226BA000B54B0 /* Code sense */ = {
|
|
||||||
isa = PBXCodeSenseManager;
|
|
||||||
indexTemplatePath = "";
|
|
||||||
};
|
|
||||||
EF8E676B0DA22D89000B54B0 /* corecompare.c */ = {
|
|
||||||
uiCtxt = {
|
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {691, 3136}}";
|
|
||||||
sepNavSelRange = "{1892, 0}";
|
|
||||||
sepNavVisRange = "{4014, 1289}";
|
|
||||||
sepNavWindowFrame = "{{530, 104}, {750, 728}}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
EF8E676E0DA22D92000B54B0 /* corecpu.c */ = {
|
|
||||||
uiCtxt = {
|
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {691, 24976}}";
|
|
||||||
sepNavSelRange = "{812, 0}";
|
|
||||||
sepNavVisRange = "{0, 1590}";
|
|
||||||
sepNavWindowFrame = "{{519, 66}, {750, 728}}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
EF8E676F0DA22D92000B54B0 /* corecpu.h */ = {
|
|
||||||
uiCtxt = {
|
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {439, 2422}}";
|
|
||||||
sepNavSelRange = "{757, 75}";
|
|
||||||
sepNavVisRange = "{544, 315}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
EF8E677C0DA231E1000B54B0 /* cpu6502.h */ = {
|
|
||||||
uiCtxt = {
|
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {691, 1330}}";
|
|
||||||
sepNavSelRange = "{1729, 52}";
|
|
||||||
sepNavVisRange = "{1268, 881}";
|
|
||||||
sepNavWindowFrame = "{{421, 93}, {750, 728}}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
EF8E677D0DA231E1000B54B0 /* cpu6502.c */ = {
|
|
||||||
uiCtxt = {
|
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {691, 42966}}";
|
|
||||||
sepNavSelRange = "{13594, 52}";
|
|
||||||
sepNavVisRange = "{12984, 1303}";
|
|
||||||
sepNavWindowFrame = "{{86, 104}, {750, 728}}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,243 +0,0 @@
|
|||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 44;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
8DD76FB00486AB0100D96B5E /* corecompare.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = C6A0FF2C0290799A04C91782 /* corecompare.1 */; };
|
|
||||||
EF8E676C0DA22D89000B54B0 /* corecompare.c in Sources */ = {isa = PBXBuildFile; fileRef = EF8E676B0DA22D89000B54B0 /* corecompare.c */; };
|
|
||||||
EF8E67700DA22D92000B54B0 /* corecpu.c in Sources */ = {isa = PBXBuildFile; fileRef = EF8E676E0DA22D92000B54B0 /* corecpu.c */; };
|
|
||||||
EF8E677E0DA231E1000B54B0 /* cpu6502.c in Sources */ = {isa = PBXBuildFile; fileRef = EF8E677D0DA231E1000B54B0 /* cpu6502.c */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
|
||||||
8DD76FAF0486AB0100D96B5E /* CopyFiles */ = {
|
|
||||||
isa = PBXCopyFilesBuildPhase;
|
|
||||||
buildActionMask = 8;
|
|
||||||
dstPath = /usr/share/man/man1/;
|
|
||||||
dstSubfolderSpec = 0;
|
|
||||||
files = (
|
|
||||||
8DD76FB00486AB0100D96B5E /* corecompare.1 in CopyFiles */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 1;
|
|
||||||
};
|
|
||||||
/* End PBXCopyFilesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
8DD76FB20486AB0100D96B5E /* corecompare */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = corecompare; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
C6A0FF2C0290799A04C91782 /* corecompare.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = corecompare.1; sourceTree = "<group>"; };
|
|
||||||
EF8E676B0DA22D89000B54B0 /* corecompare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = corecompare.c; path = ../src/corecompare.c; sourceTree = SOURCE_ROOT; };
|
|
||||||
EF8E676E0DA22D92000B54B0 /* corecpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = corecpu.c; sourceTree = "<group>"; };
|
|
||||||
EF8E676F0DA22D92000B54B0 /* corecpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = corecpu.h; sourceTree = "<group>"; };
|
|
||||||
EF8E677C0DA231E1000B54B0 /* cpu6502.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cpu6502.h; path = ../../../src/cpu/cpu6502.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
EF8E677D0DA231E1000B54B0 /* cpu6502.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cpu6502.c; path = ../../../src/cpu/cpu6502.c; sourceTree = SOURCE_ROOT; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
8DD76FAD0486AB0100D96B5E /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
08FB7794FE84155DC02AAC07 /* corecompare */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
08FB7795FE84155DC02AAC07 /* Source */,
|
|
||||||
C6A0FF2B0290797F04C91782 /* Documentation */,
|
|
||||||
1AB674ADFE9D54B511CA2CBB /* Products */,
|
|
||||||
);
|
|
||||||
name = corecompare;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
08FB7795FE84155DC02AAC07 /* Source */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
EF8E67580DA2270E000B54B0 /* src */,
|
|
||||||
);
|
|
||||||
name = Source;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
1AB674ADFE9D54B511CA2CBB /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
8DD76FB20486AB0100D96B5E /* corecompare */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
C6A0FF2B0290797F04C91782 /* Documentation */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
C6A0FF2C0290799A04C91782 /* corecompare.1 */,
|
|
||||||
);
|
|
||||||
name = Documentation;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
EF8E67580DA2270E000B54B0 /* src */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
EF8E67770DA231AF000B54B0 /* CPU_JBN */,
|
|
||||||
EF8E676D0DA22D92000B54B0 /* CPU_MTO */,
|
|
||||||
EF8E676B0DA22D89000B54B0 /* corecompare.c */,
|
|
||||||
);
|
|
||||||
name = src;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
EF8E676D0DA22D92000B54B0 /* CPU_MTO */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
EF8E676E0DA22D92000B54B0 /* corecpu.c */,
|
|
||||||
EF8E676F0DA22D92000B54B0 /* corecpu.h */,
|
|
||||||
);
|
|
||||||
name = CPU_MTO;
|
|
||||||
path = ../src/CPU_MTO;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
EF8E67770DA231AF000B54B0 /* CPU_JBN */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
EF8E677C0DA231E1000B54B0 /* cpu6502.h */,
|
|
||||||
EF8E677D0DA231E1000B54B0 /* cpu6502.c */,
|
|
||||||
);
|
|
||||||
name = CPU_JBN;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
8DD76FA90486AB0100D96B5E /* corecompare */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 1DEB928508733DD80010E9CD /* Build configuration list for PBXNativeTarget "corecompare" */;
|
|
||||||
buildPhases = (
|
|
||||||
8DD76FAB0486AB0100D96B5E /* Sources */,
|
|
||||||
8DD76FAD0486AB0100D96B5E /* Frameworks */,
|
|
||||||
8DD76FAF0486AB0100D96B5E /* CopyFiles */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = corecompare;
|
|
||||||
productInstallPath = "$(HOME)/bin";
|
|
||||||
productName = corecompare;
|
|
||||||
productReference = 8DD76FB20486AB0100D96B5E /* corecompare */;
|
|
||||||
productType = "com.apple.product-type.tool";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
08FB7793FE84155DC02AAC07 /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
buildConfigurationList = 1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "corecompare" */;
|
|
||||||
compatibilityVersion = "Xcode 3.0";
|
|
||||||
hasScannedForEncodings = 1;
|
|
||||||
mainGroup = 08FB7794FE84155DC02AAC07 /* corecompare */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = "";
|
|
||||||
targets = (
|
|
||||||
8DD76FA90486AB0100D96B5E /* corecompare */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
8DD76FAB0486AB0100D96B5E /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
EF8E676C0DA22D89000B54B0 /* corecompare.c in Sources */,
|
|
||||||
EF8E67700DA22D92000B54B0 /* corecpu.c in Sources */,
|
|
||||||
EF8E677E0DA231E1000B54B0 /* cpu6502.c in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
1DEB928608733DD80010E9CD /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
|
||||||
GCC_MODEL_TUNING = G5;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
INSTALL_PATH = /usr/local/bin;
|
|
||||||
PRODUCT_NAME = corecompare;
|
|
||||||
ZERO_LINK = YES;
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
1DEB928708733DD80010E9CD /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
||||||
GCC_MODEL_TUNING = G5;
|
|
||||||
HEADER_SEARCH_PATHS = (
|
|
||||||
../../../src/emulator/,
|
|
||||||
../../../src/,
|
|
||||||
../../../src/cpu/,
|
|
||||||
../src/include/,
|
|
||||||
);
|
|
||||||
INSTALL_PATH = /usr/local/bin;
|
|
||||||
PRODUCT_NAME = corecompare;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
1DEB928A08733DD80010E9CD /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
PREBINDING = NO;
|
|
||||||
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
1DEB928B08733DD80010E9CD /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ARCHS = (
|
|
||||||
ppc,
|
|
||||||
i386,
|
|
||||||
);
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
PREBINDING = NO;
|
|
||||||
SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
1DEB928508733DD80010E9CD /* Build configuration list for PBXNativeTarget "corecompare" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
1DEB928608733DD80010E9CD /* Debug */,
|
|
||||||
1DEB928708733DD80010E9CD /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
1DEB928908733DD80010E9CD /* Build configuration list for PBXProject "corecompare" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
1DEB928A08733DD80010E9CD /* Debug */,
|
|
||||||
1DEB928B08733DD80010E9CD /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
};
|
|
||||||
rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,163 +0,0 @@
|
|||||||
/**
|
|
||||||
* CoreCPU - The Quick6502 Project
|
|
||||||
* corecpu.h
|
|
||||||
*
|
|
||||||
* Created by Manoel Trapier on 24/02/08
|
|
||||||
* Copyright 2008 986 Corp. All rights reserved.
|
|
||||||
*
|
|
||||||
* $LastChangedDate: 2008-03-21 01:55:10 +0100 (Ven, 21 mar 2008) $
|
|
||||||
* $Author: godzil $
|
|
||||||
* $HeadURL: svn+ssh://godzil@trac.godzil.net/svn/projects/Quick6502/trunk/corecpu.h $
|
|
||||||
* $Revision: 41 $
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _QUICK6502_CORECPU_H_
|
|
||||||
#define _QUICK6502_CORECPU_H_
|
|
||||||
|
|
||||||
/* M6502 configuration
|
|
||||||
*
|
|
||||||
* Supported DEFINEs :
|
|
||||||
* NO_DECIMAL Quick6502 will not support BDC arithemtic (used for NES)
|
|
||||||
* CMOS_6502 Quick6502 will act as a CMOS 6502 (Not actually used)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef CMOS_6502
|
|
||||||
#warning Quick6502 CMOS support is actually desactivated, desactivate it
|
|
||||||
#undef CMOS_6502
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef NO_DECIMAL
|
|
||||||
#warning Quick6502 have actually no BCD support, fallback to no NO_DECIMAL
|
|
||||||
#define NO_DECIMAL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#include "types.h"
|
|
||||||
|
|
||||||
typedef byte (*quick6502_MemoryReadFunction)(unsigned short addr);
|
|
||||||
typedef void (*quick6502_MemoryWriteFunction)(unsigned short addr, byte value);
|
|
||||||
|
|
||||||
typedef struct quick6502_cpu_
|
|
||||||
{
|
|
||||||
/* 6502 registers */
|
|
||||||
byte reg_A, reg_X, reg_Y;
|
|
||||||
byte reg_P, reg_S;
|
|
||||||
unsigned short reg_PC;
|
|
||||||
|
|
||||||
/* Read/Write memory functions */
|
|
||||||
quick6502_MemoryReadFunction memory_read;
|
|
||||||
quick6502_MemoryWriteFunction memory_write;
|
|
||||||
quick6502_MemoryReadFunction memory_page0_read;
|
|
||||||
quick6502_MemoryWriteFunction memory_page0_write;
|
|
||||||
quick6502_MemoryReadFunction memory_stack_read;
|
|
||||||
quick6502_MemoryWriteFunction memory_stack_write;
|
|
||||||
quick6502_MemoryReadFunction memory_opcode_read;
|
|
||||||
|
|
||||||
/* Timing related */
|
|
||||||
long cycle_done;
|
|
||||||
byte exit_loop;
|
|
||||||
|
|
||||||
/* Other config options */
|
|
||||||
byte running; /* This field is used to prevent cpu free if this cpu is running */
|
|
||||||
|
|
||||||
} quick6502_cpu;
|
|
||||||
|
|
||||||
typedef struct quick6502_cpuconfig_
|
|
||||||
{
|
|
||||||
/* Read/Write memory functions */
|
|
||||||
quick6502_MemoryReadFunction memory_read;
|
|
||||||
quick6502_MemoryWriteFunction memory_write;
|
|
||||||
quick6502_MemoryReadFunction memory_page0_read;
|
|
||||||
quick6502_MemoryWriteFunction memory_page0_write;
|
|
||||||
quick6502_MemoryReadFunction memory_stack_read;
|
|
||||||
quick6502_MemoryWriteFunction memory_stack_write;
|
|
||||||
quick6502_MemoryReadFunction memory_opcode_read;
|
|
||||||
} quick6502_cpuconfig;
|
|
||||||
|
|
||||||
/*** Signal that we can send to the CPU ***/
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
Q6502_NO_SIGNAL = 0,
|
|
||||||
Q6502_IRQ_SIGNAL,
|
|
||||||
Q6502_NMI_SIGNAL,
|
|
||||||
Q6502_STOPLOOP_SIGNAL
|
|
||||||
} quick6502_signal;
|
|
||||||
|
|
||||||
/*** Some 6502 related definitions ***/
|
|
||||||
|
|
||||||
/*** P register flags ***/
|
|
||||||
#define Q6502_N_FLAG 0x80 /* Negavite flag */
|
|
||||||
#define Q6502_V_FLAG 0x40 /* oVerflow flag */
|
|
||||||
#define Q6502_R_FLAG 0x20 /* Not a real flag, but need to be to 1 on PHP */
|
|
||||||
#define Q6502_B_FLAG 0x10 /* Break flag */
|
|
||||||
#define Q6502_D_FLAG 0x08 /* BCD flag */
|
|
||||||
#define Q6502_I_FLAG 0x04 /* IRQ/BRK flag */
|
|
||||||
#define Q6502_Z_FLAG 0x02 /* Zero flag */
|
|
||||||
#define Q6502_C_FLAG 0x01 /* Carry flag */
|
|
||||||
|
|
||||||
/*** Interuption Vectors ***/
|
|
||||||
#define Q6502_NMI_LOW 0xFFFA
|
|
||||||
#define Q6502_NMI_HIGH 0xFFFB
|
|
||||||
#define Q6502_RESET_LOW 0xFFFC
|
|
||||||
#define Q6502_RESET_HIGH 0xFFFD
|
|
||||||
#define Q6502_IRQ_LOW 0xFFFE
|
|
||||||
#define Q6502_IRQ_HIGH 0xFFFF
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initialise the CPU
|
|
||||||
*
|
|
||||||
* Inputs:
|
|
||||||
*
|
|
||||||
* - CPU Init structure:
|
|
||||||
* +- Memory Read function pointer
|
|
||||||
* +- Memory Write function pointer
|
|
||||||
* +- Fast memory read function pointer (for opcodes read)
|
|
||||||
* +- Fast page 0 function / Read/Write
|
|
||||||
* +- Fast page 1 function / Read/Write
|
|
||||||
*
|
|
||||||
* Output:
|
|
||||||
*
|
|
||||||
* (void *): An opaque pointer to the internal structure of the CPU
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
quick6502_cpu *quick6502_init(quick6502_cpuconfig *config);
|
|
||||||
|
|
||||||
/* Reset the CPU (must be done after init) */
|
|
||||||
void quick6502_reset(quick6502_cpu *cpu);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run cpu for at least X cycles
|
|
||||||
*
|
|
||||||
* Output:
|
|
||||||
*
|
|
||||||
* int: (Number of cycle really done) - (Number of cycle asked)
|
|
||||||
*/
|
|
||||||
int quick6502_run(quick6502_cpu *cpu, int cycles);
|
|
||||||
|
|
||||||
/** Loop CPU until explicit quit */
|
|
||||||
void quick6502_loop(quick6502_cpu *cpu);
|
|
||||||
|
|
||||||
/** Run CPU for one instruction */
|
|
||||||
void quick6502_exec(quick6502_cpu *cpu);
|
|
||||||
|
|
||||||
/** Send IRQ/NMI/EXITLOOP signal to CPU */
|
|
||||||
void quick6502_int(quick6502_cpu *cpu, quick6502_signal signal);
|
|
||||||
|
|
||||||
/** Dump CPU State to the given file */
|
|
||||||
void quick6502_dump(quick6502_cpu *cpu, FILE * fp);
|
|
||||||
|
|
||||||
/** Get current instruction name at specified address and put it into buffer */
|
|
||||||
void quick6502_getinstruction(quick6502_cpu *cpu, unsigned short addr, char *buffer);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Free the CPU
|
|
||||||
*
|
|
||||||
* This function will free the CPU only if it's not currently used, it will
|
|
||||||
* return !0 if everything goes well and 0 if the free is impossible
|
|
||||||
*/
|
|
||||||
int quick6502_free(quick6502_cpu *cpu);
|
|
||||||
|
|
||||||
#endif /* _QUICK6502_CORECPU_H_ */
|
|
||||||
|
|
||||||
@@ -1,220 +0,0 @@
|
|||||||
/*
|
|
||||||
* corecompare.c
|
|
||||||
* Quick6502
|
|
||||||
*
|
|
||||||
* Created by Manoël Trapier on 18/03/08.
|
|
||||||
* Copyright 2008 986 Corp. All rights reserved.
|
|
||||||
*
|
|
||||||
* Simple tool to compare both core results
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include <pthread.h>
|
|
||||||
|
|
||||||
#include "corecpu.h"
|
|
||||||
|
|
||||||
#define BLANK_TIME 5000
|
|
||||||
|
|
||||||
#include "types.h"
|
|
||||||
|
|
||||||
byte mMainMemory[64*1024];
|
|
||||||
byte qMainMemory[64*1024];
|
|
||||||
|
|
||||||
unsigned short ProgramOrg = 0xFFE5;
|
|
||||||
|
|
||||||
byte Program[] = { 0xA9, 0xA5, 0x40, 0x18, 0x78, 0xD8, 0xB8, 0x00, 0xEA, 0xAA, 0xCA, 0xCA, 0xEA, 0x6A, 0x4C, 0xF2, 0xFF, 0xEA, 0x4C, 0xF2, 0xFF, 0xE7, 0xFF, 0xE8, 0xFF, 0xE5, 0xFF };
|
|
||||||
|
|
||||||
unsigned short Smb1Org = 0x8000;
|
|
||||||
#include "smb1.h"
|
|
||||||
#include "nestest.h"
|
|
||||||
|
|
||||||
unsigned short qMemoryReadAddr, mMemoryReadAddr;
|
|
||||||
unsigned short qMemoryWriteAddr, mMemoryWriteAddr;
|
|
||||||
unsigned char qMemoryWriteValue, mMemoryWriteValue;
|
|
||||||
unsigned char qMemoryReadValue, mMemoryReadValue;
|
|
||||||
|
|
||||||
/* Quick6502 related functions and main thread */
|
|
||||||
|
|
||||||
byte ReadMemory(unsigned short addr)
|
|
||||||
{
|
|
||||||
return (qMemoryReadValue = qMainMemory[(qMemoryReadAddr = addr)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
byte ReadMemoryOpCode(unsigned short addr)
|
|
||||||
{
|
|
||||||
return qMainMemory[addr] ;
|
|
||||||
}
|
|
||||||
|
|
||||||
void WriteMemory(unsigned short addr, byte value)
|
|
||||||
{
|
|
||||||
qMemoryWriteValue = value;
|
|
||||||
qMemoryWriteAddr = addr;
|
|
||||||
qMainMemory[addr] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* JBN's 6502 CPU related functions */
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#include "cpu6502.h"
|
|
||||||
#include "cyclesTable.h"
|
|
||||||
|
|
||||||
void Wr6502(register uint16_t Addr,register uint8_t Value)
|
|
||||||
{
|
|
||||||
mMemoryWriteValue = Value;
|
|
||||||
mMemoryWriteAddr = Addr;
|
|
||||||
mMainMemory[Addr] = Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t Rd6502 (register uint16_t Addr)
|
|
||||||
{
|
|
||||||
return (mMemoryReadValue = mMainMemory[(mMemoryReadAddr = Addr)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t Op6502 (register uint16_t Addr)
|
|
||||||
{
|
|
||||||
return mMainMemory[Addr];
|
|
||||||
}
|
|
||||||
|
|
||||||
void debugger_stop ()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int Exec6502 (nes_cpu6502_t *cpu)
|
|
||||||
{
|
|
||||||
uint8_t opcode;
|
|
||||||
int result;
|
|
||||||
|
|
||||||
/* Manage the Current Opcode. */
|
|
||||||
opcode = cpu->memRead (cpu->pc);
|
|
||||||
result = cpu6502_execOpCode (cpu, opcode);
|
|
||||||
if (result != 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute the CPU Time taken by the executed opcode. */
|
|
||||||
cpu->nbCycles -= OpcodesCycles[opcode];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int argc, const char * argv[]) {
|
|
||||||
char qBuffer[100],
|
|
||||||
mBuffer[100],
|
|
||||||
qBuffer2[100],
|
|
||||||
mBuffer2[100];
|
|
||||||
int result, result2;
|
|
||||||
int count = 0;
|
|
||||||
int x;
|
|
||||||
/* Copy the 6502 program to both CPU's Memory */
|
|
||||||
//memcpy(MainMemory+ ProgramOrg, Program, 0x10000 - ProgramOrg );
|
|
||||||
|
|
||||||
//memcpy(qMainMemory+ Smb1Org, smb1, 0x10000 - Smb1Org );
|
|
||||||
//memcpy(mMainMemory+ Smb1Org, smb1, 0x10000 - Smb1Org );
|
|
||||||
|
|
||||||
memcpy(qMainMemory+ 0xC000, nestest, 0x10000 - 0xC000 );
|
|
||||||
memcpy(mMainMemory+ 0xC000, nestest, 0x10000 - 0xC000 );
|
|
||||||
|
|
||||||
mMainMemory[0x2002] = 0xC0;
|
|
||||||
qMainMemory[0x2002] = 0xC0;
|
|
||||||
|
|
||||||
/* mMainMemory[0x4016] = 0x41;
|
|
||||||
qMainMemory[0x4016] = 0x41;*/
|
|
||||||
|
|
||||||
/* Initialise both core */
|
|
||||||
nes_cpu6502_t mCpu;
|
|
||||||
quick6502_cpu *qCpu;
|
|
||||||
quick6502_cpuconfig CpuConfig;
|
|
||||||
|
|
||||||
/* Init the CPU */
|
|
||||||
CpuConfig.memory_read = ReadMemory;
|
|
||||||
CpuConfig.memory_write = WriteMemory;
|
|
||||||
|
|
||||||
CpuConfig.memory_opcode_read = ReadMemory;
|
|
||||||
CpuConfig.memory_page0_read =
|
|
||||||
CpuConfig.memory_stack_read = NULL;
|
|
||||||
CpuConfig.memory_page0_write =
|
|
||||||
CpuConfig.memory_stack_write = NULL;
|
|
||||||
|
|
||||||
qCpu = quick6502_init(&CpuConfig);
|
|
||||||
if (!qCpu)
|
|
||||||
{
|
|
||||||
printf("CPU initialisation error...");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
mCpu.memRead = Rd6502;
|
|
||||||
mCpu.memWrite = Wr6502;
|
|
||||||
|
|
||||||
quick6502_reset(qCpu);
|
|
||||||
|
|
||||||
cpuReset (&mCpu);
|
|
||||||
|
|
||||||
/* Run each one insruction by one instruction */
|
|
||||||
while(1)
|
|
||||||
{
|
|
||||||
if (count > 19000)
|
|
||||||
{
|
|
||||||
printf("Fire NMI!\n");
|
|
||||||
quick6502_int(qCpu, Q6502_NMI_SIGNAL);
|
|
||||||
NMI_Interrupt (&mCpu);
|
|
||||||
count = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
mMemoryWriteValue = 0;
|
|
||||||
mMemoryWriteAddr = 0;
|
|
||||||
mMemoryReadValue = 0;
|
|
||||||
mMemoryReadAddr = 0;
|
|
||||||
|
|
||||||
qMemoryWriteValue = 0;
|
|
||||||
qMemoryWriteAddr = 0;
|
|
||||||
qMemoryReadValue = 0;
|
|
||||||
qMemoryReadAddr = 0;
|
|
||||||
|
|
||||||
quick6502_exec(qCpu);
|
|
||||||
Exec6502(&mCpu);
|
|
||||||
sprintf(qBuffer, "A:%02X X:%02X Y:%02X S:%02X P:%02X PC:%04X",
|
|
||||||
qCpu->reg_A, qCpu->reg_X, qCpu->reg_Y, qCpu->reg_S, qCpu->reg_P, qCpu->reg_PC);
|
|
||||||
|
|
||||||
sprintf(mBuffer, "A:%02X X:%02X Y:%02X S:%02X P:%02X PC:%04X",
|
|
||||||
mCpu.a, mCpu.x, mCpu.y, mCpu.R_Stack, mCpu.R_Status, mCpu.pc);
|
|
||||||
|
|
||||||
result = strcmp(qBuffer, mBuffer);
|
|
||||||
sprintf(qBuffer2, "[R:%04X:%02X - W:%04X:%02X]",
|
|
||||||
qMemoryReadAddr,
|
|
||||||
qMemoryReadValue,
|
|
||||||
qMemoryWriteAddr,
|
|
||||||
qMemoryWriteValue);
|
|
||||||
|
|
||||||
sprintf(mBuffer2, "[R:%04X:%02X - W:%04X:%02X]",
|
|
||||||
mMemoryReadAddr,
|
|
||||||
mMemoryReadValue,
|
|
||||||
mMemoryWriteAddr,
|
|
||||||
mMemoryWriteValue);
|
|
||||||
result2 = strcmp(qBuffer2, mBuffer2);
|
|
||||||
|
|
||||||
if ((result != 0) || (result2 != 0))
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
for ( x = 0x00; x < 0x100; x++)
|
|
||||||
{
|
|
||||||
printf("%02X|%02X ", ReadMemory(x), Rd6502(x));
|
|
||||||
if ((x&0x0F) == 0x0F)
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
printf("REGS | %s | %s | %s\n", qBuffer, (result==0)?"===":"/!\\", mBuffer);
|
|
||||||
printf("MEMA | %s | %s | %s\n", qBuffer2, (result2==0)?"===":"/!\\", mBuffer2);
|
|
||||||
}
|
|
||||||
count ++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* Base type definitions - The TI-NESulator Project
|
|
||||||
* types.h - Taken from the Quick6502 project
|
|
||||||
*
|
|
||||||
* Created by Manoel Trapier on 18/09/06.
|
|
||||||
* Copyright 2003-2008 986 Corp. All rights reserved.
|
|
||||||
*
|
|
||||||
* $LastChangedDate: 2008-03-12 12:12:07 +0100 (Mer, 12 mar 2008) $
|
|
||||||
* $Author: godzil $
|
|
||||||
* $HeadURL: svn+ssh://godzil@trac.godzil.net/svn/projects/Quick6502/types.h $
|
|
||||||
* $Revision: 26 $
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef TYPES_H
|
|
||||||
#define TYPES_H
|
|
||||||
|
|
||||||
#ifndef BYTE_TYPE_DEFINED
|
|
||||||
#define BYTE_TYPE_DEFINED
|
|
||||||
typedef unsigned char byte;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef unsigned char bool;
|
|
||||||
|
|
||||||
#define true (0)
|
|
||||||
#define false (!true)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Reference in New Issue
Block a user