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.

This commit is contained in:
Jeremy Rand 2018-08-06 00:23:01 -04:00
parent 844bb6fe44
commit 503671561a
23 changed files with 943 additions and 53 deletions

View File

@ -170,6 +170,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -182,6 +182,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -7,8 +7,8 @@
* *
*/ */
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define CDEV_RESOURCE 0x1 #define CDEV_RESOURCE 0x1
@ -16,4 +16,4 @@
#define HELP_RESOURCE 0x101 #define HELP_RESOURCE 0x101
#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */ #endif /* defined(_GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____) */

View File

@ -182,6 +182,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -8,7 +8,8 @@
*/ */
#include <orca.h> #include <Memory.h>
#include <Locator.h>
#include <Event.h> #include <Event.h>
#include <Menu.h> #include <Menu.h>
#include <QuickDraw.h> #include <QuickDraw.h>
@ -21,6 +22,7 @@
BOOLEAN done; BOOLEAN done;
EventRecord myEvent; EventRecord myEvent;
unsigned int userid;
void DoAbout(void) void DoAbout(void)
@ -99,8 +101,12 @@ void InitMenus(void)
int main(void) int main(void)
{ {
int event; int event;
Ref toolStartupRef;
userid = MMStartUp();
TLStartUp();
toolStartupRef = StartUpTools(userid, refIsResource, toolStartup);
startdesk(640);
InitMenus(); InitMenus();
InitCursor(); InitCursor();
@ -118,6 +124,9 @@ int main(void)
break; break;
} }
} }
enddesk();
ShutDownTools(refIsHandle, toolStartupRef);
TLShutDown();
MMShutDown(userid);
} }

View File

@ -7,8 +7,8 @@
* *
*/ */
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define menuBar 1 #define menuBar 1
@ -34,5 +34,7 @@
#define windowRes 1001 #define windowRes 1001
#define toolStartup 1
#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */
#endif /* defined(_GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____) */

View File

@ -187,21 +187,45 @@ resource rAlertString (aboutAlertString) {
resource rWindParam1 (windowRes) { resource rWindParam1 (windowRes) {
$DDA5, /* wFrameBits */ $DDA5, /* wFrameBits */
nil, /* wTitle */ nil, /* wTitle */
0, /* wRefCon */ 0, /* wRefCon */
{0, 0, 0, 0}, /* ZoomRect */ {0, 0, 0, 0}, /* ZoomRect */
nil, /* wColor ID */ nil, /* wColor ID */
{0, 0}, /* Origin */ {0, 0}, /* Origin */
{1, 1}, /* data size */ {1, 1}, /* data size */
{0, 0}, /* max height-width */ {0, 0}, /* max height-width */
{8, 8}, /* scroll ver hors */ {8, 8}, /* scroll ver hors */
{0, 0}, /* page ver horiz */ {0, 0}, /* page ver horiz */
0, /* winfoRefCon */ 0, /* winfoRefCon */
10, /* wInfoHeight */ 10, /* wInfoHeight */
{30, 10, 183, 602}, /* wposition */ {30, 10, 183, 602}, /* wposition */
infront, /* wPlane */ infront, /* wPlane */
nil, /* wStorage */ nil, /* wStorage */
$0000 /* wInVerb */ $0000 /* wInVerb */
}; };
resource rToolStartup (toolStartup) {
mode640,
{
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

@ -138,6 +138,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -182,6 +182,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -28,7 +28,6 @@
static BOOLEAN ndaActive; static BOOLEAN ndaActive;
static GrafPortPtr winPtr; static GrafPortPtr winPtr;
static unsigned int userId; static unsigned int userId;
static unsigned int resourceId;
void NDAClose(void) void NDAClose(void)
@ -39,7 +38,6 @@ void NDAClose(void)
ndaActive = FALSE; ndaActive = FALSE;
} }
CloseResourceFile(resourceId);
ResourceShutDown(); ResourceShutDown();
} }

View File

@ -7,8 +7,8 @@
* *
*/ */
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____ #define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define linedColors 1 #define linedColors 1
@ -16,4 +16,4 @@
#define windowRes 1001 #define windowRes 1001
#endif /* defined(_____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____) */ #endif /* defined(_GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____) */

View File

