Compare commits

...

61 Commits
1.0 ... master

Author SHA1 Message Date
Jeremy Rand a9b2375f99 Fix link scripts for some Merlin templates 2023-09-17 23:47:02 -04:00
Jeremy Rand b0e4b22a14 Clean up the indenting in plist files 2023-09-17 22:20:59 -04:00
Jeremy Rand b108be5698 Update the README 2023-02-09 22:35:46 -05:00
Jeremy Rand e915c0ebbc Fix submake so that parallel make will work 2023-02-09 22:32:09 -05:00
Jeremy Rand f4892bee0d Update the README with information about my testing under MacOS 11 2021-07-06 23:46:40 -04:00
Jeremy Rand ac3c7ee1e2 Update the readme to describe the Golden Gate requirement for markdown support 2021-07-06 17:40:33 -04:00
Jeremy Rand a65bd7f8f7 Change the way the package installs so it now installs into /tmp and copies into the user's home directory. Apple does not seem to support forcing a package to be installed into a user's home directory any longer. 2021-07-06 00:04:52 -04:00
Jeremy Rand 2cd747e143 Hide the v3.0 release for now because package install isn't working because it is installing at the system level and not the user's home directory. 2021-07-05 23:37:51 -04:00
Jeremy Rand 27114d16be Final commit for v3.0 2021-07-05 23:14:57 -04:00
Jeremy Rand d55f6fe348 Add the ability to write documentation in markdown and have that translated to a Teach file at build time and included in the distribution. 2021-07-05 17:37:31 -04:00
Jeremy Rand e444c7c039 Default to 2x speed in mame 2021-05-07 00:10:31 -04:00
Jeremy Rand ff012625a9 Do not assume in head.mk that the root makefile is called Makefile 2021-05-06 23:25:52 -04:00
Jeremy Rand d91cdd32c0 Provide better error messages from createDiskImage. Check for valid ProDOS filenames. General cleanup of the script. 2021-05-06 23:12:03 -04:00
Jeremy Rand 7d3a33e34c 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. 2021-04-13 00:04:59 -04:00
Jeremy Rand b6527a190e Add args on Linux to preserve the resource fork when copying files to the disk image. Update the readme 2020-11-30 00:31:21 -05:00
Jeremy Rand 2898704073 Add some code to better detect errors from the ORCA assembler and feed those into Xcode 2020-11-29 23:53:25 -05:00
Jeremy Rand 83420e3860 A different take on fixing the problem with relative OBJDIR and some fixes for spaces in the path to the project 2020-11-26 18:05:34 -05:00
Jeremy Rand dd691f7802 Force OBJDIR, GENDIR and TARGETDIR to all be absolute paths at the start of tail.mk. This fixes a link problem that can happen if OBJDIR is set to a relative path. 2020-11-26 17:40:39 -05:00
Jeremy Rand f8334194f4 Make the Xcode fix stuff conditional on being on a Darwin (ie MacOS) platform and this time, use the right syntax for shell tests. 2020-11-26 16:58:14 -05:00
Jeremy Rand 91e3749ebd Make the Xcode fix stuff conditional on being on a Darwin (ie MacOS) platform. 2020-11-23 00:09:56 -05:00
Jeremy Rand 782ce00f3f Merge branch 'master' of https://github.com/jeremysrand/Apple2GSBuildPipeline 2020-11-23 00:00:42 -05:00
Jeremy Rand 7cc737bca8 Fix the args to the linker, removing the double hyphens on the keep argument 2020-11-22 23:59:46 -05:00
Jeremy Rand 056ba54e34
Update README.md
Add a solution to the make full disk access problem.
2020-10-04 20:41:42 -04:00
Jeremy Rand 6f8655a349
Update README.md 2019-08-07 22:36:53 -04:00
Jeremy Rand bb76e8eb61 Do link from the object directory and provide relative paths to the objects. Seems like the linker does not like the long pathnames. 2019-08-07 22:25:17 -04:00
Jeremy Rand e5bbf48167
Update README.md 2019-08-03 00:40:46 -04:00
Jeremy Rand ad8862e2e2 Fix build problems with generated files. 2019-07-21 00:28:39 -05:00
Jeremy Rand 5ab9363d2a
Update README.md 2019-07-19 15:17:33 -05:00
Jeremy Rand ffabbac463 Add the Merlin syntax information 2019-07-19 15:16:43 -05:00
Jeremy Rand 4a4314525a
Update README.md 2019-07-19 14:43:44 -05:00
Jeremy Rand 2e2c367627
Update README.md 2019-07-19 14:13:06 -05:00
Jeremy Rand aca6cfe968 Add products for the binary and the disk image to the project templates. Update copyrights for the desktop projects. 2019-07-19 11:46:51 -05:00
Jeremy Rand 5af0aa7f5c Add merlin file templates. Handle errors in merlin source better. 2019-07-19 10:51:55 -05:00
Jeremy Rand 61d28aadac Add a NDA and desktop target for the Merlin assembler 2019-07-17 23:11:44 -05:00
Jeremy Rand 05f3fc3f65 Add a CDEV target for the Merlin assembler 2019-07-17 20:33:08 -05:00
Jeremy Rand 5fec9448c5 Add a CDA target for the Merlin assembler 2019-07-17 19:42:12 -05:00
Jeremy Rand 6dbfdabb6e Send build products to the correct Xcode locations which works better with the new build system in Xcode 2019-07-15 00:28:25 -04:00
Jeremy Rand 71dc80ea67 Add support for message center in the C desktop template 2019-07-11 20:28:12 -04:00
Jeremy Rand 9f70c68ddf Add an option during project creation for the desktop targets to select 640 or 320 mode. Major re-write of the C desktop project to be more complete with support for reading and writing to files, managing a set of document windows and printing support. 2019-06-12 00:02:17 -04:00
Jeremy Rand 3c5a978718 Update the ORCA/C desktop template to have more error checking. 2018-09-08 23:03:11 -04:00
Jeremy Rand 222afbf9d6 Update the System 6 disk image to include some missing fonts and tools from a full OS install. 2018-08-17 22:25:42 -04:00
Jeremy Rand 748e082c6c Set the aux type for desktop applications correctly. Add an rVersion to all projects with resources. Include a copyright string in the about window in the desktop templates. Use lined titlebars on windows in the desktop template. 2018-08-16 22:37:33 -04:00
Jeremy Rand 541bc6d90f Rework the Xcode compatibility fix to match what I did in the 8bit build engine 2018-08-09 23:30:24 -04:00
Jeremy Rand abac56b31b Do not fail builds if updating Xcode compatibility does not work for some reason. 2018-08-08 23:59:17 -04:00
Jeremy Rand bce9f4343d Add support for rlint to optionally check resources during the build. 2018-08-08 23:54:36 -04:00
Jeremy Rand 503671561a Add a project template for desktop applications in ORCA/M. Tweak build settings to avoid errors from the extended type. Fix the header file guards in all header file templates. Clean up the ORCA/C desktop application template to not depend on the ORCA library to start tools. General cleanup of the ORCA/C and ORCA/M NDA project template. 2018-08-06 00:23:01 -04:00
Jeremy Rand 844bb6fe44 Clean up the ORCA/C cdev template. Add an ORCA/M cdev template. 2018-08-03 00:26:04 -04:00
Jeremy Rand 6b56c7d818 Clean up the ORCA/C NDA template code. Add a ORCA/M NDA template. Add instructions on how to add gen rules, pointing out the trick for inserting tab characters in Xcode. Add GSBug and a couple other debug tools to the System 6 template image to make it easier to figure out what is wrong. 2018-08-02 23:28:17 -04:00
Jeremy Rand 684f1efb71 Clean up the ORCA/C NDA template. Add retries to the unmount step in creating the disk image because sometimes the disk is still busy. 2018-07-27 23:29:49 -04:00
Jeremy Rand 0aeb8ac646 Add a template for a CDA in ORCA/M. Rename the project template names to be more consistent. 2018-07-24 23:39:21 -04:00
Jeremy Rand f4e4ce7ad2 Merge branch 'master' of https://github.com/jeremysrand/Apple2GSBuildPipeline 2018-07-20 20:23:28 -05:00
Jeremy Rand d887b5d054 Fix up the pre and post install scripts 2018-07-20 20:23:12 -05:00
Jeremy Rand f695a586ff
Add info about error handling improvements 2018-07-19 09:33:20 -05:00
Jeremy Rand 9cbfcab099
Update README.md
Update link to the latest version.
2018-07-17 23:21:25 -05:00
Jeremy Rand b883e09a18 Detect errors returned by the C compiler or the resource compiler and make them visible in Xcode. 2018-07-17 23:16:42 -05:00
Jeremy Rand 2c37fcd120 Add a license file 2018-06-21 23:48:03 -04:00
Jeremy Rand a09314742d Remove unused AC setting
Remove reference to AppleCommander which is not used by this build engine.
2018-06-19 23:07:27 -04:00
Jeremy Rand 225c268dd1 Update the package version number. Fix the include file guards from the C file template. 2018-06-12 23:30:16 -04:00
Jeremy Rand 23e0bef398 Workaround the xcode plugin compatibility problem 2018-06-09 22:50:02 -04:00
Jeremy Rand 98c66ba617 Workaround the xcode plugin compatibility problem 2018-06-09 22:41:41 -04:00
Jeremy Rand 878308965f Add support for Xcode 9 in the plugin 2017-09-13 19:11:41 -04:00
106 changed files with 9183 additions and 910 deletions

BIN
.DS_Store vendored

Binary file not shown.

1
.gitignore vendored
View File

@ -1 +1,2 @@
*.lst
.*.sw?

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2018 Jeremy Rand
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,6 +1,6 @@
#
# Makefile
# Apple //GS Build Engine for ORCA
# Apple //GS Build Engine for ORCA and Merlin
#
include make/head.mk
@ -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+=
@ -43,6 +59,13 @@ CFLAGS+=
# Add any arguments you want passed to the resource compiler to this variable:
REZFLAGS+=
# Uncomment the following line if you have installed rlint as found here:
# https://github.com/ksherlock/rlint/releases
# Assuming that it is in the path that ORCA searches (the Utilities directory is
# probably a good choice), you can just leave the value unchanged. If you have
# put the rlint somewhere weird, you can set this to the correct path
# RLINT_PATH=rlint
# Add any arguments you want passed to the macro generator to this variable:
MACGENFLAGS+=
@ -58,7 +81,14 @@ 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
# Add any markdown files to the MD_SRCS variable to specify which files to
# convert to a Teach text file format during the build. Using this, you can
# write your documentation in markdown in your project and at build time,
# that documentation is converted to a format that is good to package with
# your software and can be opened on a GS.
MD_SRCS=
# 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
@ -66,27 +96,84 @@ 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 -speed 2 -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
# target types ignore this value.
# DESKTOP_RES_MODE=640
# For a desktop application, it can support opening and printing
# files based on paths sent to it by the message center. This
# option controls if that is or is not supported in the
# application (note: only the C desktop template supports message
# center today)
# MESSAGE_CENTER=0
# Add any rules you want to execute before any compiles or assembly
# commands are called here, if any. You can generate .c, .s or .h
# files for example. You can generate data files. Whatever you
# might need.
# might need. You should generate these files in the $(GENDIR)
# directory or within a subdirectory under $(GENDIR) which you create
# yourself.
#
# All of your commands associated with a rule _must_ start with a tab
# character. Xcode makes it a bit tough to type a tab character by
# default. Press option-tab within Xcode to insert a tab character.
gen:
# For any files you generated in the gen target above, you should

168
Makefile.merlin Normal file
View File

@ -0,0 +1,168 @@
#
# Makefile
# Apple //GS Build Engine for ORCA and Merlin
#
include make/head.mk
# Customize this file to control what kind of project you are working on,
# where to find files, etc.
# The name of your system or binary file to build goes here:
PGM=___PACKAGENAME___
# This tells the build engine that your assembler is Merlin. You should
# not change this (afterall, are you going to change all of your assembly
# to ORCA/M also?)
ASSEMBLER=merlin
# Set the target type you would like to build. The options are:
# shell - A shell command for ORCA, GNO or other GS shell
# desktop - A full desktop application
# cda - A classic desk accessory
# cdev - A control panel device
# nba - A HyperStudio new button action
# nda - A new desk accessory
# xcmd - A HyperCard XCMD or XCFN
#
# TARGETTYPE=shell
# TARGETTYPE=desktop
# TARGETTYPE=cda
# TARGETTYPE=cdev
# TARGETTYPE=nba
# 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
# see what files it should consider important to deciding whether to do
# a re-build.
# SRCDIRS+=
# Add any arguments you want passed to the resource compiler to this variable:
REZFLAGS+=
# Uncomment the following line if you have installed rlint as found here:
# https://github.com/ksherlock/rlint/releases
# Assuming that it is in the path that ORCA searches (the Utilities directory is
# probably a good choice), you can just leave the value unchanged. If you have
# put the rlint somewhere weird, you can set this to the correct path
# RLINT_PATH=rlint
# Add any markdown files to the MD_SRCS variable to specify which files to
# convert to a Teach text file format during the build. Using this, you can
# write your documentation in markdown in your project and at build time,
# that documentation is converted to a format that is good to package with
# your software and can be opened on a GS.
MD_SRCS=
# 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
# the same path from the source.
#
# 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.
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 -speed 2 -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
# target types ignore this value.
# DESKTOP_RES_MODE=640
# For a desktop application, it can support opening and printing
# files based on paths sent to it by the message center. This
# option controls if that is or is not supported in the
# application (note: only the C desktop template supports message
# center today)
# MESSAGE_CENTER=0
# Add any rules you want to execute before any compiles or assembly
# commands are called here, if any. You can generate .c, .s or .h
# files for example. You can generate data files. Whatever you
# might need.
#
# All of your commands associated with a rule _must_ start with a tab
# character. Xcode makes it a bit tough to type a tab character by
# default. Press option-tab within Xcode to insert a tab character.
gen:
# For any files you generated in the gen target above, you should
# add rules in genclean to remove those generated files when you
# clean your build.
genclean:
# Do not change anything else below here...
include make/tail.mk

View File

