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>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

@ -182,6 +182,7 @@
<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

View File

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

View File

@ -182,6 +182,7 @@
<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

View File

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

View File

@ -7,8 +7,8 @@
*
*/
#ifndef _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#define _____PROJECTNAMEASIDENTIFIER________FILEBASENAMEASIDENTIFIER_____
#ifndef _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define _GUARD_PROJECT___PROJECTNAMEASIDENTIFIER____FILE___FILEBASENAMEASIDENTIFIER____
#define menuBar 1
@ -34,5 +34,7 @@
#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) {
$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 */
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

@ -138,6 +138,7 @@
<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

View File

@ -182,6 +182,7 @@
<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

View File

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

View File

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

View File

@ -138,6 +138,7 @@
<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

View File

@ -170,6 +170,7 @@
<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

View File

@ -176,6 +176,7 @@
<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

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>
<key>GCC_PREPROCESSOR_DEFINITIONS</key>
<string>inline(X,Y)=""
extended=double
pascal=""</string>
<key>HEADER_SEARCH_PATHS</key>
<string>$GOLDEN_GATE/Libraries/ORCACDefs

View File

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

View File

@ -138,6 +138,7 @@
<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

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 /* 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:ORCAM Control Panel
desktop:orca:ORCAC Desktop Application
desktop:orca:ORCAM Desktop Application
shell:gno:ORCAC GNO Shell Command
nda:orca:ORCAC New Desk Accessory
nda:orca:ORCAM New Desk Accessory