mirror of
https://github.com/jeremysrand/Apple2BuildPipeline.git
synced 2024-12-21 10:29:35 +00:00
Add support for Applesoft BASIC projects
This commit is contained in:
parent
4b833136e9
commit
2be79b8fd5
9
Makefile
9
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
|
||||
|
BIN
make/bastokenizer-tools-bt-0.2.0.jar
Normal file
BIN
make/bastokenizer-tools-bt-0.2.0.jar
Normal file
Binary file not shown.
25
make/bt
Executable file
25
make/bt
Executable 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 $*
|
@ -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
|
||||
|
25
make/tail.mk
25
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
|
||||
|
||||
|
||||
|
@ -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>
|
||||
|
181
pkg/Specifications/applesoft.xclangspec
Normal file
181
pkg/Specifications/applesoft.xclangspec
Normal 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 = (
|
||||
);
|
||||
};
|
||||
},
|
||||
|
||||
)
|
@ -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>
|
||||
|
208
pkg/Templates/Apple II/Apple II Basic Project.xctemplate/TemplateInfo.plist
vendored
Normal file
208
pkg/Templates/Apple II/Apple II Basic Project.xctemplate/TemplateInfo.plist
vendored
Normal 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>
|
6
pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.bas
vendored
Normal file
6
pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.bas
vendored
Normal 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!"
|
98
pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.xcscheme
vendored
Normal file
98
pkg/Templates/Apple II/Apple II Basic Project.xctemplate/___PACKAGENAME___.xcscheme
vendored
Normal 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>
|
@ -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>
|
||||
|
20
pkg/Templates/File Templates/Apple II/Basic File.xctemplate/TemplateInfo.plist
vendored
Normal file
20
pkg/Templates/File Templates/Apple II/Basic File.xctemplate/TemplateInfo.plist
vendored
Normal 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>
|
5
pkg/Templates/File Templates/Apple II/Basic File.xctemplate/___FILEBASENAME___.bas
vendored
Executable file
5
pkg/Templates/File Templates/Apple II/Basic File.xctemplate/___FILEBASENAME___.bas
vendored
Executable file
@ -0,0 +1,5 @@
|
||||
10 REM ___FILENAME___
|
||||
20 REM ___PROJECTNAME___
|
||||
30 REM Created by ___FULLUSERNAME___ on ___DATE___.
|
||||
40 REM ___COPYRIGHT___
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user