Clean up the ORCA/C cdev template. Add an ORCA/M cdev template.

This commit is contained in:
Jeremy Rand 2018-08-03 00:26:04 -04:00
parent 6b56c7d818
commit 844bb6fe44
6 changed files with 657 additions and 2 deletions

View File

@ -40,7 +40,7 @@
long doMachine(void) 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). * (and maybe display an alert explaining why).
*/ */
return 1; return 1;
@ -49,7 +49,7 @@ long doMachine(void)
void doBoot(int *flag) 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 * the icon at boot time to indicate that this CDev will not
* load. * load.
*/ */

View File

@ -0,0 +1,210 @@
<?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.apple2gsOrcaMCDev</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 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>
<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)=""
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,133 @@
/*
* ___FILENAME___
* ___PROJECTNAME___
*
* Created by ___FULLUSERNAME___ on ___DATE___.
* ___COPYRIGHT___
*/
#include "types.rez"
#define CDEV_RESOURCE 0x1
#define MAIN_RESOURCE 0x100
#define HELP_RESOURCE 0x101
/* 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___",
"1.0"
};
/* Code resource; the executable part of the CDev */
read rCDevCode (CDEV_RESOURCE,convert) "___PROJECTNAME___.bin";
/* 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

@ -12,6 +12,7 @@ cat > $PROJECTS << EOF
cda:orca:ORCAC Classic Desk Accessory cda:orca:ORCAC Classic Desk Accessory
cda:orca:ORCAM Classic Desk Accessory cda:orca:ORCAM Classic Desk Accessory
cdev:orca:ORCAC Control Panel cdev:orca:ORCAC Control Panel
cdev:orca:ORCAM Control Panel
desktop:orca:ORCAC Desktop Application desktop:orca:ORCAC 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