@ -6,24 +6,35 @@ A build pipeline for making Apple IIgs software on macOS.
Features:
---------
This project was built using a similar approach as the one I created for [8-bit Apple //'s](https://github.com/jeremysrand/Apple2BuildPipeline). I used cc65 in the 8-bit tools but this build environment uses the [ORCA languages](https://juiced.gs/store/opus-ii-software/) and [Golden Gate](http://golden-gate.ksherlock.com) from Kelvin Sherlock.
This project was built using a similar approach as the one I created for [8-bit Apple //'s](https://github.com/jeremysrand/Apple2BuildPipeline). I used cc65 in the 8-bit tools but this build environment uses the [ORCA languages](https://juiced.gs/store/opus-ii-software/) and [Golden Gate](http://golden-gate.ksherlock.com) from Kelvin Sherlock. You can also use [Merlin32](https://www.brutaldeluxe.fr/products/crossdevtools/merlin/) from Brutal Deluxe. Note that you still need ORCA and GoldenGate for Merlin targets because of how disk images are created in the build and the ORCA resource compiler is used for Merlin targets.
Features of this build environment include:
* Attempts to hide all of the infrastructure which you don't need to modify in a make directory.
* Supports linking together multiple C and assembly files. To add a new file to the project, just create a new *.c or *.s file in the project directory.
* Supports linking together multiple ORCA/C and ORCA/M assembly files. To add a new file to the project, just create a new *.c or *.s file in the project directory.
* Supports a single resource file in your project. Any files included in your resource files are detected in the build and if you change the header, the resource file will rebuild automatically.
* Supports putting your source files in multiple directories. Just make sure to add those directories to the SRCDIRS variable in the root Makefile. Once you add the source directory to the build, any source files in that directory will automatically be built and linked into your executable.
* If you change a header file, the right source files will rebuild automatically. Header file dependencies are generated during the build.
* If you change a macro file used by one or more assembly source files, the right files will be re-assembled automatically. Assembly file dependencies are generated during the build.
* Supports project types like ORCA or GNO shell executable, GUI executable, new desk accessory, classic desk accessory and control panel. In Xcode, when you create a project, you will see options for each of these project types. Select one and you will have a skeleton project which includes enough code to give you a basic "hello world" style application of that type.
* For shell targets, when you build and run, the shell command is executed right in Xcode itself using Golden Gate. You can edit your run scheme configuration in Xcode to customize the arguments passed to your shell command.
* Creates a bootable disk image with your executable as part of the build for non-shell targets. If your target is a CDA, NDA or CDev, the executable is copied to the appropriate place in the System folder. For a desktop application, the executable is in the root of the bootable disk image.
* Automatically launches an Apple //gs emulator when you select build and run so you can go from coding to testing your latest build as quickly as possible.
* Creates a bootable disk image from a template as part of the build for non-shell targets. If your target is a CDA, NDA or CDev, the executable is copied to the appropriate place in the System folder.
* Creates a distribution disk image with your build products on it. Also, it creates a ShrinkIt archive of your distribution as part of the build.
* Automatically launches an Apple //gs emulator when you select build and run so you can go from coding to testing your latest build as quickly as possible. GSPort, GSPlus and mame are the supported emulators. It boots to the bootable disk image created and the distribution disk image is open in the Finder when the emulatoed machine boots.
* Write documenation for your project in markdown in Xcode and commit the markdown files into git. At build time, these markdown files can be optionally converted to a Teach text file format and copied into your distribution. That way, you can write your documentation in a form that is easy to manage on the "modern" side and have that converted to something usable on a GS.
* C source and header files (including ORCA system includes) are indexed by Xcode. By doing this, code completion and other features of Xcode should work. That means, if you are coding in C and type "NewW", Xcode will suggest the toolbox calls NewWindow() and NewWindow2(). Select the one you want and Xcode fills it in, including the arguments that the toolbox call expects.
* There is an optional code generation phase in the build. If you want to write some scripts which generate C source files, C header files or assembly files which are then compiled/assembled in later phases of the build, this would let you do exactly that.
* You can copy a directory of files onto the disk image beyond just the executable. This is useful if you have other files you need to generate and/or distribute in your project.
* Syntax highlighting and better editor support for ORCA/M assembly and resource files. Keywords are completed and highlighted. Indentation between start/end and data/end tokens for assembly and inside braces for resource files should be automatic.
* Syntax highlighting and better editor support for ORCA/M assembly, Merlin assembly and resource files. Keywords are completed and highlighted. Indentation between start/end and data/end tokens for assembly and inside braces for resource files should be automatic.
* Errors returned by the ORCA/C compiler, the ORCA/M assembler, the resource compiler and the Merlin assembler are now understood by Xcode. The error will be visible in the editor itself and Xcode will jump to the line reported by the compiler to contain the error.
MacOS Versions:
----------------
I have tested these build tools under MacOS 11 (Big Sur) and things do seem to work for me. However, most of my development is still done under MacOS 10.15 so it could be that there are some unknown issues on the latest OS. I plan to update my main machine to MacOS 11 soon so hopefully I will find any remaining issues then. In the meantime, if you are trying to use these tools on MacOS 11 right now and are having problems, please contact me and I will try to help.
And when it comes to Apple silicon, I have no specific plans right now to purchase new hardware so I cannot do any testing. However, there are no binaries in this package itself since it is just makefiles, scripts and Xcode configuration files. Assuming that Golden Gate and Fuse work on Apple silicon, I don't expect any specific issues with these scripts when run on Apple silicon. But again, I have no ability to test that right now so I cannot make any guarantees.
MacOS Installation:
@ -32,11 +43,12 @@ MacOS Installation:
In order to use this infrastructure from macOS, follow these instructions:
1. Install [Xcode from Apple](https://itunes.apple.com/us/app/xcode/id497799835?mt=12&uo=4). Xcode is generally the most popular app in the Mac App Store in the "Developer Tools" category. Xcode is free and you do not need to be a registered Apple developer to download and use it, especially if you are building Apple II programs.
2. You need to have Orca/C or Orca/M. If you have purchased these development tools for the Apple IIgs in the past, you should be able to use what you have. If you don't have access to these tools, Juiced.GS sells all of the tools as [Opus II: The Software](https://juiced.gs/store/opus-ii-software/) from their store for a reasonable price.
3. You also need [Golden Gate](https://juiced.gs/store/golden-gate/) which is also available for a reasonable price from the Juiced.GS store. Golden Gate allows the Orca tools to execute from a modern Mac (or Windows and Linux system also). Follow the installation instructions for Golden Gate.
4. Install [FUSE for macOS](https://osxfuse.github.io). FUSE is required for ProFuse which you will install next. At the moment, v3.6.3 is the latest and works well in my testing.
3. You also need [Golden Gate](https://juiced.gs/store/golden-gate/) which is also available for a reasonable price from the Juiced.GS store. Golden Gate allows the Orca tools to execute from a modern Mac (or Windows and Linux system also). Follow the installation instructions for Golden Gate. If you want to convert markdown files to Teach files, you need a version of Golden Gate greater than 2.0.5. There is a beta build called "rwrez-1" which has the necessary support at this time. A future version of Golden Gate should have this functionality built-in but for now, this beta version is required for markdown to Teach conversion.
4. Install [FUSE for macOS](https://osxfuse.github.io). FUSE is required for ProFuse which you will install next.
5. Install ProFUSE. It is distributed with Golden Gate. When you purchase Golden Gate, you should be given access to a GitLab repository. Among the projects there is ProFUSE which allows your Mac to mount ProDOS volumes. This is used by the build environment to create the bootable disk images.
5. Install the [Apple IIgs project template](https://github.com/jeremysrand/Apple2GSBuildPipeline/releases/download/1.0/Apple2GSXcodeTemplate.pkg). Note that the next time you launch Xcode, you will be asked whether to load the OrcaM.ideplugin. This is part of the project template and will provide better syntax highlighting for assembly and resource files. Select the "Load Bundle" option in the dialog that Xcode shows you.
6. Install and setup the [GSPlus](https://apple2.gs/plus/) emulator or the [GSPort](http://gsport.sourceforge.net) emulator. Either should work. No matter which you choose, make sure you put a copy of your Apple //gs' ROM into a file called ~/Library/GSPort/ROM (where ~ represents your user's home directory). Unfortunately, the Finder by default hides the Library folder from you so the easiest way to accomplish this is probably from the Terminal.
5. Install the [Apple IIgs project template](https://github.com/jeremysrand/Apple2GSBuildPipeline/releases/download/3.0.1/Apple2GSXcodeTemplate.pkg). Note that the next time you launch Xcode, you will be asked whether to load the OrcaM.ideplugin. This is part of the project template and will provide better syntax highlighting for assembly and resource files. Select the "Load Bundle" option in the dialog that Xcode shows you.
6. Install and setup the [GSPlus](https://apple2.gs/plus/) emulator, the [GSPort](http://gsport.sourceforge.net) emulator and or the mame emulator which is easiest to install using [Ample](https://github.com/ksherlock/ample). Each emulator should work. No matter which you choose, make sure you put a copy of your Apple //gs' ROM into a file called ~/Library/GSPort/ROM (where ~ represents your user's home directory). Unfortunately, the Finder by default hides the Library folder from you so the easiest way to accomplish this is probably from the Terminal.
7. If you plan to use Merlin32 based projects, install the [Merlin32 binaries and libraries](https://www.brutaldeluxe.fr/products/crossdevtools/merlin/). By default, the build system assumes you have installed the Merlin32 binary in /usr/local/bin and put the library macro files in /usr/local/lib/Merlin. If you installed them somewhere else, you can override these location in your projects. Note that in the distribution, the macro files in the library had CR/LF line endings and did not work until I converted them to have LF line endings.
Your First Project:
@ -52,23 +64,36 @@ Everything you need is now installed. To create a new Apple //gs project in Xco
7. Review the Makefile and set any options you want. The file has lots of comments to help you understand the configuration options.
8. Change main.c (or main.s if you created an assembly project) and write more code in new C or assembly files until you have the program you always wanted to build. To add new files, select File->New->File. In the dialog, you will see an Apple //gs option in the macOS section. Select that and in there, you will see options to create a new "C File", new "Assembly File" or new "Resource File". Select the one you want to add the file to your project. Put the new file in the same directory as Makefile. You can add assembly files in a C project or add C files in an assembly project. The only difference between them is the type of the default source file in the project template.
Common Problems:
----------------
There are some known issues which can crop up:
* If you are using APFS (the latest filesystem) on High Sierra, you may have a problem with resources. Make sure you have the latest version of Golden Gate. The latest version has fixed these issues.
* If you aren't seeing the "ORCA Assembly" or "ORCA Resources" options under Editor->Syntax Coloring, you may be having an Xcode compatibility problem. These syntax colouring files are provided as part of an Xcode plugin and plugins must advertize their compatibility. During install, the plugin is set to be compatible with the version of Xcode you have. If you upgrade Xcode, the plugin will be assumed to be incompatible and will not be loaded. To workaround this, we force the plugin to be marked as compatiable on every build of a Apple //gs target. So, you should do a build and then quit and re-launch Xcode. You should see a warning asking if you want to load the plugin and if you allow the plugin to load, you should see the ORCA syntax colouring options.
* If you get an error like "make: getcwd: Operation not permitted" when you do a build or build and run from Xcode, you may need to grant full disk access to make. Go to System Preferences, then Security & Privacy and then the Privacy tab. In there, you should see a section for "Full Disk Access". Click the lock button if necessary to authenticate. In a terminal, type "open /usr/bin". A Finder window should open and you can find the make executable in there. Drag and drop the make executable into the "Full Disk Access" section and ensure that the entry for it is selected to grant that access. That should fix the problem.
If these suggestions do not help or you are having some other problem, please contact me and I will try to help you out.
UNIX Installation:
------------------
This build infrastructure can be used in a non-Mac environment. The Makefile infrastructure should work on any UNIX-y platform. You will still need Golden Gate and the ORCA tools setup on your machine. Just add the Makefile and the contents of the make directory to your project. Modify the Makefile as appropriate and you should have a build environment which you can use with the make command.
That said, I haven't tested this on any other platform to show this is actually true.
Thanks to [xandark](https://github.com/xandark) who has done some testing of the build scripts under Linux. Thanks to that work and the issues raised, I have more confidence that these build scripts should work on non-MacOS platforms. Feel free to submit issues if you find problems.
Possible Future Improvements:
-----------------------------
* Support Hypercard XCMDs and Hyperstudio new button action project templates
* Provide assembly project templates for all project types. Today, I only provide an assembly project template for the shell target.
* Support Finder Extra project templates
* Support other ORCA languages like Pascal, Modula-2 or Basic.
* Allow multiple resource files and concatenate the resources together into the final executable.
* Add support for Merlin32 based assembly projects in Xcode. This is the other major cross compilation/assembly tool available today for Apple //gs coding.
Acknowledgements:
-----------------
Thanks to Mike Westerfield for the ORCA environment and languages and Kelvin Sherlock for Golden Gate which allows us to use those tools under modern systems making this build environment possible.
Thanks to Mike Westerfield for the ORCA environment and languages and Kelvin Sherlock for Golden Gate which allows us to use those tools under modern systems making this build environment possible. Thanks to Brutal Deluxe for Merlin32.

BIN
make/.DS_Store vendored

Binary file not shown.

View File

@ -6,7 +6,7 @@ s5d2 =
s6d1 =
s6d2 =
s7d1 = ../___PACKAGENAME___.2mg
s7d1 =
g_joystick_type = 0
g_limit_speed = 0

View File

@ -1,108 +1,252 @@
#!/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"
cleanupAndExit()
# 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
# this is Linux and ask for extended attributes to be preserved through the copy.
#
# Ultimately, it could be that other platforms (BSD, does Solaris still exist?) or even other Linux versions or
# distributions need different arguments for this rather special thing. If true, this may need to be a build time
# option which can be set.
if [ "`uname`" = Darwin ]
then
CPARGS=""
else
CPARGS="--preserve=xattr"
fi
printErrorAndExit()
{
echo "`pwd`/Makefile:0:0: error: $*" >&2
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
}
unmount()
{
RETRIES=0
while [ $RETRIES -lt 5 ]
do
umount "$1"
if [ $? -eq 0 ]
then
break
fi
RETRIES=`expr $RETRIES + 1`
sleep 1
done
if [ $RETRIES -ge 5 ]
then
printErrorAndExit "Unable to unmount the disk image."
fi
}
validateProDOSName()
{
NAME=`basename $1`
echo $NAME | egrep '^[a-zA-Z][a-zA-Z0-9.]{0,14}$' > /dev/null
}
mkdirProDOS()
{
validateProDOSName "$1"
if [ $? -ne 0 ]
then
printErrorAndExit "Invalid ProDOS name of directory `basename $1`. ProDOS names must be 1 to 15 characters, start with a letter and only letters, numbers and a period can be used in the name."
fi
mkdir -p "$1"
if [ $? -ne 0 ]
then
printErrorAndExit "Unable to create directory $1"
fi
}
cpProDOS()
{
validateProDOSName "$2"
if [ $? -ne 0 ]
then
printErrorAndExit "Invalid ProDOS name of file `basename $2`. ProDOS names must be 1 to 15 characters, start with a letter and only letters, numbers and a period can be used in the name."
fi
cp $CPARGS "$1" "$2"
if [ $? -ne 0 ]
then
printErrorAndExit "Unable to create directory $1"
fi
}
copyDirs()
{
OLDDIR=`pwd`
for COPYDIR in $*
do
cd "$COPYDIR"
if [ $? != 0 ]
then
printErrorAndExit "Unable to find $COPYDIR"
fi
find . -print | while read FILEORDIR
do
if [ "$FILEORDIR" = "." ]
then
continue
fi
if [ -d "$FILEORDIR" ]
then
mkdirProDOS "${MOUNTDIR}/$FILEORDIR"
elif [ -f "$FILEORDIR" ]
then
cpProDOS "$FILEORDIR" "${MOUNTDIR}/$FILEORDIR"
fi
done
cd "$OLDDIR"
done
}
if [ ! -f "$TEMPLATEDISKIMAGE" ]
then
echo Unable to find the template disk image, $TEMPLATEDISKIMAGE
cleanupAndExit
printErrorAndExit "Unable to find the template disk image, $TEMPLATEDISKIMAGE"
fi
cp "$TEMPLATEDISKIMAGE" "$TMPDISKIMAGE"
if [ ! -f "$TEMPLATEBOOTIMAGE" ]
then
printErrorAndExit "Unable to find the template boot image, $TEMPLATEBOOTIMAGE"
fi
mkdir "$TMPDIR"
if [ $? != 0 ]
then
echo Unable to copy template disk image.
cleanupAndExit
printErrorAndExit "Unable to create the mount directory."
fi
mkdir "$MOUNTDIR"
if [ $? != 0 ]
then
echo Unable to create the mount directory.
cleanupAndExit
printErrorAndExit "Unable to create the mount directory."
fi
cp "$TEMPLATEBOOTIMAGE" "$TMPBOOTIMAGE"
if [ $? != 0 ]
then
printErrorAndExit "Unable to copy template boot image."
fi
if [ ! -z "$COPYBOOTDIRS" ] || [ ! -z "BOOTCOPYPATH" ]
then
profuse -orw "$TMPBOOTIMAGE" "$MOUNTDIR"
if [ $? != 0 ]
then
printErrorAndExit "Unable to mount the boot image."
fi
if [ ! -z "$BOOTCOPYPATH" ]
then
cpProDOS "$FILE" "$MOUNTDIR/$BOOTCOPYPATH"
if [ $? != 0 ]
then
printErrorAndExit "Unable to copy the file to the boot image."
fi
fi
copyDirs $COPYBOOTDIRS
unmount "$MOUNTDIR"
fi
cp "$TEMPLATEDISKIMAGE" "$TMPDISKIMAGE"
if [ $? != 0 ]
then
printErrorAndExit "Unable to copy template disk image."
fi
profuse -orw "$TMPDISKIMAGE" "$MOUNTDIR"
if [ $? != 0 ]
then
echo Unable to mount the disk image.
cleanupAndExit
printErrorAndExit "Unable to mount the disk image."
fi
cp "$FILE" "$DEST"
cpProDOS "$FILE" "$MOUNTDIR"
if [ $? != 0 ]
then
echo Unable to copy the file to the disk image.
cleanupAndExit
printErrorAndExit "Unable to copy the file to the disk image."
fi
copyDirs $COPYDIRS
OLDDIR=`pwd`
for COPYDIR in $COPYDIRS
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 "$FILEORDIR" "${MOUNTDIR}/$FILEORDIR"
fi
done
cd "$OLDDIR"
done
umount "$MOUNTDIR"
cd "$TMPDIR"
$ORCA "$OLDDIR/make/tar" cf "$TMPARCHIVE" "$PROGRAM"
if [ $? != 0 ]
then
echo Unable to unmount the disk image.
cleanupAndExit
printErrorAndExit "Unable to create archive."
fi
cd "$OLDDIR"
unmount "$MOUNTDIR"
cp "$TMPDISKIMAGE" "$DISKIMAGE"
if [ $? != 0 ]
then
echo Unable to copy the disk image to the destination.
cleanupAndExit
printErrorAndExit "Unable to copy the disk image to the destination."
fi
cp "$TMPBOOTIMAGE" "$DESTBOOTIMAGE"
if [ $? != 0 ]
then
printErrorAndExit "Unable to copy the boot image to the destination."
fi
cp "$TMPARCHIVE" "$ARCHIVE"
if [ $? != 0 ]
then
printErrorAndExit "Unable to copy the archive to the destination."
fi
rm -f "$TMPDISKIMAGE"
rmdir "$MOUNTDIR"
rm -f "$TMPBOOTIMAGE"
rm -f "$TMPARCHIVE"
rm -rf "$TMPDIR"
exit 0

BIN
make/empty.2mg Normal file

Binary file not shown.

View File

@ -8,12 +8,40 @@ ORCA_BINDIR = /usr/local/bin
export ORCA=$(ORCA_BINDIR)/orca
AC=make/AppleCommander.jar
TARGETTYPE=shell
ASSEMBLER=orcam
MERLIN_DIR=/usr/local
export MERLIN_BIN=$(MERLIN_DIR)/bin/Merlin32
export MERLIN_LIB=$(MERLIN_DIR)/lib/Merlin
MERLIN_ASM=make/merlin-asm
SRCDIRS=.
# Check for Xcode build variables for the locations of build outputs and fall back
# to the current directory if not set.
ifeq ($(OBJECT_FILE_DIR),)
OBJDIR=.
else
export OBJECT_FILE_DIR
OBJDIR=$(OBJECT_FILE_DIR)
endif
ifeq ($(DERIVED_SOURCES_DIR),)
GENDIR=.
else
export DERIVED_SOURCES_DIR
GENDIR=$(DERIVED_SOURCES_DIR)
endif
ifeq ($(TARGET_BUILD_DIR),)
TARGETDIR=.
else
export TARGET_BUILD_DIR
TARGETDIR=$(TARGET_BUILD_DIR)
endif
COMPILE=make/orca-cc
CFLAGS= -P -I
ROOTCFILE=main.c
@ -37,16 +65,61 @@ CHTYP=$(ORCA) chtyp
RM=rm -f
CP=cp
MV=mv
MKDIR=mkdir -p
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 -speed 2 -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
ORCAM_PLUGIN_PATH=$(HOME)/Library/Developer/Xcode/Plug-ins/OrcaM.ideplugin
ORCAM_PLUGIN_INFO=$(ORCAM_PLUGIN_PATH)/Contents/Info.plist
XCODE_PLUGIN_COMPATIBILITY=DVTPlugInCompatibilityUUID
.PHONY: all gen genclean
all:
@make gen
@make build
$(MKDIR) $(OBJDIR) $(GENDIR) $(TARGETDIR)
@$(MAKE) -f $(firstword $(MAKEFILE_LIST)) gen
@$(MAKE) -f $(firstword $(MAKEFILE_LIST)) build

View File

@ -1,29 +1,84 @@
#!/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
cd make
DISKIMAGE="$1"
if echo $DISKIMAGE | grep -v '^/' > /dev/null
then
DISKIMAGE="$PWD/$DISKIMAGE"
fi
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

BIN
make/md2teach Normal file

Binary file not shown.

38
make/merlin-asm Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
ERROUTPUT=/tmp/merlin-err.$$
LINKSCRIPT="$1"
shift
OUTFILE="$1"
shift
TARGETOUTPUT="$1"
shift
cleanup()
{
rm -r error_output.txt
rm -f _FileInformation.txt
rm -f _Output.txt
rm -f "$ERROUTPUT"
}
"$MERLIN_BIN" -V "$MERLIN_LIB" "$LINKSCRIPT" 2>&1 | tee "$ERROUTPUT"
if [ ! -f "$OUTFILE" ]
then
cat error_output.txt
tr "'" '"' < "$ERROUTPUT" |
grep '\[Error\]' |
sed 's!^.*\[Error\] \(.*file "\([^"]*\.s\)".*line \([1-9][0-9]*\).*\)$!'`pwd`'/\2:\3:0: error: \1!' |
sed 's!^.*\[Error\] \(.*line \([1-9][0-9]*\).*file "\([^"]*\.s\)".*\)$!'`pwd`'/\3:\2:0: error: \1!'
cleanup
exit 1
fi
mv "$OUTFILE" "$TARGETOUTPUT"
cleanup
exit 0

View File

@ -1,18 +1,102 @@
#!/bin/bash
TMPFILE=/tmp/orca-macgen.$$
ERROUTPUT=/tmp/orca-asm-errs.$$
FILENAME="$1"
shift
DESTBASENAME="$1"
shift
if echo $FILENAME | grep -v '\.s$' > /dev/null
then
echo Expected first argument to be a *.s file but got $FILENAME
echo Expected second argument to be a *.s file but got $FILENAME
exit 1
fi
SRCBASENAME=`echo $FILENAME | sed 's/\.s$//'`
SRCMACROSNAME="${SRCBASENAME}.macros"
SRCROOTNAME="${SRCBASENAME}.ROOT"
SRCOBJNAME="${SRCBASENAME}.a"
DESTMACROSNAME="${DESTBASENAME}.macros"
DESTDEPSNAME="${DESTBASENAME}.macros.d"
DESTROOTNAME="${DESTBASENAME}.ROOT"
DESTOBJNAME="${DESTBASENAME}.a"
$ORCA --trace-gsos macgen $MACGENFLAGS "$FILENAME" "$SRCMACROSNAME" $MACGENMACROS < /dev/null 2> $TMPFILE
RESULT=$?
sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $TMPFILE >&2
if [ "$RESULT" -ne 0 ]
then
rm -f "$TMPFILE"
rm -f "$SRCMACROSNAME"
exit $RESULT
fi
DEPS=`awk '
/^FastFileLoad/ {
sub(/^FastFileLoad\(/, "");
sub(/\)$/, "");
print}' $TMPFILE | sort -u | while read FILE
do
if [ -f "$FILE" ]
then
echo $FILE
fi
done | tr '\012' ' '`
rm -f $TMPFILE
DIRNAME=`dirname $FILENAME`
BASENAME=`basename $FILENAME .s`
cd "$DIRNAME"
$ORCA assemble $* keep="${BASENAME}" "${BASENAME}.s"
pushd "$DIRNAME" > /dev/null
$ORCA assemble $* keep="${BASENAME}" "${BASENAME}.s" 2> $ERROUTPUT
RESULT=$?
exit $RESULT
popd > /dev/null
if [ -s $ERROUTPUT ]
then
RESULT=1
awk '
{
print $0
}
/^Error /{
$1=""
$2=""
LINENO=$3
$3=""
printf("%s/%s:%d:0: error: %s\n", PWD, FILE, LINENO, $0)
}
' "PWD=`pwd`" "FILE=${BASENAME}.s" $ERROUTPUT
fi
rm -f $ERROUTPUT
if [ "$RESULT" -ne 0 ]
then
rm -f "$SRCROOTNAME"
rm -f "$SRCMACROSNAME"
rm -f "$SRCOBJNAME"
rm -f "$DESTROOTNAME"
rm -f "$DESTMACROSNAME"
rm -f "$DESTOBJNAME"
rm -f "$DESTDEPSNAME"
exit 1
fi
mkdir -p `dirname "$DESTROOTNAME"`
mv -f "$SRCROOTNAME" "$DESTROOTNAME" 2> /dev/null
mv -f "$SRCMACROSNAME" "$DESTMACROSNAME" 2> /dev/null
mv -f "$SRCOBJNAME" "$DESTOBJNAME" 2> /dev/null
cat > $DESTDEPSNAME << EOF
$DESTROOTNAME: $DEPS
EOF
exit 0

View File

@ -1,10 +1,14 @@
#!/bin/bash
TMPFILE=/tmp/orca-cc.$$
STDOUTPUT=/tmp/orca-cc-std.$$
ERROUTPUT=/tmp/orca-cc-errs.$$
FILENAME="$1"
shift
DESTBASENAME="$1"
shift
if echo $FILENAME | grep -v '\.c$' > /dev/null
then
echo Expected first argument to be a *.c file but got $FILENAME
@ -23,29 +27,53 @@ do
fi
done
BASENAME=`echo $FILENAME | sed 's/\.c$//'`
DEPSNAME="${BASENAME}.d"
OBJSNAME="${BASENAME}.a"
ROOTNAME="${BASENAME}.root"
SRCBASENAME=`echo "$FILENAME" | sed 's/\.c$//'`
SRCOBJNAME="${SRCBASENAME}.a"
SRCROOTNAME="${SRCBASENAME}.root"
$ORCA --trace-gsos compile $COMPILEARGS "$FILENAME" keep="${BASENAME}" $CCARGS 2> $TMPFILE
DESTDEPSNAME="${DESTBASENAME}.d"
DESTOBJNAME="${DESTBASENAME}.a"
DESTROOTNAME="${DESTBASENAME}.root"
$ORCA --trace-gsos compile $COMPILEARGS "$FILENAME" keep="${SRCBASENAME}" $CCARGS > $STDOUTPUT 2> $ERROUTPUT
RESULT=$?
sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $TMPFILE >&2
awk '
{
print $0
}
$1 ~ /^[0-9][0-9]*$/ {
LINENO=$1
}
/^ *\^/ {
sub(/^ *\^/, "", $0)
printf("%s/%s:%d:0: error: %s\n", PWD, FILE, LINENO, $0)
}
' "PWD=`pwd`" "FILE=$FILENAME" $STDOUTPUT
sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $ERROUTPUT >&2
if [ "$RESULT" -ne 0 ]
then
rm -f $TMPFILE
rm -f $OBJSNAME
rm -f $ROOTNAME
rm -f $ERROUTPUT
rm -f $STDOUTPUT
rm -f $SRCOBJNAME
rm -f $SRCROOTNAME
exit $RESULT
fi
mkdir -p `dirname "$DESTOBJNAME"`
mv -f "$SRCOBJNAME" "$DESTOBJNAME" 2> /dev/null
mv -f "$SRCROOTNAME" "$DESTROOTNAME" 2> /dev/null
DEPS=`awk '
/^FastFileLoad/ {
sub(/^FastFileLoad\(/, "");
sub(/\)$/, "");
print}' $TMPFILE | sort -u | while read FILE
print}' $ERROUTPUT | sort -u | while read FILE
do
if [ -f "$FILE" ]
then
@ -53,14 +81,15 @@ DEPS=`awk '
fi
done | tr '\012' ' '`
rm -f $TMPFILE
rm -f $ERROUTPUT
rm -f $STDOUTPUT
# We add a dependency for both the .o and the .root file. If this is the
# main.c file being compiled, we need the dependency on the .root file.
cat > $DEPSNAME << EOF
$OBJSNAME: $DEPS
cat > $DESTDEPSNAME << EOF
$DESTOBJNAME: $DEPS
$ROOTNAME: $DEPS
$DESTROOTNAME: $DEPS
EOF
exit 0

View File

@ -1,50 +0,0 @@
#!/bin/bash
TMPFILE=/tmp/orca-macgen.$$
MACGENFLAGS="$1"
FILENAME="$2"
shift
shift
if echo $FILENAME | grep -v '\.s$' > /dev/null
then
echo Expected second argument to be a *.s file but got $FILENAME
exit 1
fi
BASENAME=`echo $FILENAME | sed 's/\.s$//'`
MACROSNAME="${BASENAME}.macros"
DEPSNAME="${MACROSNAME}.d"
$ORCA --trace-gsos macgen $MACGENFLAGS "$FILENAME" $* < /dev/null 2> $TMPFILE
RESULT=$?
sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $TMPFILE >&2
if [ "$RESULT" -ne 0 ]
then
rm -f $TMPFILE
rm -f $MACROSNAME
exit $RESULT
fi
DEPS=`awk '
/^FastFileLoad/ {
sub(/^FastFileLoad\(/, "");
sub(/\)$/, "");
print}' $TMPFILE | sort -u | while read FILE
do
if [ -f "$FILE" ]
then
echo $FILE
fi
done | tr '\012' ' '`
rm -f $TMPFILE
cat > $DEPSNAME << EOF
$MACROSNAME: $DEPS
EOF
exit 0

View File

@ -1,37 +1,60 @@
#!/bin/bash
TMPFILE=/tmp/orca-rez.$$
ERROUTPUT=/tmp/orca-rez-err.$$
FILENAME="$1"
shift
DESTBASENAME="$1"
shift
if echo $FILENAME | grep -v '\.rez$' > /dev/null
then
echo Expected first argument to be a *.rez file but got $FILENAME
exit 1
fi
BASENAME=`echo $FILENAME | sed 's/\.rez$//'`
DEPSNAME="${BASENAME}.rez.d"
OBJSNAME="${BASENAME}.r"
SRCBASENAME=`echo $FILENAME | sed 's/\.rez$//'`
SRCOBJNAME="${SRCBASENAME}.r"
$ORCA --trace-gsos compile $* keep="${OBJSNAME}" "$FILENAME" 2> $TMPFILE
DESTDEPSNAME="${DESTBASENAME}.rez.d"
DESTOBJNAME="${DESTBASENAME}.r"
$ORCA --trace-gsos compile "$@" keep="${SRCOBJNAME}" "$FILENAME" 2> $ERROUTPUT
RESULT=$?
sed '/^[A-Za-z][A-Za-z]*(.*)$/d' $TMPFILE >&2
awk '
/^[A-Za-z][A-Za-z]*\(.*\)$/ {
next
}
{
print
}
/^File [^ ]*; Line [0-9][0-9]*;/ {
sub(/;/,"",$4)
LINENO=$4
sub(/^File [^ ]*; Line [0-9][0-9]*/, "", $0)
printf("%s/%s:%d:0: error: %s\n", PWD, FILE, LINENO, $0)
}
' "PWD=`pwd`" "FILE=$FILENAME" $ERROUTPUT >&2
if [ "$RESULT" -ne 0 ]
then
rm -f $TMPFILE
rm -f $OBJSNAME
rm -f $ERROUTPUT
rm -f $SRCOBJNAME
exit $RESULT
fi
mkdir -p `dirname "$DESTOBJNAME"`
mv -f "$SRCOBJNAME" "$DESTOBJNAME" 2> /dev/null
DEPS=`awk '
/^FastFileLoad/ {
sub(/^FastFileLoad\(/, "");
sub(/\)$/, "");
print}' $TMPFILE | sort -u | while read FILE
print}' $ERROUTPUT | sort -u | while read FILE
do
if [ -f "$FILE" ]
then
@ -39,7 +62,7 @@ DEPS=`awk '
fi
done`
echo $OBJSNAME: $DEPS > $DEPSNAME
rm -f $TMPFILE
echo $DESTOBJNAME: $DEPS > $DESTDEPSNAME
rm -f $ERROUTPUT
exit 0

Binary file not shown.

View File

@ -6,83 +6,114 @@ export PATH := $(PATH):$(ORCA_BIN)
CWD=$(shell pwd)
DISKIMAGE=$(PGM).2mg
DISKIMAGE=$(TARGETDIR)/$(PGM).2mg
ARCHIVE=$(TARGETDIR)/$(PGM).shk
DESTBOOTIMAGE=$(TARGETDIR)/$(BOOTIMAGE)
BUILDTARGET=$(DISKIMAGE)
EXECTARGET=executeGUI
DISKIMAGEDEST=.
BOOTCOPYPATH=
AUXTYPE=
CFLAGS+=-i$(GENDIR)
vpath $(GENDIR)
ifeq ($(TARGETTYPE),shell)
FILETYPE=exe
EXECTARGET=executeShell
BUILDTARGET=$(PGM)
BUILDTARGET=$(TARGETDIR)/$(PGM)
else ifeq ($(TARGETTYPE),desktop)
FILETYPE=s16
ifeq ($(MESSAGE_CENTER),1)
AUXTYPE=-a 0x0000db07
else
AUXTYPE=-a 0x0000db03
endif
CFLAGS+=-dMESSAGE_CENTER=$(MESSAGE_CENTER)
REZFLAGS+=rez='-d DESKTOP_RES_MODE=$(DESKTOP_RES_MODE)'
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=$(PGM).bin
BINTARGET=$(TARGETDIR)/$(PGM).bin
FILETYPE=199
DISKIMAGEDEST=System/CDevs
BOOTCOPYPATH=System/CDevs
REZFLAGS+=rez='-d BINTARGET="$(BINTARGET)"'
else ifeq ($(TARGETTYPE),nba)
FILETYPE=exe
BUILDTARGET=$(PGM)
BUILDTARGET=$(TARGETDIR)/$(PGM)
else ifeq ($(TARGETTYPE),nda)
FILETYPE=nda
DISKIMAGEDEST=System/Desk.Accs
BOOTCOPYPATH=System/Desk.Accs
else ifeq ($(TARGETTYPE),xcmd)
FILETYPE=exe
BUILDTARGET=$(PGM)
BUILDTARGET=$(TARGETDIR)/$(PGM)
endif
ifeq ($(wildcard $(ROOTCFILE)),)
ROOTCFILE=
ASM_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS)))))
ifeq ($(ASSEMBLER),orcam)
ASM_MACROS=$(patsubst %.s, $(OBJDIR)/%.macros, $(ASM_SRCS))
ASM_DEPS=$(patsubst %.s, $(OBJDIR)/%.macros.d, $(ASM_SRCS))
ASM_ROOTS=$(patsubst %.s, $(OBJDIR)/%.ROOT, $(ASM_SRCS))
ASM_OBJS=$(patsubst %.s, $(OBJDIR)/%.a, $(ASM_SRCS))
ifeq ($(wildcard $(ROOTCFILE)),)
ROOTCFILE=
endif
C_ROOTS=$(patsubst %.c, $(OBJDIR)/%.root, $(ROOTCFILE))
C_SRCS+=$(filter-out $(ROOTCFILE), $(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS))))))
C_OBJS=$(patsubst %.c, $(OBJDIR)/%.a, $(C_SRCS))
C_DEPS=$(patsubst %.c, $(OBJDIR)/%.d, $(ROOTCFILE)) $(patsubst %.c, $(OBJDIR)/%.d, $(C_SRCS))
endif
C_ROOTS=$(ROOTCFILE:.c=.root)
C_SRCS+=$(filter-out $(ROOTCFILE), $(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS)))))
C_OBJS=$(C_SRCS:.c=.a)
C_DEPS=$(ROOTCFILE:.c=.d) $(C_SRCS:.c=.d)
REZ_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.rez, $(SRCDIRS)))))
REZ_DEPS=$(patsubst %.rez, $(OBJDIR)/%.rez.d, $(REZ_SRCS))
REZ_OBJS=$(patsubst %.rez, $(OBJDIR)/%.r, $(REZ_SRCS))
ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS))))
ASM_MACROS=$(ASM_SRCS:.s=.macros)
ASM_DEPS=$(ASM_SRCS:.s=.macros.d)
ASM_ROOTS=$(ASM_SRCS:.s=.ROOT)
ASM_OBJS=$(ASM_SRCS:.s=.a)
REZ_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.rez, $(SRCDIRS))))
REZ_DEPS=$(REZ_SRCS:.rez=.rez.d)
REZ_OBJS=$(REZ_SRCS:.rez=.r)
TEACH_FILES=$(patsubst %.md, $(GENDIR)/Teach/%, $(MD_SRCS))
ifneq ($(TEACH_FILES),)
COPYDIRS+=$(GENDIR)/Teach
endif
ifneq ($(firstword $(REZ_SRCS)), $(lastword $(REZ_SRCS)))
$(error Only a single resource file supported, found $(REZ_SRCS))
endif
BUILD_OBJS=$(C_ROOTS) $(C_OBJS) $(ASM_ROOTS)
BUILD_OBJS=$(C_ROOTS) $(C_OBJS) $(ASM_ROOTS) $(TEACH_FILES)
ifeq ($(BINTARGET),)
BUILD_OBJS+=$(REZ_OBJS)
endif
BUILD_OBJS_NOSUFFIX=$(C_ROOTS:.root=) $(C_OBJS:.a=) $(ASM_ROOTS:.ROOT=)
ALL_OBJS=$(C_ROOTS:.root=.a) $(C_OBJS) $(ASM_OBJS) $(REZ_OBJS)
ALL_OBJS=$(C_ROOTS:.root=.a) $(C_OBJS) $(ASM_OBJS) $(REZ_OBJS) $(TEACH_FILES)
ALL_ROOTS=$(C_ROOTS) $(C_OBJS:.a=.root) $(ASM_ROOTS)
ALL_DEPS=$(C_DEPS) $(ASM_DEPS) $(REZ_DEPS)
EXECCMD=
.PHONY: build execute executeShell executeGUI clean
.PHONY: build execute executeShell executeGUI clean xcodefix
.PRECIOUS: $(ASM_MACROS)
build: $(BUILDTARGET)
gen: xcodefix
xcodefix:
[ "`uname`" = Darwin ] && defaults write "$(ORCAM_PLUGIN_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)s -array `defaults read "$(XCODE_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)` || true
clean: genclean
$(RM) "$(PGM)" $(BINTARGET)
$(RM) "$(TARGETDIR)/$(PGM)" $(BINTARGET)
$(RM) $(ALL_OBJS)
$(RM) $(ALL_ROOTS)
$(RM) $(ALL_DEPS)
$(RM) $(ASM_MACROS)
$(RM) "$(DISKIMAGE)"
$(RM) "$(DESTBOOTIMAGE)"
$(RM) "$(ARCHIVE)"
createPackage:
pkg/createPackage
@ -92,61 +123,114 @@ cleanMacCruft:
ifeq ($(BINTARGET),)
ifeq ($(ASSEMBLER),orcam)
# This is a standard build where we generate the resources if any and then link
# the binary over that same file creating the resource fork first and the data
# fork second.
$(PGM): $(BUILD_OBJS)
# This is a standard ORCA build where we generate the resources if any and
# then link the binary over that same file creating the resource fork first
# and the data fork second.
$(TARGETDIR)/$(PGM): $(BUILD_OBJS)
$(MKDIR) $(TARGETDIR)
ifneq ($(REZ_OBJS),)
$(RM) $(PGM)
$(CP) $(REZ_OBJS) $(PGM)
$(RM) $(TARGETDIR)/$(PGM)
$(CP) $(REZ_OBJS) $(TARGETDIR)/$(PGM)
endif
$(LINK) $(LDFLAGS) $(BUILD_OBJS_NOSUFFIX) --keep=$(PGM)
$(CHTYP) -t $(FILETYPE) $(PGM)
cd $(OBJDIR); $(LINK) $(LDFLAGS) $(patsubst $(OBJDIR)/%, %, $(BUILD_OBJS_NOSUFFIX)) keep="$(abspath $(TARGETDIR)/$(PGM))"
$(CHTYP) -t $(FILETYPE) $(AUXTYPE) $(TARGETDIR)/$(PGM)
endif
ifeq ($(ASSEMBLER),merlin)
# This is a standard Merlin build where we generate the resources if any and
# then link the binary over that same file creating the resource fork first
# and the data fork second.
$(TARGETDIR)/$(PGM): $(BUILD_OBJS) $(ASM_SRCS)
$(MKDIR) $(TARGETDIR)
$(RM) $(TARGETDIR)/$(PGM)
$(MERLIN_ASM) linkscript.s $(PGM) $(TARGETDIR)/$(PGM)
ifneq ($(REZ_OBJS),)
$(CP) $(REZ_OBJS)/..namedfork/rsrc $(TARGETDIR)/$(PGM)/..namedfork/rsrc
endif
$(CHTYP) -t $(FILETYPE) $(AUXTYPE) $(TARGETDIR)/$(PGM)
endif
else
# This is a special build for CDevs (maybe others also?) where we build the binary
# into a $(PGM).bin file and then build the resources into the $(PGM) target. The
# resource compile will read the $(PGM).bin binary and load it into the resources
# also.
ifeq ($(ASSEMBLER),orcam)
# This is a special build for CDevs under ORCA where we build the binary into
# a $(PGM).bin file and then build the resources into the $(PGM) target. The
# resource compile will read the $(PGM).bin binary and load it into the
# resources also.
$(BINTARGET): $(BUILD_OBJS)
$(LINK) $(LDFLAGS) $(BUILD_OBJS_NOSUFFIX) --keep=$(BINTARGET)
cd $(OBJDIR); $(LINK) $(LDFLAGS) $(patsubst $(OBJDIR)/%, %, $(BUILD_OBJS_NOSUFFIX)) keep="$(abspath $(BINTARGET))"
endif
ifeq ($(ASSEMBLER),merlin)
# This is a special build for CDevs under Merlin where we build the binary into
# a $(PGM).bin file and then build the resources into the $(PGM) target. The
# resource compile will read the $(PGM).bin binary and load it into the
# resources # also.
$(BINTARGET): $(BUILD_OBJS) $(ASM_SRCS)
$(MERLIN_ASM) linkscript.s $(PGM) $(BINTARGET)
endif
$(REZ_OBJS): $(BINTARGET)
$(PGM): $(REZ_OBJS)
$(RM) $(PGM)
$(CP) $(REZ_OBJS) $(PGM)
$(CHTYP) -t $(FILETYPE) $(PGM)
$(TARGETDIR)/$(PGM): $(REZ_OBJS)
$(MKDIR) $(TARGETDIR)
$(RM) $(TARGETDIR)/$(PGM)
$(CP) $(REZ_OBJS) $(TARGETDIR)/$(PGM)
$(CHTYP) -t $(FILETYPE) $(AUXTYPE) $(TARGETDIR)/$(PGM)
endif
$(DISKIMAGE): $(PGM)
make/createDiskImage "$(DISKIMAGE)" "$(PGM)" "$(DISKIMAGEDEST)" $(COPYDIRS)
$(DISKIMAGE): $(TARGETDIR)/$(PGM) make/empty.2mg make/$(BOOTIMAGE)
make/createDiskImage "$(DISKIMAGE)" $(DESTBOOTIMAGE) "$(TARGETDIR)/$(PGM)" $(BOOTCOPYPATH)
execute: $(EXECTARGET)
executeGUI: all
make/launchEmulator -doit
make/launchEmulator "$(DISKIMAGE)" "$(DESTBOOTIMAGE)"
executeShell: all
$(ORCA) ./$(PGM)
$(ORCA) $(TARGETDIR)/$(PGM)
%.a: %.c
$(COMPILE) $< $(CFLAGS) --noroot
$(OBJDIR)/%.a: %.c
$(COMPILE) $< $(@:.a=) $(CFLAGS) --noroot
%.root: %.c
$(COMPILE) $< $(CFLAGS)
$(OBJDIR)/%.a: $(GENDIR)/%.c
$(COMPILE) $< $(@:.a=) $(CFLAGS) --noroot
%.macros: %.s
$(MACGEN) "$(MACGENFLAGS)" $< $@ $(MACGENMACROS)
$(OBJDIR)/%.root: %.c
$(COMPILE) $< $(@:.root=) $(CFLAGS)
%.ROOT: %.macros
$(ASSEMBLE) $(<:.macros=.s) $(ASMFLAGS)
$(OBJDIR)/%.root: $(GENDIR)/%.c
$(COMPILE) $< $(@:.root=) $(CFLAGS)
%.r: %.rez
$(REZ) $< $(REZFLAGS)
$(OBJDIR)/%.ROOT: %.s
MACGENFLAGS="$(MACGENFLAGS)" MACGENMACROS="$(MACGENMACROS)" $(ASSEMBLE) $< $(@:.ROOT=) $(ASMFLAGS)
$(OBJDIR)/%.ROOT: $(GENDIR)/%.s
MACGENFLAGS="$(MACGENFLAGS)" MACGENMACROS="$(MACGENMACROS)" $(ASSEMBLE) $< $(@:.ROOT=) $(ASMFLAGS)
$(OBJDIR)/%.r: %.rez
$(REZ) $< $(@:.r=) $(REZFLAGS)
ifneq ($(RLINT_PATH),)
$(ORCA) $(RLINT_PATH) $@
endif
$(OBJDIR)/%.r: $(GENDIR)/%.rez
$(REZ) $< $(@:.r=) $(REZFLAGS)
ifneq ($(RLINT_PATH),)
$(ORCA) $(RLINT_PATH) $@
endif
$(GENDIR)/Teach/%: %.md
$(MKDIR) "$(GENDIR)/Teach"
$(ORCA) make/md2teach "$<" "$@"
$(OBJS): Makefile

BIN
make/tar Normal file

Binary file not shown.

BIN
pkg/.DS_Store vendored

Binary file not shown.

View File

@ -3,7 +3,6 @@
<title>Apple IIgs XCode Template</title>
<pkg-ref id="com.halcyontouch.Apple2gsTemplate.pkg"/>
<options customize="never" require-scripts="false"/>
<domains enable_currentUserHome="true"/>
<choices-outline>
<line choice="default">
<line choice="com.halcyontouch.Apple2gsTemplate.pkg"/>

View File

@ -24,6 +24,7 @@
</array>
<key>DVTPlugInCompatibilityUUIDs</key>
<array>
<string>DF11C142-1584-4A99-87AC-1925D5F5652A</string>
<string>8A66E736-A720-4B3C-92F1-33D9962C69DF</string>
<string>65C57D32-1E9B-44B8-8C04-A27BA7AAE2C4</string>
<string>DA4FDFD8-C509-4D8B-8B55-84A7B66AE701</string>

View File

@ -165,6 +165,77 @@
<string>true</string>
<key>version</key>
<string>1.0</string>
</dict>
<key>Xcode.FileDataType.merlin.Assembly</key>
<dict>
<key>id</key>
<string>Xcode.FileDataType.merlin.Assembly</string>
<key>localizedDescription</key>
<string>Merlin Assembly Source</string>
<key>name</key>
<string>File type for Merlin assembly</string>
<key>point</key>
<string>Xcode.FileDataType</string>
<key>typeConformedTo</key>
<array>
<dict>
<key>typeIdentifier</key>
<string>public.assembly-source</string>
</dict>
</array>
<key>typeIdentifier</key>
<string>com.rand-family.xcode.merlin</string>
<key>version</key>
<string>1.0</string>
</dict>
<key>Xcode.FileDataTypeDetector.merlin.Assembly</key>
<dict>
<key>detectedTypeIdentifier</key>
<string>com.rand-family.xcode.merlin</string>
<key>id</key>
<string>Xcode.FileDataTypeDetector.merlin.Assembly</string>
<key>matchesExtension</key>
<string>s</string>
<key>point</key>
<string>Xcode.FileDataTypeDetector</string>
</dict>
<key>Xcode.SourceCodeLanguage.merlin-Assembly</key>
<dict>
<key>commentSyntax</key>
<array>
<dict>
<key>prefix</key>
<string>;</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.merlin</string>
</dict>
</array>
<key>id</key>
<string>Xcode.SourceCodeLanguage.merlin-Assembly</string>
<key>languageName</key>
<string>Merlin Assembly</string>
<key>languageSpecification</key>
<string>xcode.lang.asm.merlin</string>
<key>name</key>
<string>Merlin Assembly</string>
<key>point</key>
<string>Xcode.SourceCodeLanguage</string>
<key>supportsIndentation</key>
<string>true</string>
<key>version</key>
<string>1.0</string>
</dict>
</dict>
</dict>

Binary file not shown.

Binary file not shown.

View File

@ -1,19 +0,0 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define CDEV_RESOURCE 0x1
#define MAIN_RESOURCE 0x100
#define HELP_RESOURCE 0x101
#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */

View File

@ -1,123 +0,0 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#include <orca.h>
#include <Event.h>
#include <Menu.h>
#include <QuickDraw.h>
#include <Window.h>
#include <Desk.h>
#include <Resources.h>
#include "___FILEBASENAME___.h"
BOOLEAN done;
EventRecord myEvent;
void DoAbout(void)
{
AlertWindow(awCString + awResource, NULL, aboutAlertString);
}
GrafPortPtr NewDocument(void)
{
return(NewWindow2("\pMyWindow", 0, NULL, NULL, 0x02, windowRes, rWindParam1));
}
void CloseDocument(GrafPortPtr wPtr)
{
if (wPtr != NULL) {
CloseWindow(wPtr);
}
}
void HandleMenu(void)
{
int menuNum;
int menuItemNum;
menuNum = myEvent.wmTaskData >> 16;
menuItemNum = myEvent.wmTaskData;
switch (menuItemNum) {
case appleAbout:
DoAbout();
break;
case fileNew:
NewDocument();
break;
case fileOpen:
NewDocument();
break;
case fileClose:
CloseDocument(FrontWindow());
break;
case fileQuit:
done = TRUE;
break;
case editUndo:
break;
case editCut:
break;
case editCopy:
break;
case editPaste:
break;
case editClear:
break;
}
HiliteMenu(FALSE, menuNum);
}
void InitMenus(void)
{
int height;
MenuBarRecHndl menuBarHand;
menuBarHand = NewMenuBar2(refIsResource, menuBar, NULL);
SetSysBar(menuBarHand);
SetMenuBar(NULL);
FixAppleMenu(appleMenu);
height = FixMenuBar();
DrawMenuBar();
}
int main(void)
{
int event;
startdesk(640);
InitMenus();
InitCursor();
done = FALSE;
myEvent.wmTaskMask = 0x001F7FFF;
while (!done) {
event = TaskMaster(everyEvent, &myEvent);
switch (event) {
case wInSpecial:
case wInMenuBar:
HandleMenu();
break;
case wInGoAway:
CloseDocument((GrafPortPtr)myEvent.wmTaskData);
break;
}
}
enddesk();
}

View File

@ -1,38 +0,0 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define menuBar 1
#define appleMenu 3
#define fileMenu 4
#define editMenu 5
#define editUndo 250
#define editCut 251
#define editCopy 252
#define editPaste 253
#define editClear 254
#define fileNew 401
#define fileOpen 402
#define fileClose 255
#define fileQuit 256
#define appleAbout 301
#define aboutAlertString 1
#define windowRes 1001
#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */

View File

@ -1,19 +0,0 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define linedColors 1
#define windowRes 1001
#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */

View File

@ -0,0 +1,259 @@
<?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>main.s</string>
<string>linkscript.s</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/merlin-asm</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.s</string>
</dict>
<key>linkscript.s</key>
<dict>
<key>Path</key>
<string>linkscript.s</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/merlin-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/merlin-asm</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsMerlinCDA</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 IIgs Merlin code project to build a classic desk accessory. The project starts with a single assembly file which you can modify. You can also add more assembly files as you may like.</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -61,7 +61,19 @@
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___"
argument = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument

View File

@ -0,0 +1,18 @@
*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*
dsk ___PROJECTNAME___
typ $B9
xpl
asm main.s
ds 0
knd #$1100
ali None
LNA ___PROJECTNAME___.CDA
sna main

View File

@ -0,0 +1,93 @@
*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*
]XCODESTART ; Keep this at the start and put your code after this
mx %00
use 4/Util.Macs
use 4/Text.Macs
str '___PROJECTNAME___'
adrl startCda
adrl shutdownCda
startCda
phb
phk
plb
pha
pha
pha
_GetInputDevice
pha
pha
_GetInGlobals
pha
pha
pha
_GetOutputDevice
pha
pha
_GetOutGlobals
PushLong #0
PushWord #3
_SetInputDevice
PushWord #$7f
PushWord #0
_SetInGlobals
PushLong #0
PushWord #3
_SetOutputDevice
PushWord #$ff
PushWord #$80
_SetOutGlobals
PushWord #0
_InitTextDev
PushWord #1
_InitTextDev
PushWord #$0c
_WriteChar
PushLong #message
_WriteCString
pha
PushWord #0
_ReadChar
pla
_SetOutGlobals
_SetOutputDevice
_SetInGlobals
_SetInputDevice
~InitTextDev #0
~InitTextDev #1
plb
rtl
shutdownCda
rtl
message
asc 'Hello, world!',0d,0d,' Press ENTER to quit...',00
]XCODEEND ; Keep this at the end and put your code above this

View File

@ -0,0 +1,265 @@
<?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>main.s</string>
<string>linkscript.s</string>
<string>main.rez</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/merlin-asm</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.s</string>
</dict>
<key>linkscript.s</key>
<dict>
<key>Path</key>
<string>linkscript.s</string>
</dict>
<key>main.rez</key>
<dict>
<key>Path</key>
<string>main.rez</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/merlin-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/merlin-asm</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsMerlinCDev</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 IIgs Merlin code project to build a control panel. The project starts with a single assembly file which you can modify. You can also add more assembly files as you may like.</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -61,7 +61,19 @@
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___"
argument = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument

View File

@ -0,0 +1,18 @@
*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*
dsk ___PROJECTNAME___
typ $BC
xpl
asm main.s
ds 0
knd #$1100
ali None
LNA ___PROJECTNAME___.CDEV
sna main

View File

@ -0,0 +1,147 @@
/*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*/
#include "types.rez"
#define CDEV_RESOURCE 0x1
#define MAIN_RESOURCE 0x100
#define HELP_RESOURCE 0x101
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
/* This is the required resource to tell the control panel about the CDev */
resource rCDEVFlags (CDEV_RESOURCE) {
0x00C0, /* This sets the wantCreate and wantAbout bits */
/* Set more bits if you want other messages */
1,
1,
1,
0,
{0, 0, 110, 200},
"___PROJECTNAME___",
"___FULLUSERNAME___",
"0.1"
};
/* Code resource; the executable part of the CDev */
read rCDevCode (CDEV_RESOURCE,convert) BINTARGET;
/* This is the icon displayed by the control panel */
resource rIcon (CDEV_RESOURCE) {
0x8000, /* color icon */
20, /* height in pixels */
28, /* width in pixels */
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF",
$"0000000000000000000000000000"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"0000000000000000000000000000"
};
/* The following resources define the various controls in the main display */
resource rControlList (MAIN_RESOURCE) {
{
MAIN_RESOURCE,
};
};
resource rControlTemplate (MAIN_RESOURCE) {
0x00000001, /* control id */
{38,5,49,205}, /* control rectangle */
statTextControl {{ /* control type */
0x0000, /* flags */
0x1002, /* more flags */
0, /* ref con */
MAIN_RESOURCE, /* text reference */
13 /* text length */
}};
};
resource rTextForLETextBox2 (MAIN_RESOURCE) {
"Hello, world!"
};
/* The following resources define the controls for the help screen */
resource rControlList (HELP_RESOURCE) {
{
HELP_RESOURCE,
};
};
resource rControlTemplate (HELP_RESOURCE) {
0x00000002, /* control id */
{38,5,49,205}, /* control rectangle */
statTextControl {{ /* control type */
0x0000, /* flags */
0x1002, /* more flags */
0, /* ref con */
HELP_RESOURCE, /* text reference */
19 /* text length */
}};
};
resource rTextForLETextBox2 (HELP_RESOURCE) {
"Put help info here."
};

View File

@ -0,0 +1,247 @@
*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
]XCODESTART ; Keep this at the start and put your code after this
mx %00
use 4/Util.Macs
use 4/Ctl.Macs
* Resource numbers
cdevResource = $1
mainResource = $100
helpResource = $101
* CDEV Message Numbers
machineCDev = 1
bootCDev = 2
reservedCDev = 3
initCDev = 4
closeCDev = 5
eventsCDev = 6
createCDev = 7
aboutCDev = 8
rectCDev = 9
hitCDev = 10
runCDev = 11
editCDev = 12
* Edit menu actions
undoAction = 5
cutAction = 6
copyAction = 7
pasteAction = 8
clearAction = 9
* Offsets in direct page from the stack
message = $0c
data1 = $08
data2 = $04
main
tsc
phd
tcd
lda message
cmp #machineCDev
bne notMachine
* Return zero if you cannot be opened on this machine
* (and maybe display an alert explaining why).
lda $02
sta $0c
lda $01
sta $0b
pld
tsc
clc
adc #$a
tcs
lda #$1
rtl
notMachine
cmp #bootCDev
bne notBoot
jsl doBoot
bra done
notBoot
cmp #initCDev
bne notInit
jsl doInit
bra done
notInit
cmp #closeCDev
bne notClose
jsl doClose
bra done
notClose
cmp #eventsCDev
bne notEvents
jsl doEvents
bra done
notEvents
cmp #createCDev
bne notCreate
jsl doCreate
bra done
notCreate
cmp #aboutCDev
bne notAbout
jsl doAbout
bra done
notAbout
cmp #rectCDev
bne notRect
jsl doRect
bra done
notRect
cmp #hitCDev
bne notHit
jsl doHit
bra done
notHit
cmp #runCDev
bne notRun
jsl doRun
bra done
notRun
cmp #editCDev
bne notEdit
jsl doEdit
bra done
notEdit
done
lda $02
sta $0c
lda $01
sta $0b
pld
tsc
clc
adc #$a
tcs
lda #$1
rtl
doBoot
* data1 is a pointer to a flag. Set bit 0 to 1 in this flag if you want to
* draw an X through the icon at boot time to indicate that this CDev will not
* load.
rtl
doInit
* data1 is a pointer to the grafport.
rtl
doClose
* data1 is a pointer to the grafport.
rtl
doEvents
* data1 is a pointer to the event record.
* data2 is a pointer to the grafport.
rtl
doCreate
* data1 is a pointer to the grafport.
pha
pha
PushLong data1
PushWord #9
PushLong #mainResource
_NewControl2
pla
pla
rtl
doAbout
* data1 is a pointer to the grafport.
pha
pha
PushLong data1
PushWord #9
PushLong #helpResource
_NewControl2
pla
pla
rtl
doRect
* data1 is a pointer to the grafport.
rtl
doHit
* data1 is a handle to the control which was hit
* data2 is the controlID of the control which was hit
rtl
doRun
* data1 is a pointer to the grafport.
rtl
doEdit
* The lower 16 bits of data1 is the edit action
* data2 is a pointer to the grafport.
lda data1
cmp #undoAction
bne notUndo
* Handle undo here
bra doneEdit
notUndo
cmp #cutAction
bne notCut
* Handle cut here
bra doneEdit
notCut
cmp #copyAction
bne notCopy
* Handle copy here
bra doneEdit
notCopy
cmp #pasteAction
bne notPaste
* Handle paste here
bra doneEdit
notPaste
cmp #clearAction
bne notClear
* Handle clear here
bra doneEdit
notClear
doneEdit
rtl
]XCODEEND ; Keep this at the end and put your code above this

View File

@ -0,0 +1,283 @@
<?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>main.s</string>
<string>linkscript.s</string>
<string>main.rez</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/merlin-asm</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.s</string>
</dict>
<key>linkscript.s</key>
<dict>
<key>Path</key>
<string>linkscript.s</string>
</dict>
<key>main.rez</key>
<dict>
<key>Path</key>
<string>main.rez</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/merlin-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/merlin-asm</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsMerlinDesktopApp</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 IIgs Merlin code project to build desktop application. The project starts with a single assembly file which you can modify. You can also add more assembly files as you may like.</string>
<key>Options</key>
<array>
<dict>
<key>Identifier</key>
<string>RESOLUTIONMODE</string>
<key>Name</key>
<string>Desktop Resolution</string>
<key>Description</key>
<string>Specify 640x200 or 320x200 resolution desktop enviroment.</string>
<key>Type</key>
<string>popup</string>
<key>Default</key>
<string>640</string>
<key>Values</key>
<array>
<string>640</string>
<string>320</string>
</array>
</dict>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -61,7 +61,19 @@
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___"
argument = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument

View File

@ -0,0 +1,18 @@
*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*
dsk ___PROJECTNAME___
typ $B9
xpl
asm main.s
ds 0
knd #$1100
ali None
LNA ___PROJECTNAME___.S16
sna main

View File

@ -8,7 +8,46 @@
#include "types.rez"
#include "___FILEBASENAME___.h"
#define menuBar 1
#define appleMenu 3
#define fileMenu 4
#define editMenu 5
#define editUndo 250
#define editCut 251
#define editCopy 252
#define editPaste 253
#define editClear 254
#define fileNew 401
#define fileOpen 402
#define fileClose 255
#define fileQuit 256
#define appleAbout 301
#define aboutAlertString 1
#define windowRes 1001
#define toolStartup 1
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
resource rMenuBar (menuBar) {
@ -176,32 +215,78 @@ resource rPString (appleAbout, noCrossBank) {"About ___PROJECTNAME___..."};
resource rAlertString (aboutAlertString) {
"43/"
"0" /* Custom size */
#if DESKTOP_RES_MODE == 320
"\$38\$00" /* Upper Y coordinate at 56 */
"\$10\$00" /* Left X coordinate at 16 */
"\$90\$00" /* Lower Y coorinate at 144 */
"\$30\$01" /* Right X coordinate at 304 */
#else
"\$38\$00" /* Upper Y coordinate at 56 */
"\$90\$00" /* Left X coordinate at 144 */
"\$90\$00" /* Lower Y coorinate at 144 */
"\$F0\$01" /* Right X coordinate at 496 */
#endif
"3/"
"___PROJECTNAME___\n"
" by ___FULLUSERNAME___\n"
"\n"
"Contains libraries from ORCA C,\n"
"Copyright 1991, Byte Works Inc."
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___\n"
"\n"
"\n"
""
"/^#0\$00";
};
resource rWindParam1 (windowRes) {
$DDA5, /* wFrameBits */
nil, /* wTitle */
0, /* wRefCon */
{0, 0, 0, 0}, /* ZoomRect */
nil, /* wColor ID */
{0, 0}, /* Origin */
{1, 1}, /* data size */
{0, 0}, /* max height-width */
{8, 8}, /* scroll ver hors */
{0, 0}, /* page ver horiz */
0, /* winfoRefCon */
10, /* wInfoHeight */
{30, 10, 183, 602}, /* wposition */
infront, /* wPlane */
nil, /* wStorage */
$0000 /* wInVerb */
$DDA5, /* wFrameBits */
nil, /* wTitle */
0, /* wRefCon */
{0, 0, 0, 0}, /* ZoomRect */
$07FF0001, /* wColor ID */
{0, 0}, /* Origin */
{1, 1}, /* data size */
{0, 0}, /* max height-width */
{8, 8}, /* scroll ver hors */
{0, 0}, /* page ver horiz */
0, /* winfoRefCon */
10, /* wInfoHeight */
#if DESKTOP_RES_MODE == 320
{30, 10, 183, 300}, /* wposition */
#else
{30, 10, 183, 602}, /* wposition */
#endif
infront, /* wPlane */
nil, /* wStorage */
$0800 /* wInVerb */
};
resource rToolStartup (toolStartup) {
#if DESKTOP_RES_MODE == 320
mode320,
#else
mode640,
#endif
{
3,$0100, /* Misc Tool */
4,$0100, /* Quickdraw */
5,$0100, /* Desk Manager */
6,$0100, /* Event Manager */
11,$0100, /* Int Math */
14,$0300, /* Window Manager */
15,$0300, /* Menu Manager */
16,$0300, /* Control Manager */
18,$0200, /* QD Aux */
19,$0100, /* Print Manager */
20,$0100, /* LineEdit Tool */
21,$0100, /* Dialog Manager */
22,$0100, /* Scrap Manager */
23,$0100, /* Standard File */
27,$0100, /* Font Manager */
28,$0100, /* List Manager */
30,$0100, /* Resource Manager */
34,$0100 /* TextEdit */
}
};

View File

@ -0,0 +1,281 @@
*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
]XCODESTART ; Keep this at the start and put your code after this
mx %00
use 4/Util.Macs
use 4/Mem.Macs
use 4/Locator.Macs
use 4/Qd.Macs
use 4/Window.Macs
use 4/Menu.Macs
use 4/Desk.Macs
use 4/Dos.16.Macs
menuBar = 1
appleMenu = 3
fileMenu = 4
editMenu = 5
editUndo = 250
editCut = 251
editCopy = 252
editPaste = 253
editClear = 254
fileNew = 401
fileOpen = 402
fileClose = 255
fileQuit = 256
appleAbout = 301
aboutAlertString = 1
windowRes = 1001
toolStartup = 1
refIsHandle = 1
refIsResource = 2
wInMenuBar = $11
wInGoAway = $16
wInSpecial = $19
phb
phk
plb
pha
_MMStartUp
PullWord userid
_TLStartUp
pha
pha
PushWord userid
PushWord #refIsResource
PushLong #toolStartup
_StartUpTools
PullLong toolStartupRef
jsl InitMenus
_InitCursor
loop
pha
PushWord #$ffff
PushLong #eventRec
_TaskMaster
pla
cmp #wInMenuBar
bne notInMenuBar
jsl HandleMenu
bra loop
notInMenuBar
cmp #wInSpecial
bne notInSpecial
jsl HandleMenu
bra loop
notInSpecial
cmp #wInGoAway
bne notInGoAway
* Put the low word of the grafport pointer to close in X and the high word in Y
ldx wmTaskData
ldy wmTaskData+2
jsl CloseDocument
notInGoAway
bra loop
InitMenus
pha
pha
PushWord #refIsResource
PushLong #menuBar
PushLong #0
_NewMenuBar2
_SetSysBar
PushLong #0
_SetMenuBar
PushWord #appleMenu
_FixAppleMenu
pha
_FixMenuBar
pla
_DrawMenuBar
rtl
HandleMenu
; The low word of the wmTaskData has the menu item number
lda wmTaskData
cmp #appleAbout
bne notAbout
jsl DoAbout
bra menuDone
notAbout
cmp #fileNew
bne notNew
jsl NewDocument
bra menuDone
notNew
cmp #fileOpen
bne notOpen
jsl NewDocument
bra menuDone
notOpen
cmp #fileClose
bne notClose
pha
pha
_FrontWindow
plx
ply
jsl CloseDocument
bra menuDone
notClose
cmp #fileQuit
bne notQuit
jsl DoQuit
bra menuDone
notQuit
cmp #editUndo
bne notUndo
* Handle undo here
bra menuDone
notUndo
cmp #editCut
bne notCut
* Handle cut here
bra menuDone
notCut
cmp #editCopy
bne notCopy
* Handle copy here
bra menuDone
notCopy
cmp #editPaste
bne notPaste
* Handle paste here
bra menuDone
notPaste
cmp #editClear
bne notClear
* Handle clear here
bra menuDone
notClear
menuDone
PushWord #0
PushWord wmTaskData+2
_HiliteMenu
rtl
CloseDocument
* X has the low word of the grafport pointer, Y has the high word
phy
phx
_CloseWindow
rtl
NewDocument
pha
pha
PushLong #winName
PushLong #0
PushLong #0
PushLong #0
PushWord #2
PushLong #windowRes
PushWord #$800E
_NewWindow2
pla
pla
rtl
DoAbout
pha
PushWord #4
PushLong #0
PushLong #aboutAlertString
_AlertWindow
pla
rtl
DoQuit
PushWord #refIsHandle
PushLong toolStartupRef
_ShutDownTools
_TLShutDown
PushWord userid
_MMShutDown
plb
_QUIT quitDCB
rtl
* Global data
userid dw 0
toolStartupRef adrl 0
winName str 'MyWindow'
eventRec
what dw 0
message adrl 0
when adrl 0
where_vert dw 0
where_horiz dw 0
modifiers dw 0
wmTaskData adrl 0
wmTaskMask adrl $001f7fff
wmLastClickTick adrl 0
wmClickCount dw 0
wmTaskData2 adrl 0
wmTaskData3 adrl 0
wmTaskData4 adrl 0
wmLastClickPt_vert dw 0
wmLastClickPt_horiz dw 0
* Used by doQuit
quitDCB dw 0
]XCODEEND ; Keep this at the end and put your code above this

View File

@ -0,0 +1,265 @@
<?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>main.s</string>
<string>linkscript.s</string>
<string>main.rez</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/merlin-asm</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.s</string>
</dict>
<key>linkscript.s</key>
<dict>
<key>Path</key>
<string>linkscript.s</string>
</dict>
<key>main.rez</key>
<dict>
<key>Path</key>
<string>main.rez</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/merlin-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/merlin-asm</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsMerlinNDA</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 IIgs Merlin code project to build a new desktop accessory. The project starts with a single assembly file which you can modify. You can also add more assembly files as you may like.</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,18 @@
*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*
dsk ___PROJECTNAME___
typ $B8
xpl
asm main.s
ds 0
knd #$1100
ali None
LNA ___PROJECTNAME___.NDA
sna main

View File

@ -0,0 +1,47 @@
/*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*/
#include "types.rez"
#define windowRes 1001
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
resource rWindParam1 (windowRes) {
$C0A5, /* wFrameBits */
nil, /* wTitle */
0, /* wRefCon */
{0,0,0,0}, /* ZoomRect */
$07FF0001, /* wColor ID */
{0,0}, /* Origin */
{0,0}, /* data size */
{0,0}, /* max height-width */
{0,0}, /* scroll ver hors */
{0,0}, /* page ver horiz */
0, /* winfoRefcon */
0, /* wInfoHeight */
{50,50,62,200}, /* wposition */
infront, /* wPlane */
nil, /* wStorage */
$0800 /* wInVerb */
};

View File

@ -0,0 +1,345 @@
*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
]XCODESTART ; Keep this at the start and put your code after this
mx %00
use 4/Util.Macs
use 4/Mem.Macs
use 4/Qd.Macs
use 4/Window.Macs
use 4/Desk.Macs
use 4/Resource.Macs
use 4/GsOs.Macs
windowRes = 1001
eventAction = $0001
runAction = $0002
cursorAction = $0003
undoAction = $0005
cutAction = $0006
copyAction = $0007
pasteAction = $0008
clearAction = $0009
updateEvt = $0006
wInControl = $0021
keyDownEvt = $0003
autoKeyEvt = $0005
setSysPrefs = $0c
getSysPrefs = $0f
setLevel = $1a
getLevel = $1b
adrl NDAOpen
adrl NDAClose
adrl NDAAction
adrl NDAInit
dw $ffff
dw $03ff
asc ' ___PACKAGENAME___ \H**'
dw $0
NDAOpen
phb
phk
plb
lda ndaActive
beq doOpen
plb
rtl
doOpen
iGSOS getLevel;levelDCB;1
lda level
sta oldLevel
stz level
iGSOS setLevel;levelDCB;1
iGSOS getSysPrefs;prefsDCB;1
lda prefs
sta oldPrefs
and #$1fff
ora #$8000
sta prefs
iGSOS setSysPrefs;prefsDCB;1
pha
PushWord #1
lda userId
pha
_OpenResourceFileByID
PullWord oldResApp
pha
pha
PushLong #winName
PushLong #0
PushLong #DrawContents
PushLong #0
PushWord #2
PushLong #windowRes
PushWord #$800E
_NewWindow2
PullLong winPtr
PushLong winPtr
_SetSysWindow
PushLong winPtr
_ShowWindow
PushLong winPtr
_SelectWindow
lda #1
sta ndaActive
lda oldPrefs
sta prefs
iGSOS setSysPrefs;prefsDCB;1
lda oldLevel
sta level
iGSOS setLevel;levelDCB;1
PushWord oldResApp
_SetCurResourceApp
lda winPtr
sta 5,S
lda winPtr+2
sta 7,S
plb
rtl
DrawContents
phb
phk
plb
_PenNormal
PushWord #7
PushWord #10
_MoveTo
PushLong #messageStr
_DrawString
plb
rtl
NDAClose
phb
phk
plb
lda ndaActive
beq closeNotActive
PushLong winPtr
_CloseWindow
stz winPtr
stz winPtr+2
stz ndaActive
closeNotActive
_ResourceShutDown
plb
rtl
NDAAction
phb
phk
plb
cmp #eventAction
bne notEvent
jsl HandleEvent
bra actionDone
notEvent
cmp #runAction
bne notRun
jsl HandleRun
bra actionDone
notRun
cmp #cursorAction
bne notCursor
jsl HandleCursor
bra actionDone
notCursor
cmp #undoAction
blt notEdit
cmp #clearAction+1
bge notEdit
jsl HandleEdit
lda #1
bra actionDone
notEdit
actionDone
plb
rtl
HandleEvent
* The X register has the low 16 bits of the address of the event record.
* We leave that there and use that in the memory move instruction to
* copy that event record into our local event.
*
* The Y register has the high 16 bits of the address of the event record.
* We need to get that into the upper 8 bits of the accumulator.
tya
xba
* Now we need to or in the current bank register into the lower 8 bits
* of the accumulator for the move instruction
pea $0
phb
ora 1,S
* We have the source and destination banks in the accumulator now. Modify
* the move instruction to have these banks and clean up the stack.
sta moveIns+1
plb
pla
* X is already setup for the move. We need the low 16 bits of the destination
* in the Y register and the count of bytes to copy minus one in the accumulator.
ldy #localEvent
lda #15 ; Copy 16 bytes
moveIns mvn 0,0
pha
PushWord #0
PushLong #localEvent
_TaskMasterDA
pla
cmp #updateEvt
bne notUpdate
PushLong winPtr
_BeginUpdate
jsl DrawContents
PushLong winPtr
_EndUpdate
bra eventDone
notUpdate
cmp #wInControl
bne notControl
jsl HandleControl
bra eventDone
notControl
cmp #keyDownEvt
beq isKey
cmp #autoKeyEvt
beq isKey
eventDone
rtl
isKey
jsl HandleKey
bra eventDone
HandleControl
* Add code here if you need to handle controls in your NDA window
rtl
HandleKey
* Add code here if you need to handle keypresses
rtl
HandleRun
* Add code here if you need to execute something periodically from your NDA
rtl
HandleCursor
* Add code here if you need to do something to the cursor when over the NDA window
rtl
HandleEdit
* Add code here to handle undo, cut, copy, paste or clear. The A register holds
* the action code.
rtl
NDAInit
phb
phk
plb
cmp #$00
beq toolShutdown
stz ndaActive
pha
_MMStartUp
pla
sta userId
bra initReturn
toolShutdown
lda ndaActive
beq initReturn
jsl NDAClose
initReturn
plb
rtl
* Global data
ndaActive dw 0
winPtr adrl 0
userId dw 0
winName str ' ___PACKAGENAME___ '
messageStr str 'Hello, world!'
* Used by NDAOpen to access resources
oldResApp dw 0
oldLevel dw 0
oldPrefs dw 0
levelDCB dw 2 ; GSOS control block to get/set level
level dw 0
dw 0
prefsDCB dw 1 ; GSOS control block to get/set preferences
prefs dw 0
* Used by HandleEvent
localEvent
what dw 0
message adrl 0
when adrl 0
where_vert dw 0
where_horiz dw 0
modifiers dw 0
wmTaskData adrl 0
wmTaskMask adrl $001fffff
wmLastClickTick adrl 0
wmClickCount dw 0
wmTaskData2 adrl 0
wmTaskData3 adrl 0
wmTaskData4 adrl 0
wmLastClickPt_vert dw 0
wmLastClickPt_horiz dw 0
]XCODEEND ; Keep this at the end and put your code above this

View File

@ -10,13 +10,15 @@
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/orca-asm</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-macgen</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -53,6 +55,13 @@
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
@ -67,13 +76,6 @@
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-macgen</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-macgen</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
@ -88,6 +90,20 @@
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
@ -156,49 +172,90 @@
<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>inline(X,Y)=""
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</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>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -12,13 +12,15 @@
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/orca-asm</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-macgen</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -65,6 +67,13 @@
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
@ -79,13 +88,6 @@
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-macgen</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-macgen</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
@ -100,6 +102,20 @@
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
@ -168,49 +184,90 @@
<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>inline(X,Y)=""
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</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>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -40,7 +40,7 @@
long doMachine(void)
{
/* Return non-zero if you cannot be opened on this machine
/* Return zero if you cannot be opened on this machine
* (and maybe display an alert explaining why).
*/
return 1;
@ -49,7 +49,7 @@ long doMachine(void)
void doBoot(int *flag)
{
/* Set bit 0 to 1 in flag if you want to draw at X through
/* Set bit 0 to 1 in flag if you want to draw an X through
* the icon at boot time to indicate that this CDev will not
* load.
*/

View File

@ -0,0 +1,19 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define CDEV_RESOURCE 0x1
#define MAIN_RESOURCE 0x100
#define HELP_RESOURCE 0x101
#endif /* defined(_GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____) */

View File

@ -12,6 +12,20 @@
#include "___FILEBASENAME___.h"
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
/* This is the required resource to tell the control panel about the CDev */
resource rCDEVFlags (CDEV_RESOURCE) {
0x00C0, /* This sets the wantCreate and wantAbout bits */
@ -23,12 +37,12 @@ resource rCDEVFlags (CDEV_RESOURCE) {
{0, 0, 110, 200},
"___PROJECTNAME___",
"___FULLUSERNAME___",
"1.0"
"0.1"
};
/* Code resource; the executable part of the CDev */
read rCDevCode (CDEV_RESOURCE,convert) "___PROJECTNAME___.bin";
read rCDevCode (CDEV_RESOURCE,convert) BINTARGET;
/* This is the icon displayed by the control panel */

View File

@ -0,0 +1,303 @@
<?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>main.c</string>
<string>main.h</string>
<string>main.rez</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.c</key>
<dict>
<key>Path</key>
<string>main.c</string>
</dict>
<key>main.h</key>
<dict>
<key>Path</key>
<string>main.h</string>
</dict>
<key>main.rez</key>
<dict>
<key>Path</key>
<string>main.rez</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-asm</string>
</dict>
<key>make/orca-cc</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsCDesktopApp</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 IIgs C code project to build desktop application. The project starts with a single C file which you can modify. You can also add more assembly or C files as you may like.</string>
<key>Options</key>
<array>
<dict>
<key>Identifier</key>
<string>RESOLUTIONMODE</string>
<key>Name</key>
<string>Desktop Resolution</string>
<key>Description</key>
<string>Specify 640x200 or 320x200 resolution desktop enviroment.</string>
<key>Type</key>
<string>popup</string>
<key>Default</key>
<string>640</string>
<key>Values</key>
<array>
<string>640</string>
<string>320</string>
</array>
</dict>
<dict>
<key>Identifier</key>
<string>MESSAGECENTER</string>
<key>Name</key>
<string>Message Center</string>
<key>Description</key>
<string>Specify whether the application will support opening and printing files.</string>
<key>Type</key>
<string>checkbox</string>
<key>Default</key>
<string>0</string>
</dict>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,961 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#include <Memory.h>
#include <Locator.h>
#include <Event.h>
#include <Menu.h>
#include <QuickDraw.h>
#include <Window.h>
#include <Control.h>
#include <TextEdit.h>
#include <Desk.h>
#include <Resources.h>
#include <MiscTool.h>
#include <STDFile.h>
#include <GSOS.h>
#include <Print.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "___FILEBASENAME___.h"
/* Defines and macros */
#define TOOLFAIL(string) \
if (toolerror()) SysFailMgr(toolerror(), "\p" string "\n\r Error Code -> $");
#define MAX_DOCUMENT_NAME 80
#define PRINT_RECORD_SIZE 140
/* Types */
typedef struct tDocument
{
struct tDocument * nextDocument;
struct tDocument * prevDocument;
GrafPortPtr wPtr;
char documentName[MAX_DOCUMENT_NAME + 1];
BOOLEAN isOnDisk;
ResultBuf255Hndl pathName;
PrRecHndl printRecordHandle;
} tDocument;
/* Globals */
BOOLEAN shouldQuit;
EventRecord myEvent;
unsigned int userid;
tDocument * documentList;
/* Forward declarations */
void doFileSave(void);
/* Implementation */
const char * resourceString(int resourceId, const char * defaultValue)
{
Handle handle;
const char *result = defaultValue;
handle = LoadResource(rCString, resourceId);
if (toolerror() == 0) {
HLock(handle);
result = (const char *) (*handle);
}
return result;
}
void freeResourceString(int resourceId)
{
ReleaseResource(-3, rCString, resourceId);
}
void showErrorAlert(int resourceId, int toolErrorCode)
{
char buffer[40] = "";
const char *substArray[2];
const char *toolErrorFormat;
if (toolErrorCode != 0) {
toolErrorFormat = resourceString(TOOL_ERROR_STRING, "\n\nTool error code = $%04x");
sprintf(buffer, toolErrorFormat, toolErrorCode);
freeResourceString(TOOL_ERROR_STRING);
}
substArray[0] = resourceString(resourceId, "Unknown error has occurred");
substArray[1] = buffer;
AlertWindow(awCString + awResource, (Pointer) substArray, ERROR_ALERT_STRING);
freeResourceString(resourceId);
}
tDocument * findDocumentFromWindow(GrafPortPtr wPtr)
{
tDocument * result = documentList;
while (result != NULL) {
if (result->wPtr == wPtr)
break;
result = result->nextDocument;
}
return result;
}
#pragma databank 1
void drawContents(void)
{
DrawControls(GetPort());
}
#pragma databank 0
const char * getUntitledName(void)
{
static int untitledNum = 1;
static char buffer[MAX_DOCUMENT_NAME + 1];
const char *untitledFormat = resourceString(UNTITLED_STRING, " Untitled %d ");
sprintf(buffer + 1, untitledFormat, untitledNum);
buffer[0] = strlen(buffer + 1);
freeResourceString(UNTITLED_STRING);
untitledNum++;
// Returns a Pascal string with a length byte prefix
return buffer;
}
const char * documentNameFromGSOSString(ResultBuf255Ptr gsosString)
{
static char buffer[MAX_DOCUMENT_NAME + 1];
int nameLen = gsosString->bufString.length;
strcpy(buffer + 1, " ");
nameLen = gsosString->bufString.length;
if (nameLen > MAX_DOCUMENT_NAME - 5)
nameLen = MAX_DOCUMENT_NAME - 5;
strncat(buffer + 1, gsosString->bufString.text, nameLen);
strcat(buffer + 1, " ");
buffer[0] = strlen(buffer + 1);
return buffer;
}
const char * documentNameFromPath(wStringPtr pathString)
{
static char buffer[MAX_DOCUMENT_NAME + 1];
int nameLen = pathString->length;
char * path = pathString->text;
int lastSeparator = 0;
int offset;
for (offset = 0; offset < nameLen; offset++) {
if ((path[offset] == ':') ||
(path[offset] == '/'))
lastSeparator = offset + 1;
}
path = &(path[lastSeparator]);
nameLen -= lastSeparator;
strcpy(buffer + 1, " ");
if (nameLen > MAX_DOCUMENT_NAME - 5)
nameLen = MAX_DOCUMENT_NAME - 5;
strncat(buffer + 1, path, nameLen);
strcat(buffer + 1, " ");
buffer[0] = strlen(buffer + 1);
return buffer;
}
tDocument * newDocument(const char * windowName)
{
// windowName is a Pascal string with a length byte prefix
tDocument * documentPtr;
documentPtr = malloc(sizeof(tDocument));
if (documentPtr == NULL) {
showErrorAlert(MALLOC_ERROR_STRING, 0);
return(NULL);
}
documentPtr->printRecordHandle = (PrRecHndl) NewHandle(PRINT_RECORD_SIZE, userid, 0, NULL);
if (toolerror() != 0) {
showErrorAlert(MALLOC_ERROR_STRING, toolerror());
free(documentPtr);
return NULL;
}
PrDefault(documentPtr->printRecordHandle);
documentPtr->isOnDisk = FALSE;
documentPtr->pathName = NULL;
documentPtr->documentName[0] = windowName[0];
strncpy(documentPtr->documentName + 1, windowName + 1, windowName[0]);
documentPtr->wPtr = NewWindow2(documentPtr->documentName, 0, drawContents, NULL, refIsResource,
WINDOW_RESID, rWindParam1);
if (documentPtr->wPtr == NULL) {
showErrorAlert(NEW_WINDOW_ERROR_STRING, toolerror());
DisposeHandle((Handle)documentPtr->printRecordHandle);
free(documentPtr);
return NULL;
}
documentPtr->nextDocument = documentList;
documentPtr->prevDocument = NULL;
if (documentList != NULL)
documentList->prevDocument = documentPtr;
documentList = documentPtr;
return documentPtr;
}
BOOLEAN isDocumentDirty(tDocument * documentPtr)
{
BOOLEAN isDirty = FALSE;
CtlRecHndl controlHdl;
CtlRec * controlPtr;
controlHdl = GetCtlHandleFromID(documentPtr->wPtr, CONTROL_TEXT_EDIT);
if (toolerror() == 0) {
HLock((Handle) controlHdl);
controlPtr = *controlHdl;
isDirty = ((controlPtr->ctlFlag & fRecordDirty) != 0);
HUnlock((Handle) controlHdl);
}
return isDirty;
}
void clearDocumentDirty(tDocument * documentPtr)
{
CtlRecHndl controlHdl;
CtlRec * controlPtr;
controlHdl = GetCtlHandleFromID(documentPtr->wPtr, CONTROL_TEXT_EDIT);
if (toolerror() == 0) {
HLock((Handle) controlHdl);
controlPtr = *controlHdl;
controlPtr->ctlFlag &= (~fRecordDirty);
HUnlock((Handle) controlHdl);
}
}
void saveDocument(tDocument * documentPtr)
{
RefNumRecGS closeRecord;
CreateRecGS createRecord;
NameRecGS destroyRecord;
OpenRecGS openRecord;
IORecGS writeRecord;
GrafPortPtr tmpPort;
LongWord dataLength;
Handle dataHandle;
tmpPort = GetPort();
SetPort(documentPtr->wPtr);
dataLength = TEGetText(teTextIsNewHandle | teDataIsCString, (Ref) &dataHandle, 0,
0, (Ref) NULL, NULL);
if (toolerror() != 0) {
showErrorAlert(SAVE_FILE_ERROR_STRING, toolerror());
SetPort(tmpPort);
return;
}
HLock((Handle) documentPtr->pathName);
destroyRecord.pCount = 1;
destroyRecord.pathname = &((*(documentPtr->pathName))->bufString);
DestroyGS(&destroyRecord);
createRecord.pCount = 5;
createRecord.pathname = &((*(documentPtr->pathName))->bufString);
createRecord.access = destroyEnable | renameEnable | readWriteEnable;
createRecord.fileType = 0x04;
createRecord.auxType = 0x0000;
createRecord.storageType = 1;
CreateGS(&createRecord);
if (toolerror() != 0) {
showErrorAlert(SAVE_FILE_ERROR_STRING, toolerror());
} else {
openRecord.pCount = 3;
openRecord.pathname = &((*(documentPtr->pathName))->bufString);
openRecord.requestAccess = writeEnable;
OpenGS(&openRecord);
if (toolerror() != 0) {
showErrorAlert(SAVE_FILE_ERROR_STRING, toolerror());
} else {
HLock(dataHandle);
writeRecord.pCount = 4;
writeRecord.refNum = openRecord.refNum;
writeRecord.dataBuffer = *dataHandle;
writeRecord.requestCount = dataLength;
WriteGS(&writeRecord);
if (toolerror() != 0) {
showErrorAlert(SAVE_FILE_ERROR_STRING, toolerror());
} else {
documentPtr->isOnDisk = TRUE;
clearDocumentDirty(documentPtr);
}
HUnlock(dataHandle);
closeRecord.pCount = 1; /* close the file */
closeRecord.refNum = openRecord.refNum;
CloseGS(&closeRecord);
}
}
DisposeHandle(dataHandle);
HUnlock((Handle) documentPtr->pathName);
SetPort(tmpPort);
}
BOOLEAN loadDocument(tDocument * documentPtr)
{
BOOLEAN result = TRUE;
RefNumRecGS closeRecord;
OpenRecGS openRecord;
IORecGS readRecord;
GrafPortPtr tmpPort;
Handle dataHandle;
openRecord.pCount = 12;
HLock((Handle) documentPtr->pathName);
openRecord.pathname = &((*(documentPtr->pathName))->bufString);
openRecord.requestAccess = readEnable;
openRecord.resourceNumber = 0;
openRecord.optionList = NULL;
OpenGS(&openRecord);
if (toolerror() != 0) {
showErrorAlert(OPEN_FILE_ERROR_STRING, toolerror());
result = FALSE;
} else {
dataHandle = NewHandle(openRecord.eof, userid, attrLocked, NULL);
if (toolerror() != 0) {
showErrorAlert(MALLOC_ERROR_STRING, toolerror());
result = FALSE;
} else {
readRecord.pCount = 4;
readRecord.refNum = openRecord.refNum;
readRecord.dataBuffer = *dataHandle;
readRecord.requestCount = openRecord.eof;
ReadGS(&readRecord);
if (toolerror() != 0) {
showErrorAlert(OPEN_FILE_ERROR_STRING, toolerror());
result = FALSE;
} else {
tmpPort = GetPort();
SetPort(documentPtr->wPtr);
TESetText(teTextIsPtr | teDataIsTextBlock, (Ref)*dataHandle, openRecord.eof,
teCtlStyleIsPtr, NULL, NULL);
SetPort(tmpPort);
}
DisposeHandle(dataHandle);
}
closeRecord.pCount = 1;
closeRecord.refNum = openRecord.refNum;
CloseGS(&closeRecord);
}
HUnlock((Handle) documentPtr->pathName);
clearDocumentDirty(documentPtr);
return result;
}
void closeDocument(GrafPortPtr wPtr)
{
tDocument * documentPtr;
char documentName[MAX_DOCUMENT_NAME];
char * alertStrings[] = { documentName };
int documentNameLen;
char * tmpPtr;
int buttonClicked;
if (wPtr == NULL)
return;
documentPtr = findDocumentFromWindow(wPtr);
if (documentPtr != NULL) {
while (isDocumentDirty(documentPtr)) {
/* The documentName in the documentPtr is actually a PString so the
first byte is the length of the string. */
tmpPtr = documentPtr->documentName;
documentNameLen = *tmpPtr;
tmpPtr++;
/* The documentName has spaces before and after the real name to format
the string for the window title bar. Strip those spaces out and store
the name into the documentName local array. */
while ((documentNameLen > 0) &&
(tmpPtr[documentNameLen - 1] == ' ')) {
documentNameLen--;
}
while (*tmpPtr == ' ') {
tmpPtr++;
documentNameLen--;
}
strncpy(documentName, tmpPtr, documentNameLen);
documentName[documentNameLen] = '\0';
buttonClicked = AlertWindow(awCString+awResource, (Pointer) alertStrings, SAVE_BEFORE_CLOSING);
switch (buttonClicked) {
case 0:
doFileSave();
break;
case 1:
clearDocumentDirty(documentPtr);
break;
case 2:
return;
}
}
}
CloseWindow(wPtr);
if (documentPtr == NULL)
return;
if (documentPtr->pathName != NULL) {
DisposeHandle((Handle) documentPtr->pathName);
documentPtr->pathName = NULL;
}
if (documentPtr->printRecordHandle != NULL) {
DisposeHandle((Handle)documentPtr->printRecordHandle);
documentPtr->printRecordHandle = NULL;
}
if (documentList == documentPtr) {
documentList = documentPtr->nextDocument;
} else if (documentPtr->prevDocument != NULL) {
documentPtr->prevDocument->nextDocument = documentPtr->nextDocument;
}
if (documentPtr->nextDocument != NULL)
documentPtr->nextDocument->prevDocument = documentPtr->prevDocument;
free(documentPtr);
}
void printDocument(tDocument * documentPtr)
{
GrafPortPtr printerPort;
LongWord lineNumber;
PrStatusRec printerStatus;
Rect pageRect;
printerPort = PrOpenDoc(documentPtr->printRecordHandle, NULL);
if (toolerror() != 0) {
showErrorAlert(PRINT_ERROR_STRING, toolerror());
return;
}
HLock((Handle) documentPtr->printRecordHandle);
pageRect = (*(documentPtr->printRecordHandle))->prInfo.rPage;
HUnlock((Handle) documentPtr->printRecordHandle);
if (toolerror() != 0) {
showErrorAlert(PRINT_ERROR_STRING, toolerror());
} else {
lineNumber = 0;
while (lineNumber != -1) {
PrOpenPage(printerPort, NULL);
if (toolerror() != 0) {
showErrorAlert(PRINT_ERROR_STRING, toolerror());
break;
}
else {
lineNumber = TEPaintText(printerPort, lineNumber, &pageRect, 0,
(Handle) GetCtlHandleFromID(documentPtr->wPtr, CONTROL_TEXT_EDIT));
PrClosePage(printerPort);
}
}
}
PrCloseDoc(printerPort);
if (PrError() == 0)
PrPicFile(documentPtr->printRecordHandle, NULL, &printerStatus);
}
void doAppleAbout(void)
{
AlertWindow(awCString + awResource, NULL, ABOUT_ALERT_STRING);
}
void doFileNew(void)
{
newDocument(getUntitledName());
}
void doFileOpen(void)
{
tDocument * documentPtr;
SFTypeList2 fileTypes;
SFReplyRec2 reply;
ResultBuf255Hndl nameHandle;
/* By default, we want to open text files only which is what
the following fileTypes request. Customize as necessary. */
fileTypes.numEntries = 1;
fileTypes.fileTypeEntries[0].flags = 0x0000;
fileTypes.fileTypeEntries[0].fileType = 0x04;
fileTypes.fileTypeEntries[0].auxType = 0x0000;
reply.nameRefDesc = refIsNewHandle;
reply.pathRefDesc = refIsNewHandle;
SFGetFile2(30, 30, refIsResource, OPEN_FILE_STRING, NULL, &fileTypes, &reply);
if (toolerror() != 0) {
showErrorAlert(OPEN_FILE_ERROR_STRING, toolerror());
return;
}
if (reply.good) {
nameHandle = (ResultBuf255Hndl) reply.nameRef;
HLock((Handle) nameHandle);
documentPtr = newDocument(documentNameFromGSOSString(*nameHandle));
DisposeHandle((Handle) nameHandle);
if (documentPtr == NULL) {
DisposeHandle((Handle) reply.pathRef);
} else {
documentPtr->pathName = (ResultBuf255Hndl) reply.pathRef;
documentPtr->isOnDisk = loadDocument(documentPtr);
if (!documentPtr->isOnDisk)
closeDocument(documentPtr->wPtr);
}
}
}
void doFileSaveAs(void)
{
ResultBuf255Hndl nameHandle;
SFReplyRec2 reply;
const char * documentName;
tDocument * documentPtr = findDocumentFromWindow(FrontWindow());
if (documentPtr == NULL)
return;
reply.nameRefDesc = refIsNewHandle;
reply.pathRefDesc = refIsNewHandle;
if (documentPtr->pathName == NULL)
SFPutFile2(30, 30, refIsResource, SAVE_FILE_STRING, refIsPointer,
(Ref) &(documentPtr->pathName), &reply);
else
SFPutFile2(30, 30, refIsResource, SAVE_FILE_STRING, refIsPointer,
(Ref) &((*(documentPtr->pathName))->bufString), &reply);
if (toolerror() != 0) {
showErrorAlert(SAVE_FILE_ERROR_STRING, toolerror());
return;
}
if (reply.good) {
nameHandle = (ResultBuf255Hndl) reply.nameRef;
HLock((Handle) nameHandle);
documentName = documentNameFromGSOSString(*nameHandle);
documentPtr->documentName[0] = documentName[0];
strncpy(documentPtr->documentName + 1, documentName + 1, documentName[0]);
DisposeHandle((Handle) nameHandle);
SetWTitle(documentPtr->documentName, documentPtr->wPtr);
documentPtr->pathName = (ResultBuf255Hndl) reply.pathRef;
documentPtr->isOnDisk = TRUE;
saveDocument(documentPtr);
}
}
void doFileSave(void)
{
tDocument * documentPtr = findDocumentFromWindow(FrontWindow());
if (documentPtr == NULL)
return;
if (documentPtr->isOnDisk)
saveDocument(documentPtr);
else
doFileSaveAs();
}
void doFileClose(void)
{
closeDocument(FrontWindow());
}
void doFilePageSetup(void)
{
tDocument * documentPtr = findDocumentFromWindow(FrontWindow());
if (documentPtr == NULL)
return;
PrStlDialog(documentPtr->printRecordHandle);
}
void doFilePrint(void)
{
tDocument * documentPtr = findDocumentFromWindow(FrontWindow());
if (documentPtr == NULL)
return;
if (PrJobDialog(documentPtr->printRecordHandle))
printDocument(documentPtr);
}
void doFileQuit(void)
{
shouldQuit = TRUE;
}
void doEditUndo(void)
{
/* Nothing extra to do here. The text edit control handles this for us. */
}
void doEditCut(void)
{
/* Nothing extra to do here. The text edit control handles this for us. */
}
void doEditCopy(void)
{
/* Nothing extra to do here. The text edit control handles this for us. */
}
void doEditPaste(void)
{
/* Nothing extra to do here. The text edit control handles this for us. */
}
void doEditClear(void)
{
/* Nothing extra to do here. The text edit control handles this for us. */
}
void handleMenu(void)
{
int menuNum;
int menuItemNum;
menuNum = myEvent.wmTaskData >> 16;
menuItemNum = myEvent.wmTaskData;
switch (menuItemNum) {
case APPLE_ABOUT:
doAppleAbout();
break;
case FILE_NEW:
doFileNew();
break;
case FILE_OPEN:
doFileOpen();
break;
case FILE_SAVE:
doFileSave();
break;
case FILE_SAVE_AS:
doFileSaveAs();
break;
case FILE_CLOSE:
doFileClose();
break;
case FILE_PAGE_SETUP:
doFilePageSetup();
break;
case FILE_PRINT:
doFilePrint();
break;
case FILE_QUIT:
doFileQuit();
break;
case EDIT_UNDO:
doEditUndo();
break;
case EDIT_CUT:
doEditCut();
break;
case EDIT_COPY:
doEditCopy();
break;
case EDIT_PASTE:
doEditPaste();
break;
case EDIT_CLEAR:
doEditClear();
break;
}
HiliteMenu(FALSE, menuNum);
}
void dimMenus(void)
{
static BOOLEAN windowWasOpen = TRUE;
static BOOLEAN applicationWindowWasInFront = TRUE;
BOOLEAN windowIsOpen;
BOOLEAN applicationWindowIsInFront;
GrafPortPtr wPtr = FrontWindow();
windowIsOpen = (wPtr != NULL);
applicationWindowIsInFront = (findDocumentFromWindow(wPtr) != NULL);
if ((windowIsOpen == windowWasOpen) &&
(applicationWindowIsInFront == applicationWindowWasInFront)) {
return;
}
windowWasOpen = windowIsOpen;
applicationWindowWasInFront = applicationWindowIsInFront;
if (windowIsOpen) {
EnableMItem(FILE_CLOSE);
SetMenuFlag(enableMenu, EDIT_MENU);
} else {
DisableMItem(FILE_CLOSE);
SetMenuFlag(disableMenu, EDIT_MENU);
}
if (applicationWindowIsInFront) {
EnableMItem(FILE_SAVE);
EnableMItem(FILE_SAVE_AS);
EnableMItem(FILE_PAGE_SETUP);
EnableMItem(FILE_PRINT);
} else {
DisableMItem(FILE_SAVE);
DisableMItem(FILE_SAVE_AS);
DisableMItem(FILE_PAGE_SETUP);
DisableMItem(FILE_PRINT);
}
DrawMenuBar();
}
void handleMessages(void)
{
#if MESSAGE_CENTER == 1
Handle msgHandle;
MessageRecGSPtr msgPtr;
wStringPtr pathPtr;
tDocument * documentPtr;
ResultBuf255Ptr resultBufPtr;
msgHandle = NewHandle(1, userid, 0, NULL);
if (toolerror() != 0) {
showErrorAlert(MALLOC_ERROR_STRING, toolerror());
return;
}
MessageCenter(getMessage, fileInfoTypeGS, msgHandle);
if (toolerror() != 0) {
DisposeHandle(msgHandle);
return;
}
MessageCenter(deleteMessage, fileInfoTypeGS, msgHandle);
HLock(msgHandle);
msgPtr = (MessageRecGSPtr)(*msgHandle);
for (pathPtr = msgPtr->fileNames;
pathPtr->length != 0;
pathPtr = (wStringPtr)(pathPtr->text + pathPtr->length))
{
documentPtr = newDocument(documentNameFromPath(pathPtr));
if (documentPtr == NULL)
continue;
documentPtr->pathName = (ResultBuf255Hndl)NewHandle(pathPtr->length + 4, userid, 0, NULL);
if (toolerror() != 0)
{
showErrorAlert(MALLOC_ERROR_STRING, toolerror());
closeDocument(documentPtr->wPtr);
continue;
}
HLock((Handle) documentPtr->pathName);
resultBufPtr = *(documentPtr->pathName);
resultBufPtr->bufSize = pathPtr->length + 4;
resultBufPtr->bufString.length = pathPtr->length;
memcpy(resultBufPtr->bufString.text, pathPtr->text, pathPtr->length);
HUnlock((Handle) documentPtr->pathName);
documentPtr->isOnDisk = loadDocument(documentPtr);
if (!documentPtr->isOnDisk)
{
closeDocument(documentPtr->wPtr);
continue;
}
if (msgPtr->printFlag)
{
doFilePrint();
closeDocument(documentPtr->wPtr);
}
}
if (msgPtr->printFlag)
doFileQuit();
DisposeHandle(msgHandle);
#endif
}
void initMenus(void)
{
int height;
MenuBarRecHndl menuBarHand;
menuBarHand = NewMenuBar2(refIsResource, MENU_BAR, NULL);
TOOLFAIL("Unable to create menu bar");
SetSysBar(menuBarHand);
TOOLFAIL("Unable to set system menu bar");
SetMenuBar(NULL);
TOOLFAIL("Unable to set menu bar");
FixAppleMenu(APPLE_MENU);
TOOLFAIL("Unable to fix Apple menu");
height = FixMenuBar();
TOOLFAIL("Unable to fix menu bar");
DrawMenuBar();
TOOLFAIL("Unable to draw menu bar");
}
void initGlobals(void)
{
documentList = NULL;
shouldQuit = FALSE;
myEvent.wmTaskMask = 0x001F7FFF;
}
int main(void)
{
int event;
Ref toolStartupRef;
userid = MMStartUp();
TOOLFAIL("Unable to start memory manager");
TLStartUp();
TOOLFAIL("Unable to start tool locator");
toolStartupRef = StartUpTools(userid, refIsResource, TOOL_STARTUP);
TOOLFAIL("Unable to start tools");
initGlobals();
initMenus();
InitCursor();
handleMessages();
while (!shouldQuit) {
HandleDiskInsert(hdiScan | hdiHandle, 0);
dimMenus();
event = TaskMaster(everyEvent, &myEvent);
TOOLFAIL("Unable to handle next event");
switch (event) {
case wInSpecial:
case wInMenuBar:
handleMenu();
break;
case wInGoAway:
closeDocument((GrafPortPtr)myEvent.wmTaskData);
break;
}
}
ShutDownTools(refIsHandle, toolStartupRef);
TOOLFAIL("Unable to shutdown tools");
TLShutDown();
TOOLFAIL("Unable to shutdown tool locator");
MMShutDown(userid);
TOOLFAIL("Unable to shutdown memory manager");
}

View File

@ -0,0 +1,77 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
/* Menu bars */
#define MENU_BAR 1
/* Menus */
#define APPLE_MENU 3
#define FILE_MENU 4
#define EDIT_MENU 5
/* Menu items */
#define EDIT_UNDO 250
#define EDIT_CUT 251
#define EDIT_COPY 252
#define EDIT_PASTE 253
#define EDIT_CLEAR 254
#define FILE_NEW 401
#define FILE_OPEN 402
#define FILE_SAVE 403
#define FILE_SAVE_AS 404
#define FILE_CLOSE 255
#define FILE_PAGE_SETUP 405
#define FILE_PRINT 406
#define FILE_QUIT 256
#define APPLE_ABOUT 301
/* Alert strings */
#define ABOUT_ALERT_STRING 1
#define ERROR_ALERT_STRING 2
#define SAVE_BEFORE_CLOSING 3
/* Error strings */
#define TOOL_ERROR_STRING 2001
#define NEW_WINDOW_ERROR_STRING 2002
#define MALLOC_ERROR_STRING 2003
#define OPEN_FILE_ERROR_STRING 2004
#define SAVE_FILE_ERROR_STRING 2005
#define PRINT_ERROR_STRING 2006
/* Other strings */
#define UNTITLED_STRING 3001
#define OPEN_FILE_STRING 3002
#define SAVE_FILE_STRING 3003
#define HELLO_WORLD_STRING 3004
/* Windows */
#define WINDOW_RESID 1001
/* Controls */
#define CONTROL_TEXT_EDIT 1001
/* Tools */
#define TOOL_STARTUP 1
#endif /* defined(_GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____) */

View File

@ -0,0 +1,399 @@
/*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*/
#include "types.rez"
#include "___FILEBASENAME___.h"
/* Version resource */
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
#if MESSAGE_CENTER == 1
/* Bunde resource */
resource rBundle (1, preload, nospecialmemory) {
nil, /* rIcon ID for application if you wish a custom icon */
1,
{
{
native + LaunchThis,
{0}, /* rFinderPath ID for this document */
{nil}, /* rIcon ID for large icon for document */
{nil}, /* rIcon ID for small icon for document */
"", /* String to describe this type of document */
},
Filetype + AuxType, /* Match field bits */
MatchFileType {{$04}}, /* File type to match */
MatchAuxType { /* Auxiliary file type to match */
{$00000000,$00000000}
},
empty {},
empty {},
empty {},
empty {},
empty {},
empty {},
empty {},
empty {},
empty {},
empty {}
}
};
#endif
/* Menu bars */
resource rMenuBar (MENU_BAR) {
{
APPLE_MENU,
FILE_MENU,
EDIT_MENU
};
};
/* Menus */
resource rMenu (APPLE_MENU) {
APPLE_MENU,
refIsResource * menuTitleRefShift
+ refIsResource * itemRefShift
+ fAllowCache,
APPLE_MENU,
{
APPLE_ABOUT
};
};
resource rPString (APPLE_MENU, noCrossBank) {"@"};
resource rMenu (FILE_MENU) {
FILE_MENU,
refIsResource * menuTitleRefShift
+ refIsResource * itemRefShift
+ fAllowCache,
FILE_MENU,
{
FILE_NEW,
FILE_OPEN,
FILE_SAVE,
FILE_SAVE_AS,
FILE_CLOSE,
FILE_PAGE_SETUP,
FILE_PRINT,
FILE_QUIT
};
};
resource rPString (FILE_MENU, noCrossBank) {" File "};
resource rMenu (EDIT_MENU) {
EDIT_MENU,
refIsResource * menuTitleRefShift
+ refIsResource * itemRefShift
+ fAllowCache,
EDIT_MENU,
{
EDIT_UNDO,
EDIT_CUT,
EDIT_COPY,
EDIT_PASTE,
EDIT_CLEAR
};
};
resource rPString (EDIT_MENU, noCrossBank) {" Edit "};
/* Menu items */
resource rMenuItem (EDIT_UNDO) {
EDIT_UNDO,
"Z", "z",
0,
refIsResource * itemTitleRefShift
+ fDivider,
EDIT_UNDO
};
resource rPString (EDIT_UNDO, noCrossBank) {"Undo"};
resource rMenuItem (EDIT_CUT) {
EDIT_CUT,
"X", "x",
0,
refIsResource * itemTitleRefShift,
EDIT_CUT
};
resource rPString (EDIT_CUT, noCrossBank) {"Cut"};
resource rMenuItem (EDIT_COPY) {
EDIT_COPY,
"C", "c",
0,
refIsResource * itemTitleRefShift,
EDIT_COPY
};
resource rPString (EDIT_COPY, noCrossBank) {"Copy"};
resource rMenuItem (EDIT_PASTE) {
EDIT_PASTE,
"V", "v",
0,
refIsResource * itemTitleRefShift,
EDIT_PASTE
};
resource rPString (EDIT_PASTE, noCrossBank) {"Paste"};
resource rMenuItem (EDIT_CLEAR) {
EDIT_CLEAR,
"", "",
0,
refIsResource * itemTitleRefShift,
EDIT_CLEAR
};
resource rPString (EDIT_CLEAR, noCrossBank) {"Clear"};
resource rMenuItem (FILE_NEW) {
FILE_NEW,
"N", "n",
0,
refIsResource * itemTitleRefShift,
FILE_NEW
};
resource rPString (FILE_NEW, noCrossBank) {"New"};
resource rMenuItem (FILE_OPEN) {
FILE_OPEN,
"O", "o",
0,
refIsResource * itemTitleRefShift
+ fDivider,
FILE_OPEN
};
resource rPString (FILE_OPEN, noCrossBank) {"Open"};
resource rMenuItem (FILE_SAVE) {
FILE_SAVE,
"S", "s",
0,
refIsResource * itemTitleRefShift,
FILE_SAVE
};
resource rPString (FILE_SAVE, noCrossBank) {"Save"};
resource rMenuItem (FILE_SAVE_AS) {
FILE_SAVE_AS,
"", "",
0,
refIsResource * itemTitleRefShift,
FILE_SAVE_AS
};
resource rPString (FILE_SAVE_AS, noCrossBank) {"Save As..."};
resource rMenuItem (FILE_CLOSE) {
FILE_CLOSE,
"W", "w",
0,
refIsResource * itemTitleRefShift
+ fDivider,
FILE_CLOSE
};
resource rPString (FILE_CLOSE, noCrossBank) {"Close"};
resource rMenuItem (FILE_PAGE_SETUP) {
FILE_PAGE_SETUP,
"", "",
0,
refIsResource * itemTitleRefShift,
FILE_PAGE_SETUP
};
resource rPString (FILE_PAGE_SETUP, noCrossBank) {"Page Setup..."};
resource rMenuItem (FILE_PRINT) {
FILE_PRINT,
"P", "p",
0,
refIsResource * itemTitleRefShift
+ fDivider,
FILE_PRINT
};
resource rPString (FILE_PRINT, noCrossBank) {"Print..."};
resource rMenuItem (FILE_QUIT) {
FILE_QUIT,
"Q", "q",
0,
refIsResource * itemTitleRefShift,
FILE_QUIT
};
resource rPString (FILE_QUIT, noCrossBank) {"Quit"};
resource rMenuItem (APPLE_ABOUT) {
APPLE_ABOUT,
"", "",
0,
refIsResource * itemTitleRefShift
+ fDivider,
APPLE_ABOUT
};
resource rPString (APPLE_ABOUT, noCrossBank) {"About ___PROJECTNAME___..."};
/* Error strings */
resource rCString (TOOL_ERROR_STRING) {"\n\nTool error code = $%04x"};
resource rCString (NEW_WINDOW_ERROR_STRING) {"Error occurred when creating a new window"};
resource rCString (MALLOC_ERROR_STRING) {"Out of memory"};
resource rCString (OPEN_FILE_ERROR_STRING) {"Error opening file"};
resource rCString (SAVE_FILE_ERROR_STRING) {"Error saving file"};
resource rCString (PRINT_ERROR_STRING) {"Error printing document"};
/* Other strings */
resource rCString (UNTITLED_STRING) {" Untitled %d "};
resource rPString (OPEN_FILE_STRING, noCrossBank) {"Choose a file to open..."};
resource rPString (SAVE_FILE_STRING, noCrossBank) {"Save file as..."};
resource rPString (HELLO_WORLD_STRING, noCrossBank) {"Hello, world!"};
/* Alert strings */
resource rAlertString (ABOUT_ALERT_STRING) {
"0" /* Custom size */
#if DESKTOP_RES_MODE == 320
"\$38\$00" /* Upper Y coordinate at 56 */
"\$10\$00" /* Left X coordinate at 16 */
"\$90\$00" /* Lower Y coorinate at 144 */
"\$30\$01" /* Right X coordinate at 304 */
#else
"\$38\$00" /* Upper Y coordinate at 56 */
"\$90\$00" /* Left X coordinate at 144 */
"\$90\$00" /* Lower Y coorinate at 144 */
"\$F0\$01" /* Right X coordinate at 496 */
#endif
"3/"
"___PROJECTNAME___\n"
" by ___FULLUSERNAME___\n"
"\n"
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___\n"
"\n"
"Contains libraries from ORCAC,\n"
"Copyright \$A9 1991, Byte Works Inc."
"/^#0\$00";
};
resource rAlertString (ERROR_ALERT_STRING) {
"42/"
"*0\n"
"*1"
"/^#0\$00";
};
resource rAlertString (SAVE_BEFORE_CLOSING) {
"34/"
"Save changes to *0 before closing?"
"/^#2/#3/#1\$00";
};
/* Windows */
resource rWindParam1 (WINDOW_RESID) {
/* wFrameBits */
fTitle + fClose + fZoom + fMove + fVis + fAllocated + fHilited,
nil, /* wTitle */
0, /* wRefCon */
{0, 0, 0, 0}, /* ZoomRect */
$07FF0001, /* wColor ID */
{0, 0}, /* Origin */
{0, 0}, /* data size */
{0, 0}, /* max height-width */
{8, 8}, /* scroll ver hors */
{0, 0}, /* page ver horiz */
0, /* winfoRefCon */
10, /* wInfoHeight */
#if DESKTOP_RES_MODE == 320
{30, 10, 183, 300}, /* wposition */
#else
{30, 10, 183, 602}, /* wposition */
#endif
infront, /* wPlane */
CONTROL_TEXT_EDIT, /* wStorage */
$0802 /* wInVerb */
};
/* Controls */
resource rControlTemplate (CONTROL_TEXT_EDIT) {
CONTROL_TEXT_EDIT, /* Application defined ID */
#if DESKTOP_RES_MODE == 320
{0,0,165,300}, /* Bounding rectangle */
#else
{0,0,165,620}, /* Bounding rectangle */
#endif
editTextControl {
{
$0000, /* Flags */
/* More flags */
FctlCanBeTarget + FctlWantsEvents + FctlProcNotPtr + FctlTellAboutSize + FctlIsMultiPart,
0, /* Refcon */
/* Text flags */
fSingleFormat + fSmartCutPaste + fGrowRuler + fDrawInactiveSelection,
{-1,-1,-1,-1}, /* Indent rectangle */
$FFFFFFFF, /* Vertical bar */
0, /* Vertical amount */
nil, /* Horizontal bar */
0, /* Horizontal amount */
nil, /* Style ref */
/* Text descriptor */
refIsResource * 8 + dataIsPString,
HELLO_WORLD_STRING, /* Text ref */
0, /* Text length */
nil, /* Maximum chars */
nil, /* Maximum lines */
nil, /* Maximum chars per line */
nil, /* Max height */
nil, /* Color ref */
4, /* Drawing mode */
nil, /* Filter procedure */
}
}
};
/* Tools */
resource rToolStartup (TOOL_STARTUP) {
#if DESKTOP_RES_MODE == 320
mode320,
#else
mode640,
#endif
{
3, $0100, /* Misc Tool */
4, $0100, /* Quickdraw */
5, $0100, /* Desk Manager */
6, $0100, /* Event Manager */
11, $0100, /* Int Math */
14, $0300, /* Window Manager */
15, $0300, /* Menu Manager */
16, $0300, /* Control Manager */
18, $0200, /* QD Aux */
19, $0100, /* Print Manager */
20, $0100, /* LineEdit Tool */
21, $0100, /* Dialog Manager */
22, $0100, /* Scrap Manager */
23, $0100, /* Standard File */
27, $0100, /* Font Manager */
28, $0100, /* List Manager */
30, $0100, /* Resource Manager */
34, $0100 /* TextEdit */
}
};

View File

@ -7,12 +7,12 @@
<string>main.c</string>
<string>Makefile</string>
<string>make/head.mk</string>
<string>make/orca-asm</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-macgen</string>
<string>make/orca-rez</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -28,6 +28,13 @@
<key>Path</key>
<string>make/head.mk</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
@ -42,13 +49,6 @@
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-macgen</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-macgen</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
@ -124,49 +124,64 @@
<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>inline(X,Y)=""
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</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>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -57,7 +57,7 @@
</MacroExpansion>
<CommandLineArguments>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___/___PACKAGENAME___"
argument = "$TARGET_BUILD_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>

View File

@ -12,13 +12,15 @@
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/orca-asm</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-macgen</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -65,6 +67,13 @@
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
@ -79,13 +88,6 @@
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-macgen</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-macgen</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
@ -100,6 +102,20 @@
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
@ -168,49 +184,90 @@
<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>inline(X,Y)=""
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</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>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -28,21 +28,6 @@
static BOOLEAN ndaActive;
static GrafPortPtr winPtr;
static unsigned int userId;
static unsigned int resourceId;
static Str255 gStrBuf;
BOOLEAN OpenResourceFork(void)
{
GSString255Ptr fPtr;
unsigned id;
id = SetHandleID(0, FindHandle((Pointer) OpenResourceFork));
fPtr = (GSString255Ptr) LGetPathname2(id, 1);
if (toolerror() == 0)
resourceId = OpenResourceFile(1, NULL, (Pointer) fPtr);
return toolerror() == 0;
}
void NDAClose(void)
@ -53,7 +38,6 @@ void NDAClose(void)
ndaActive = FALSE;
}
CloseResourceFile(resourceId);
ResourceShutDown();
}
@ -86,7 +70,6 @@ void DrawContents(void)
GrafPortPtr NDAOpen(void)
{
Pointer pathToSelf;
unsigned int oldResourceApp;
LevelRecGS levelDCB;
unsigned int oldLevel;
@ -96,10 +79,6 @@ GrafPortPtr NDAOpen(void)
if (ndaActive)
return NULL;
oldResourceApp = GetCurResourceApp();
ResourceStartUp(userId);
pathToSelf = LGetPathname2(userId, 1);
levelDCB.pCount = 2;
GetLevelGS(&levelDCB);
oldLevel = levelDCB.level;
@ -112,14 +91,13 @@ GrafPortPtr NDAOpen(void)
prefsDCB.preferences = (prefsDCB.preferences & 0x1fff) | 0x8000;
SetSysPrefsGS(&prefsDCB);
resourceId = OpenResourceFile(readEnable, NULL, pathToSelf);
oldResourceApp = OpenResourceFileByID(readEnable, userId);
winPtr = NewWindow2("\p ___PACKAGENAME___ ", 0, DrawContents, NULL, 0x02, windowRes, rWindParam1);
SetSysWindow(winPtr);
ShowWindow(winPtr);
SelectWindow(winPtr);
SetPort(winPtr);
ndaActive = TRUE;
@ -135,7 +113,7 @@ GrafPortPtr NDAOpen(void)
}
void HandleAction(void)
void HandleRun(void)
{
}
@ -150,6 +128,11 @@ void HandleKey(EventRecord *event)
}
void HandleCursor(void)
{
}
void HandleMenu(int menuItem)
{
}
@ -157,14 +140,13 @@ void HandleMenu(int menuItem)
BOOLEAN NDAAction(EventRecord *sysEvent, int code)
{
int event;
static EventRecord localEvent;
unsigned int eventCode;
BOOLEAN result = FALSE;
switch (code) {
case runAction:
HandleAction();
HandleRun();
break;
case eventAction:
@ -189,6 +171,10 @@ BOOLEAN NDAAction(EventRecord *sysEvent, int code)
}
break;
case cursorAction:
HandleCursor();
break;
case cutAction:
case copyAction:
case pasteAction:

View File

@ -0,0 +1,17 @@
/*
* ___FILENAME___
* ___PACKAGENAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
*
*/
#ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define windowRes 1001
#endif /* defined(_GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____) */

View File

@ -12,12 +12,26 @@
#include "___FILEBASENAME___.h"
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
resource rWindParam1 (windowRes) {
$C0A5, /* wFrameBits */
nil, /* wTitle */
0, /* wRefCon */
{0,0,0,0}, /* ZoomRect */
linedColors, /* wColor ID */
$07FF0001, /* wColor ID */
{0,0}, /* Origin */
{0,0}, /* data size */
{0,0}, /* max height-width */
@ -32,10 +46,3 @@ resource rWindParam1 (windowRes) {
};
resource rWindColor (linedColors) {
0x0000, /* frameColor */
0x0F00, /* titleColor */
0x020F, /* tbarColor */
0xF0F0, /* growColor */
0x00F0, /* infoColor */
};

View File

@ -7,12 +7,12 @@
<string>main.c</string>
<string>Makefile</string>
<string>make/head.mk</string>
<string>make/orca-asm</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-macgen</string>
<string>make/orca-rez</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -28,6 +28,13 @@
<key>Path</key>
<string>make/head.mk</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
@ -42,13 +49,6 @@
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-macgen</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-macgen</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
@ -124,49 +124,64 @@
<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>inline(X,Y)=""
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</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>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -57,7 +57,7 @@
</MacroExpansion>
<CommandLineArguments>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___/___PACKAGENAME___"
argument = "$TARGET_BUILD_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>

View File

@ -0,0 +1,261 @@
<?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>main.s</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.s</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-asm</string>
</dict>
<key>make/orca-cc</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsOrcaMCDA</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 IIgs ORCA/M code project to build a classic desk accessory. The project starts with a single assembly file which you can modify. You can also add more assembly or C files as you may like.</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,85 @@
;
; ___FILENAME___
; ___PROJECTNAME___
;
; Created by ___FULLUSERNAME___ on ___DATE___.
;___COPYRIGHT___
;
mcopy main.macros
keep main
Main start
dw '___PROJECTNAME___'
dc i4'startCda'
dc i4'shutdownCda'
end
startCda start
using CDAData
phb
phk
plb
pha ; Save the old text tool state to the stack
pha
pha
~GetInputDevice
pha
pha
~GetInGlobals
pha
pha
pha
~GetOutputDevice
pha
pha
~GetOutGlobals
~SetInputDevice #0,#3 ; Setup input and output device to the console
~SetInGlobals #$7f,#$00
~SetOutputDevice #0,#3
~SetOutGlobals #$ff,#$80
~InitTextDev #0
~InitTextDev #1
~WriteChar #$0c
~WriteCString #message
pha
~ReadChar #0
pla
~SetOutGlobals *,* ; Restore the old text tool state from the stack
~SetOutputDevice *,*
~SetInGlobals *,*
~SetInputDevice *,*
~InitTextDev #0
~InitTextDev #1
plb
rtl
shutdownCda entry
rtl
end
CDAData data
message dc c'Hello, world!'
dc i1'$0d'
dc i1'$0d'
dc c' Press ENTER to quit...'
dc i1'$00'
end

View File

@ -4,33 +4,29 @@
<dict>
<key>Nodes</key>
<array>
<string>main.c</string>
<string>main.h</string>
<string>main.s</string>
<string>main.rez</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/orca-asm</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-macgen</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.c</key>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.c</string>
</dict>
<key>main.h</key>
<dict>
<key>Path</key>
<string>main.h</string>
<string>main.s</string>
</dict>
<key>main.rez</key>
<dict>
@ -65,6 +61,13 @@
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
@ -79,13 +82,6 @@
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-macgen</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-macgen</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
@ -100,6 +96,20 @@
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
@ -111,7 +121,7 @@
<dict>
<key>Path</key>
<string>Makefile</string>
</dict>
</dict>
<key>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</key>
<dict>
<key>Group</key>
@ -125,7 +135,7 @@
<key>Kind</key>
<string>Xcode.Xcode3.ProjectTemplateUnitKind</string>
<key>Identifier</key>
<string>com.halcyontouch.apple2gsCDesktopApp</string>
<string>com.halcyontouch.apple2gsOrcaMCDev</string>
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.externalBuildSystem</string>
@ -133,7 +143,7 @@
<key>Concrete</key>
<true/>
<key>Description</key>
<string>This template creates an Apple IIgs C code project to build desktop application. The project starts with a single C file which you can modify. You can also add more assembly or C files as you may like.</string>
<string>This template creates an Apple IIgs ORCA/M code project to build a control panel. The project starts with a single assembly file which you can modify. You can also add more assembly or C files as you may like.</string>
<key>Options</key>
<array/>
<key>Targets</key>
@ -168,49 +178,90 @@
<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>inline(X,Y)=""
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</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>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,147 @@
/*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*/
#include "types.rez"
#define CDEV_RESOURCE 0x1
#define MAIN_RESOURCE 0x100
#define HELP_RESOURCE 0x101
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
/* This is the required resource to tell the control panel about the CDev */
resource rCDEVFlags (CDEV_RESOURCE) {
0x00C0, /* This sets the wantCreate and wantAbout bits */
/* Set more bits if you want other messages */
1,
1,
1,
0,
{0, 0, 110, 200},
"___PROJECTNAME___",
"___FULLUSERNAME___",
"0.1"
};
/* Code resource; the executable part of the CDev */
read rCDevCode (CDEV_RESOURCE,convert) BINTARGET;
/* This is the icon displayed by the control panel */
resource rIcon (CDEV_RESOURCE) {
0x8000, /* color icon */
20, /* height in pixels */
28, /* width in pixels */
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FF888888888888888888888888FF"
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFF",
$"0000000000000000000000000000"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"00FFFFFFFFFFFFFFFFFFFFFFFF00"
$"0000000000000000000000000000"
};
/* The following resources define the various controls in the main display */
resource rControlList (MAIN_RESOURCE) {
{
MAIN_RESOURCE,
};
};
resource rControlTemplate (MAIN_RESOURCE) {
0x00000001, /* control id */
{38,5,49,205}, /* control rectangle */
statTextControl {{ /* control type */
0x0000, /* flags */
0x1002, /* more flags */
0, /* ref con */
MAIN_RESOURCE, /* text reference */
13 /* text length */
}};
};
resource rTextForLETextBox2 (MAIN_RESOURCE) {
"Hello, world!"
};
/* The following resources define the controls for the help screen */
resource rControlList (HELP_RESOURCE) {
{
HELP_RESOURCE,
};
};
resource rControlTemplate (HELP_RESOURCE) {
0x00000002, /* control id */
{38,5,49,205}, /* control rectangle */
statTextControl {{ /* control type */
0x0000, /* flags */
0x1002, /* more flags */
0, /* ref con */
HELP_RESOURCE, /* text reference */
19 /* text length */
}};
};
resource rTextForLETextBox2 (HELP_RESOURCE) {
"Put help info here."
};

View File

@ -0,0 +1,213 @@
;
; ___FILENAME___
; ___PACKAGENAME___
;
; Created by ___FULLUSERNAME___ on ___DATE___.
; Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
;
mcopy main.macros
keep main
; Resource numbers
cdevResource gequ $1
mainResource gequ $100
helpResource gequ $101
; CDEV Message Numbers
machineCDev gequ 1
bootCDev gequ 2
reservedCDev gequ 3
initCDev gequ 4
closeCDev gequ 5
eventsCDev gequ 6
createCDev gequ 7
aboutCDev gequ 8
rectCDev gequ 9
hitCDev gequ 10
runCDev gequ 11
editCDev gequ 12
; Edit menu actions
undoAction gequ 5
cutAction gequ 6
copyAction gequ 7
pasteAction gequ 8
clearAction gequ 9
main start
sub (2:message,4:data1,4:data2),0
lda message
cmp #machineCDev
bne notMachine
; Return zero if you cannot be opened on this machine
; (and maybe display an alert explaining why).
ret 2:#1
notMachine anop
cmp #bootCDev
bne notBoot
jsl doBoot
bra done
notBoot anop
cmp #initCDev
bne notInit
jsl doInit
bra done
notInit anop
cmp #closeCDev
bne notClose
jsl doClose
bra done
notClose anop
cmp #eventsCDev
bne notEvents
jsl doEvents
bra done
notEvents anop
cmp #createCDev
bne notCreate
jsl doCreate
bra done
notCreate anop
cmp #aboutCDev
bne notAbout
jsl doAbout
bra done
notAbout anop
cmp #rectCDev
bne notRect
jsl doRect
bra done
notRect anop
cmp #hitCDev
bne notHit
jsl doHit
bra done
notHit anop
cmp #runCDev
bne notRun
jsl doRun
bra done
notRun anop
cmp #editCDev
bne notEdit
jsl doEdit
bra done
notEdit anop
done anop
ret 2:#1
doBoot entry
; data1 is a pointer to a flag. Set bit 0 to 1 in this flag if you want to
; draw an X through the icon at boot time to indicate that this CDev will not
; load.
rtl
doInit entry
; data1 is a pointer to the grafport.
rtl
doClose entry
; data1 is a pointer to the grafport.
rtl
doEvents entry
; data1 is a pointer to the event record.
; data2 is a pointer to the grafport.
rtl
doCreate entry
; data1 is a pointer to the grafport.
pha
pha
~NewControl2 data1,#9,#mainResource
pla
pla
rtl
doAbout entry
; data1 is a pointer to the grafport.
pha
pha
~NewControl2 data1,#9,#helpResource
pla
pla
rtl
doRect entry
; data1 is a pointer to the grafport.
rtl
doHit entry
; data1 is a handle to the control which was hit
; data2 is the controlID of the control which was hit
rtl
doRun entry
; data1 is a pointer to the grafport.
rtl
doEdit entry
; The lower 16 bits of data1 is the edit action
; data2 is a pointer to the grafport.
lda data1
cmp #undoAction
bne notUndo
; Handle undo here
bra doneEdit
notUndo anop
cmp #cutAction
bne notCut
; Handle cut here
bra doneEdit
notCut anop
cmp #copyAction
bne notCopy
; Handle copy here
bra doneEdit
notCopy anop
cmp #pasteAction
bne notPaste
; Handle paste here
bra doneEdit
notPaste anop
cmp #clearAction
bne notClear
; handle clear here
bra doneEdit
notClear anop
doneEdit anop
rtl
end

View File

@ -0,0 +1,285 @@
<?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>main.s</string>
<string>main.rez</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.s</string>
</dict>
<key>main.rez</key>
<dict>
<key>Path</key>
<string>main.rez</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-asm</string>
</dict>
<key>make/orca-cc</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsOrcaMDesktopApp</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 IIgs ORCA/M code project to build desktop application. The project starts with a single assembly file which you can modify. You can also add more assembly or C files as you may like.</string>
<key>Options</key>
<array>
<dict>
<key>Identifier</key>
<string>RESOLUTIONMODE</string>
<key>Name</key>
<string>Desktop Resolution</string>
<key>Description</key>
<string>Specify 640x200 or 320x200 resolution desktop enviroment.</string>
<key>Type</key>
<string>popup</string>
<key>Default</key>
<string>640</string>
<key>Values</key>
<array>
<string>640</string>
<string>320</string>
</array>
</dict>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -0,0 +1,110 @@
<?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 = "&quot;$PROJECT_DIR/___PACKAGENAME___&quot;"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,292 @@
/*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*/
#include "types.rez"
#define menuBar 1
#define appleMenu 3
#define fileMenu 4
#define editMenu 5
#define editUndo 250
#define editCut 251
#define editCopy 252
#define editPaste 253
#define editClear 254
#define fileNew 401
#define fileOpen 402
#define fileClose 255
#define fileQuit 256
#define appleAbout 301
#define aboutAlertString 1
#define windowRes 1001
#define toolStartup 1
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
resource rMenuBar (menuBar) {
{
appleMenu,
fileMenu,
editMenu
};
};
resource rMenu (appleMenu) {
appleMenu,
refIsResource * menuTitleRefShift
+ refIsResource * itemRefShift
+ fAllowCache,
appleMenu,
{
appleAbout
};
};
resource rMenu (fileMenu) {
fileMenu,
refIsResource * menuTitleRefShift
+ refIsResource * itemRefShift
+ fAllowCache,
fileMenu,
{
fileNew,
fileOpen,
fileClose,
fileQuit
};
};
resource rMenu (editMenu) {
editMenu,
refIsResource * menuTitleRefShift
+ refIsResource * itemRefShift
+ fAllowCache,
editMenu,
{
editUndo,
editCut,
editCopy,
editPaste,
editClear
};
};
resource rMenuItem (editUndo) {
editUndo,
"Z", "z",
0,
refIsResource * itemTitleRefShift
+ fDivider,
editUndo
};
resource rMenuItem (editCut) {
editCut,
"X", "x",
0,
refIsResource * itemTitleRefShift,
editCut
};
resource rMenuItem (editCopy) {
editCopy,
"C", "c",
0,
refIsResource * itemTitleRefShift,
editCopy
};
resource rMenuItem (editPaste) {
editPaste,
"V", "v",
0,
refIsResource * itemTitleRefShift,
editPaste
};
resource rMenuItem (editClear) {
editClear,
"", "",
0,
refIsResource * itemTitleRefShift,
editClear
};
resource rMenuItem (fileNew) {
fileNew,
"N", "n",
0,
refIsResource * itemTitleRefShift,
fileNew
};
resource rMenuItem (fileOpen) {
fileOpen,
"O", "o",
0,
refIsResource * itemTitleRefShift
+ fDivider,
fileOpen
};
resource rMenuItem (fileClose) {
fileClose,
"W", "w",
0,
refIsResource * itemTitleRefShift
+ fDivider,
fileClose
};
resource rMenuItem (fileQuit) {
fileQuit,
"Q", "q",
0,
refIsResource * itemTitleRefShift,
fileQuit
};
resource rMenuItem (appleAbout) {
appleAbout,
"", "",
0,
refIsResource * itemTitleRefShift
+ fDivider,
appleAbout
};
resource rPString (appleMenu, noCrossBank) {"@"};
resource rPString (fileMenu, noCrossBank) {" File "};
resource rPString (editMenu, noCrossBank) {" Edit "};
resource rPString (editUndo, noCrossBank) {"Undo"};
resource rPString (editCut, noCrossBank) {"Cut"};
resource rPString (editCopy, noCrossBank) {"Copy"};
resource rPString (editPaste, noCrossBank) {"Paste"};
resource rPString (editClear, noCrossBank) {"Clear"};
resource rPString (fileNew, noCrossBank) {"New"};
resource rPString (fileOpen, noCrossBank) {"Open"};
resource rPString (fileClose, noCrossBank) {"Close"};
resource rPString (fileQuit, noCrossBank) {"Quit"};
resource rPString (appleAbout, noCrossBank) {"About ___PROJECTNAME___..."};
resource rAlertString (aboutAlertString) {
"0" /* Custom size */
#if DESKTOP_RES_MODE == 320
"\$38\$00" /* Upper Y coordinate at 56 */
"\$10\$00" /* Left X coordinate at 16 */
"\$90\$00" /* Lower Y coorinate at 144 */
"\$30\$01" /* Right X coordinate at 304 */
#else
"\$38\$00" /* Upper Y coordinate at 56 */
"\$90\$00" /* Left X coordinate at 144 */
"\$90\$00" /* Lower Y coorinate at 144 */
"\$F0\$01" /* Right X coordinate at 496 */
#endif
"3/"
"___PROJECTNAME___\n"
" by ___FULLUSERNAME___\n"
"\n"
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___\n"
"\n"
"Contains libraries from ORCAM,\n"
"Copyright \$A9 1991, Byte Works Inc."
"/^#0\$00";
};
resource rWindParam1 (windowRes) {
$DDA5, /* wFrameBits */
nil, /* wTitle */
0, /* wRefCon */
{0, 0, 0, 0}, /* ZoomRect */
$07FF0001, /* wColor ID */
{0, 0}, /* Origin */
{1, 1}, /* data size */
{0, 0}, /* max height-width */
{8, 8}, /* scroll ver hors */
{0, 0}, /* page ver horiz */
0, /* winfoRefCon */
10, /* wInfoHeight */
#if DESKTOP_RES_MODE == 320
{30, 10, 183, 300}, /* wposition */
#else
{30, 10, 183, 602}, /* wposition */
#endif
infront, /* wPlane */
nil, /* wStorage */
$0800 /* wInVerb */
};
resource rToolStartup (toolStartup) {
#if DESKTOP_RES_MODE == 320
mode320,
#else
mode640,
#endif
{
3,$0100, /* Misc Tool */
4,$0100, /* Quickdraw */
5,$0100, /* Desk Manager */
6,$0100, /* Event Manager */
11,$0100, /* Int Math */
14,$0300, /* Window Manager */
15,$0300, /* Menu Manager */
16,$0300, /* Control Manager */
18,$0200, /* QD Aux */
19,$0100, /* Print Manager */
20,$0100, /* LineEdit Tool */
21,$0100, /* Dialog Manager */
22,$0100, /* Scrap Manager */
23,$0100, /* Standard File */
27,$0100, /* Font Manager */
28,$0100, /* List Manager */
30,$0100, /* Resource Manager */
34,$0100 /* TextEdit */
}
};

View File

@ -0,0 +1,258 @@
;
; ___FILENAME___
; ___PACKAGENAME___
;
; Created by ___FULLUSERNAME___ on ___DATE___.
; Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
;
mcopy main.macros
keep main
menuBar gequ 1
appleMenu gequ 3
fileMenu gequ 4
editMenu gequ 5
editUndo gequ 250
editCut gequ 251
editCopy gequ 252
editPaste gequ 253
editClear gequ 254
fileNew gequ 401
fileOpen gequ 402
fileClose gequ 255
fileQuit gequ 256
appleAbout gequ 301
aboutAlertString gequ 1
windowRes gequ 1001
toolStartup gequ 1
refIsHandle gequ 1
refIsResource gequ 2
wInMenuBar gequ $11
wInGoAway gequ $16
wInSpecial gequ $19
main start
phb
phk
plb
pha
~MMStartUp
pl2 userid
~TLStartUp
pha
pha
lda userid
pha userid
pea refIsResource
~StartUpTools *,*,#toolStartup
pl4 toolStartupRef
jsl InitMenus
~InitCursor
loop anop
pha
~TaskMaster #$ffff,#eventRec
pla
cmp #wInMenuBar
bne notInMenuBar
jsl HandleMenu
bra loop
notInMenuBar anop
cmp #wInSpecial
bne notInSpecial
jsl HandleMenu
bra loop
notInSpecial anop
cmp #wInGoAway
bne notInGoAway
; Put the low word of the grafport pointer to close in X and the high word in Y
ldx wmTaskData
ldy wmTaskData+2
jsl CloseDocument
notInGoAway anop
bra loop
InitMenus entry
pha
pha
~NewMenuBar2 #refIsResource,#menuBar,#0
~SetSysBar *
~SetMenuBar #0
~FixAppleMenu #appleMenu
pha
~FixMenuBar
pla
~DrawMenuBar
rtl
HandleMenu entry
; The low word of the wmTaskData has the menu item number
lda wmTaskData
cmp #appleAbout
bne notAbout
jsl DoAbout
bra menuDone
notAbout anop
cmp #fileNew
bne notNew
jsl NewDocument
bra menuDone
notNew anop
cmp #fileOpen
bne notOpen
jsl NewDocument
bra menuDone
notOpen anop
cmp #fileClose
bne notClose
pha
pha
~FrontWindow
plx
ply
jsl CloseDocument
bra menuDone
notClose anop
cmp #fileQuit
bne notQuit
jsl DoQuit
bra menuDone
notQuit anop
cmp #editUndo
bne notUndo
; Handle undo here
bra menuDone
notUndo anop
cmp #editCut
bne notCut
; Handle cut here
bra menuDone
notCut anop
cmp #editCopy
bne notCopy
; Handle copy here
bra menuDone
notCopy anop
cmp #editPaste
bne notPaste
; Handle paste here
bra menuDone
notPaste anop
cmp #editClear
bne notClear
; Handle clear here
bra menuDone
notClear anop
menuDone anop
pea $0000
lda wmTaskData+2
pha
~HiliteMenu *,*
rtl
CloseDocument entry
; X has the low word of the grafport pointer, Y has the high word
phy
phx
~CloseWindow *
rtl
NewDocument entry
pha
pha
~NewWindow2 #winName,#0,#0,#0,#2,#windowRes,#$800E
pla
pla
rtl
DoAbout entry
pha
~AlertWindow #4,#0,#aboutAlertString
pla
rtl
DoQuit entry
~ShutDownTools #refIsHandle,toolStartupRef
~TLShutDown
~MMShutDown userid
plb
_quitGS quitDCB
rtl
; Global data
userid dc i2'0'
toolStartupRef dc i4'0'
winName dw 'MyWindow'
eventRec anop
what dc i2'0'
message dc i4'0'
when dc i4'0'
where_vert dc i2'0'
where_horiz dc i2'0'
modifiers dc i2'0'
wmTaskData dc i4'0'
wmTaskMask dc i4'$001f7fff'
wmLastClickTick dc i4'0'
wmClickCount dc i2'0'
wmTaskData2 dc i4'0'
wmTaskData3 dc i4'0'
wmTaskData4 dc i4'0'
wmLastClickPt_vert dc i2'0'
wmLastClickPt_horiz dc i2'0'
; Used by doQuit
quitDCB dc i2'0'
end

View File

@ -0,0 +1,267 @@
<?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>main.s</string>
<string>main.rez</string>
<string>Makefile</string>
<string>make/config.txt</string>
<string>make/createDiskImage</string>
<string>make/head.mk</string>
<string>make/launchEmulator</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-rez</string>
<string>make/system601.2mg</string>
<string>make/empty.2mg</string>
<string>make/tar</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
<key>main.s</key>
<dict>
<key>Path</key>
<string>main.s</string>
</dict>
<key>main.rez</key>
<dict>
<key>Path</key>
<string>main.rez</string>
</dict>
<key>make/config.txt</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/config.txt</string>
</dict>
<key>make/createDiskImage</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/createDiskImage</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/launchEmulator</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/launchEmulator</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-asm</string>
</dict>
<key>make/orca-cc</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-rez</string>
</dict>
<key>make/system601.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/system601.2mg</string>
</dict>
<key>make/empty.2mg</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/empty.2mg</string>
</dict>
<key>make/tar</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tar</string>
</dict>
<key>make/tail.mk</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/tail.mk</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.apple2gsOrcaMNDA</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 IIgs ORCA/M code project to build a new desktop accessory. The project starts with a single assembly file which you can modify. You can also add more assembly or C files as you may like.</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>DiskImage</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.2mg</string>
</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>Archive</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___.shk</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -64,6 +64,18 @@
argument = "$PROJECT_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">

View File

@ -0,0 +1,47 @@
/*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*/
#include "types.rez"
#define windowRes 1001
resource rVersion (1) {
{
0, /* Major version number in BCD */
1, /* Minor version number in BCD */
0, /* Bug version number in BCD */
development,/* Development phase */
0 /* Release number */
},
verUS,
"___PROJECTNAME___",
"Copyright \$A9 ___YEAR___ ___FULLUSERNAME___"
};
resource rWindParam1 (windowRes) {
$C0A5, /* wFrameBits */
nil, /* wTitle */
0, /* wRefCon */
{0,0,0,0}, /* ZoomRect */
$07FF0001, /* wColor ID */
{0,0}, /* Origin */
{0,0}, /* data size */
{0,0}, /* max height-width */
{0,0}, /* scroll ver hors */
{0,0}, /* page ver horiz */
0, /* winfoRefcon */
0, /* wInfoHeight */
{50,50,62,200}, /* wposition */
infront, /* wPlane */
nil, /* wStorage */
$0800 /* wInVerb */
};

View File

@ -0,0 +1,315 @@
;
; ___FILENAME___
; ___PACKAGENAME___
;
; Created by ___FULLUSERNAME___ on ___DATE___.
; Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
;
mcopy main.macros
keep main
windowRes gequ 1001
eventAction gequ $0001
runAction gequ $0002
cursorAction gequ $0003
undoAction gequ $0005
cutAction gequ $0006
copyAction gequ $0007
pasteAction gequ $0008
clearAction gequ $0009
updateEvt gequ $0006
wInControl gequ $0021
keyDownEvt gequ $0003
autoKeyEvt gequ $0005
main start
dc i4'NDAOpen' ; Open callback
dc i4'NDAClose' ; Close callback
dc i4'NDAAction' ; Action callback
dc i4'NDAInit' ; Init callback
dc i2'$ffff' ; Period
dc i2'$03ff' ; Event mask
dc c' ___PACKAGENAME___\\H**' ; Menu line
dc i1'0'
end
NDAOpen start
phb
phk
plb
lda ndaActive
beq doOpen
plb
rtl
doOpen anop
_getLevelGS levelDCB
lda level
sta oldLevel
stz level
_setLevelGS levelDCB
_getSysPrefsGS prefsDCB
lda prefs
sta oldPrefs
and #$1fff
ora #$8000
sta prefs
_setSysPrefsGS prefsDCB
pha
~OpenResourceFileByID #1,userId
pl2 oldResApp
pha
pha
~NewWindow2 #winName,#0,#DrawContents,#0,#2,#windowRes,#$800E
pl4 winPtr
~SetSysWindow winPtr
~ShowWindow winPtr
~SelectWindow winPtr
lda #1
sta ndaActive
lda oldPrefs
sta prefs
_setSysPrefsGS prefsDCB
lda oldLevel
sta level
_setLevelGS levelDCB
~SetCurResourceApp oldResApp
lda winPtr
sta 5,S
lda winPtr+2
sta 7,S
plb
rtl
DrawContents entry
phb
phk
plb
~PenNormal
~MoveTo #7,#10
~DrawString #messageStr
plb
rtl
NDAClose entry
phb
phk
plb
lda ndaActive
beq closeNotActive
~CloseWindow winPtr
stz winPtr
stz winPtr+2
stz ndaActive
closeNotActive anop
~ResourceShutdown
plb
rtl
NDAAction entry
phb
phk
plb
cmp #eventAction
bne notEvent
jsl HandleEvent
bra actionDone
notEvent anop
cmp #runAction
bne notRun
jsl HandleRun
bra actionDone
notRun anop
cmp #cursorAction
bne notCursor
jsl HandleCursor
bra actionDone
notCursor anop
cmp #undoAction
blt notEdit
cmp #clearAction+1
bge notEdit
jsl HandleEdit
lda #1
bra actionDone
notEdit anop
actionDone anop
plb
rtl
HandleEvent entry
; The X register has the low 16 bits of the address of the event record.
; We leave that there and use that in the memory move instruction to
; copy that event record into our local event.
;
; The Y register has the high 16 bits of the address of the event record.
; We need to get that into the upper 8 bits of the accumulator.
tya
xba
; Now we need to or in the current bank register into the lower 8 bits
; of the accumulator for the move instruction
pea $0
phb
ora 1,S
; We have the source and destination banks in the accumulator now. Modify
; the move instruction to have these banks and clean up the stack.
sta moveIns+1
plb
pla
; X is already setup for the move. We need the low 16 bits of the destination
; in the Y register and the count of bytes to copy minus one in the accumulator.
ldy #localEvent
lda #15 ; Copy 16 bytes
moveIns mvn 0,0
pha
~TaskMasterDA #0,#localEvent
pla
cmp #updateEvt
bne notUpdate
~BeginUpdate winPtr
jsl DrawContents
~EndUpdate winPtr
bra eventDone
notUpdate anop
cmp #wInControl
bne notControl
jsl HandleControl
bra eventDone
notControl anop
cmp #keyDownEvt
beq isKey
cmp #autoKeyEvt
beq isKey
eventDone anop
rtl
isKey anop
jsl HandleKey
bra eventDone
HandleControl entry
; Add code here if you need to handle controls in your NDA window
rtl
HandleKey entry
; Add code here if you need to handle keypresses
rtl
HandleRun entry
; Add code here if you need to execute something periodically from your NDA
rtl
HandleCursor entry
; Add code here if you need to do something to the cursor when over the NDA window
rtl
HandleEdit entry
; Add code here to handle undo, cut, copy, paste or clear. The A register holds
; the action code.
rtl
NDAInit entry
phb
phk
plb
cmp #$00
beq toolShutdown
stz ndaActive
pha
~MMStartUp
pla
sta userId
bra initReturn
toolShutdown anop
lda ndaActive
beq initReturn
jsl NDAClose
initReturn anop
plb
rtl
; Global data
ndaActive dc i2'0'
winPtr dc i4'0'
userId dc i2'0'
winName dw ' ___PACKAGENAME___ '
messageStr dw 'Hello, world!'
; Used by NDAOpen to access resources
oldResApp dc i2'0'
oldLevel dc i2'0'
oldPrefs dc i2'0'
levelDCB dc i2'2' ; GSOS control block to get/set level
level dc i2'0'
dc i2'0'
prefsDCB dc i2'1' ; GSOS control block to get/set preferences
prefs dc i2'0'
; Used by HandleEvent
localEvent anop
what dc i2'0'
message dc i4'0'
when dc i4'0'
where_vert dc i2'0'
where_horiz dc i2'0'
modifiers dc i2'0'
wmTaskData dc i4'0'
wmTaskMask dc i4'$001fffff'
wmLastClickTick dc i4'0'
wmClickCount dc i2'0'
wmTaskData2 dc i4'0'
wmTaskData3 dc i4'0'
wmTaskData4 dc i4'0'
wmLastClickPt_vert dc i2'0'
wmLastClickPt_horiz dc i2'0'
end

View File

@ -7,12 +7,12 @@
<string>main.s</string>
<string>Makefile</string>
<string>make/head.mk</string>
<string>make/md2teach</string>
<string>make/orca-asm</string>
<string>make/orca-cc</string>
<string>make/orca-macgen</string>
<string>make/orca-rez</string>
<string>make/tail.mk</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
<string>../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme</string>
</array>
<key>Definitions</key>
<dict>
@ -28,6 +28,13 @@
<key>Path</key>
<string>make/head.mk</string>
</dict>
<key>make/md2teach</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/md2teach</string>
</dict>
<key>make/orca-asm</key>
<dict>
<key>Group</key>
@ -42,13 +49,6 @@
<key>Path</key>
<string>make/orca-cc</string>
</dict>
<key>make/orca-macgen</key>
<dict>
<key>Group</key>
<string>make</string>
<key>Path</key>
<string>make/orca-macgen</string>
</dict>
<key>make/orca-rez</key>
<dict>
<key>Group</key>
@ -124,49 +124,64 @@
<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>inline(X,Y)=""
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</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>
</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>Binary</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>___PACKAGENAME___</string>
</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>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$TEMP_ROOT/___PACKAGENAME___.build/$CONFIGURATION/___PACKAGENAME___.build/DerivedSources
$GOLDEN_GATE/Libraries/ORCACDefs
~/Library/GoldenGate/Libraries/ORCACDefs
/Library/GoldenGate/Libraries/ORCACDefs
~/GoldenGate/Libraries/ORCACDefs</string>
</dict>
<key>BuildPhases</key>
<array>
<dict>
<key>Class</key>
<string>Sources</string>
</dict>
<dict>
<key>Class</key>
<string>Frameworks</string>
</dict>
<dict>
<key>Class</key>
<string>CopyFiles</string>
<key>DstPath</key>
<string>/usr/share/man/man1/</string>
<key>DstSubfolderSpec</key>
<string>0</string>
<key>RunOnlyForDeploymentPostprocessing</key>
<string>YES</string>
</dict>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -57,7 +57,7 @@
</MacroExpansion>
<CommandLineArguments>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___/___PACKAGENAME___"
argument = "$TARGET_BUILD_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>

View File

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

View File

@ -0,0 +1,16 @@
*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*
]XCODESTART ; Keep this at the start and put your code after this
* Put your code here. We need these markers to convince Xcode to indent
* properly. If you delete them or put your code outside the markers, your
* build will work but the Xcode editor will be annoying.
]XCODEEND ; Keep this at the end and put your code above this

View File

@ -6,9 +6,9 @@
* ___COPYRIGHT___
*/
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */
#endif /* define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____ */

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -2,9 +2,9 @@
<!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>
<key>AllowedTypes</key>
<array>
<string>com.rand-family.xcode.orcam</string>
<string>com.rand-family.xcode.orcam</string>
</array>
<key>DefaultCompletionName</key>
<string>File</string>
@ -15,6 +15,6 @@
<key>MainTemplateFile</key>
<string>___FILEBASENAME___.s</string>
<key>Summary</key>
<string>An assembly source file</string>
<string>An ORCA/M assembly source file</string>
</dict>
</plist>

Some files were not shown because too many files have changed in this diff Show More