From 844bb6fe44a7ba1cc61416954b682667e375fdcc Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Fri, 3 Aug 2018 00:26:04 -0400 Subject: [PATCH] Clean up the ORCA/C cdev template. Add an ORCA/M cdev template. --- .../ORCAC Control Panel.xctemplate/main.c | 4 +- .../TemplateInfo.plist | 210 +++++++++++++++++ .../___PACKAGENAME___.xcscheme | 98 ++++++++ .../ORCAM Control Panel.xctemplate/main.rez | 133 +++++++++++ .../ORCAM Control Panel.xctemplate/main.s | 213 ++++++++++++++++++ pkg/createPackage | 1 + 6 files changed, 657 insertions(+), 2 deletions(-) create mode 100644 pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist create mode 100644 pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/___PACKAGENAME___.xcscheme create mode 100644 pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.rez create mode 100644 pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.s diff --git a/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/main.c b/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/main.c index 139d50a..3e96af2 100644 --- a/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/main.c +++ b/pkg/Templates/Apple IIgs/ORCAC Control Panel.xctemplate/main.c @@ -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. */ diff --git a/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist new file mode 100644 index 0000000..18699ef --- /dev/null +++ b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/TemplateInfo.plist @@ -0,0 +1,210 @@ + + + + + Nodes + + main.s + main.rez + Makefile + make/config.txt + make/createDiskImage + make/head.mk + make/launchEmulator + make/orca-asm + make/orca-cc + make/orca-macgen + make/orca-rez + make/system601.2mg + make/tail.mk + ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme + + Definitions + + main.s + + Path + main.s + + main.rez + + Path + main.rez + + make/config.txt + + Group + make + Path + make/config.txt + + make/createDiskImage + + Group + make + Path + make/createDiskImage + + make/head.mk + + Group + make + Path + make/head.mk + + make/launchEmulator + + Group + make + Path + make/launchEmulator + + make/orca-asm + + Group + make + Path + make/orca-asm + + make/orca-cc + + Group + make + Path + make/orca-cc + + make/orca-macgen + + Group + make + Path + make/orca-macgen + + make/orca-rez + + Group + make + Path + make/orca-rez + + make/system601.2mg + + Group + make + Path + make/system601.2mg + + make/tail.mk + + Group + make + Path + make/tail.mk + + Makefile + + Path + Makefile + + ../___PACKAGENAME___.xcodeproj/xcshareddata/xcschemes/___PACKAGENAME___.xcscheme + + Group + + Supporting Files + + Path + ___PACKAGENAME___.xcscheme + + + Kind + Xcode.Xcode3.ProjectTemplateUnitKind + Identifier + com.halcyontouch.apple2gsOrcaMCDev + Ancestors + + com.apple.dt.unit.externalBuildSystem + + Concrete + + Description + 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. + Options + + Targets + + + TargetType + Legacy + TargetIdentifier + com.apple.dt.cocoaLegacyTarget + BuildToolPath + ___VARIABLE_buildToolPath___ + BuildToolArgsString + -C ___PACKAGENAME___ $(ACTION) + SharedSettings + + OTHER_CFLAGS + + OTHER_LDFLAGS + + + Configurations + + Debug + + DEBUGGING_SYMBOLS + YES + GCC_GENERATE_DEBUGGING_SYMBOLS + YES + GCC_OPTIMIZATION_LEVEL + 0 + + Release + + + + + ProductType + com.apple.product-type.tool + TargetIdentifier + com.apple.dt.commandLineToolTarget + Name + doNotBuild + SharedSettings + + PRODUCT_NAME + doNotBuild + GCC_PREPROCESSOR_DEFINITIONS + inline(X,Y)="" + pascal="" + HEADER_SEARCH_PATHS + $GOLDEN_GATE/Libraries/ORCACDefs + ~/Library/GoldenGate/Libraries/ORCACDefs + /Library/GoldenGate/Libraries/ORCACDefs + ~/GoldenGate/Libraries/ORCACDefs + + BuildPhases + + + Class + Sources + + + Class + Frameworks + + + Class + CopyFiles + DstPath + /usr/share/man/man1/ + DstSubfolderSpec + 0 + RunOnlyForDeploymentPostprocessing + YES + + + + + + diff --git a/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/___PACKAGENAME___.xcscheme b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/___PACKAGENAME___.xcscheme new file mode 100644 index 0000000..61815a2 --- /dev/null +++ b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/___PACKAGENAME___.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.rez b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.rez new file mode 100644 index 0000000..0c79861 --- /dev/null +++ b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.rez @@ -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." +}; + diff --git a/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.s b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.s new file mode 100644 index 0000000..d6f379d --- /dev/null +++ b/pkg/Templates/Apple IIgs/ORCAM Control Panel.xctemplate/main.s @@ -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 diff --git a/pkg/createPackage b/pkg/createPackage index 10fc60f..50c3a9c 100755 --- a/pkg/createPackage +++ b/pkg/createPackage @@ -12,6 +12,7 @@ cat > $PROJECTS << EOF cda:orca:ORCAC Classic Desk Accessory cda:orca:ORCAM Classic Desk Accessory cdev:orca:ORCAC Control Panel +cdev:orca:ORCAM Control Panel desktop:orca:ORCAC Desktop Application shell:gno:ORCAC GNO Shell Command nda:orca:ORCAC New Desk Accessory