@ -138,6 +138,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -170,6 +170,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -176,6 +176,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -0,0 +1,211 @@
<?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/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/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/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-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>
<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/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/>
<key>Targets</key>
<array>
<dict>
<key>TargetType</key>
<string>Legacy</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.cocoaLegacyTarget</string>
<key>BuildToolPath</key>
<string>___VARIABLE_buildToolPath___</string>
<key>BuildToolArgsString</key>
<string>-C ___PACKAGENAME___ $(ACTION)</string>
<key>SharedSettings</key>
<dict>
<key>OTHER_CFLAGS</key>
<string></string>
<key>OTHER_LDFLAGS</key>
<string></string>
</dict>
<key>Configurations</key>
<dict>
<key>Debug</key>
<dict>
<key>DEBUGGING_SYMBOLS</key>
<string>YES</string>
<key>GCC_GENERATE_DEBUGGING_SYMBOLS</key>
<string>YES</string>
<key>GCC_OPTIMIZATION_LEVEL</key>
<string>0</string>
</dict>
<key>Release</key>
<dict/>
</dict>
</dict>
<dict>
<key>ProductType</key>
<string>com.apple.product-type.tool</string>
<key>TargetIdentifier</key>
<string>com.apple.dt.commandLineToolTarget</string>
<key>Name</key>
<string>doNotBuild</string>
<key>SharedSettings</key>
<dict>
<key>PRODUCT_NAME</key>
<string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)=""
extended=double
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>
</array>
</dict>
</plist>

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<PathRunnable
runnableDebuggingMode = "0"
FilePath = "/usr/bin/make">
</PathRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
<CommandLineArguments>
<CommandLineArgument
argument = "-C"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "$PROJECT_DIR/___PACKAGENAME___"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9D0B917C1F526C2D004D7E0B"
BuildableName = "___PACKAGENAME___"
BlueprintName = "___PACKAGENAME___"
ReferencedContainer = "container:___PACKAGENAME___.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -0,0 +1,256 @@
/*
* ___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 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) {
"43/"
"___PROJECTNAME___\n"
" by ___FULLUSERNAME___\n"
"\n"
"Contains libraries from ORCA M,\n"
"Copyright 1991, Byte Works Inc."
"/^#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 */
};
resource rToolStartup (toolStartup) {
mode640,
{
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

@ -176,6 +176,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -11,6 +11,21 @@
windowRes gequ 1001 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 main start
dc i4'NDAOpen' ; Open callback dc i4'NDAOpen' ; Open callback
dc i4'NDAClose' ; Close callback dc i4'NDAClose' ; Close callback
@ -92,7 +107,7 @@ DrawContents entry
~PenNormal ~PenNormal
~MoveTo #7,#10 ~MoveTo #7,#10
~DrawString #message ~DrawString #messageStr
plb plb
@ -113,7 +128,6 @@ NDAClose entry
stz ndaActive stz ndaActive
closeNotActive anop closeNotActive anop
~CloseResourceFile resourceId
~ResourceShutdown ~ResourceShutdown
plb plb
@ -125,27 +139,27 @@ NDAAction entry
phk phk
plb plb
cmp #1 cmp #eventAction
bne notEvent bne notEvent
jsl HandleEvent jsl HandleEvent
bra actionDone bra actionDone
notEvent anop notEvent anop
cmp #2 cmp #runAction
bne notRun bne notRun
jsl HandleRun jsl HandleRun
bra actionDone bra actionDone
notRun anop notRun anop
cmp #3 cmp #cursorAction
bne notCursor bne notCursor
jsl HandleCursor jsl HandleCursor
bra actionDone bra actionDone
notCursor anop notCursor anop
cmp #5 cmp #undoAction
blt notEdit blt notEdit
cmp #10 cmp #clearAction+1
bge notEdit bge notEdit
jsl HandleEdit jsl HandleEdit
lda #1 lda #1
@ -182,17 +196,11 @@ HandleEvent entry
lda #15 ; Copy 16 bytes lda #15 ; Copy 16 bytes
moveIns mvn 0,0 moveIns mvn 0,0
; Set the wmTaskData field to $1fffff
lda #$ffff
sta localEvent+20
lda #$001f
sta localEvent+22
pha pha
~TaskMasterDA 0,#localEvent ~TaskMasterDA 0,#localEvent
pla pla
cmp #$6 cmp #updateEvt
bne notUpdate bne notUpdate
~BeginUpdate winPtr ~BeginUpdate winPtr
jsl DrawContents jsl DrawContents
@ -200,15 +208,15 @@ moveIns mvn 0,0
bra eventDone bra eventDone
notUpdate anop notUpdate anop
cmp #$21 cmp #wInControl
bne notControl bne notControl
jsl HandleControl jsl HandleControl
bra eventDone bra eventDone
notControl anop notControl anop
cmp #$3 cmp #keyDownEvt
beq isKey beq isKey
cmp #$5 cmp #autoKeyEvt
beq isKey beq isKey
eventDone anop eventDone anop
@ -266,9 +274,8 @@ initReturn anop
ndaActive dc i2'0' ndaActive dc i2'0'
winPtr dc i4'0' winPtr dc i4'0'
userId dc i2'0' userId dc i2'0'
resourceId dc i2'0'
winName dw ' ___PACKAGENAME___ ' winName dw ' ___PACKAGENAME___ '
message dw 'Hello, world!' messageStr dw 'Hello, world!'
; Used by NDAOpen to access resources ; Used by NDAOpen to access resources
oldResApp dc i2'0' oldResApp dc i2'0'
@ -283,6 +290,22 @@ prefsDCB dc i2'1' ; GSOS control block to get/set preferences
prefs dc i2'0' prefs dc i2'0'
; Used by HandleEvent ; Used by HandleEvent
localEvent ds 46 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 end

View File

@ -138,6 +138,7 @@
<string>doNotBuild</string> <string>doNotBuild</string>
<key>GCC_PREPROCESSOR_DEFINITIONS</key> <key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)="" <string>inline(X,Y)=""
extended=double
pascal=""</string> pascal=""</string>
<key>HEADER_SEARCH_PATHS</key> <key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs <string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

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

View File

@ -14,6 +14,7 @@ cda:orca:ORCAM Classic Desk Accessory
cdev:orca:ORCAC Control Panel cdev:orca:ORCAC Control Panel
cdev:orca:ORCAM Control Panel cdev:orca:ORCAM Control Panel
desktop:orca:ORCAC Desktop Application desktop:orca:ORCAC Desktop Application
desktop:orca:ORCAM Desktop Application
shell:gno:ORCAC GNO Shell Command shell:gno:ORCAC GNO Shell Command
nda:orca:ORCAC New Desk Accessory nda:orca:ORCAC New Desk Accessory
nda:orca:ORCAM New Desk Accessory nda:orca:ORCAM New Desk Accessory