Add support for Applesoft BASIC projects

This commit is contained in:
Jeremy Rand 2018-07-18 20:00:01 -05:00
parent 4b833136e9
commit 2be79b8fd5
15 changed files with 744 additions and 20 deletions

View File

@ -33,6 +33,11 @@ PGM=___PACKAGENAME___
# MACHINE = apple2enh-system
# MACHINE = apple2enh-loader
# MACHINE = apple2enh-reboot
#
# These are special machine definitions beyond those defined in cc65
# which are used for BASIC projects:
# MACHINE = apple2-basic
# MACHINE = apple2-dos33-basic
# Uncomment and set this to your starting address in Apple II memory
# if necessary:
@ -73,6 +78,10 @@ SRCDIRS+=
# this variable:
# LDFLAGS += -v
# If you want to add arguments to the BASIC tokenizer commandline,
# add them to this valiable:
# BASICFLAGS += --optimize
# If you want to link the lores graphics driver with your executable,
# uncomment the next line.
# DRIVERS += loresgr

Binary file not shown.

25
make/bt Executable file
View File

@ -0,0 +1,25 @@
#!/bin/sh
if [ -z "$JAVA" ]
then
for item in "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home" /Library/Java/JavaVirtualMachines/*/Contents/Home /usr
do
if [ -x "$item/bin/java" ]
then
JAVA="$item/bin/java"
break
fi
done
fi
if [ -z "$JAVA" ]
then
echo Cannot find a path to a Java runtime.
echo Go to https://java.com/download if you do not have Java.
echo If you do have Java, you may need to uncomment the JAVA
echo line in the Makefile and set it to the path for your
echo Java runtime binary.
exit 1
fi
exec "$JAVA" -jar make/bastokenizer-tools-bt-0.2.0.jar $*

View File

@ -43,11 +43,7 @@ shift
STARTADDR=`echo $1 | sed 's/^0*//'`
shift
if [ ! -f "$PROGRAM" ]
then
echo "Cannot file executable $PROGRAM"
exit 1
fi
SOURCEFILE=$PROGRAM
case "$MACHINE" in
apple2)
@ -55,6 +51,7 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
@ -66,6 +63,7 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
@ -77,6 +75,7 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
@ -88,6 +87,7 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
@ -99,6 +99,7 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=1
COPYBINARY=1
HASHEADER=0
FILETYPE="sys"
TARGETFILE=`basename $PROGRAM`.system
@ -110,6 +111,7 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=1
COPYBINARY=1
HASHEADER=0
FILETYPE="sys"
TARGETFILE=`basename $PROGRAM`.system
@ -121,6 +123,7 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
@ -132,6 +135,7 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
@ -143,6 +147,7 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
@ -154,18 +159,50 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
apple2-basic)
TEMPLATE="make/prodos_template.dsk"
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=0
FILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
SOURCEFILE=${PROGRAM}.tok
MAXFILENAMELEN=15
;;
apple2-dos33-basic)
TEMPLATE="make/dos33_template.dsk"
DELETELOADER=0
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=0
FILETYPE="A"
TARGETFILE=`basename $PROGRAM`
SOURCEFILE=${PROGRAM}.tok
MAXFILENAMELEN=30
;;
*)
echo "Invalid machine type $MACHINE"
exit 1
;;
esac
if [ ! -f "$SOURCEFILE" ]
then
echo "Cannot file executable $SOURCEFILE"
exit 1
fi
if [ ${#TARGETFILE} -gt $MAXFILENAMELEN ]
then
echo "The filename $TARGETFILE exceeds the max name length of the filesystem ($MAXFILENAMELEN)"
@ -203,29 +240,39 @@ then
"$JAVA" -jar "$APPLECOMMANDER" -d "$DISKIMAGE" BASIC.SYSTEM
fi
if [ $HASHEADER -eq 1 ]
if [ $COPYBINARY -eq 1 ]
then
HDR_STARTADDR=`od -t x2 -N 2 < "$PROGRAM" | head -1 | awk '{print $2}' | sed 's/^0*//'`
if [ "$HDR_STARTADDR" = "$STARTADDR" ]
if [ $HASHEADER -eq 1 ]
then
dd if="$PROGRAM" bs=4 skip=1 | "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE 0x$STARTADDR
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE 0x$STARTADDR < "$PROGRAM"
HDR_STARTADDR=`od -t x2 -N 2 < "$SOURCEFILE" | head -1 | awk '{print $2}' | sed 's/^0*//'`
if [ "$HDR_STARTADDR" = "$STARTADDR" ]
then
dd if="$SOURCEFILE" bs=4 skip=1 | "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE 0x$STARTADDR
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE 0x$STARTADDR < "$SOURCEFILE"
fi
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE < "$SOURCEFILE"
fi
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE < "$PROGRAM"
fi
for DIR in $*
for ITEM in $*
do
if [ ! -d "$DIR" ]
if [ -f "$ITEM" ] && echo "$ITEM" | grep '\.tok$' > /dev/null
then
echo Unable to find directory $DIR
DESTFILE=`echo "$ITEM" | sed 's/\.tok$//'`
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$DESTFILE" $FILETYPE 0x801 < "$ITEM"
continue
fi
if [ ! -d "$ITEM" ]
then
echo Unable to find directory $ITEM
exit 1
fi
OLDPWD=`pwd`
cd $DIR
cd $ITEM
find . -type f -print | while read FILE
do

View File

@ -26,7 +26,10 @@ ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS))))
ASM_OBJS=$(ASM_SRCS:.s=.o)
ASM_LSTS=$(ASM_SRCS:.s=.lst)
OBJS=$(C_OBJS) $(ASM_OBJS)
BASIC_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.bas, $(SRCDIRS))))
BASIC_OBJS=$(BASIC_SRCS:.bas=.tok)
OBJS=$(C_OBJS) $(ASM_OBJS) $(BASIC_OBJS)
MAPFILE=$(PGM).map
DISKIMAGE=$(PGM).dsk
@ -40,7 +43,7 @@ ALLTARGET=$(DISKIMAGE)
ifneq ($(START_ADDR),)
# If the MACHINE is set to an option which does not support a variable start
# address, then error.
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),)
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system apple2-basic apple2-dos33-basic),)
$(error You cannot change start address with this machine type)
endif
else
@ -54,6 +57,9 @@ else
ifneq ($(filter $(MACHINE), apple2-loader apple2-reboot apple2enh-loader apple2enh-reboot),)
START_ADDR=800
endif
ifneq ($(filter $(MACHINE), apple2-basic apple2-dos33-basic),)
START_ADDR=801
endif
endif
LDFLAGS += --start-addr 0x$(START_ADDR)
@ -61,6 +67,10 @@ ifneq ($(filter $(MACHINE), apple2 apple2enh apple2-dos33 apple2enh-dos33),)
EXECCMD=$(shell echo brun $(PGM) | tr '[a-z]' '[A-Z]')
endif
ifneq ($(filter $(MACHINE), apple2-basic apple2-dos33-basic),)
EXECCMD=$(shell echo run $(PGM) | tr '[a-z]' '[A-Z]')
endif
# By default, use the a2 drivers. If the machine is one of the enhanced
# targets though, use the a2e drivers.
DRV_BASE_MACHINE=a2
@ -94,11 +104,17 @@ clean: genclean
cleanMacCruft:
rm -rf pkg
ifneq ($(filter $(MACHINE), apple2-basic apple2-dos33-basic),)
$(PGM): $(OBJS)
else
$(PGM): $(OBJS)
make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS)
endif
$(DISKIMAGE): $(PGM)
make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(COPYDIRS)
make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(BASIC_OBJS) $(COPYDIRS)
execute: $(DISKIMAGE)
osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)"
@ -111,6 +127,9 @@ execute: $(DISKIMAGE)
%.o: %.s
make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) -l -c -o $@ $<
%.tok: %.bas
make/bt $(BASICFLAGS) -o $@ $<
$(OBJS): Makefile

