Only try to launch Virtual ][ if building from Mac OSX. Enforce Prodos and DOS 3.3 filename limits when creating the disk image.

This commit is contained in:
Jeremy Rand 2014-09-10 22:21:21 -04:00
parent f79de893c9
commit b6b8942068
4 changed files with 34 additions and 3 deletions

View File

@ -16,7 +16,7 @@ include make/head.mk
# target, where in memory to put it, etc.
# The name of your system or binary file to build goes here:
PGM=example
PGM=notaslon
# Set the config you are building for. See these pages for details:
# http://cc65.github.io/cc65/doc/apple2.html#s4
@ -33,6 +33,7 @@ PGM=example
# MACHINE = apple2enh-system
# MACHINE = apple2enh-loader
# MACHINE = apple2enh-reboot
MACHINE = apple2-loader
# Uncomment and set this to your starting address in Apple ][ memory
# if necessary:

Binary file not shown.

View File

@ -28,6 +28,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
apple2enh)
@ -38,6 +39,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
apple2-dos33)
@ -48,6 +50,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=30
;;
apple2enh-dos33)
@ -58,6 +61,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=30
;;
apple2-system)
@ -68,6 +72,7 @@ case "$MACHINE" in
HASHEADER=0
FILETYPE="sys"
TARGETFILE=`basename $PROGRAM`.system
MAXFILENAMELEN=15
;;
apple2enh-system)
@ -78,6 +83,7 @@ case "$MACHINE" in
HASHEADER=0
FILETYPE="sys"
TARGETFILE=`basename $PROGRAM`.system
MAXFILENAMELEN=15
;;
apple2-loader)
@ -88,6 +94,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
apple2-reboot)
@ -98,6 +105,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
apple2enh-loader)
@ -108,6 +116,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
apple2enh-reboot)
@ -118,6 +127,7 @@ case "$MACHINE" in
HASHEADER=1
FILETYPE="bin"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=8
;;
*)
@ -126,6 +136,12 @@ case "$MACHINE" in
;;
esac
if [ ${#TARGETFILE} -gt $MAXFILENAMELEN ]
then
echo "The filename $TARGETFILE exceeds the max name length of the filesystem ($MAXFILENAMELEN)"
exit 1
fi
if [ ! -f "$TEMPLATE" ]
then
echo "Cannot file template disk image $TEMPLATE"
@ -141,7 +157,14 @@ fi
if [ $RENAMELOADER -eq 1 ]
then
java -jar "$APPLECOMMANDER" -e "$DISKIMAGE" LOADER.SYSTEM | java -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE".system sys
LOADERFILE=${TARGETFILE}.system
if [ ${#LOADERFILE} -gt $MAXFILENAMELEN ]
then
echo "The filename $LOADERFILE exceeds the max name length of the filesystem ($MAXFILENAMELEN)"
rm -f "$DISKIMAGE"
exit 1
fi
java -jar "$APPLECOMMANDER" -e "$DISKIMAGE" LOADER.SYSTEM | java -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$LOADERFILE" sys
java -jar "$APPLECOMMANDER" -d "$DISKIMAGE" LOADER.SYSTEM
fi

View File

@ -25,6 +25,12 @@ LINK_ARGS=
EXECCMD=
ALLTARGET=$(DISKIMAGE)
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
ALLTARGET=execute
endif
ifneq ($(START_ADDR),)
# If the MACHINE is set to an option which does not support a variable start
# address, then error.
@ -32,6 +38,7 @@ ifneq ($(START_ADDR),)
$(error You cannot change start address with this machine type)
endif
else
# If not set, then use the default for the config as per cc65 documentation
ifneq ($(filter $(MACHINE), apple2 apple2-dos33 apple2enh apple2enh-dos33),)
START_ADDR=803
endif
@ -60,7 +67,7 @@ endif
.PHONY: all execute clean
all: execute
all: $(ALLTARGET)
clean:
rm -f $(PGM)