From 7d3a33e34c0171c165a23f3a3c47fe90e3bc5745 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Tue, 13 Apr 2021 00:04:59 -0400 Subject: [PATCH] Add the ability to select the emulator to use. Add support for the mame emulator. Separate the boot image from the distribution disk image (although targets like NDAs also install into the boot disk). Add the tar shell command from Kelvin and use it when packaging to also create a shrinkit archive of the distribution. --- .gitignore | 1 + Makefile | 58 ++++++- Makefile.merlin | 58 ++++++- make/config.txt | 2 +- make/createDiskImage | 143 ++++++++++++++++-- make/empty.2mg | Bin 0 -> 819264 bytes make/head.mk | 30 ++++ make/launchEmulator | 84 +++++++--- make/system601.2mg | Bin 10485824 -> 10485824 bytes make/tail.mk | 18 ++- make/tar | Bin 0 -> 43982 bytes .../TemplateInfo.plist | 29 ++++ .../___PACKAGENAME___.xcscheme | 2 +- .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ .../TemplateInfo.plist | 29 ++++ 24 files changed, 698 insertions(+), 46 deletions(-) create mode 100644 make/empty.2mg create mode 100644 make/tar diff --git a/.gitignore b/.gitignore index a3f0b1b..c780c5b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.lst +.*.sw? diff --git a/Makefile b/Makefile index 5dba2b2..3e480d0 100644 --- a/Makefile +++ b/Makefile @@ -28,6 +28,22 @@ PGM=___PACKAGENAME___ # TARGETTYPE=nda # TARGETTYPE=xcmd +# Uncomment one of the following lines to force a particular GS emulator. +# By default, specific paths are tested for these emulators in the below +# order and the first found is what will be used. You can overrride that +# here: +# +# EMULATOR=gsplus +# EMULATOR=mame +# EMULATOR=gsport + +# By default, the build provides a single boot environment to test with. +# You can put other .2mg files into the make directory and override this +# variable to change what boot disk you want to use when you launch the +# emulator. The disk image you specify must be found in the make directory: +# +# BOOTIMAGE=system601.2mg + # Add any other directories where you are putting C or assembly source # files to this list: # SRCDIRS+= @@ -65,7 +81,7 @@ LDFLAGS+= # Uncomment the following line if you want to build against the GNO libraries # export ORCA=$(ORCA_BINDIR)/gno -# If you want to copy one or more files or directories to the target disk +# If you want to copy one or more files or directories to the distribution disk # image, add the root directory to this variable. Any directories under # the source directory which don't exist in the target disk image will be # created. All files will be copied from the source to the target using @@ -73,23 +89,61 @@ LDFLAGS+= # # For example, if you set COPYDIRS to dir and in your project you have # the following files: +# dir/Icons/myIconFile +# dir/newDir/anotherFile +# Then, during the copy phase, myIconFile will be copied into the Icons +# folder and a folder newDir will be created and anotherFile will be copied +# into there. +COPYDIRS= + +# If you want to copy one or more files or directories to the boot disk +# image, add the root directory to this variable. Any directories under +# the source directory which don't exist in the boot disk image will be +# created. All files will be copied from the source to the target using +# the same path from the source. +# +# For example, if you set COPYBOOTDIRS to dir and in your project you have +# the following files: # dir/System/mySystemFile # dir/newDir/anotherFile # Then, during the copy phase, mySystemFile will be copied into the System # folder and a folder newDir will be created and anotherFile will be copied # into there. -COPYDIRS= +COPYBOOTDIRS= # By default, the build expects that you have GSplus in the path: # /Applications/GSplus.app/Contents/MacOS/gsplus # If you have it in a different location, specify that here. # GSPLUS=/Applications/GSplus.app/Contents/MacOS/gsplus +# By default, the build uses no arguments with GSplus. If you would like to +# use different arguments, specify that here. +# GSPLUSARGS= + # By default, the build expects that you have GSport in the path: # /Applications/GSport/GSport.app/Contents/MacOS/GSport # If you have it in a different location, specify that here. # GSPORT=/Applications/GSport/GSport.app/Contents/MacOS/GSport +# By default, the build uses no arguments with GSport. If you would like to +# use different arguments, specify that here. +# GSPORTARGS= + +# By default, the build expects that you have Ample/mame in the path: +# /Applications/Ample.app/Contents/MacOS/mame64 +# If you have it in a different location, specify that here. +# MAME=/Applications/Ample.app/Contents/MacOS/mame64 + +# By default, the build expects that you have the mame ROMs/libs in the path: +# $(HOME)/Library/Application Support/Ample +# If you have it in a different location, specify that here. +# MAMELIB=$(HOME)/Library/Application Support/Ample + +# By default, the build uses these arguments with mame: +# apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl7 cffa202 +# If you would like to use different arguments, specify that here. +# MAMEARGS=apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl7 cffa202 + # For a desktop application, it can operate in 640x200 or 320x200 # resolution. This setting is used to define which horizontal # resolution you want to use for a desktop application. Other diff --git a/Makefile.merlin b/Makefile.merlin index 765915a..4bfba0c 100644 --- a/Makefile.merlin +++ b/Makefile.merlin @@ -33,6 +33,22 @@ ASSEMBLER=merlin # TARGETTYPE=nda # TARGETTYPE=xcmd +# Uncomment one of the following lines to force a particular GS emulator. +# By default, specific paths are tested for these emulators in the below +# order and the first found is what will be used. You can overrride that +# here: +# +# EMULATOR=gsplus +# EMULATOR=mame +# EMULATOR=gsport + +# By default, the build provides a single boot environment to test with. +# You can put other .2mg files into the make directory and override this +# variable to change what boot disk you want to use when you launch the +# emulator. The disk image you specify must be found in the make directory: +# +# BOOTIMAGE=system601.2mg + # Add any other directories where you are putting C or assembly source # files to this list. Note that you must manually add all source files # to the linkscript.s file. All this does is help the build system @@ -50,7 +66,7 @@ REZFLAGS+= # put the rlint somewhere weird, you can set this to the correct path # RLINT_PATH=rlint -# If you want to copy one or more files or directories to the target disk +# If you want to copy one or more files or directories to the distribution disk # image, add the root directory to this variable. Any directories under # the source directory which don't exist in the target disk image will be # created. All files will be copied from the source to the target using @@ -58,23 +74,61 @@ REZFLAGS+= # # For example, if you set COPYDIRS to dir and in your project you have # the following files: +# dir/Icons/myIconFile +# dir/newDir/anotherFile +# Then, during the copy phase, myIconFile will be copied into the Icons +# folder and a folder newDir will be created and anotherFile will be copied +# into there. +COPYDIRS= + +# If you want to copy one or more files or directories to the boot disk +# image, add the root directory to this variable. Any directories under +# the source directory which don't exist in the boot disk image will be +# created. All files will be copied from the source to the target using +# the same path from the source. +# +# For example, if you set COPYBOOTDIRS to dir and in your project you have +# the following files: # dir/System/mySystemFile # dir/newDir/anotherFile # Then, during the copy phase, mySystemFile will be copied into the System # folder and a folder newDir will be created and anotherFile will be copied # into there. -COPYDIRS= +COPYBOOTDIRS= # By default, the build expects that you have GSplus in the path: # /Applications/GSplus.app/Contents/MacOS/gsplus # If you have it in a different location, specify that here. # GSPLUS=/Applications/GSplus.app/Contents/MacOS/gsplus +# By default, the build uses no arguments with GSplus. If you would like to +# use different arguments, specify that here. +# GSPLUSARGS= + # By default, the build expects that you have GSport in the path: # /Applications/GSport/GSport.app/Contents/MacOS/GSport # If you have it in a different location, specify that here. # GSPORT=/Applications/GSport/GSport.app/Contents/MacOS/GSport +# By default, the build uses no arguments with GSport. If you would like to +# use different arguments, specify that here. +# GSPORTARGS= + +# By default, the build expects that you have Ample/mame in the path: +# /Applications/Ample.app/Contents/MacOS/mame64 +# If you have it in a different location, specify that here. +# MAME=/Applications/Ample.app/Contents/MacOS/mame64 + +# By default, the build expects that you have the mame ROMs/libs in the path: +# $(HOME)/Library/Application Support/Ample +# If you have it in a different location, specify that here. +# MAMELIB=$(HOME)/Library/Application Support/Ample + +# By default, the build uses these arguments with mame: +# apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl7 cffa202 +# If you would like to use different arguments, specify that here. +# MAMEARGS=apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl7 cffa202 + # For a desktop application, it can operate in 640x200 or 320x200 # resolution. This setting is used to define which horizontal # resolution you want to use for a desktop application. Other diff --git a/make/config.txt b/make/config.txt index ee25a72..76d0ff9 100644 --- a/make/config.txt +++ b/make/config.txt @@ -6,7 +6,7 @@ s5d2 = s6d1 = s6d2 = -s7d1 = ../___PACKAGENAME___.2mg +s7d1 = g_joystick_type = 0 g_limit_speed = 0 diff --git a/make/createDiskImage b/make/createDiskImage index 17146eb..21e3758 100755 --- a/make/createDiskImage +++ b/make/createDiskImage @@ -1,27 +1,31 @@ #!/bin/sh - -MOUNTDIR=/tmp/a2gs_mount.$$ -TMPDISKIMAGE=/tmp/a2gs_diskimage_$$.2mg -TEMPLATEDISKIMAGE=make/system601.2mg - if [ $# -lt 3 ] then - echo USAGE: $0 diskimage file directory + echo USAGE: $0 diskimage bootimage file [bootdest] exit 1 fi DISKIMAGE="$1" shift +DESTBOOTIMAGE="$1" +shift + FILE="$1" shift -DISKIMAGEDEST="$1" -shift -DEST="${MOUNTDIR}/${DISKIMAGEDEST}" +BOOTCOPYPATH="$1" -COPYDIRS=$* +PROGRAM=`basename "$FILE"` +TMPDIR=/tmp/a2gs_mount.$$ +MOUNTDIR="${TMPDIR}/$PROGRAM" +TMPDISKIMAGE=/tmp/a2gs_diskimage_$$.2mg +TMPBOOTIMAGE=/tmp/a2gs_bootimage_$$.2mg +TMPARCHIVE=/tmp/s2gs_archive_$$.shk +TEMPLATEDISKIMAGE="make/empty.2mg" +TEMPLATEBOOTIMAGE="make/$BOOTIMAGE" +ARCHIVE=`dirname "$DISKIMAGE"`/"${PROGRAM}.shk" # It looks like on Linux, the cp command needs a special argument to preserve the resource fork. This isn't ideal # but for now, if uname is Darwin, then this is MacOS and we don't need any cp args. If not Darwin, then assume @@ -41,8 +45,11 @@ cleanupAndExit() { umount "$MOUNTDIR" 2> /dev/null rm -f "$TMPDISKIMAGE" 2> /dev/null + rm -f "$TMPBOOTIMAGE" 2> /dev/null + rm -f "$TMPARCHIVE" 2> /dev/null rm -f "$DISKIMAGE" 2> /dev/null - rmdir "$MOUNTDIR" 2> /dev/null + rm -f "$DESTBOOTIMAGE" 2> /dev/null + rm -rf "$TMPDIR" 2> /dev/null exit 1 } @@ -52,10 +59,16 @@ then cleanupAndExit fi -cp "$TEMPLATEDISKIMAGE" "$TMPDISKIMAGE" +if [ ! -f "$TEMPLATEBOOTIMAGE" ] +then + echo Unable to find the template boot image, $TEMPLATEBOOTIMAGE + cleanupAndExit +fi + +mkdir "$TMPDIR" if [ $? != 0 ] then - echo Unable to copy template disk image. + echo Unable to create the mount directory. cleanupAndExit fi @@ -66,6 +79,81 @@ then cleanupAndExit fi +cp "$TEMPLATEBOOTIMAGE" "$TMPBOOTIMAGE" +if [ $? != 0 ] +then + echo Unable to copy template boot image. + cleanupAndExit +fi +if [ ! -z "$COPYBOOTDIRS" ] || [ ! -z "BOOTCOPYPATH" ] +then + profuse -orw "$TMPBOOTIMAGE" "$MOUNTDIR" + if [ $? != 0 ] + then + echo Unable to mount the boot image. + cleanupAndExit + fi + + if [ ! -z "$BOOTCOPYPATH" ] + then + cp $CPARGS "$FILE" "$MOUNTDIR/$BOOTCOPYPATH" + if [ $? != 0 ] + then + echo Unable to copy the file to the boot image. + cleanupAndExit + fi + fi + + OLDDIR=`pwd` + for COPYDIR in $COPYBOOTDIRS + do + cd "$COPYDIR" + if [ $? != 0 ] + then + echo Unable to find $COPYDIR + cleanupAndExit + fi + + find . -print | while read FILEORDIR + do + if [ -d "$FILEORDIR" ] + then + mkdir -p "${MOUNTDIR}/$FILEORDIR" + elif [ -f "$FILEORDIR" ] + then + cp $CPARGS "$FILEORDIR" "${MOUNTDIR}/$FILEORDIR" + fi + done + cd "$OLDDIR" + done + + RETRIES=0 + while [ $RETRIES -lt 5 ] + do + umount "$MOUNTDIR" + if [ $? -eq 0 ] + then + break + fi + + RETRIES=`expr $RETRIES + 1` + sleep 1 + done + + if [ $RETRIES -ge 5 ] + then + echo Unable to unmount the boot image. + cleanupAndExit + fi +fi + +cp "$TEMPLATEDISKIMAGE" "$TMPDISKIMAGE" +if [ $? != 0 ] +then + echo Unable to copy template disk image. + cleanupAndExit +fi + profuse -orw "$TMPDISKIMAGE" "$MOUNTDIR" if [ $? != 0 ] then @@ -73,7 +161,7 @@ then cleanupAndExit fi -cp $CPARGS "$FILE" "$DEST" +cp $CPARGS "$FILE" "$MOUNTDIR" if [ $? != 0 ] then echo Unable to copy the file to the disk image. @@ -103,6 +191,15 @@ do cd "$OLDDIR" done +cd "$TMPDIR" +$ORCA "$OLDDIR/make/tar" cf "$TMPARCHIVE" "$PROGRAM" +if [ $? != 0 ] +then + echo Unable to create archive. + cleanupAndExit +fi +cd "$OLDDIR" + RETRIES=0 while [ $RETRIES -lt 5 ] do @@ -129,6 +226,22 @@ then cleanupAndExit fi +cp "$TMPBOOTIMAGE" "$DESTBOOTIMAGE" +if [ $? != 0 ] +then + echo Unable to copy the boot image to the destination. + cleanupAndExit +fi + +cp "$TMPARCHIVE" "$ARCHIVE" +if [ $? != 0 ] +then + echo Unable to copy the archive to the destination. + cleanupAndExit +fi + rm -f "$TMPDISKIMAGE" -rmdir "$MOUNTDIR" +rm -f "$TMPBOOTIMAGE" +rm -f "$TMPARCHIVE" +rm -rf "$TMPDIR" exit 0 diff --git a/make/empty.2mg b/make/empty.2mg new file mode 100644 index 0000000000000000000000000000000000000000..4b1474bda32c721052934ae6eb12edca353d1a85 GIT binary patch literal 819264 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 z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## sAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwx`S3uzZ2lqt`D*ylh literal 0 HcmV?d00001 diff --git a/make/head.mk b/make/head.mk index 20a1aca..a697081 100644 --- a/make/head.mk +++ b/make/head.mk @@ -72,10 +72,40 @@ DESKTOP_RES_MODE=640 MESSAGE_CENTER=0 GSPLUS=/Applications/GSplus.app/Contents/MacOS/gsplus +GSPLUSARGS= GSPORT=/Applications/GSport/GSport.app/Contents/MacOS/GSport +GSPORTARGS= +MAME=/Applications/Ample.app/Contents/MacOS/mame64 +MAMELIB=$(HOME)/Library/Application Support/Ample +MAMEARGS=apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl7 cffa202 export GSPLUS +export GSPLUSARGS export GSPORT +export GSPORTARGS +export MAME +export MAMELIB +export MAMEARGS + +ifneq (,$(wildcard $GSPLUS)) + EMULATOR=gsplus +else ifneq (,$(wildcard $MAME)) + EMULATOR=mame +else ifneq (,$(wildcard $GSPORT)) + EMULATOR=gsport +else + EMULATOR=gsplus +endif + +export EMULATOR + +BOOTIMAGE=system601.2mg +export BOOTIMAGE + +COPYDIRS= +export COPYDIRS +COPYBOOTDIRS= +export COPYBOOTDIRS XCODE_PATH=/Applications/Xcode.app XCODE_INFO=$(XCODE_PATH)/Contents/Info.plist diff --git a/make/launchEmulator b/make/launchEmulator index e9e7086..2ee547b 100755 --- a/make/launchEmulator +++ b/make/launchEmulator @@ -1,18 +1,29 @@ #!/bin/sh -if [ ! -z "$GSPLUS" ] && [ -x "$GSPLUS" ] -then - EMULATORPATH="$GSPLUS" -elif [ ! -z "$GSPORT" ] && [ -x "$GSPORT" ] -then - EMULATORPATH="$GSPORT" -fi +TMPDIR="/tmp/a2gs_emulator.$$" -if [ -z "$EMULATORPATH" ] +cleanupAndExit() +{ + cd + if [ ! -z $PID ] + then + kill $PID 2> /dev/null + fi + rm -rf $TMPDIR + exit 0 +} + +createConfigTxt() +{ + mkdir "$TMPDIR" + sed "s:^s7d1 *=.*$:s7d1 = $BOOTIMAGE: +s:^s5d1 *=.*:s5d1 = $DISKIMAGE:" < make/config.txt > "$TMPDIR/config.txt" + +} + +if [ $# -ne 2 ] then - echo Unable to find GSplus or GSport at these locations. - echo " GSPLUS=$GSPLUS" - echo " GSPORT=$GSPORT" + echo USAGE $0: diskimage bootimage exit 1 fi @@ -22,15 +33,52 @@ then DISKIMAGE="$PWD/$DISKIMAGE" fi -cd make -sed -i "" "s:^s7d1 *=.*$:s7d1 = $DISKIMAGE:" config.txt +BOOTIMAGE="$2" +if echo $BOOTIMAGE | grep -v '^/' > /dev/null +then + BOOTIMAGE="$PWD/$BOOTIMAGE" +fi +case "$EMULATOR" in + gsplus) + EMULATORPATH="$GSPLUS" + EMULATORARGS="$GSPLUSARGS" + EMULATORDIR="$TMPDIR" + createConfigTxt + ;; + gsport) + EMULATORPATH="$GSPORT" + EMULATORARGS="$GSPORTARGS" + EMULATORDIR="$TMPDIR" + createConfigTxt + ;; + mame) + EMULATORPATH="$MAME" + EMULATORARGS="$MAMEARGS -hard1 "$BOOTIMAGE" -flop3 "$DISKIMAGE"" + EMULATORDIR="$MAMELIB" + ;; + *) + echo Invalid emulator specified, \"$EMULATOR\" + exit 1 + ;; +esac + +if [ ! -x "$EMULATORPATH" ] +then + echo Unable to find $EMULATOR at $EMULATORPATH + exit 1 +fi + +if [ ! -d "$EMULATORDIR" ] +then + echo Unable to find $EMULATOR library at $EMULATORDIR + exit 1 +fi + +cd "$EMULATORDIR" # This magic ensure that clicking stop in Xcode results in the emulator terminating. - -$EMULATORPATH & +"$EMULATORPATH" $EMULATORARGS & PID=$! -trap 'kill $PID' SIGTERM SIGINT SIGHUP EXIT +trap cleanupAndExit SIGTERM SIGINT SIGHUP EXIT wait - -exit 0 diff --git a/make/system601.2mg b/make/system601.2mg index 12d9c00cadbbcd7b2bd69ec1d4de0613386e6399..ff5588b1decd62e4bc68496333547a74fa0da6e5 100644 GIT binary patch delta 708 zcmW;ISyzk!0D$2ceV-UoDcOlqjHSq0S+g5t%f4jEu4F635W~U?P*4Oes^CN*U!$qk>ANGlL{EnZ<18P(?L!nMV!tS-?UTv6v;)Qb#>YS;lf! zu##0Yu$ncjWgY9;z(zLl@7HFwu$4x(v7H_4WEV~BW)FMW$9@iQkV72i2+bVj7{@t5 z3nw|nY0hw#bDZY_t+a8Gb}n(5D_rFo9dvS?8{DLeTihni9q!W2J?`^>9v7EnaUnnlC0T{o$O1N>|3@hF@!Kk2HE|E&Y9!r&Rn>1 z?H~9f9v9Df@84W173LUd4N7B)czNDn+pp@fFz;_|aZ#o{s40jgDl)x6hsHBO*cqwJ zc7+YmzWQkY&p&mA*<8u*=16{bI@yy>M#!gtfRI9lP{dH83}ZOOjG%;4VvJ-IWsIhr zI2DXxER~F7JQJ8m6_c1uHB(4XLoIboWg63&!Axc`n|kIjmj>oBp9L(WkwrAIm}Zu+ zlw~Yu1uJP`6{}gpTGp|i4Q%B9uT5-b3tQR7c6P9nU9_^BJ?v#4`#Hct4snoa7XzIm21bah?lY%!ImwTkR&jY%7$Ri%p!xNtJ mj5N=A!Ap91MIW!p@P@a%qo4PD;3J>-%oo1?NGHF2&;A2eR3ZNW diff --git a/make/tail.mk b/make/tail.mk index 491608c..9f8b3f6 100644 --- a/make/tail.mk +++ b/make/tail.mk @@ -7,9 +7,11 @@ export PATH := $(PATH):$(ORCA_BIN) CWD=$(shell pwd) DISKIMAGE=$(TARGETDIR)/$(PGM).2mg +ARCHIVE=$(TARGETDIR)/$(PGM).shk +DESTBOOTIMAGE=$(TARGETDIR)/$(BOOTIMAGE) BUILDTARGET=$(DISKIMAGE) EXECTARGET=executeGUI -DISKIMAGEDEST=. +BOOTCOPYPATH= AUXTYPE= CFLAGS+=-i$(GENDIR) @@ -31,18 +33,18 @@ else ifeq ($(TARGETTYPE),desktop) REZFLAGS+=rez='-d MESSAGE_CENTER=$(MESSAGE_CENTER)' else ifeq ($(TARGETTYPE),cda) FILETYPE=cda - DISKIMAGEDEST=System/Desk.Accs + BOOTCOPYPATH=System/Desk.Accs else ifeq ($(TARGETTYPE),cdev) BINTARGET=$(TARGETDIR)/$(PGM).bin FILETYPE=199 - DISKIMAGEDEST=System/CDevs + BOOTCOPYPATH=System/CDevs REZFLAGS+=rez='-d BINTARGET="$(BINTARGET)"' else ifeq ($(TARGETTYPE),nba) FILETYPE=exe BUILDTARGET=$(TARGETDIR)/$(PGM) else ifeq ($(TARGETTYPE),nda) FILETYPE=nda - DISKIMAGEDEST=System/Desk.Accs + BOOTCOPYPATH=System/Desk.Accs else ifeq ($(TARGETTYPE),xcmd) FILETYPE=exe BUILDTARGET=$(TARGETDIR)/$(PGM) @@ -105,6 +107,8 @@ clean: genclean $(RM) $(ALL_DEPS) $(RM) $(ASM_MACROS) $(RM) "$(DISKIMAGE)" + $(RM) "$(DESTBOOTIMAGE)" + $(RM) "$(ARCHIVE)" createPackage: pkg/createPackage @@ -178,13 +182,13 @@ $(TARGETDIR)/$(PGM): $(REZ_OBJS) endif -$(DISKIMAGE): $(TARGETDIR)/$(PGM) - make/createDiskImage "$(DISKIMAGE)" "$(TARGETDIR)/$(PGM)" "$(DISKIMAGEDEST)" $(COPYDIRS) +$(DISKIMAGE): $(TARGETDIR)/$(PGM) make/empty.2mg make/$(BOOTIMAGE) + make/createDiskImage "$(DISKIMAGE)" $(DESTBOOTIMAGE) "$(TARGETDIR)/$(PGM)" $(BOOTCOPYPATH) execute: $(EXECTARGET) executeGUI: all - make/launchEmulator "$(DISKIMAGE)" + make/launchEmulator "$(DISKIMAGE)" "$(DESTBOOTIMAGE)" executeShell: all $(ORCA) $(TARGETDIR)/$(PGM) diff --git a/make/tar b/make/tar new file mode 100644 index 0000000000000000000000000000000000000000..3e14264d330ec8347fd75ccd1c4f9193f3e0bb2b GIT binary patch literal 43982 zcmeFa34DxK+dqD0%VcIU*(YL_bc{8%G(u!SDzs36 z_jRtbpL-eO{|0a%7BVJa0+Y*=0|EEjigjc9+CQ&Z@iQh&N}D{n*Z7pw+dMA?lXGDi z6S6C~+PZ+T58q|1O+)hL<8}pb0g}UCD;8fTZh37gdKR{p4@fcns~Ex%1N}W>trN>_ z;x+`%XVrmh?OKD!OlCOk!3+;(u<{Ml?B&zWBvdn29mWiYr?651OECO7iDgcmoH8mc zMn5HGl78@rNmFJF9XWW~P<_gz5$PGz()5EzW{gQ|)27W(IqMj8)t6}$gTZN**zZj; zOYQ9fl@Wo?X71R_BLd-dCV}F2`%#MC0`kGto52}smas}-R<076ebUXcbhCo@ma&AY z;Hn@umtpD*S9sho?3`3DIzK+TcmdBUL5KkpSydoCj?Ld3Z1XcWXxTA1BZz4-WAqIF zk#&DA>x`MDW|>)GR@#EXB$Z6KL6R!Si4mmw*nBGAV;dTl_*5Jun972;AkzPQ2 zR_35AY-QZ_hQaQjWs|;gB3P2=t3O5K%6gr<(DXU0w)gop%Zeb8(x>-qn zHovH=VI(?{XtpSw`{C{(wPhtro8q9*VXJe5^n0waK{J(=Ii#hY z%q%c9B|i`De!+nr@ilVzdGhpZ5FHKh9V&ZKw0d>$Iaz0%$+3NX#6O# z;(CcmN&}fmR0j7JUpi;$H1{;e3jINh$PG0Re=HtCwJz7UF8 zVN*bVLT!r580Pc_yuh4Nzz`^0DTT##8|Dy`NG?lFpV?%UH8q?rE?_p zl{0FG=-!nxX5V{r{prcCh^zdod<{R3;}nH7z%-ovf2rrsDNs-Hzg^GYm%@jW|8MpD z>HV10$KT-M_2JaQA-Bm&6lTF(5u~lmmD!Z^APK~R@+b?=5V9f?VS-`Q zR7jQ&YV$P*+I-9bB_cjGn5V^=)&86&-&c`6gN1b}Ng{tpss+q2kg;+}kX;mXR2t+E z{UQtEZ;CwVX7M@amz>4Qi8l znTrX@*rh>`g`j0t-6*RAxUAg?ua~ujZl3a*aQlPsqk?wGny4M0wGV5v_S&S3DQQp7 zTXhf@uciJYA9Kf>nVgoE>Egt@fJKKPQHM!lVq$#71{Gr{ZkEtMOWQ!p3xSsAftJ>R z%f;;Q;jLP;EH4kg(o~d#HCv@rA_8my4pEMok-0K;KsAQYrb&d&15Kj|UkEe}Cu|#N z8bsJK(A1AGG|<$OQZvQbR8dz)u*x93($XL%FWWOk$`Xb(m%fI7J-A=Gs{ii=xFe-6 zNc#X^0$o<*jIOb_4h$aK9P|RHZD6GU){T;|w+wV}7t1~CJx7(SO3G_sWsQid2>i&4 z6l9pfr2{slr6R=byC=jjVmd=IcpE}a$kKM)%WEF!45{|udFWY*?^^suc1 z!306=U|gC`5m%2nYLlB(o172i7*^`REZqXF@qyMJfuRrLEnW%)gvr1E+x z6Iw(;R!Pv~1?o{IDr%#U1|=9C!bGCo@JM`LxW#8(sIo3nSr@1bTB3uRAv>C9KS~M_1Z0e}1csJ@)Kk%t?gaUAx{YW8hDH6ye`c5r)_0zCJI}vLcMsKfZgo5R52U+mT+V6} z8Y|t&=lv&q=G5^??}ad?$$a{F9-hfG{Be(@M;<&&7ng1Yl5Pc(Zuu*qTM6>JGB3GC z{u=Okd9-{EaHM>y{Ab`{`Dyu9;6k|#ztw@9UL57D9GZ~=Td+CA*1)XejkK1Gbl;RI z>G~<-$Lq(8A2%vS-*hq?FfL^{8Qk&u)U+vSlg4I@ORH@^PnkIZjq7@WModbBS+4Il zenQ$f@_A&$A7lELF;AX4VZ!)HF!lQJ6Q*R0A4d%uv~OT4ebJbss?8LRmVxg1ei$wgevbUFGI8GTz$@k^+0prE7ZAiR8cZ>K%EN8T^-shLd??APnjh) zkV=}n_?Ie~B{48nma4Gt384mE40A-5$SP_b;>$AAO}7Wy;7YVm@Jr#SMJzM@0559b zK0rljR=7jb{lCR3%BcXO>oG++8{mjBD_|5Kw|CCgup2OX&Za=FSF|UDZ%}`!tnGt{ zCo^g&2}~30DXK~z=4?cT%N_9QQv&v=Z=YbAo`|1$KN-I-CkRoFyv8O)W>W>c$kFmx zoY^C73RUNc<3^5$O0;=?a*V!7)3Ek4T0FIo^jwIHaii+qsTEJX z+LD)ye;vtqkYr3l?O&>(_~j>5_T#GgJpxhR*-xsV{`Oy0$~!7lHWDff|J7qT{>#Vu zuQR+{#I|~&xRp7my;%B&uUU|87MZ%Z{ev^cND~foLDVjk%gc5xQB@SH264(i%$Hv6 z9)qFDG*-IDU=~m>Mg#-kjbf;Dw^7l}Se(h4PS!UKPu1(2wok3?IN9XX$!L)(fnhi( z;f#!?M8cQ*gK~$WL~>DI8nbjy$bS80iRlcP4~b3U3_OJ2vRd=t6qt0+4g8~ukx+(#yyMytSPwismLK({HXvBB{-6vUf`6M_}aYZUk?YTs}1l& zZKGJ{PBrX_^rWU_yO|;{zZGu38SaXJZ&g1ff^JWVz(307ef?%QUW)JaTj6HkoE|mQ z!kHc7s=Q$5 z-j-yy>=SEc-+)u55c(AcauPuorRz9O+^55>--eTvPlVfFreBu~kGo|^9TTBx2-uul zTSi$o2A;9}T)6#g`226fEvLg>{gPUCo++>{Q!oOjNibw}E<6n*I;LFoy=10vQ=&~0 z`Zi0fsfo%kF|)5J8txk2jWHZwbmrg|aQB%I?uIs*^9Xv$CgwZ{U;^hc0-^Ji&DS}& zRM`&tGXGS#xREN(WpW~=DCjuoBASK8TqyjYr=|GJ@O+lfc)}Xea2v9VrGbk1m4@v~R0!ji601X5U1*L$} zKpCL1poyTVpqU^eC>vx3<%2As1)xQsC7`9C6(Ad^6l4c&1Z@Uw2UURffewNyK}SKy zK_@|{L1#f1K$k#QLDxaIKzBfQK@UKJC_Fz%22z6jKq^o}kPg%c)D#p7Y7J@&iU37} zI)h?C@t{P|E1)FM0MJ0tP*4ge4U_>I3z`U;3YrNrg0ewoP(H{4S^!!ES^`=MS^=_w zNr`7xVxmh{p4SWFRHT z52OM$1nEGHKutlRpw^(apa@Vj$OlI4KWo)dYl1lWY4Lx@Ho7^5{|?i$u+Jp$Oajj& z@Js^FB=AfE&m{0n0?#DyOajj&@Js^FB=AfE&m{0n0?#DyOalK4CGg~|=HKxV{D-5S z{|g2DKlqV*ri^3V(}uHGu(~03!X)5K)^qAO&=?jwbrefZo51>vn1Z!*(^y>E2-dq# zZ`L(7jx`Aj2eo7UU+)i$U|kb?10z9EplDDms4J)&h{DISxWs;}N!u_`TM+o$wga^X zMXnKV!5_Qe+Te)0DlMYcL09} z@OJ=z2k>_Qe+Te)0DlMYcL09}@JE6_68w?ij|6`t_#?p|3I0g%M}j{R{E^^~1b-y> zBf%dD{z&jgfj@JE9`8vN1V zj|P7<_@lue4gP5GM}r^JGEJhv9}WI!@JE9`8vN1Vj|G1$_+!Bz3;tN}$AUi={ITGV z1%E8~V`HJG$*g}|cNQ1hA8zo+c4x``y0Jc8d$L}MU0HJ54y<4QUM&9gc-A+uJL?bX z9T&^Gf%^C9#p3$C%9?cT#=0kizbo{&PdC=LcYlOMp1L9ZZb-iy((i`!yCMBwe;oMZkpDR3KMwgv9-5#W zG>HR$9QfnFk7wy0--|VgZ_8r)zYGL_Jow|m9}oU`@W+Ec9{lm(j|YD|_~XGJk7tBD znsi6{-I0EGq~9I<-ND}-{N2IdJ(Bh6{W6|2nI+;m6JPDe$?(a;3e2{fmDX!2>vfgs1s68A`CwI=54H?CzW}sl&dY#s<~#?8V9sv<*hlzL z^$W}}#+PB~bp&&G(Yo!EDq6|?rOFoQ@W4(hfoXibOb*~ONgJN36jd@_28Lew%o$f| z+OV?eTfu3vH3eykvc(i6ffkjz!<|#D6h&fD(gn-CN$Kgt$?rKl#|i9|iW3SF#Lmq? zEV+Mdxj8lzDh8+eV3!2HU4r&X)b7DB_|8pNfV&X>ask7dO+jA4 zry{3lIb-SRiyhqlve?e`R)W%k_nf-|em^3XfS$*uQX#h;3=5!nj-;n>d?v7m1}fVI zCK&ofGqbGxy2^e{MQO9LHMC+>SZBc~mu%`&BFPbyE>xNQXsvC)av|I5m$2F|ID-lK z-D0Z*xqk3nB`WqyPk$7U3zZO@KK7a_VU=j?b=7PUg?wtT;EWo%y@F=@?WOef5tv!1J>4?f**0stAFQpinPw{!g{x{&YD)6`x?~VC;>KQ7}gDA ze`{kyv=8TY__-5D0*3S01Xvp=XZHi_#gRbdCK0zW!WLxK+Eiu@zfx9BE1c`^o|Ch# z*jI-&_Twj|>eI2DGHnv?HIg>jP0q+lle4B_;WPBKC|}<+dQ7UmY1?qDk)8~H7r6~c zs*LtHW23U;ADje73;2x%5ay*C5(X1;zpQ%6OJrT_%Am?re%EgR-S7#b-vKWfJSVc8 zPij)72;kc6(6~fe;S)r*!-sZDNJ?M8Rf+VX-sZD($xB#vjV&Fn#5lR~WpLC>6ybxH zs0^Cg&^7Nrp^ks~+bX*ex=nXya{j6=v`(DdCeAJCLOadKoy)nEoEt_!zX%zfxupIaMB(9SAqN1=#pvU)n<+C$Fk z1oj+0ZPQO!SXd+)HjLq-16oN~ff3fW?U?c8#-AIS!l!9i2mC(!`(G{r?qG(#Pqr<% z4aTWb>-&ANeu&>($W?4I(n{=w3Kl-L@t3Pme(P4R9;1CqIX46-2sSC&9l>LzL2C-e z%7V(~NK0!}W(8F;N~&ZO39A)UePC}Qst;KZXY>`QJ`{ZAEapn9M;w(h*FJP7m!Kl< z$pno8`w3d79)*=l*dBpB<+3m_w&rpS4W7c#OMng0Y0|PVX(jXJ_K9#o8$TszBko~j zc$oQ;Ac)1VQ$nXQ{9intO&SwZ#vkvHfW{PmbuEcKCFeaA?2ig z-fU8|fp8|qDTC$xzLk33Y&Rq^c6>4xQ(Wn~B*Zaa5M-%Q+28Lg#~-=>^`r8e0yrMp z=22&R$K#b2PB!?4tGVh{S%3dp-<~_~0~;Q3-Un0%oAFYW){2medMj9ZX#wVj*y5aXf#rM;rQ%}RwI!)yQ_@bpDW3CLeeXeN-HGvvp0XvVyF0~ANoLxD z9c+`O`B)aJY>G5L%OY-nZ|NScqrks9WxY3DqI7L{GQIk=e3-gC=6gqF`Bi0l-qx^E zLHk@4w9oZkJodS^jt`4(7vD49ue)FOo!qZq_v1h}|Bj@JZAm*xOJ!)Pn-!O(IqM&m zVE6F+MJnXhwdKT>MaLu*?U)#|rbOc^G8Nn*9ku0!_L?P>)`*@ilJ?wQbP7_UDG1Ks z6qinuc+`xfH_Ug5Y6Vaw;W{NDX1z^kevUSLh434`nsB{p(HBW|n^a+@1HxqY2*QM3Sy_9hVt>dFO zZ8Bc1IKdD4FCxb7*B!R!(duqf)vD_Gzif4DYpB(oNe$$ep9n-U{fh=T?fCOkSNN#; z9e)=R|Eeked%Zh3>mEMV7QbKbKAkDUt52%mBPob-B4FriOQ+6#jnes?`x>RQkxj>! z&d-^x5nnp@;fhM9&fGZX9cJ@$igL;s*U-l%dNlOKmjg_+J)YY{ZhOud=za`(^qNFE zXUH@QC+DcR&H&FNyBt98+s~9{^P|3kX(;s~ZH@5CD+SCUxKcnm%=OmYncI| z2!u#9)Ydo#=hdLV$*I6)CZfQ7p73*mDUtrw#sB#I=j?fy)A<1osi@mOX=ZL?Yie%I zoBCGN7NrfCf8E#UHhwI3UKKWjr>0CvX{Dc>nK5Ak_Wad3z==+Op$&Zfl5ByNAxW;& z5c(y#PeZ7)fvylj$M0*NFF!QyW z3J2DGD*Lu%u1|5)P$e_`F%p#>|9Is)l5uPPmSoGOWY-41+8Ft5hQsPc^C;{5v%}PR zLS5+W9Ob>aK4evt39FUV_CkVad+kW(>aN24LKK3ArO_{(3JVI<-(o#b6Y?H-j^DI1wjrBK6KZnW3P7 zSq~*!4<}QhJVL*G2-iLG{ptx{=#b@1GFkO72+(EK&5F6ost#4{tHRxVX00&Q$JLP) zntm+p#4I66I2yyEPqG@4tWA<=vt+ZR(imoGkz{{Eg{bDYO0qnk1fKa}NtQNA&NLn71v@%0gDrNKfGq!elm!y>wYh9Grgrvuxz}lBfb6t|PJjuEt z$@*~;dg7GSmL$ujr1?9NEZdUkdEW19H>;GnDyQfME^AwP!5N*Xbl_YNMTycJFjr;s zp+`r z*Od!DIwz+7jraRfwwokb3`wpQT}aXyt`zuH3%Ra9Vc#l0-oy0(Twz(4q3P=oaJoT>-5Fxs9gqN7ewF=2ZzjchT7TKt|_W79a>^UC#@ zr0b0hm{`;$Y7IO}oqzjH89jJCMaB?^jFSbq6~!d?B=y^^LIvC6#_^`Jiv< zd5g90et4QJOZ%cJ{UIEb&qw2Qhz3y_y1vO)2`tK_RU(T|Qu;m1a)h=iEbIDWv%9@7 znpWj~vGv+330vfwT1xubnp@WN#nno>`lxT6k*ZgCsgA%+@<)MeVMsNB4v&jU z|A87j+>hnQ0Cv#go-~1{lDOh27H^tWnL))S0An3nH;X^Bl`u4Ai;i-z}+#V*wEL9k1O74 zU;d0rk^4kSdn`?Ix$g!)b~hcfaw?(kgZV(KRUMCLlyz58V5jw5q8^QDT9{Ka~So>bYt<^8{_njhz$kOLYbKgm}Buz5AqiZ$iAcRMuZr);lWe?<(tE6;A8$ z#{p-4G#r3wSUUfOJIggyQ9CJEimHt}l#QAnwPUB4R1wrp3Yuu_@GmC?0|wR`+vFw% zw+QIGGVVN3evI-dVcr$k6X|*IhF#NvqW+Bfe?HV$q3OG=J_)ORf^on|?K~Xy1khgb z;V1R@fUfzf;EcCj;oO{$jY0T4&d5a{YO1L-f#(WilcLmIV74HPC}0*3N9+F8Jl-yD z9`6n6=64~b+QXgP^7n=jIt+C8zaO8`>s9~G<1>1F>)n3pjGp4}%;+g{LqxY{n)zCRTHv}b1#b6y8b&er1mQF*_dTUYDtg4B-Z?Z{1Gj?70 zphn+hH~0?| z|B)e>Amp?36=i9b%W;AnZ@U~-1(n1eNGmQ4HhTw^iuekwczp8*L zKl=&tpn3^;sjV8*&3@_T0PcPj-N!x7&_8ZQ>x2s*S|{8S29=ACERu>W67`j~suEVK z(BpVykyN}zQt=jv56Fdr^-1%CX-Ny04k>dkJ$!6d)nIO6Yh-TD zm&;~PpH*f5-Ms{^J(cogdx|^4+P)^G@;T;cXkVA&kdw9^8cGG5h8)(V;4s~nTq9|J zrnyJb=!o4=u*u8p57U-*7|CB&ge)yj;V+dzOS4AaSd)S{-19j|YH{YHv+J<*VCtmF zIMq=Il-e`bj;-ONsOT`#GGnA`*k{^EE@euvB5R~sVo?Thr>Xe_q4aUSzkojq{TyOV%#K9;IP69a3DiG&cJ+=sl zn<2HAr8uS5vJ^w|P=-fAsk=%TW0vAsA%k5bG0#Cyjc4Yr%2Q~il~zwLY6mYD9Ojq8 z93F=ALz!tOjRtDzW_${baT>NypaH_lK6L)rG76H)ovwQ?g~BL<43YofkAx>D?^zL2 z>sg7@$!XlBIyr?~oiU{5iBlH2MM_o1 zt3}RGERH%_lET@jJ_375%8il~?gY<3vl2&m2AUNT{@Bd+81|@Aa7)l|nm2z;u&?{5 z`0-rMOq*;n$i?l+pA!5;URCb<*^ly@^>}{0>gKn)KOM(keIv!K`n6HK`zVUY8vDHz znk9CsaJJ{4DX?7bvpvO!WTu~RH|i25QMp%$=n_g~m^}J31$L8DAWFd}h-Lz5Y0ENB ztGS~&9pUz-flg7**AJ-%#-P5|&aH-_6VCmt${-B3P+-!XoP7`K$ks%Mi~HgTdmN$5 zTPE%Zdz`u%moX`R+>}W(aco+>BVSpa6FDEh$DO%W?>^Q6F?>NHWn5}p+O&)jX_I>- zlh^;VKOwiw{f`txNS(=Nf6pZFOalLFB|ygw{%1$_{NIY~|Has-AD0Pym4|Wm?BC3i zV&2PZI}WxfogvE^Ta3oH=WDVun{;UVbhBqg`%z};;R8y?&-?WsN!PYqC7dl^C73M> z?np<<;!xX0T}RBZ9s0>Lv}fi!_G35O`cCe*`Mux2jt+ivP=&ST`{CX6g3F(MWFGx; z3)zh?*IAM$`GuYOZPBK|Sq-DkJzTo$z@@pXyQByke{p^O`h*O5%R5zD-=EmGo&SUH z_AHzEdPj9h?vDozqG7S+g})qqUXh+yyyawdKzP!G4|kvaQxh|AMqcTWYhJB;k2kH@ z|AV+`_fgvy-#^n?`}RLJ7XA8FMBwySfBt+;{chJ99X26*!HSLhj$gRtFAO*I>pE%p z!r7m!I`QeRKQw7C4osaA*Wb3;yy()MgC{#Q3-XvY^40EJR~P60{?nw-4%>HCio?dH&na?_c|1-p;jS-s&}^RVOd)^#@1K+AAzeXN~(u?-$#I zc-P!K_vN1T9~Lgi-nioUzFQZ3S(v_WmkGmWFI@G>rzd{+Rp@UB@7izpq|LTP<~x^8 z9&FzvP&_5If86S=xy3*I{@JN!9Xx_YPV4^a>B_rTm*j6ReLZ1Dda!3yi_gEkc7NUn zYj^e>G&)PJem>^G^|MDS>`N_gjTzFbQ!B04&6+RIt>07l;ka47|Iy|}?+};n_&8g+ zbVvG{qRi$w)RckKuw_F{qs^W+`A}1)Syo{hW0oI2;N$p?G^s?!>5><8Nda9#0~)&Y zeybe~3nNyAe-x6}vO>Bb^>)Jd#%oERy}CE+mp-RQ+&TP@A158}@gVcwn6JD1F!jrU z>taknn;S3jS?2k1lU%>Gor^qnJ)i%at=-D@^MiM`E*4Y||EBl#H}}1EsPE5jolE>R z?e$|*F2$IWOXh%_!1AaMlv^8Bb^T-9(ZLs{U!HJeNKM9x_!&3)?@#&tm2Z1~H`1AW z@a?PGg0K?F!q7c!wh7;hT%obBu#}_&)wV@>+peDO^;T=0uYO`|)sLIai`U$(95SY} zQtul(@y9Cj<~55e?~WOw>>S3DQmPLuvTe&def6zgy4JB1^}goKKUP)VU9(u(dCZWc zlrXl)R(;^~)oppY)^GJnNn&BPMF*;{p3d9WTG#8XiLt)=&E~2f?^Z5e(^)xW%+l9a?I7X5BnDfA=S| zzq&ZRM^Lklib11mzFbzm|Msed9vw!#)-$W6X8!J*=f1l5$?TwJ(|ZgW-BGcuyynY` zU(NocSx}GZqX#KEmM{CV=Jx)Dt2%hRHY%&9rseMW=Wa5ow`}a_5vkvPck-((8@KJ* zx?%h7GiR$#jL96HCh+j_9G5X{lt`?UZ~l1au5ZqLef;$IryQF;*-;^scqzuGr;PmW z+pkV;+_Gnzl*znDk4+tsIVNqmhrrWk!`9u~&z?C^_3`FiJI{S{{A(=f7$z3Ul@g)C zD}DUPlf7%|q>df!En`w2Pl3nqv@w}gC(fMRzI*G2uaAFo zZs)GeA1mb|@vu?jGEzp4Pxn#?B|9oMeR9fi`uo%oqsPj;rEJf(ja$At`Q5iCs?MI- zy?w)0Pah9K+VIRVa-~=_YFNg&<6ocqX4lS-H&^WVWRv66_oqjuq>op4NrY_rjV00v zSC@IuJYOuE^;3~<^sjT&W2Z>ft!czxfNX@bQ!CwhE%WrolD7vA<r>r^UJ{#C(>)z}C6ixYgsd(}a?Tqrj>b3-zI zH#HphFyD97-T4iMeZ3;8&+(F%624jAA@`lhfAGsx zq4nA%$)byIdcAw;Eydhh>Ca{VHaAsKjA4m zY&udRb5&6Fj0zViK6(?Q;g(|x%(SOv<$GAp%f&C?PHayTnMH?>IIbTWfAom^q7-^t7*!1BKG-J12ix$CF-f|aI>qpo zpudl;4EQWk$#{kjLgCwMwKwR4ZTMnS5cUzNXnX-(DjHv?6KT+2M@muln(!A<1|rG; ziV{-*6eTw@KqFiDq8lwm3r_RLHl)C^Iik6e)gs8oEakni8agewjyJ|P9G)1UqJfQJ zxR!D&0!;(p<@#bqPwc4JIWZLddP%9CiDB#OI?;!vPpO$SHrYx6KNU)Ho>!W$}-8{wM zzniZue7?jI4`*PNyb2%HsuH_Xrmy+AuU&)OHlbN=6PRU`B%SKdf28kkYX}q$YWKLp zJ+2*fq6_?Mg`>}zLE#>cjQidgWsjS5!nagB3&%lJ;=&0eu);|bnPCmPz_`D{dr){G z8VLfklvrp$EdhTkMM?v9zR~UU!jC87XA}Kwp`UFSIQ)1bMm93}IPmM~{%b*hZpR~B zUR3{YU+tgEe?Rw^^OQe6zya=W&Qt#AzGrPl{+ll5DLM|0S}ta*rN2uHZ%=~Zgkjq% zEjzMWx+X8G<4@AWnwmH)lPNIX2ag z{!JE@eiJUTl;oQ}?_O5N;PJT9P_+AvER)ho&q_G6);@1?f<1q7!XTQ&ab*g{9J&DI z@lLRLafxq`FIUs&I!pp5w+dN~4>xf>`M%5{&-Y}GaG5VF_FAq*DBsA+hc)=VoIJts z+ANmy4Xb=mlo37-zWPvFHfNWcK! zK*W3aa04$#5Emf9m9=YcGq}@{uowZ%g5V4Ra)B?Yd6`8SSi$Lq9+f0luwRb|qPBWn zrMnxXbUy|>?ns>ogrQ8QgmUP5QgQ7SZ0TPl`jH$q&>MRilvI3BZn;nI2|3YuCD8NZ zy>VuBLvvVckINn~t)6&h+*<7cJMZ*PAhB2C6NW#)_6pO}KcesXdEtA03W}0zn!}u3 z)GueO#M|k+ReZ|Rp*!sO{j$ep`4NY+#LL-`^OKdN z;oh$76=WhVn@56848iv-!uaB9&s_0-{UNW*V&u%@vL}A!NXH+^ZS^b`=jA#6xGcZy zal~=!BQK|KUY^s_?M<9n_Z~|C&tIE>=QW8ZbwGL+`Qjz;>B#wXY@W!sH`3rzxJU8d z`AF{cLi`@Qmn&`sGVfI@2(Emfu+i9iu4uo$WxAzoTDoQ3G$?hcX&P4^rqwAAYq;%x z?(zT^R~~?_@_?&H<$*5^6;uqzI;)c=KC5opQW% zlceY_6o7m8GODjge5k7mGFN#d;J;g&wt5wNI%T9u^2^?)TL>?Ku6UTe-3w`Xb>|C0jhaGpXT=p+(e1ZtJr(B9AYfnvvVQ~ z#pWW<%W`O#m+30!UD=vGkcAJOR<^|S27ik$95(+1o3E>kQ!#pH7Mm+Ei$3se{1FV$ zd1i8m);JqrF(%o=l{IfKuc@&KoWd)IsRe~q$pWWO6xvsp(6l7LXH-fgABj*<{ZL^2 zNg~|GI9&$!#*B1}a|T&P=L{I!8~Ay`;Pxs#HG@;I8JvPaKUT|Ix~*;2J<^w4c}vdD zlC+;Rv(6a__8T+mnOR;(dUdxXpaw`E(%r(i3?bIx@6)uzpfmR0@)GRTdGyk(w`W+Z zXIOumVf|xwl2^0@?`3#MCeN)N;TYtxhrqUG!g>IzdalqOe!n2QyUasx}?F8+8;_G-M(+cOgI;%y>{#Mz`e3u5|u zUixwg+bW_@)QJ-2rDxL9i^^6*59dluU$5UZjrpMLJALUYVLdJrAXR3%Opy;;8O$mi z)0S?TR&g$S>A~y@ujxx~PdjqN_vg}&r&-FUAybwO(@OVcTPm{YdQW!gjcJyjIsad# z@s`(DLv@L7iTM2YHAONH&t~!~j=QGdRL@ko$=~ruiP-6Nz7gASv%7qx=Ml$U8#9Yx zBRr5iwFu~4?#rfP4CQjFZGwX`9IGHYsBi|;g9yr2qh*5+#-4YzM50WBV6eJdG+?C4 zStMhEVv#FI%k-?Qgkgvqg0k*6uJ)!^>R;KEIfD}nD~#;2H(sf)=_gE~a-Rfhxi*vc zvhFZi%Z%17M(Z}CwcKdkU@X-$%O<1sW21GK(YnT{-}%;t`+AYlQpU$hlV*WD?~QFn zy0OJ|V+?cpRAw=!ymAU@(r9cnzfo>9>9E1V8C;pp93ea#mpO8K-`HTRBO~k8v2EJ!~7hjoHTy*F$|+ zf_EPy?#Sh1`xr+E?on7?oK@J@&F*HWuwTrv?3Q^Xt1)*6rNJE!_b9eMw+H(ycN{w~ zXEIxnGo0 zRo2bEFp{uoni>1X$(Ul1#3zi;wE+!$O$<(1>4y!N;6%!UxRXG2sFgePUVOB8xIHo@G+ z{ngaSg*AWCq@_E@%8dFG=IW-5YJ;2uBC_%y=9pw;9bxuA%z?Ep)$1(>jHO9zFqjjC}V%YM2rEI0R_desey~c5SjN^72 zN29;g6MwR>%9tWahKKUQoFxa0dG>uq~maUeWrE_Iyz|_+Y6!fw&W1FWX+cVEVM+htk#He~kb z7GsgfzQu?vM%l}Z*LPFhg@-TSZFH)ZqrJy{@SCd^vko6aZf*ppQ-emDZkFYg33*Aa zmh$x`DutZ)g(L*7ZkGB+Qj7N|X|5FTyR=wp(%T^tKQ0rw(tHzhsuF9MNxE9<>y=nj zqej5i47CxYMX`8rqD*)sNNxq+0b_MCnL!F6Td8PH#=|6Csc1$Q_H9Oo2fe2)#_}yj zM}S>5t5P542&dPjnuT~x&GA%dRq0P3FgiRB?@eZoJ0?FkP>VV}IQQ-OTa5eloH!tu zGNXMLUL&5=z7AOe;{Qr4f$ryy#wos%=Zn^2RKfK!BRvN3Y%r7qRUO7D;W0c*HND#H2aI@usJ)%l$hy;a5bwcp zWgRwMBcX_?cBX$hGVC3GTm$U;jii^ti~3wCma-u{X)In)vGmca9ro{QIH`ACy>&K% zvWuRk?9lclP;%4pz5SdLQf^5pdF&6v>&fZ-keY0AwpCn)2CEqMu~>Zga6z${ET?$6 zFAJV7PAE8hc)EDGH*Tfp<>8hu1&2u$FAw7S?+8v!NQ?wX$i&08W!gW6Vhp3-dnD{T z&R?tbyl5fo>S5Nsxh76;_U2j}%(}6~$d~p8vv7k_mij6ZnW@;NpQL3nY;%md-e8uA zD?SZpQN`R~7B6qQ*37C_u$6MIi^AV?`Qjc_Sb%$SPGcL)a;Ptcl^-xx>^D}Xp`nMX z1IDEXQPh``RO~w-A^nux4fpMPbDcqa&;tnS6k&X&G@cK1(4`j+pJOmfec8%GF0*8B zILpz2q}=vm7@}S&K;)HSMflF_29GPhpb*^L1%@_=1rDeD%3?U-K=(VWR`EHdi~6s$ zo7d$4h}Y>IR;#%rUON}T8fOq%07(AKAm}i!viGj!Ij#rWq!?B*OLGQ3yofEU6$g!# zZJeH5=6*Fb=CVb8c;G9hTU_=X9{Td!D9i%2afomgygzIh1(P8d@_xm18$uWclN_JN zzt#9W{*`%i7fe{zx=CSpr0#-OPj~nt1&`-~U z6&IqzgLx>@RE*PQ(&{q=#NrM2U$1vu{GWk;7WlWj`M3TBKLXa_U*%D@N_?K-ps&h5 zeKsg68TuWDssd&b8?Mb`YgVz@Vs7XJ11IhzSw3BPaKDUsyRi1|zkLCNxk}#6!`EY# z$ER|We3krD4~KY_=cnQ#kyCJGUixe){ZC(8@F)lWb{hY48Qv^I3$3PRaE#`RO~en9 zN^)iN320R0(#taZDh`Q061j#$CB-rtC0&g$P%H&{)bijrGi0nK=2FNSCLlKc6U3hE zpkjkaZn|q$8txRbxw5&662+dd`Ruvy`OMMhd=pmmBLDqn(iF3xu>X8ES5#2=>U<^< zK-t%#;xOe>OBkVw(WEOyJpw2e*c3R$W1K0)Jpkf?0~kvbKgx=FIOF#qa z6x%S;!n!LlT$HB7*Q{xf+)T$E*p$VRVu4hUEBQ!i6Cl`t1q@e`5-DBLp=W4_C~S%_ z=|LGGCoc|eu~*9ptxytS|1 z8D_DlViU5}63oP4;1HgW9L&vV+sE|qwM+NZ1QJBz? zkHoms6~}K+8Ihu~s>ep863z@Ve1~Tl3t9q-11+ELo}~JF76`p8drpDV*Zx+4W!Zd^ zNTA+29}U_$jx&$;Ajs_(frlPU+qW1W_7omOC-QDDs~p!r~rB4&B3z?xS;aq9{x z?r6QHkg*Ms_U45&VCijdTSzTP9BtU-So1=(ZMHWrJRMW$2+GUzttJM&KAadl>`{f5 zyaF_0xL9WuRD1DPrh>Ju{#H|jQz9dJ_n(l(zzfr_tWCE*y_5U&il-hWdQTqt)_Zx@ zKk}^4=UZFlTbt!uTjX2y`Bp=|Rhw@O$zO}&fl|~lVWm(_jUpP$7PTz&%*Sz~nFiAW z#*O^06#CK4Oe$FFd~CszdyqTbp;?cRFl|ggEGy+g@B0)v! zuNOg3a{H|!Cv-DsIqU^z4fF*3wMUWbiB<~3DE(^Ry<8CY;C0r$4Ws8u=7>OHENJLu(xg|HLIM*I%N9n@}dA^uN-z)PA?fEO7Xd zm#_Xlc}eUK;Kh$wtQ7iE>gYLpVR8^lJX}R$ai);o7yfvx?_#V4fAjz0@0r?ij)F@? zoy;5+c2pSxD!?`o6<^orueH^DYn%Bio3UkK^D)GE7kWa|8rUF$#yhOhArX3S3Ua{m zkfUXK=IzIPF%WkpWPC49x9T)IOULdTL$_S1ieyq9gd$T|xK z*W?KUUddf3Jo(dICNoQ4?D2A+(I)FAN$9}Ljpu$5KOZ+_{0fiZIVF3~UAr&x{pj$I z(uh~mrkX3iyCIVLwQid&`RA(DYY*NQ_a5=yp3|b&rY=1oobu^u;llDeg7v#aJ^>TI zk%-#9oLTiyWFq@dI5Vr82b->VowT#DbT4kC-KWzUPd0H&z_ID4O#A`rSfl zk9{5uLTBa7UHA>Yp!!lmufF5w3YqnSXK<6~9s|eaylaz+v~6D;kiGZ^q0U)7N5Br` zN+wR9bKuA+q2uD8p5FSf^sM(*UAZHV=sGxM)YSKuEL*ikaQKpsO8s1m_8sGT^&6Br zX14Xz4N>H}Q}?pvaWD5DGJN!ux5|IM!OqD;qUO#kT4Gzb|-KAr`~E*y?fm}7KLtX$@aEkIO7B3;pkbpIe6VT9pGxy1(-Hx8EbqKpoD>?>aPf%(R(rW#@0+b>Q}$Kkh$l z+^T)2xL*CIOq-GQ)+|%boVj@g@60cH_r3QQ|I@l``I>bbHtoIrFx1mW-KbT&jJI-AmJs}E!%eN+P!!GfkTInd~wY2Rn^zueEZ`y=bt*6kAH*b3@yW7OnA9>QvcTm z4Nn_4HGAIjGW&+DdyiBxk;*?XC|Iox(HojHYw>)mHeuoIJ4D5Flc$ZHJZZF?JphDG!n_{Q+GsdJVrUsbwp{pQ^Vj~qXB z=4?PhpNui%CrzF4=B(^F?<}&eSW~`nlaC;@Rr{FOS@S;l=;P0h-T3v-Mj}riRj}rT z@E2o8W=xtn%bYjwgJml|T3z*HXlJ+qYDF_T^V+&;M}w z>MwWxREebl>KU`L^WQ0a_k)#X_U(H=JL>rQ9BZd2{@_EDsr8?1-MQz}Ih}k08fczt z+`Q!r?IJtA)D6Wm`L)4sj2M+Ue)9A;-=3X2uW(`A@SlDD<%v_@p8MgaYd3%W{eI0$ zBB|p4=Mf0;2>C7qfozww;HLRh>HXgQvu^{NNYgUbucQ z*k98sJg#RF%JY~>Z{-xP*n8;s=}Xsc|8d_#APx>`)cpBu+4epA!F2AYpRcQ=UjEHn z$G`mg;D3zAYumJS$BC~mU%M6T;iZ4RSD$|4Cz)oyyJ#`#%Ij^mFLmpl{3=RLQSs8{Yu0W#@Y(0b&YZpQ_EqcJN5*vN)-!of!J>6rzrS$xkNe(jhGFgQ^qht7e|F^JPruyMFqxO1N)ys7 zv=u^j?>A`Jh>?@08H=oIoWI`pj?WxBe&Xb*(`UYEd>bsjEyJR_B=k;#(x=bJS$pu( z!(f5jPurw5oGXep9;`9tAD z8Z~MDeCx1w9b)79rDcwrh&N-JJr`DrCo9%xm;ZQ4h6={tDj#2Ig* zfG>D&*$Ug*^36MU@B94N$p+0^w~y(Z*ekaPwzg#LkuR&hJ%8!vTfg1+XCe<}K#=yi z7A+Hc4R~XCdgjC_vjc*kYuch^Oy9x7$4oY_+JETu`5U+X@b{4U8oInOV&vF2XPFmS zKl|dBU+)FT{W`^BfpYeTyZ0YF{Q0qKH;`{1Z$HS8-We>-+RfX3R5#SNkB;rpH~IA; z!_&r2n4FzkU|GDpq;%cpQ)dFxGGLRyK@(RzIi)X(5!WM?8vc` zrW$h!3X82MvkMk3 z{$Savl2Yi!)n9H^KkydIyiv0>X?gnlOV{uGQKJ#cyj0rf!y`KPeKjrf?ZWq$tys5d z*Pi_cKmP_Q)UZjLj$L~vAto54S>^@reOOj;@T>FJoPUU!XFzasv%puCE$Wp#=nb=1 zuff}P?)~)e=T)c9RsRlAD*RPCJm%nGBgTxM{!ZcI57;{Pz(c6;X`40cevU_E$Jo4g zKKv-#<1N$53zzQKcs0-%An2%$=8B7#u1XZXOO|ci?CYuU_6ux4WubMu4$&{=UuwuJ z0jC2|9buCv6qan-UU}l;&%bNL4fT;RFU3F2My+JA?14_`+T-mx z`S%_)Rzj-~e^|TDU3$j?*eF6SWnnw+QMV?o@d~?O#gN_sD zez~WGy2!jyg*9sz(>Xq&AEY$-P18GzO7JQ#J^rZ`xY%>F38_e9m3E_0UT!R|Wg&{bLY(` zJ=waWV(*uyE?&9j%|yxud=)knMKr@pr4EgQAhPG?FD&0DoRe$0BXowaFa{`M-U7fm z=10(0m?H#43Xe4gBnb=1^&0QGFKi`(OCWlM?xl;0$u*95?GRlh*Iv<417L{wiWo3O z{0qT5;@botiGL&5CB8?nM{-{UI41c+0=Om-c>vTNoM(i`%j6p5aVH#*;jxfhb3HyJ z_}IfjeEU3(k?W>(m;xa2+!F$5;3;hf2=yFDLH^-6iSAwS>=+2R>sd^$7BU|S*-^HZ zT$wU1y;-sfaxIm8LBQm<2)ZbaQtAzrTx9K)Tne3(Un=1_ly{{muaYZU$))ff?`c&s zZ+JHI=J;Oq=J>%u&YlK zY*e2m*sQ)luw8wLphA6>V4wOr!9n#cf=cxrf}`rY1jp462u`X69RR1*5`wd88Nmg$ zlHiiskKn3WMQ~l+kl>bDM{q~oh~TceDZvAED1kuJnn0pyOCZxk5GXa#1b&*%1S(A| zK|@VEfliZ1&`9$NK~qfqR%nhA*fhrpN;M}5?3&XA8#QMM zHft^rY}Z^OsL)&`*r&Npa8PrLpi*;(;Hc&w z5nR=%2(D`y65P`02<~Va5!}@@C3v6-B@k#^6G*ge31r#`0;M*Zz)#zmK&6c(XsC@R z&}kD18fjl4XsS&j2-OZCXssPc&{jK?AVQl$5Uouk=&a2kh}DiIh}TXeNYqXxcttyt zAW3T^7@*B27^pQ94Atfnq-ZS!Y1#z@8QMhzW3@{NCTf=wOx3O+n5nf97`3GY*;+e+ zS-X)SU%Q#WqTNogKwCkuNV|_oAx+CsrDp+U3;2fqxLMpX6*%n z?b=HO722x=`?S{y4r*@^RBG=K9M#?>IIev_a8fIX0-V-L2+nF{1Q)bQf=gOIf~#5; z!F6pzf?HZ0!5wWQg1g$L1P`>K1Oi=a0*S6IflL=cpwvYZ_~|+msC2Oe4R!GZI$a_` zBi$oyYP z>oyZublV9Q=qd;n>GlyU(H$gMs;eYep*u=o(;X)$)tw};>rNAF)SV^Rth+$4U3ZC~ zLU)y5pYA%rLESBaO5GiTqq@5U$8`?~PU-~FfYUk&!C9S*;DSy`a7pJ!a8;)wxUOqR za7(8nxT9-Ca97uq;DIibKoHWJKoZiHKo$}~pbUuy{LwXf@k?-}Mt`OPOpLCe$~!BX zt9^@jct4t}%FCk@seP6lGl0MnbB-8nJgkj5MJ{c}*v^379g_$ac1$JsxZ^^)_bm^? zPMoU+57RnvQNPuRi)?YH$;7aZ_x!liJaT=`yN-7%B-j4VOa4#E<`>dr6ozpute_+* z)JzD>ZX#?&pn~nB+tj&l-<(d{X0GqEFtv-E7~))-e{zE;6)}*cZY07KGA}9&g-pE= zx+$~>E0QiUNCu$|)9iiTbM@nS-t&CtocG<}8zPST(YQa6@WogLbzD>f2C)U?3O`UF zl~)9yG?9=)s1Dr8Cmo|)2sb-A+8Y=G)9X9FYV(PF|^ zGv}^Zcq%~)PvwQ>7v9e%E!^w3mNlsN7H-}BJZ_{hpK}8e!})BUDd3ieCAJDUkY@c> zNbyXo%vt|Hxux=1|3XEr+d#OG;~BORoGj1A0mbI9qh{mdj!Dc*{FK8&N3|3KQDD+M?{o!3tp8kpcZ>!3UEmzSMcs8iE2jF z?0Zy6OKN>{K0=#svx>0cYrH}@piKYH-XPOUu>z)>?gIypAQ`N7XsJ)&w;1)cg(gBPIk<+P_4g{K>tJ1#b$gLn}$$QE7h_?DS#qXu~hC52WCPXm<`S0Da&CF NtcE#|+e?2h{11xGAVdHF literal 0 HcmV?d00001 diff --git a/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/TemplateInfo.plist index 04d3278..8fd5de3 100644 --- a/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/TemplateInfo.plist @@ -14,6 +14,8 @@ make/merlin-asm make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -78,6 +80,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -173,6 +189,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/___PACKAGENAME___.xcscheme b/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/___PACKAGENAME___.xcscheme index 09443c4..a89e25e 100644 --- a/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/___PACKAGENAME___.xcscheme +++ b/pkg/Templates/Apple IIgs/Merlin Classic Desk Accessory.xctemplate/___PACKAGENAME___.xcscheme @@ -61,7 +61,7 @@ isEnabled = "YES"> make/merlin-asm make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -84,6 +86,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -179,6 +195,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/Merlin Desktop Application.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/Merlin Desktop Application.xctemplate/TemplateInfo.plist index 9dd0fb0..8cc46e7 100644 --- a/pkg/Templates/Apple IIgs/Merlin Desktop Application.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/Merlin Desktop Application.xctemplate/TemplateInfo.plist @@ -15,6 +15,8 @@ make/merlin-asm make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -84,6 +86,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -197,6 +213,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/Merlin New Desk Accessory.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/Merlin New Desk Accessory.xctemplate/TemplateInfo.plist index 19a25a2..fae1be2 100644 --- a/pkg/Templates/Apple IIgs/Merlin New Desk Accessory.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/Merlin New Desk Accessory.xctemplate/TemplateInfo.plist @@ -15,6 +15,8 @@ make/merlin-asm make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -84,6 +86,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -179,6 +195,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/ORCAC Classic Desk Accessory.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAC Classic Desk Accessory.xctemplate/TemplateInfo.plist index 7b97bbb..8e3e941 100644 --- a/pkg/Templates/Apple IIgs/ORCAC Classic Desk Accessory.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAC Classic Desk Accessory.xctemplate/TemplateInfo.plist @@ -14,6 +14,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -80,6 +82,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -175,6 +191,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/TemplateInfo.plist index 05961a2..dd8efc8 100644 --- a/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/TemplateInfo.plist @@ -16,6 +16,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -92,6 +94,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -187,6 +203,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/ORCAC Desktop Application.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAC Desktop Application.xctemplate/TemplateInfo.plist index 0dc9bc3..6d0320f 100644 --- a/pkg/Templates/Apple IIgs/ORCAC Desktop Application.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAC Desktop Application.xctemplate/TemplateInfo.plist @@ -16,6 +16,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -92,6 +94,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -217,6 +233,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/ORCAC New Desk Accessory.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAC New Desk Accessory.xctemplate/TemplateInfo.plist index 9bf27a1..e6ccbc6 100644 --- a/pkg/Templates/Apple IIgs/ORCAC New Desk Accessory.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAC New Desk Accessory.xctemplate/TemplateInfo.plist @@ -16,6 +16,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -92,6 +94,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -186,6 +202,19 @@ PRODUCT_NAME ___PACKAGENAME___.2mg + + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + ProductType diff --git a/pkg/Templates/Apple IIgs/ORCAM Classic Desk Accessory.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAM Classic Desk Accessory.xctemplate/TemplateInfo.plist index 0e7238e..281e68e 100644 --- a/pkg/Templates/Apple IIgs/ORCAM Classic Desk Accessory.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAM Classic Desk Accessory.xctemplate/TemplateInfo.plist @@ -14,6 +14,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -80,6 +82,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -174,6 +190,19 @@ PRODUCT_NAME ___PACKAGENAME___.2mg + + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + ProductType diff --git a/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist index 871595a..675bd96 100644 --- a/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist @@ -15,6 +15,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -86,6 +88,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -181,6 +197,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/ORCAM Desktop Application.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAM Desktop Application.xctemplate/TemplateInfo.plist index b07af23..3159744 100644 --- a/pkg/Templates/Apple IIgs/ORCAM Desktop Application.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAM Desktop Application.xctemplate/TemplateInfo.plist @@ -15,6 +15,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -86,6 +88,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -199,6 +215,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool diff --git a/pkg/Templates/Apple IIgs/ORCAM New Desk Accessory.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAM New Desk Accessory.xctemplate/TemplateInfo.plist index 6df17ad..d57dc54 100644 --- a/pkg/Templates/Apple IIgs/ORCAM New Desk Accessory.xctemplate/TemplateInfo.plist +++ b/pkg/Templates/Apple IIgs/ORCAM New Desk Accessory.xctemplate/TemplateInfo.plist @@ -15,6 +15,8 @@ make/orca-cc make/orca-rez make/system601.2mg + make/empty.2mg + make/tar make/tail.mk ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme @@ -86,6 +88,20 @@ Path make/system601.2mg + make/empty.2mg + + Group + make + Path + make/empty.2mg + + make/tar + + Group + make + Path + make/tar + make/tail.mk Group @@ -181,6 +197,19 @@ ___PACKAGENAME___.2mg + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + Archive + SharedSettings + + PRODUCT_NAME + ___PACKAGENAME___.shk + + ProductType com.apple.product-type.tool