View File

@ -77,6 +77,77 @@
<key>version</key>
<string>1.0</string>
</dict>
<key>Xcode.FileDataType.Basic.Applesoft</key>
<dict>
<key>id</key>
<string>Xcode.FileDataType.Basic.Applesoft</string>
<key>localizedDescription</key>
<string>Applesoft BASIC Source</string>
<key>name</key>
<string>File type for Applesoft BASIC</string>
<key>point</key>
<string>Xcode.FileDataType</string>
<key>typeConformedTo</key>
<array>
<dict>
<key>typeIdentifier</key>
<string>public.source-code</string>
</dict>
</array>
<key>typeIdentifier</key>
<string>com.rand-family.xcode.applesoft</string>
<key>version</key>
<string>1.0</string>
</dict>
<key>Xcode.FileDataTypeDetector.Basic.Applesoft</key>
<dict>
<key>detectedTypeIdentifier</key>
<string>com.rand-family.xcode.applesoft</string>
<key>id</key>
<string>Xcode.FileDataTypeDetector.Basic.Applesoft</string>
<key>matchesExtension</key>
<string>bas</string>
<key>point</key>
<string>Xcode.FileDataTypeDetector</string>
</dict>
<key>Xcode.SourceCodeLanguage.Applesoft</key>
<dict>
<key>commentSyntax</key>
<array>
<dict>
<key>prefix</key>
<string>REM</string>
</dict>
</array>
<key>conformsTo</key>
<array>
<dict>
<key>identifier</key>
<string>Xcode.SourceCodeLanguage.Generic</string>
</dict>
</array>
<key>fileDataType</key>
<array>
<dict>
<key>identifier</key>
<string>com.rand-family.xcode.applesoft</string>
</dict>
</array>
<key>id</key>
<string>Xcode.SourceCodeLanguage.Applesoft</string>
<key>languageName</key>
<string>Applesoft BASIC</string>
<key>languageSpecification</key>
<string>xcode.lang.basic.applesoft</string>
<key>name</key>
<string>Applesoft BASIC</string>
<key>point</key>
<string>Xcode.SourceCodeLanguage</string>
<key>supportsIndentation</key>
<string>false</string>
<key>version</key>
<string>1.0</string>
</dict>
</dict>
</dict>
</dict>

