diff --git a/Makefile b/Makefile index cb543cd..ab229c9 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/make/bastokenizer-tools-bt-0.2.0.jar b/make/bastokenizer-tools-bt-0.2.0.jar new file mode 100644 index 0000000..93aa68f Binary files /dev/null and b/make/bastokenizer-tools-bt-0.2.0.jar differ diff --git a/make/bt b/make/bt new file mode 100755 index 0000000..1890cb8 --- /dev/null +++ b/make/bt @@ -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 $* diff --git a/make/createDiskImage b/make/createDiskImage index 25e1c47..5b274a5 100755 --- a/make/createDiskImage +++ b/make/createDiskImage @@ -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 diff --git a/make/tail.mk b/make/tail.mk index 4d72c06..2596abd 100644 --- a/make/tail.mk +++ b/make/tail.mk @@ -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 diff --git a/pkg/Plug-ins/cc65.ideplugin/Contents/Resources/cc65.xcplugindata b/pkg/Plug-ins/cc65.ideplugin/Contents/Resources/cc65.xcplugindata index b1d74b7..ed24aec 100755 --- a/pkg/Plug-ins/cc65.ideplugin/Contents/Resources/cc65.xcplugindata +++ b/pkg/Plug-ins/cc65.ideplugin/Contents/Resources/cc65.xcplugindata @@ -77,6 +77,77 @@ version 1.0 + Xcode.FileDataType.Basic.Applesoft + + id + Xcode.FileDataType.Basic.Applesoft + localizedDescription + Applesoft BASIC Source + name + File type for Applesoft BASIC + point + Xcode.FileDataType + typeConformedTo + + + typeIdentifier + public.source-code + + + typeIdentifier + com.rand-family.xcode.applesoft + version + 1.0 + + Xcode.FileDataTypeDetector.Basic.Applesoft + + detectedTypeIdentifier + com.rand-family.xcode.applesoft + id + Xcode.FileDataTypeDetector.Basic.Applesoft + matchesExtension + bas + point + Xcode.FileDataTypeDetector + + Xcode.SourceCodeLanguage.Applesoft + + commentSyntax + + + prefix + REM + + + conformsTo + + + identifier + Xcode.SourceCodeLanguage.Generic + + + fileDataType + + + identifier + com.rand-family.xcode.applesoft + + + id + Xcode.SourceCodeLanguage.Applesoft + languageName + Applesoft BASIC + languageSpecification + xcode.lang.basic.applesoft + name + Applesoft BASIC + point + Xcode.SourceCodeLanguage + supportsIndentation + false + version + 1.0 + diff --git a/pkg/Specifications/applesoft.xclangspec b/pkg/Specifications/applesoft.xclangspec new file mode 100644 index 0000000..88b5ea9 --- /dev/null +++ b/pkg/Specifications/applesoft.xclangspec @@ -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 = ( + ); + }; + }, + +) diff --git a/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist index b616654..9d9cfd8 100644 --- a/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple II/Apple II Asm Project.xctemplate/TemplateInfo.plist @@ -7,7 +7,9 @@ main.s Makefile make/AppleCommander.jar + make/bastokenizer-tools-bt-0.2.0.jar make/createDiskImage + make/bt make/DevApple.vii make/dos33_template.dsk make/errorFilter.sh @@ -80,6 +82,13 @@ Path make/createDiskImage + make/bt + + Group + make + Path + make/bt + make/AppleCommander.jar Path @@ -87,6 +96,13 @@ Group make + make/bastokenizer-tools-bt-0.2.0.jar + + Path + make/bastokenizer-tools-bt-0.2.0.jar + Group + make + Makefile Path diff --git a/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/TemplateInfo.plist new file mode 100644 index 0000000..a160fc1 --- /dev/null +++ b/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/TemplateInfo.plist @@ -0,0 +1,208 @@ + + + + + Nodes + + ___PACKAGENAME___.bas + Makefile + make/AppleCommander.jar + make/bastokenizer-tools-bt-0.2.0.jar + make/createDiskImage + make/bt + make/DevApple.vii + make/dos33_template.dsk + make/errorFilter.sh + make/head.mk + make/prodos_template.dsk + make/tail.mk + make/V2Make.scpt + ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme + + Definitions + + ___PACKAGENAME___.bas + + Path + ___PACKAGENAME___.bas + + make/V2Make.scpt + + Group + make + Path + make/V2Make.scpt + + make/errorFilter.sh + + Group + make + Path + make/errorFilter.sh + + make/tail.mk + + Group + make + Path + make/tail.mk + + make/prodos_template.dsk + + Group + make + Path + make/prodos_template.dsk + + make/head.mk + + Group + make + Path + make/head.mk + + make/dos33_template.dsk + + Group + make + Path + make/dos33_template.dsk + + make/DevApple.vii + + Group + make + Path + make/DevApple.vii + + make/createDiskImage + + Group + make + Path + make/createDiskImage + + make/bt + + Group + make + Path + make/bt + + make/AppleCommander.jar + + Path + make/AppleCommander.jar + Group + make + + make/bastokenizer-tools-bt-0.2.0.jar + + Path + make/bastokenizer-tools-bt-0.2.0.jar + Group + make + + Makefile + + Path + Makefile + + ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme + + Group + + Supporting Files + + Path + ___PACKAGENAME___.xcscheme + + + Kind + Xcode.Xcode3.ProjectTemplateUnitKind + Identifier + com.halcyontouch.apple2BasicBuildSystem + Ancestors + + com.apple.dt.unit.externalBuildSystem + + Concrete + + Description + This template creates an Apple II Basic code project. The project starts with a single Applesoft file which you can modify. + Options + + Targets + + + TargetType + Legacy + TargetIdentifier + com.apple.dt.cocoaLegacyTarget + BuildToolPath + ___VARIABLE_buildToolPath___ + BuildToolArgsString + -C ___PACKAGENAME___ $(ACTION) + SharedSettings + + OTHER_CFLAGS + + OTHER_LDFLAGS + + + Configurations + + Debug + + DEBUGGING_SYMBOLS + YES + GCC_GENERATE_DEBUGGING_SYMBOLS + YES + GCC_OPTIMIZATION_LEVEL + 0 + + Release + + + + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + doNotBuild + SharedSettings + + PRODUCT_NAME + doNotBuild + GCC_PREPROCESSOR_DEFINITIONS + __fastcall__="" + HEADER_SEARCH_PATHS + /usr/local/lib/cc65/include + + BuildPhases + + + Class + Sources + + + Class + Frameworks + + + Class + CopyFiles + DstPath + /usr/share/man/man1/ + DstSubfolderSpec + 0 + RunOnlyForDeploymentPostprocessing + YES + + + + + + diff --git a/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.bas b/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.bas new file mode 100644 index 0000000..21103eb --- /dev/null +++ b/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.bas @@ -0,0 +1,6 @@ +10 REM ___FILENAME___ +20 REM ___PROJECTNAME___ +30 REM Created by ___FULLUSERNAME___ on ___DATE___. +40 REM ___COPYRIGHT___ + +100 PRINT "HELLO, WORLD!" diff --git a/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.xcscheme b/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.xcscheme new file mode 100644 index 0000000..61815a2 --- /dev/null +++ b/pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist index bc163ad..890834d 100644 --- a/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple II/Apple II C Project.xctemplate/TemplateInfo.plist @@ -7,7 +7,9 @@ main.c Makefile make/AppleCommander.jar + make/bastokenizer-tools-bt-0.2.0.jar make/createDiskImage + make/bt make/DevApple.vii make/dos33_template.dsk make/errorFilter.sh @@ -80,6 +82,13 @@ Path make/createDiskImage + make/bt + + Group + make + Path + make/bt + make/AppleCommander.jar Path @@ -87,6 +96,13 @@ Group make + make/bastokenizer-tools-bt-0.2.0.jar + + Path + make/bastokenizer-tools-bt-0.2.0.jar + Group + make + Makefile Path diff --git a/pkg/Templates/File Templates/Apple II/Basic File.xctemplate/TemplateInfo.plist b/pkg/Templates/File Templates/Apple II/Basic File.xctemplate/TemplateInfo.plist new file mode 100644 index 0000000..8ffbf82 --- /dev/null +++ b/pkg/Templates/File Templates/Apple II/Basic File.xctemplate/TemplateInfo.plist @@ -0,0 +1,20 @@ + + + + + AllowedTypes + + com.rand-family.xcode.applesoft + + DefaultCompletionName + File + Description + An Applesoft BASIC source file. + Kind + Xcode.IDEKit.TextSubstitutionFileTemplateKind + MainTemplateFile + ___FILEBASENAME___.bas + Summary + An Applesoft BASIC source file + + diff --git a/pkg/Templates/File Templates/Apple II/Basic File.xctemplate/___FILEBASENAME___.bas b/pkg/Templates/File Templates/Apple II/Basic File.xctemplate/___FILEBASENAME___.bas new file mode 100755 index 0000000..b8f53ef --- /dev/null +++ b/pkg/Templates/File Templates/Apple II/Basic File.xctemplate/___FILEBASENAME___.bas @@ -0,0 +1,5 @@ +10 REM ___FILENAME___ +20 REM ___PROJECTNAME___ +30 REM Created by ___FULLUSERNAME___ on ___DATE___. +40 REM ___COPYRIGHT___ + diff --git a/pkg/createPackage b/pkg/createPackage index 53977c2..23041a1 100755 --- a/pkg/createPackage +++ b/pkg/createPackage @@ -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