mirror of
https://github.com/thiagoauler/apple1.git
synced 2024-12-27 15:29:29 +00:00
creating Xcode project and adjusting extern variables.
This commit is contained in:
parent
6651b76f61
commit
680f44ed30
280
apple1.xcodeproj/project.pbxproj
Normal file
280
apple1.xcodeproj/project.pbxproj
Normal file
@ -0,0 +1,280 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 48;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
AFF1A1EE1FBD2A9C0069B921 /* 6502.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF1A1E91FBD2A9B0069B921 /* 6502.c */; };
|
||||
AFF1A1EF1FBD2A9C0069B921 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF1A1EA1FBD2A9B0069B921 /* main.c */; };
|
||||
AFF1A1F01FBD2A9C0069B921 /* memory.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF1A1EB1FBD2A9C0069B921 /* memory.c */; };
|
||||
AFF1A1F11FBD2A9C0069B921 /* opcodes.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF1A1ED1FBD2A9C0069B921 /* opcodes.c */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
AFF1A1DD1FBD2A490069B921 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = /usr/share/man/man1/;
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
AFF1A1DF1FBD2A490069B921 /* apple1 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = apple1; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
AFF1A1E91FBD2A9B0069B921 /* 6502.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = 6502.c; path = src/6502.c; sourceTree = "<group>"; };
|
||||
AFF1A1EA1FBD2A9B0069B921 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = main.c; path = src/main.c; sourceTree = "<group>"; };
|
||||
AFF1A1EB1FBD2A9C0069B921 /* memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = memory.c; path = src/memory.c; sourceTree = "<group>"; };
|
||||
AFF1A1EC1FBD2A9C0069B921 /* inc */ = {isa = PBXFileReference; lastKnownFileType = folder; name = inc; path = src/inc; sourceTree = "<group>"; };
|
||||
AFF1A1ED1FBD2A9C0069B921 /* opcodes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = opcodes.c; path = src/opcodes.c; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
AFF1A1DC1FBD2A490069B921 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
AFF1A1D61FBD2A490069B921 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AFF1A1E91FBD2A9B0069B921 /* 6502.c */,
|
||||
AFF1A1EC1FBD2A9C0069B921 /* inc */,
|
||||
AFF1A1EA1FBD2A9B0069B921 /* main.c */,
|
||||
AFF1A1EB1FBD2A9C0069B921 /* memory.c */,
|
||||
AFF1A1ED1FBD2A9C0069B921 /* opcodes.c */,
|
||||
AFF1A1E01FBD2A490069B921 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
AFF1A1E01FBD2A490069B921 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AFF1A1DF1FBD2A490069B921 /* apple1 */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
AFF1A1DE1FBD2A490069B921 /* apple1 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = AFF1A1E61FBD2A490069B921 /* Build configuration list for PBXNativeTarget "apple1" */;
|
||||
buildPhases = (
|
||||
AFF1A1DB1FBD2A490069B921 /* Sources */,
|
||||
AFF1A1DC1FBD2A490069B921 /* Frameworks */,
|
||||
AFF1A1DD1FBD2A490069B921 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = apple1;
|
||||
productName = apple1;
|
||||
productReference = AFF1A1DF1FBD2A490069B921 /* apple1 */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
AFF1A1D71FBD2A490069B921 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0910;
|
||||
ORGANIZATIONNAME = "Thiago Auler dos Santos";
|
||||
TargetAttributes = {
|
||||
AFF1A1DE1FBD2A490069B921 = {
|
||||
CreatedOnToolsVersion = 9.1;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = AFF1A1DA1FBD2A490069B921 /* Build configuration list for PBXProject "apple1" */;
|
||||
compatibilityVersion = "Xcode 8.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = AFF1A1D61FBD2A490069B921;
|
||||
productRefGroup = AFF1A1E01FBD2A490069B921 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
AFF1A1DE1FBD2A490069B921 /* apple1 */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
AFF1A1DB1FBD2A490069B921 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
AFF1A1EE1FBD2A9C0069B921 /* 6502.c in Sources */,
|
||||
AFF1A1F11FBD2A9C0069B921 /* opcodes.c in Sources */,
|
||||
AFF1A1F01FBD2A9C0069B921 /* memory.c in Sources */,
|
||||
AFF1A1EF1FBD2A9C0069B921 /* main.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
AFF1A1E41FBD2A490069B921 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
AFF1A1E51FBD2A490069B921 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "Mac Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
AFF1A1E71FBD2A490069B921 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = MKA3BYM4R9;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
AFF1A1E81FBD2A490069B921 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = MKA3BYM4R9;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
AFF1A1DA1FBD2A490069B921 /* Build configuration list for PBXProject "apple1" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
AFF1A1E41FBD2A490069B921 /* Debug */,
|
||||
AFF1A1E51FBD2A490069B921 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
AFF1A1E61FBD2A490069B921 /* Build configuration list for PBXNativeTarget "apple1" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
AFF1A1E71FBD2A490069B921 /* Debug */,
|
||||
AFF1A1E81FBD2A490069B921 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = AFF1A1D71FBD2A490069B921 /* Project object */;
|
||||
}
|
7
apple1.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
apple1.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:apple1.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
@ -1,7 +1,7 @@
|
||||
#ifndef _APPLE_I_6502_H_
|
||||
#define _APPLE_I_6502_H_
|
||||
|
||||
void init();
|
||||
void run();
|
||||
void init(void);
|
||||
void run(void);
|
||||
|
||||
#endif
|
||||
|
@ -2,7 +2,6 @@
|
||||
#define _APPLE_I_MEMORY_H_
|
||||
|
||||
#include "types.h"
|
||||
|
||||
db read_byte(dw address);
|
||||
dw read_word(dw address);
|
||||
void write_mem(dw address, db data);
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
dw pc; // program counter
|
||||
db ac; // accumulator
|
||||
db x; // x register
|
||||
db y; // y register
|
||||
db sp; // stack pointer
|
||||
db sr; // status register
|
||||
db ir; // instruction register
|
||||
extern dw pc; // program counter
|
||||
extern db ac; // accumulator
|
||||
extern db x; // x register
|
||||
extern db y; // y register
|
||||
extern db sp; // stack pointer
|
||||
extern db sr; // status register
|
||||
extern db ir; // instruction register
|
||||
|
||||
enum opcodes_table
|
||||
{ /// aaa00 aaa01 aaa10
|
||||
@ -51,65 +51,65 @@ typedef enum opcodes_table oct;
|
||||
typedef enum opcodes_list ocl;
|
||||
typedef enum address_mode am;
|
||||
|
||||
am address_mode;
|
||||
extern am address_mode;
|
||||
|
||||
void adc(); // add memory to accumulator with carry
|
||||
void and(); // and memory with accumulator
|
||||
void asl(); // shift left one bit (memory or accumulator)
|
||||
void bcc(); // branch on carry clear
|
||||
void bcs(); // branch on carry set
|
||||
void beq(); // branch on result zero
|
||||
void bit(); // test bits in memory with accumulator
|
||||
void bmi(); // branch on result minus
|
||||
void bne(); // branch on result not zero
|
||||
void bpl(); // branch on result plus
|
||||
void brk(); // force break
|
||||
void bvc(); // branch on overflow clear
|
||||
void bvs(); // branch on overflow set
|
||||
void clc(); // clear carry flag
|
||||
void cld(); // clear decimal mode
|
||||
void cli(); // clear interrupt disable bit
|
||||
void clv(); // clear overflow flag
|
||||
void cmp(); // compare memory with accumulator
|
||||
void cpx(); // compare memory and index x
|
||||
void cpy(); // compare memory and index y
|
||||
void dec(); // decrement memory by one
|
||||
void dex(); // decrement index x by one
|
||||
void dey(); // decrement index y by one
|
||||
void eor(); // exclusive-or memory with accumulator
|
||||
void inc(); // increment memory by one
|
||||
void inx(); // increment index x by one
|
||||
void iny(); // increment index y by one
|
||||
void jmp(); // jump to new location (indirect)
|
||||
void jpa(); // jump to new location (absolute)
|
||||
void jsr(); // jump to new location saving return address
|
||||
void lda(); // load accumulator with memory
|
||||
void ldx(); // load index x with memory
|
||||
void ldy(); // load index y with memory
|
||||
void lsr(); // shift one bit right (memory or accumulator)
|
||||
void nop(); // no operation
|
||||
void ora(); // or memory with accumulator
|
||||
void pha(); // push accumulator on stack
|
||||
void php(); // push processor status on stack
|
||||
void pla(); // pull accumulator from stack
|
||||
void plp(); // pull processor status from stack
|
||||
void rol(); // rotate on bit left (memory or accumulator)
|
||||
void ror(); // rotate on bit right (memory or accumulator)
|
||||
void rti(); // return from interrupt
|
||||
void rts(); // return from subroutine
|
||||
void sbc(); // subtract memory from accumulator with borrow
|
||||
void sec(); // set carry flag
|
||||
void sed(); // set decimal flag
|
||||
void sei(); // set interrupt disable status
|
||||
void sta(); // store accumulator in memory
|
||||
void stx(); // store index x in memory
|
||||
void sty(); // store index y in memory
|
||||
void tax(); // transfer accumulator to index x
|
||||
void tay(); // transfer accumulator to index y
|
||||
void tsx(); // transfer stack pointer to index x
|
||||
void txa(); // transfer index x to accumulator
|
||||
void txs(); // transfer index x to stack pointer
|
||||
void tya(); // transfer index y to accumulator
|
||||
void adc(void); // add memory to accumulator with carry
|
||||
void and(void); // and memory with accumulator
|
||||
void asl(void); // shift left one bit (memory or accumulator)
|
||||
void bcc(void); // branch on carry clear
|
||||
void bcs(void); // branch on carry set
|
||||
void beq(void); // branch on result zero
|
||||
void bit(void); // test bits in memory with accumulator
|
||||
void bmi(void); // branch on result minus
|
||||
void bne(void); // branch on result not zero
|
||||
void bpl(void); // branch on result plus
|
||||
void brk(void); // force break
|
||||
void bvc(void); // branch on overflow clear
|
||||
void bvs(void); // branch on overflow set
|
||||
void clc(void); // clear carry flag
|
||||
void cld(void); // clear decimal mode
|
||||
void cli(void); // clear interrupt disable bit
|
||||
void clv(void); // clear overflow flag
|
||||
void cmp(void); // compare memory with accumulator
|
||||
void cpx(void); // compare memory and index x
|
||||
void cpy(void); // compare memory and index y
|
||||
void dec(void); // decrement memory by one
|
||||
void dex(void); // decrement index x by one
|
||||
void dey(void); // decrement index y by one
|
||||
void eor(void); // exclusive-or memory with accumulator
|
||||
void inc(void); // increment memory by one
|
||||
void inx(void); // increment index x by one
|
||||
void iny(void); // increment index y by one
|
||||
void jmp(void); // jump to new location (indirect)
|
||||
void jpa(void); // jump to new location (absolute)
|
||||
void jsr(void); // jump to new location saving return address
|
||||
void lda(void); // load accumulator with memory
|
||||
void ldx(void); // load index x with memory
|
||||
void ldy(void); // load index y with memory
|
||||
void lsr(void); // shift one bit right (memory or accumulator)
|
||||
void nop(void); // no operation
|
||||
void ora(void); // or memory with accumulator
|
||||
void pha(void); // push accumulator on stack
|
||||
void php(void); // push processor status on stack
|
||||
void pla(void); // pull accumulator from stack
|
||||
void plp(void); // pull processor status from stack
|
||||
void rol(void); // rotate on bit left (memory or accumulator)
|
||||
void ror(void); // rotate on bit right (memory or accumulator)
|
||||
void rti(void); // return from interrupt
|
||||
void rts(void); // return from subroutine
|
||||
void sbc(void); // subtract memory from accumulator with borrow
|
||||
void sec(void); // set carry flag
|
||||
void sed(void); // set decimal flag
|
||||
void sei(void); // set interrupt disable status
|
||||
void sta(void); // store accumulator in memory
|
||||
void stx(void); // store index x in memory
|
||||
void sty(void); // store index y in memory
|
||||
void tax(void); // transfer accumulator to index x
|
||||
void tay(void); // transfer accumulator to index y
|
||||
void tsx(void); // transfer stack pointer to index x
|
||||
void txa(void); // transfer index x to accumulator
|
||||
void txs(void); // transfer index x to stack pointer
|
||||
void tya(void); // transfer index y to accumulator
|
||||
|
||||
#define N_IS_SET (sr & 0b10000000) // negative
|
||||
#define N_SET sr = sr | 0b10000000
|
||||
|
@ -1,6 +1,16 @@
|
||||
#include "inc/opcodes.h"
|
||||
#include "inc/memory.h"
|
||||
|
||||
dw pc; // program counter
|
||||
db ac; // accumulator
|
||||
db x; // x register
|
||||
db y; // y register
|
||||
db sp; // stack pointer
|
||||
db sr; // status register
|
||||
db ir; // instruction register
|
||||
|
||||
am address_mode;
|
||||
|
||||
dw address;
|
||||
db operand;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user