- Initial commit

This commit is contained in:
Quinn Dunki 2014-08-29 12:10:50 -07:00
parent d4b9e1f990
commit 0c5b2cdaf4
9 changed files with 288 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
/AssemblyTest.xcodeproj/xcuserdata/
/AssemblyTest.xcodeproj/project.xcworkspace/xcuserdata/

BIN
AppleCommander.jar Normal file

Binary file not shown.

View File

@ -0,0 +1,188 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXFileReference section */
70D435A4199EE3A2001BFD9B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
70D435A5199EE47A001BFD9B /* x.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = x.s; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
70D43599199EE38E001BFD9B = {
isa = PBXGroup;
children = (
70D435A4199EE3A2001BFD9B /* Makefile */,
70D435A5199EE47A001BFD9B /* x.s */,
);
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXLegacyTarget section */
70D4359E199EE38E001BFD9B /* AssemblyTest */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "$(ACTION)";
buildConfigurationList = 70D435A1199EE38E001BFD9B /* Build configuration list for PBXLegacyTarget "AssemblyTest" */;
buildPhases = (
);
buildToolPath = /usr/bin/make;
dependencies = (
);
name = AssemblyTest;
passBuildSettingsInEnvironment = 1;
productName = AssemblyTest;
};
/* End PBXLegacyTarget section */
/* Begin PBXProject section */
70D4359A199EE38E001BFD9B /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0600;
ORGANIZATIONNAME = "One Girl, One Laptop Productions";
TargetAttributes = {
70D4359E199EE38E001BFD9B = {
CreatedOnToolsVersion = 6.0;
};
};
};
buildConfigurationList = 70D4359D199EE38E001BFD9B /* Build configuration list for PBXProject "AssemblyTest" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 70D43599199EE38E001BFD9B;
projectDirPath = "";
projectRoot = "";
targets = (
70D4359E199EE38E001BFD9B /* AssemblyTest */,
);
};
/* End PBXProject section */
/* Begin XCBuildConfiguration section */
70D4359F199EE38E001BFD9B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
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.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
70D435A0199EE38E001BFD9B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
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.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
name = Release;
};
70D435A2199EE38E001BFD9B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEBUGGING_SYMBOLS = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
70D435A3199EE38E001BFD9B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
70D4359D199EE38E001BFD9B /* Build configuration list for PBXProject "AssemblyTest" */ = {
isa = XCConfigurationList;
buildConfigurations = (
70D4359F199EE38E001BFD9B /* Debug */,
70D435A0199EE38E001BFD9B /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
70D435A1199EE38E001BFD9B /* Build configuration list for PBXLegacyTarget "AssemblyTest" */ = {
isa = XCConfigurationList;
buildConfigurations = (
70D435A2199EE38E001BFD9B /* Debug */,
70D435A3199EE38E001BFD9B /* Release */,
);
defaultConfigurationIsVisible = 0;
};
/* End XCConfigurationList section */
};
rootObject = 70D4359A199EE38E001BFD9B /* Project object */;
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:AssemblyTest.xcodeproj">
</FileRef>
</Workspace>

39
Makefile Normal file
View File

@ -0,0 +1,39 @@
#
# Makefile
# AssemblyTest
#
# Part of a sample build pipeline for Apple ][ software development
#
# Created by Quinn Dunki on 8/15/14.
# One Girl, One Laptop Productions
# http://www.quinndunki.com
# http://www.quinndunki.com/blondihacks
#
CL65=cl65
# You may need to change this to where your AppleCommander is installed:
AC=AppleCommander.jar
# Change this to your desired starting address in Apple ][ memory:
ADDR=6000
# Put the name of your sourcefile here:
PGM=x
all: $(PGM)
install: $(PGM)
clean:
rm -f $(PGM)
rm -f $(PGM).o
rm -f $(PGM).lst
$(PGM):
@PATH=$(PATH):/usr/local/bin; $(CL65) -t apple2enh -l$(PGM).lst --start-addr $(ADDR) $(PGM).s
java -jar $(AC) -d $(PGM).dsk $(PGM)
java -jar $(AC) -p $(PGM).dsk $(PGM) BIN 0x$(ADDR) < $(PGM)
rm -f $(PGM)
rm -f $(PGM).o
osascript V2Make.scpt $(PROJECT_DIR) $(PGM)

View File

@ -2,3 +2,8 @@ Apple2BuildPipeline
===================
A build pipeline (with sample project) for making Apple ][ software on OS X.
If you have Virtual ][ installed and running, just hit Cmd-B in Xcode to see this pipeline in action.
For complete instructions and information on how it works, go to:
http://quinndunki.com/blondihacks/?p=1904

BIN
V2Make.scpt Normal file

Binary file not shown.

BIN
x.dsk Normal file

Binary file not shown.

46
x.s Normal file
View File

@ -0,0 +1,46 @@
;
; x.s
; AssemblyTest
;
; Part of a sample build pipeline for Apple ][ software development
;
; Created by Quinn Dunki on 8/15/14.
; One Girl, One Laptop Productions
; http://www.quinndunki.com
; http://www.quinndunki.com/blondihacks
;
.org $6000
; Reserved locations
INVERSE = $32
; Constants
CHAR_NORMAL = $ff
CHAR_INVERSE = $3f
CHAR_FLASH = $7f
; ROM entry points
COUT = $fded
; Main
main:
lda #CHAR_FLASH
sta INVERSE
loop:
lda #'X' + $80
jsr COUT
jmp loop ; OMG so many Xs