View File

@ -0,0 +1,181 @@
// Applesoft BASIC language specs
(
/****************************************************************************/
// MARK: Keywords
/****************************************************************************/
{
Identifier = "xcode.lang.basic.applesoft.identifier";
Syntax = {
CaseSensitive = NO;
StartChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Type = "xcode.syntax.identifier";
};
},
{
Identifier = "xcode.lang.basic.applesoft.keyword";
Syntax = {
CaseSensitive = NO;
StartChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$";
Words = (
"NEW",
"CLEAR",
"LIST",
"RUN",
"LOAD",
"SAVE",
"DIM",
"AND",
"OR",
"NOT",
"ABS",
"SGN",
"INT",
"SQR",
"SIN",
"COS",
"TAN",
"ATN",
"EXP",
"LOG",
"RND",
"DEF",
"LEN",
"LEFT$",
"MID$",
"RIGHT$",
"STR$",
"VAL",
"CHR$",
"ASC",
"GOTO",
"ON",
"IF",
"THEN",
"FOR",
"TO",
"STEP",
"NEXT",
"GOSUB",
"RETURN",
"POP",
"ONERR",
"RESUME",
"STOP",
"CONT",
"END",
"PEEK",
"POKE",
"CALL",
"USR",
"HIMEM",
"LOMEM",
"FRE",
"TRACE",
"NOTRACE",
"GR",
"COLOR",
"PLOT",
"HLIN",
"VLIN",
"SCRN",
"HGR",
"HGR2",
"HCOLOR",
"HPLOT",
"DRAW",
"AT",
"XDRAW",
"SCALE",
"ROT",
"IN#",
"INPUT",
"GET",
"READ",
"DATA",
"RESTORE",
"PDL",
"PR#",
"PRINT",
"TEXT",
"HOME",
"HTAB",
"VTAB",
"INVERSE",
"NORMAL",
"FLASH"
);
Type = "xcode.syntax.keyword";
AltType = "xcode.syntax.identifier";
};
},
/****************************************************************************/
// MARK: Simple Syntax Coloring
/****************************************************************************/
{
Identifier = "xcode.lang.basic.applesoft";
Description = "Applesoft BASIC Coloring";
BasedOn = "xcode.lang.simpleColoring";
IncludeInMenu = YES;
Name = "Applesoft BASIC";
Syntax = {
Tokenizer = "xcode.lang.basic.applesoft.lexer";
IncludeRules = (
"xcode.lang.basic.applesoft.codeblock",
);
Type = "xcode.syntax.plain";
};
},
{
Identifier = "xcode.lang.basic.applesoft.lexer";
Syntax = {
IncludeRules = (
"xcode.lang.basic.applesoft.comment.rem",
"xcode.lang.string",
"xcode.lang.character",
"xcode.lang.number",
"xcode.lang.basic.applesoft.keyword",
"xcode.lang.basic.applesoft.identifier",
);
};
},
{
Identifier = "xcode.lang.basic.applesoft.comment.rem";
Syntax = {
Start = "REM";
End = "\n";
IncludeRules = ( "xcode.lang.url", "xcode.lang.url.mail", "xcode.lang.comment.mark" );
Type = "xcode.syntax.comment";
};
},
{
Identifier = "xcode.lang.basic.applesoft.codeblock";
Syntax = {
Tokenizer = "xcode.lang.applesoft.lexer.lexer";
Start = "{";
End = "}";
Recursive = YES;
Foldable = YES;
Type = "xcode.syntax.definition.function";
IncludeRules = (
);
};
},
)

View File

@ -7,7 +7,9 @@
<string>main.s</string>
<string>Makefile</string>
<string>make/AppleCommander.jar</string>
<string>make/bastokenizer-tools-bt-0.2.0.jar</string>
<string>make/createDiskImage</string>
<string>make/bt</string>
<string>make/DevApple.vii</string>
<string>make/dos33_template.dsk</string>
<string>make/errorFilter.sh</string>
@ -80,6 +82,13 @@
<key>Path</key>
<string>make/createDiskImage</string>
</dict>
<key>make/bt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/bt</string>
</dict>
<key>make/AppleCommander.jar</key>
<dict>
<key>Path</key>
@ -87,6 +96,13 @@
<key>Group</key>
<string>make</string>
</dict>
<key>make/bastokenizer-tools-bt-0.2.0.jar</key>
<dict>
<key>Path</key>
<string>make/bastokenizer-tools-bt-0.2.0.jar</string>
<key>Group</key>
<string>make</string>
</dict>
<key>Makefile</key>
<dict>
<key>Path</key>

View File

@ -0,0 +1,208 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Nodes</key>
<array>
<string>___PACKAGENAME___.bas</string>
<string>Makefile</string>
<string>make/AppleCommander.jar</string>
<string>make/bastokenizer-tools-bt-0.2.0.jar</string>
<string>make/createDiskImage</string>
<string>make/bt</string>
<string>make/DevApple.vii</string>
<string>make/dos33_template.dsk</string>
<string>make/errorFilter.sh</string>
<string>make/head.mk</string>
<string>make/prodos_template.dsk</string>
<string>make/tail.mk</string>
<string>make/V2Make.scpt</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>___PACKAGENAME___.bas</key>
<dict>
<key>Path</key>
<string>___PACKAGENAME___.bas</string>
</dict>
<key>make/V2Make.scpt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/V2Make.scpt</string>
</dict>
<key>make/errorFilter.sh</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/errorFilter.sh</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</string>
</dict>
<key>make/prodos_template.dsk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/prodos_template.dsk</string>
</dict>
<key>make/head.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/head.mk</string>
</dict>
<key>make/dos33_template.dsk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/dos33_template.dsk</string>
</dict>
<key>make/DevApple.vii</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/DevApple.vii</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</string>
</dict>
<key>make/bt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/bt</string>
</dict>
<key>make/AppleCommander.jar</key>
<dict>
<key>Path</key>
<string>make/AppleCommander.jar</string>
<key>Group</key>
<string>make</string>
</dict>
<key>make/bastokenizer-tools-bt-0.2.0.jar</key>
<dict>
<key>Path</key>
<string>make/bastokenizer-tools-bt-0.2.0.jar</string>
<key>Group</key>
<string>make</string>
</dict>
<key>Makefile</key>
<dict>
<key>Path</key>
<string>Makefile</string>
</dict>
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
<dict>
<key>Group</key>
<array>
<string>Supporting Files</string>
</array>
<key>Path</key>
<string>___PACKAGENAME___.xcscheme</string>
</dict>
</dict>
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Identifier</key>
<string>com.halcyontouch.apple2BasicBuildSystem</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.externalBuildSystem</string>
</array>
<key>Concrete</key>
<true/>
<key>Description</key>
<string>This template creates an Apple II Basic code project. The project starts with a single Applesoft file which you can modify.</string>
<key>Options</key>
<array/>
<key>Targets</key>
<array>
<dict>
<key>TargetType</key>
<string>Legacy</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.cocoaLegacyTarget</string>
<key>BuildToolPath</key>
<string>___VARIABLE_buildToolPath___</string>
<key>BuildToolArgsString</key>
<string>-C ___PACKAGENAME___ $(ACTION)</string>
<key>SharedSettings</key>
<dict>
<key>OTHER_CFLAGS</key>
<string></string>
<key>OTHER_LDFLAGS</key>
<string></string>
</dict>
<key>Configurations</key>
<dict>
<key>Debug</key>
<dict>
<key>DEBUGGING_SYMBOLS</key>
<string>YES</string>
<key>GCC_GENERATE_DEBUGGING_SYMBOLS</key>
<string>YES</string>
<key>GCC_OPTIMIZATION_LEVEL</key>
<string>0</string>
</dict>
<key>Release</key>
<dict/>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>__fastcall__=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>/usr/local/lib/cc65/include</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,6 @@
10 REM ___FILENAME___
20 REM ___PROJECTNAME___
30 REM Created by ___FULLUSERNAME___ on ___DATE___.
40 REM ___COPYRIGHT___
100 PRINT "HELLO, WORLD!"

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<PathRunnable
runnableDebuggingMode = "0"
FilePath = "/usr/bin/make">
</PathRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
<CommandLineArguments>
<CommandLineArgument
argument = "-C"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -7,7 +7,9 @@
<string>main.c</string>
<string>Makefile</string>
<string>make/AppleCommander.jar</string>
<string>make/bastokenizer-tools-bt-0.2.0.jar</string>
<string>make/createDiskImage</string>
<string>make/bt</string>
<string>make/DevApple.vii</string>
<string>make/dos33_template.dsk</string>
<string>make/errorFilter.sh</string>
@ -80,6 +82,13 @@
<key>Path</key>
<string>make/createDiskImage</string>
</dict>
<key>make/bt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/bt</string>
</dict>
<key>make/AppleCommander.jar</key>
<dict>
<key>Path</key>
@ -87,6 +96,13 @@
<key>Group</key>
<string>make</string>
</dict>
<key>make/bastokenizer-tools-bt-0.2.0.jar</key>
<dict>
<key>Path</key>
<string>make/bastokenizer-tools-bt-0.2.0.jar</string>
<key>Group</key>
<string>make</string>
</dict>
<key>Makefile</key>
<dict>
<key>Path</key>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.applesoft</string>
</array>
<key>DefaultCompletionName</key>
<string>File</string>
<key>Description</key>
<string>An Applesoft BASIC source file.</string>
<key>Kind</key>
<string>Xcode.IDEKit.TextSubstitutionFileTemplateKind</string>
<key>MainTemplateFile</key>
<string>___FILEBASENAME___.bas</string>
<key>Summary</key>
<string>An Applesoft BASIC source file</string>
</dict>
</plist>

View File

@ -0,0 +1,5 @@
10 REM ___FILENAME___
20 REM ___PROJECTNAME___
30 REM Created by ___FULLUSERNAME___ on ___DATE___.
40 REM ___COPYRIGHT___

View File

@ -14,6 +14,9 @@ cp main.c $TMPDIR/Templates/'Apple II/Apple II C Project.xctemplate/'
cp -R make $TMPDIR/Templates/'Apple II/Apple II Asm Project.xctemplate/'
cp Makefile $TMPDIR/Templates/'Apple II/Apple II Asm Project.xctemplate/'
cp -R make $TMPDIR/Templates/'Apple II/Apple II Basic Project.xctemplate/'
sed 's/^# MACHINE = apple2-basic/MACHINE = apple2-basic/' < Makefile > $TMPDIR/Templates/'Apple II/Apple II Basic Project.xctemplate'/Makefile
pkgbuild --root $TMPDIR --version 2.0 --identifier com.halcyontouch.Apple2Template.pkg --install-location /Library/Developer/Xcode/ --scripts pkg/scripts/ AppleXcodeTemplate.pkg
productbuild --distribution pkg/Distribution.xml --resource ./pkg temp.pkg
rm AppleXcodeTemplate.pkg