Compare commits
23 Commits
Author | SHA1 | Date |
---|---|---|
Jeremy Rand | c5afd07c71 | |
Jeremy Rand | e04819b4b1 | |
Jeremy Rand | c994634c64 | |
Jeremy Rand | 616cfc5f11 | |
Jeremy Rand | cbb6cfc1d9 | |
Jeremy Rand | 1801f10d12 | |
Jeremy Rand | e49487532a | |
Jeremy Rand | 46bbabc8f9 | |
Jeremy Rand | be0d47681c | |
Jeremy Rand | eaedec436d | |
Jeremy Rand | 5c12c862ee | |
Jeremy Rand | 6079fe35cb | |
Jeremy Rand | b87e282de0 | |
Jeremy Rand | 9eb08f1f94 | |
Jeremy Rand | c96d4f3a09 | |
Jeremy Rand | 3030688662 | |
Jeremy Rand | c2aa439a47 | |
Jeremy Rand | 5f26ba906d | |
Jeremy Rand | e69a032494 | |
Jeremy Rand | c5172a330d | |
Jeremy Rand | 12bdfc054f | |
Jeremy Rand | eecefbd31a | |
Jeremy Rand | 01b5651573 |
|
@ -1,6 +0,0 @@
|
|||
.*.swp
|
||||
*.o
|
||||
*.r
|
||||
*.root
|
||||
abCalc
|
||||
abCalcNDA
|
|
@ -0,0 +1,21 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2019 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.
|
91
Make.engine
91
Make.engine
|
@ -1,91 +0,0 @@
|
|||
#
|
||||
# Make.engine
|
||||
# By: Jeremy Rand
|
||||
#
|
||||
|
||||
|
||||
CALC_OBJS=abCalc.o abCStack.o abCMode.o abCError.o
|
||||
|
||||
EXPR_OBJS=expr/abCExpr.o expr/abCExpReal.o expr/abCExprInt.o
|
||||
|
||||
OPS_OBJS=ops/abCOp.o ops/abCOpAdd.o ops/abCOpSubtr.o ops/abCOpMult.o \
|
||||
ops/abCOpDiv.o ops/abCOpPower.o ops/abCOpAnd.o ops/abCOpOr.o ops/abCOpXor.o \
|
||||
ops/abCOpNot.o ops/abCOpBin.o ops/abCOpOct.o ops/abCOpDec.o ops/abCOpHex.o \
|
||||
ops/abCOpStws.o ops/abCOpRcws.o ops/abCOpSl.o ops/abCOpRl.o ops/abCOpSr.o \
|
||||
ops/abCOpRr.o ops/abCOpAsr.o ops/abCOpInv.o ops/abCOpChs.o ops/abCOpDrop.o \
|
||||
ops/abCOpSwap.o ops/abCOpSin.o ops/abCOpCos.o ops/abCOpTan.o ops/abCOpAsin.o \
|
||||
ops/abCOpAcos.o ops/abCOpAtan.o ops/abCOpSq.o ops/abCOpSqrt.o ops/abCOpPi.o \
|
||||
ops/abCOpLog.o ops/abCOpAlog.o ops/abCOpLn.o ops/abCOpExp.o ops/abCOpSinh.o \
|
||||
ops/abCOpCosh.o ops/abCOpTanh.o ops/abCOpClear.o
|
||||
|
||||
SHELL_OBJS=abCMain.o $(CALC_OBJS) $(EXPR_OBJS) $(OPS_OBJS)
|
||||
|
||||
NDA_OBJS=abCalcNDA.o $(CALC_OBJS) $(EXPR_OBJS) $(OPS_OBJS)
|
||||
NDA_RES=abCalcNDA.r
|
||||
|
||||
abCMain.o: abCalc.h abCStack.h expr/abCExpr.h ops/abCOp.h abCError.h
|
||||
abCalcNDA.o: abCalcNDA.defs abCalc.h abCStack.h abCError.h expr/abCExpr.h ops/abCOp.h
|
||||
abCalcNDA.r: abCalcNDA.defs
|
||||
|
||||
abCalc.o: abCalc.h expr/abCExpr.h abCMode.h expr/abCExpReal.h expr/abCExprInt.h \
|
||||
abCStack.h ops/abCOp.h abCError.h
|
||||
abCStack.o: expr/abCExpr.h abCStack.h abCError.h
|
||||
abCMode.o: abCMode.h expr/abCExpr.h
|
||||
abCError.o: abCError.h
|
||||
|
||||
expr/abCExpr.o: expr/abCExpr.h
|
||||
expr/abCExpReal.o: expr/abCExpr.h expr/abCExpReal.h
|
||||
expr/abCExprInt.o: expr/abCExpr.h abCMode.h expr/abCExprInt.h
|
||||
|
||||
ops/abCOp.o: ops/abCOp.h abCError.h expr/abCExpr.h abCStack.h ops/abCOpAdd.h \
|
||||
ops/abCOpSubtr.h ops/abCOpMult.h ops/abCOpDiv.h ops/abCOpPower.h \
|
||||
ops/abCOpAnd.h ops/abCOpOr.h ops/abCOpXor.h ops/abCOpNot.h ops/abCOpBin.h \
|
||||
ops/abCOpOct.h ops/abCOpDec.h ops/abCOpHex.h ops/abCOpStws.h ops/abCOpRcws.h \
|
||||
ops/abCOpSl.h ops/abCOpRl.h ops/abCOpSr.h ops/abCOpRr.h ops/abCOpAsr.h \
|
||||
ops/abCOpInv.h ops/abCOpChs.h ops/abCOpDrop.h ops/abCOpSwap.h ops/abCOpSin.h \
|
||||
ops/abCOpCos.h ops/abCOpTan.h ops/abCOpAsin.h ops/abCOpAcos.h ops/abCOpAtan.h \
|
||||
ops/abCOpSq.h ops/abCOpSqrt.h ops/abCOpPi.h ops/abCOpLog.h ops/abCOpAlog.h \
|
||||
ops/abCOpLn.h ops/abCOpExp.h ops/abCOpSinh.h ops/abCOpCosh.h ops/abCOpTanh.h \
|
||||
ops/abCOpClear.h
|
||||
ops/abCOpAdd.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExpReal.h expr/abCExprInt.h abCStack.h ops/abCOpAdd.h
|
||||
ops/abCOpSubtr.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExpReal.h expr/abCExprInt.h abCStack.h ops/abCOpSubtr.h
|
||||
ops/abCOpMult.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExpReal.h expr/abCExprInt.h abCStack.h ops/abCOpMult.h
|
||||
ops/abCOpDiv.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExpReal.h expr/abCExprInt.h abCStack.h ops/abCOpDiv.h
|
||||
ops/abCOpPower.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExpReal.h abCStack.h ops/abCOpPower.h
|
||||
ops/abCOpAnd.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExprInt.h abCStack.h ops/abCOpAnd.h
|
||||
ops/abCOpOr.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExprInt.h abCStack.h ops/abCOpOr.h
|
||||
ops/abCOpXor.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExprInt.h abCStack.h ops/abCOpXor.h
|
||||
ops/abCOpNot.o: ops/abCOp.h abCError.h expr/abCExpr.h expr/abCExprInt.h abCStack.h ops/abCOpNot.h
|
||||
ops/abCOpBin.o: ops/abCOp.h abCMode.h ops/abCOpBin.h
|
||||
ops/abCOpOct.o: ops/abCOp.h abCMode.h ops/abCOpOct.h
|
||||
ops/abCOpDec.o: ops/abCOp.h abCMode.h ops/abCOpDec.h
|
||||
ops/abCOpHex.o: ops/abCOp.h abCMode.h ops/abCOpHex.h
|
||||
ops/abCOpStws.o: ops/abCOp.h abCMode.h abCStack.h expr/abCExpr.h abCError.h ops/abCOpStws.h
|
||||
ops/abCOpRcws.o: ops/abCOp.h abCMode.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpRcws.h
|
||||
ops/abCOpSl.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExprInt.h ops/abCOpSl.h
|
||||
ops/abCOpRl.o: ops/abCOp.h abCMode.h abCError.h abCStack.h expr/abCExpr.h expr/abCExprInt.h ops/abCOpRl.h
|
||||
ops/abCOpSr.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExprInt.h ops/abCOpSr.h
|
||||
ops/abCOpRr.o: ops/abCOp.h abCMode.h abCError.h abCStack.h expr/abCExpr.h expr/abCExprInt.h ops/abCOpRr.h
|
||||
ops/abCOpAsr.o: ops/abCOp.h abCMode.h abCError.h abCStack.h expr/abCExpr.h expr/abCExprInt.h ops/abCOpAsr.h
|
||||
ops/abCOpInv.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpInv.h
|
||||
ops/abCOpChs.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpChs.h
|
||||
ops/abCOpDrop.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h ops/abCOpDrop.h
|
||||
ops/abCOpSwap.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h ops/abCOpSwap.h
|
||||
ops/abCOpSin.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpSin.h
|
||||
ops/abCOpCos.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpCos.h
|
||||
ops/abCOpTan.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpTan.h
|
||||
ops/abCOpAsin.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpAsin.h
|
||||
ops/abCOpAcos.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpAcos.h
|
||||
ops/abCOpAtan.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpAtan.h
|
||||
ops/abCOpSq.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpSq.h
|
||||
ops/abCOpSqrt.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpSqrt.h
|
||||
ops/abCOpPi.o: ops/abCOp.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpPi.h
|
||||
ops/abCOpLog.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpLog.h
|
||||
ops/abCOpAlog.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpAlog.h
|
||||
ops/abCOpLn.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpLn.h
|
||||
ops/abCOpExp.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpExp.h
|
||||
ops/abCOpSinh.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpSinh.h
|
||||
ops/abCOpCosh.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpCosh.h
|
||||
ops/abCOpTanh.o: ops/abCOp.h abCError.h abCStack.h expr/abCExpr.h expr/abCExpReal.h ops/abCOpTanh.h
|
||||
ops/abCOpClear.o: ops/abCOp.h abCStack.h ops/abCOpClear.h
|
||||
|
18
Make.mac
18
Make.mac
|
@ -1,18 +0,0 @@
|
|||
#
|
||||
# Make.mac
|
||||
# By: Jeremy Rand
|
||||
#
|
||||
|
||||
NAME=abCalc
|
||||
|
||||
CFLAGS=-I.
|
||||
|
||||
all: $(NAME)
|
||||
|
||||
include Make.engine
|
||||
|
||||
$(NAME): $(SHELL_OBJS)
|
||||
cc -o $(NAME) $(SHELL_OBJS)
|
||||
|
||||
clean:
|
||||
rm -f $(NAME) $(SHELL_OBJS)
|
50
Makefile
50
Makefile
|
@ -1,50 +0,0 @@
|
|||
#
|
||||
# Makefile
|
||||
# By: Jeremy Rand
|
||||
#
|
||||
|
||||
SHELL_NAME=abCalc
|
||||
NDA_NAME=abCalcNDA
|
||||
|
||||
all: $(SHELL_NAME) $(NDA_NAME)
|
||||
|
||||
.INCLUDE: "Make.engine"
|
||||
|
||||
CFLAGS=-D ABCALC_GSOS
|
||||
|
||||
$(SHELL_NAME): $(SHELL_OBJS)
|
||||
occ -o $(SHELL_NAME) $(SHELL_OBJS)
|
||||
|
||||
$(NDA_NAME): $(NDA_OBJS) $(NDA_NAME).r
|
||||
cp -f $(NDA_NAME).r $(NDA_NAME)
|
||||
occ -o $(NDA_NAME) $(NDA_OBJS)
|
||||
chtyp -t nda $(NDA_NAME)
|
||||
|
||||
abCalcMain.o: abCalcMain.c
|
||||
occ $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(NDA_NAME).o: $(NDA_NAME).c
|
||||
occ $(CFLAGS) -c -o $@ $<
|
||||
|
||||
clean:
|
||||
cp -p rm -f $(SHELL_NAME) $(SHELL_OBJS) $(SHELL_NAME).root
|
||||
cp -p rm -f $(NDA_NAME) $(NDA_OBJS) $(NDA_NAME).r $(NDA_NAME).root
|
||||
cp -p rm -f *.root
|
||||
cp -p rm -f expr/*.root
|
||||
cp -p rm -f ops/*.root
|
||||
|
||||
fixfiles:
|
||||
tr '\\012' '\\015' < abCalcNDA.defs > /tmp/blah
|
||||
cp -f /tmp/blah abCalcNDA.defs
|
||||
tr '\\012' '\\015' < abCalcNDA.rez > /tmp/blah
|
||||
cp -f /tmp/blah abCalcNDA.rez
|
||||
chtyp -l CC *.c *.h *.defs
|
||||
chtyp -l REZ *.rez
|
||||
chtyp -l CC expr/*.c expr/*.h
|
||||
chtyp -l CC ops/*.c ops/*.h
|
||||
|
||||
%.o: %.c
|
||||
occ $(CFLAGS) -c -o $@ $<
|
||||
|
||||
%.r: %.rez
|
||||
occ -o $@ $<
|
|
@ -0,0 +1,22 @@
|
|||
abCalc
|
||||
======
|
||||
|
||||
The "Ass-Backward Calculator" for the Apple //GS - an RPN calculator NDA
|
||||
|
||||
[Download a disk image](https://github.com/jeremysrand/abCalc/releases/download/v1.0.1/abCalc.2mg) or [download a SHK file](https://github.com/jeremysrand/abCalc/releases/download/v1.0.1/abCalc.SHK)
|
||||
|
||||
The source code is built using my [Apple //GS Build Pipeline](https://github.com/jeremysrand/Apple2GSBuildPipeline).
|
||||
If you setup all of the prerequisites on that project, you should be able to build this on a Mac
|
||||
using Xcode. Failing that, put the source onto a real or emulated GS and build it using ORCA/C.
|
||||
However, I no longer have a GS compatible Makefile. If you look in the git history, you will see that
|
||||
in the past, the build could be done using dmake under GNO/ME on a GS.
|
||||
|
||||
The abCalc binary is a shell command you can use from GNO/ME:
|
||||
|
||||
![abCalc Shell Screenshot](/abCalc/screenshots/abCalc.png "abCalc Shell Screenshot")
|
||||
|
||||
And abCalcNDA is a new desk accessory which you can use from within GS/OS applications:
|
||||
|
||||
![abCalc NDA Screenshot](/abCalc/screenshots/abCalcNDA.png "abCalc NDA Screenshot")
|
||||
|
||||
[abCalc NDA Documentation](/abCalc/abCalcHelp.md)
|
|
@ -0,0 +1,948 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
9DBFA5B12694E5DB00B9C5E0 /* nda.mk in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA5B02694E5DB00B9C5E0 /* nda.mk */; };
|
||||
9DBFA5B42694E5DB00B9C5E0 /* config.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5B32694E5DB00B9C5E0 /* config.txt */; };
|
||||
9DBFA5B62694E5DB00B9C5E0 /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5B52694E5DB00B9C5E0 /* createDiskImage */; };
|
||||
9DBFA5B82694E5DB00B9C5E0 /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5B72694E5DB00B9C5E0 /* head.mk */; };
|
||||
9DBFA5BA2694E5DB00B9C5E0 /* launchEmulator in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5B92694E5DB00B9C5E0 /* launchEmulator */; };
|
||||
9DBFA5BC2694E5DB00B9C5E0 /* md2teach in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5BB2694E5DB00B9C5E0 /* md2teach */; };
|
||||
9DBFA5BE2694E5DB00B9C5E0 /* orca-asm in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5BD2694E5DB00B9C5E0 /* orca-asm */; };
|
||||
9DBFA5C02694E5DB00B9C5E0 /* orca-cc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5BF2694E5DB00B9C5E0 /* orca-cc */; };
|
||||
9DBFA5C22694E5DB00B9C5E0 /* orca-rez in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5C12694E5DB00B9C5E0 /* orca-rez */; };
|
||||
9DBFA5C42694E5DB00B9C5E0 /* system601.2mg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5C32694E5DB00B9C5E0 /* system601.2mg */; };
|
||||
9DBFA5C62694E5DB00B9C5E0 /* empty.2mg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5C52694E5DB00B9C5E0 /* empty.2mg */; };
|
||||
9DBFA5C82694E5DB00B9C5E0 /* tar in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5C72694E5DB00B9C5E0 /* tar */; };
|
||||
9DBFA5CA2694E5DB00B9C5E0 /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5C92694E5DB00B9C5E0 /* tail.mk */; };
|
||||
9DBFA5CD2694E5DB00B9C5E0 /* abCalc.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DBFA5CC2694E5DB00B9C5E0 /* abCalc.xcscheme */; };
|
||||
9DBFA66D2694E66A00B9C5E0 /* abCalcNDA.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA5FB2694E66A00B9C5E0 /* abCalcNDA.c */; };
|
||||
9DBFA66E2694E66A00B9C5E0 /* abCOpSl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6022694E66A00B9C5E0 /* abCOpSl.c */; };
|
||||
9DBFA66F2694E66A00B9C5E0 /* abCOpNot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6052694E66A00B9C5E0 /* abCOpNot.c */; };
|
||||
9DBFA6702694E66A00B9C5E0 /* abCOpTan.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6082694E66A00B9C5E0 /* abCOpTan.c */; };
|
||||
9DBFA6712694E66A00B9C5E0 /* abCOpStws.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA60A2694E66A00B9C5E0 /* abCOpStws.c */; };
|
||||
9DBFA6722694E66A00B9C5E0 /* abCOpSwap.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA60C2694E66A00B9C5E0 /* abCOpSwap.c */; };
|
||||
9DBFA6732694E66A00B9C5E0 /* abCOpAlog.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA60E2694E66A00B9C5E0 /* abCOpAlog.c */; };
|
||||
9DBFA6742694E66A00B9C5E0 /* abCOpB2R.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6112694E66A00B9C5E0 /* abCOpB2R.c */; };
|
||||
9DBFA6752694E66A00B9C5E0 /* abCOpRcws.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6122694E66A00B9C5E0 /* abCOpRcws.c */; };
|
||||
9DBFA6762694E66A00B9C5E0 /* abCOpRl.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6152694E66A00B9C5E0 /* abCOpRl.c */; };
|
||||
9DBFA6772694E66A00B9C5E0 /* abCOpAdd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6182694E66A00B9C5E0 /* abCOpAdd.c */; };
|
||||
9DBFA6782694E66A00B9C5E0 /* abCOpPi.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA61B2694E66A00B9C5E0 /* abCOpPi.c */; };
|
||||
9DBFA6792694E66A00B9C5E0 /* abCOpTanh.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA61E2694E66A00B9C5E0 /* abCOpTanh.c */; };
|
||||
9DBFA67A2694E66A00B9C5E0 /* abCOpCosh.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6202694E66A00B9C5E0 /* abCOpCosh.c */; };
|
||||
9DBFA67B2694E66A00B9C5E0 /* abCOpSqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6232694E66A00B9C5E0 /* abCOpSqrt.c */; };
|
||||
9DBFA67C2694E66A00B9C5E0 /* abCOpChs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6242694E66A00B9C5E0 /* abCOpChs.c */; };
|
||||
9DBFA67D2694E66A00B9C5E0 /* abCOpAsin.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6252694E66A00B9C5E0 /* abCOpAsin.c */; };
|
||||
9DBFA67E2694E66A00B9C5E0 /* abCOpDec.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6262694E66A00B9C5E0 /* abCOpDec.c */; };
|
||||
9DBFA67F2694E66A00B9C5E0 /* abCOpAsr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6272694E66A00B9C5E0 /* abCOpAsr.c */; };
|
||||
9DBFA6802694E66A00B9C5E0 /* abCOpLn.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA62B2694E66A00B9C5E0 /* abCOpLn.c */; };
|
||||
9DBFA6812694E66B00B9C5E0 /* abCOpAnd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA62C2694E66A00B9C5E0 /* abCOpAnd.c */; };
|
||||
9DBFA6822694E66B00B9C5E0 /* abCOpAcos.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA62D2694E66A00B9C5E0 /* abCOpAcos.c */; };
|
||||
9DBFA6832694E66B00B9C5E0 /* abCOpOct.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA62E2694E66A00B9C5E0 /* abCOpOct.c */; };
|
||||
9DBFA6842694E66B00B9C5E0 /* abCOpRr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6302694E66A00B9C5E0 /* abCOpRr.c */; };
|
||||
9DBFA6852694E66B00B9C5E0 /* abCOpInv.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6322694E66A00B9C5E0 /* abCOpInv.c */; };
|
||||
9DBFA6862694E66B00B9C5E0 /* abCOpBin.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6342694E66A00B9C5E0 /* abCOpBin.c */; };
|
||||
9DBFA6872694E66B00B9C5E0 /* abCOpXor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6352694E66A00B9C5E0 /* abCOpXor.c */; };
|
||||
9DBFA6882694E66B00B9C5E0 /* abCOpDiv.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6362694E66A00B9C5E0 /* abCOpDiv.c */; };
|
||||
9DBFA6892694E66B00B9C5E0 /* abCOpSinh.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6382694E66A00B9C5E0 /* abCOpSinh.c */; };
|
||||
9DBFA68A2694E66B00B9C5E0 /* abCOpClear.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA63B2694E66A00B9C5E0 /* abCOpClear.c */; };
|
||||
9DBFA68B2694E66B00B9C5E0 /* abCOpOr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA63C2694E66A00B9C5E0 /* abCOpOr.c */; };
|
||||
9DBFA68C2694E66B00B9C5E0 /* abCOpR2B.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA63D2694E66A00B9C5E0 /* abCOpR2B.c */; };
|
||||
9DBFA68D2694E66B00B9C5E0 /* abCOp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA63F2694E66A00B9C5E0 /* abCOp.c */; };
|
||||
9DBFA68E2694E66B00B9C5E0 /* abCOpSubtr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6412694E66A00B9C5E0 /* abCOpSubtr.c */; };
|
||||
9DBFA68F2694E66B00B9C5E0 /* abCOpExp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6432694E66A00B9C5E0 /* abCOpExp.c */; };
|
||||
9DBFA6902694E66B00B9C5E0 /* abCOpCos.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6452694E66A00B9C5E0 /* abCOpCos.c */; };
|
||||
9DBFA6912694E66B00B9C5E0 /* abCOpDrop.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6482694E66A00B9C5E0 /* abCOpDrop.c */; };
|
||||
9DBFA6922694E66B00B9C5E0 /* abCOpSin.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6492694E66A00B9C5E0 /* abCOpSin.c */; };
|
||||
9DBFA6932694E66B00B9C5E0 /* abCOpPower.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA64A2694E66A00B9C5E0 /* abCOpPower.c */; };
|
||||
9DBFA6942694E66B00B9C5E0 /* abCOpSr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA64C2694E66A00B9C5E0 /* abCOpSr.c */; };
|
||||
9DBFA6952694E66B00B9C5E0 /* abCOpMult.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA64F2694E66A00B9C5E0 /* abCOpMult.c */; };
|
||||
9DBFA6962694E66B00B9C5E0 /* abCOpAtan.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6502694E66A00B9C5E0 /* abCOpAtan.c */; };
|
||||
9DBFA6972694E66B00B9C5E0 /* abCOpLog.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6552694E66A00B9C5E0 /* abCOpLog.c */; };
|
||||
9DBFA6982694E66B00B9C5E0 /* abCOpSq.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6562694E66A00B9C5E0 /* abCOpSq.c */; };
|
||||
9DBFA6992694E66B00B9C5E0 /* abCOpHex.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6572694E66A00B9C5E0 /* abCOpHex.c */; };
|
||||
9DBFA69A2694E66B00B9C5E0 /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA65A2694E66A00B9C5E0 /* Makefile */; };
|
||||
9DBFA69B2694E66B00B9C5E0 /* abCMain.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA65C2694E66A00B9C5E0 /* abCMain.c */; };
|
||||
9DBFA69C2694E66B00B9C5E0 /* abCExprInt.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA65F2694E66A00B9C5E0 /* abCExprInt.c */; };
|
||||
9DBFA69D2694E66B00B9C5E0 /* abCExpReal.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6612694E66A00B9C5E0 /* abCExpReal.c */; };
|
||||
9DBFA69E2694E66B00B9C5E0 /* abCExpr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6632694E66A00B9C5E0 /* abCExpr.c */; };
|
||||
9DBFA69F2694E66B00B9C5E0 /* abCalc.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6662694E66A00B9C5E0 /* abCalc.c */; };
|
||||
9DBFA6A02694E66B00B9C5E0 /* abCError.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6672694E66A00B9C5E0 /* abCError.c */; };
|
||||
9DBFA6A12694E66B00B9C5E0 /* abCStack.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA6682694E66A00B9C5E0 /* abCStack.c */; };
|
||||
9DBFA6A22694E66B00B9C5E0 /* abCMode.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DBFA66C2694E66A00B9C5E0 /* abCMode.c */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
9DBFA5A72694E5DB00B9C5E0 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = /usr/share/man/man1/;
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
9DBFA5BC2694E5DB00B9C5E0 /* md2teach in CopyFiles */,
|
||||
9DBFA5C22694E5DB00B9C5E0 /* orca-rez in CopyFiles */,
|
||||
9DBFA5CA2694E5DB00B9C5E0 /* tail.mk in CopyFiles */,
|
||||
9DBFA5CD2694E5DB00B9C5E0 /* abCalc.xcscheme in CopyFiles */,
|
||||
9DBFA5BA2694E5DB00B9C5E0 /* launchEmulator in CopyFiles */,
|
||||
9DBFA5C62694E5DB00B9C5E0 /* empty.2mg in CopyFiles */,
|
||||
9DBFA5BE2694E5DB00B9C5E0 /* orca-asm in CopyFiles */,
|
||||
9DBFA5B62694E5DB00B9C5E0 /* createDiskImage in CopyFiles */,
|
||||
9DBFA5C82694E5DB00B9C5E0 /* tar in CopyFiles */,
|
||||
9DBFA5B42694E5DB00B9C5E0 /* config.txt in CopyFiles */,
|
||||
9DBFA5B82694E5DB00B9C5E0 /* head.mk in CopyFiles */,
|
||||
9DBFA5C02694E5DB00B9C5E0 /* orca-cc in CopyFiles */,
|
||||
9DBFA5C42694E5DB00B9C5E0 /* system601.2mg in CopyFiles */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
9DBFA59F2694E5DB00B9C5E0 /* abCalc */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = abCalc; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9DBFA5A22694E5DB00B9C5E0 /* abCalc.2mg */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = abCalc.2mg; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9DBFA5A42694E5DB00B9C5E0 /* abCalc.shk */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = abCalc.shk; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9DBFA5A92694E5DB00B9C5E0 /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9DBFA5B02694E5DB00B9C5E0 /* nda.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = nda.mk; sourceTree = "<group>"; };
|
||||
9DBFA5B32694E5DB00B9C5E0 /* config.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = config.txt; sourceTree = "<group>"; };
|
||||
9DBFA5B52694E5DB00B9C5E0 /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = createDiskImage; sourceTree = "<group>"; };
|
||||
9DBFA5B72694E5DB00B9C5E0 /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = head.mk; sourceTree = "<group>"; };
|
||||
9DBFA5B92694E5DB00B9C5E0 /* launchEmulator */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = launchEmulator; sourceTree = "<group>"; };
|
||||
9DBFA5BB2694E5DB00B9C5E0 /* md2teach */ = {isa = PBXFileReference; lastKnownFileType = file; path = md2teach; sourceTree = "<group>"; };
|
||||
9DBFA5BD2694E5DB00B9C5E0 /* orca-asm */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-asm"; sourceTree = "<group>"; };
|
||||
9DBFA5BF2694E5DB00B9C5E0 /* orca-cc */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-cc"; sourceTree = "<group>"; };
|
||||
9DBFA5C12694E5DB00B9C5E0 /* orca-rez */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-rez"; sourceTree = "<group>"; };
|
||||
9DBFA5C32694E5DB00B9C5E0 /* system601.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = system601.2mg; sourceTree = "<group>"; };
|
||||
9DBFA5C52694E5DB00B9C5E0 /* empty.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = empty.2mg; sourceTree = "<group>"; };
|
||||
9DBFA5C72694E5DB00B9C5E0 /* tar */ = {isa = PBXFileReference; lastKnownFileType = file; path = tar; sourceTree = "<group>"; };
|
||||
9DBFA5C92694E5DB00B9C5E0 /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = tail.mk; sourceTree = "<group>"; };
|
||||
9DBFA5CC2694E5DB00B9C5E0 /* abCalc.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = abCalc.xcscheme; path = ../../abCalc.xcodeproj/xcshareddata/xcschemes/abCalc.xcscheme; sourceTree = "<group>"; };
|
||||
9DBFA5EA2694E5FF00B9C5E0 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||
9DBFA5EB2694E5FF00B9C5E0 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
|
||||
9DBFA5F42694E64E00B9C5E0 /* shell.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = shell.mk; sourceTree = "<group>"; };
|
||||
9DBFA5FA2694E66A00B9C5E0 /* abCalcNDA.rez */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = abCalcNDA.rez; sourceTree = "<group>"; };
|
||||
9DBFA5FB2694E66A00B9C5E0 /* abCalcNDA.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCalcNDA.c; sourceTree = "<group>"; };
|
||||
9DBFA5FC2694E66A00B9C5E0 /* abCalcNDA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCalcNDA.h; sourceTree = "<group>"; };
|
||||
9DBFA5FD2694E66A00B9C5E0 /* abCStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCStack.h; sourceTree = "<group>"; };
|
||||
9DBFA5FF2694E66A00B9C5E0 /* abCalcHelp.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = abCalcHelp.md; sourceTree = "<group>"; };
|
||||
9DBFA6002694E66A00B9C5E0 /* abCError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCError.h; sourceTree = "<group>"; };
|
||||
9DBFA6022694E66A00B9C5E0 /* abCOpSl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSl.c; sourceTree = "<group>"; };
|
||||
9DBFA6032694E66A00B9C5E0 /* abCOpDiv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpDiv.h; sourceTree = "<group>"; };
|
||||
9DBFA6042694E66A00B9C5E0 /* abCOpXor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpXor.h; sourceTree = "<group>"; };
|
||||
9DBFA6052694E66A00B9C5E0 /* abCOpNot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpNot.c; sourceTree = "<group>"; };
|
||||
9DBFA6062694E66A00B9C5E0 /* abCOpSinh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSinh.h; sourceTree = "<group>"; };
|
||||
9DBFA6072694E66A00B9C5E0 /* abCOpInv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpInv.h; sourceTree = "<group>"; };
|
||||
9DBFA6082694E66A00B9C5E0 /* abCOpTan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpTan.c; sourceTree = "<group>"; };
|
||||
9DBFA6092694E66A00B9C5E0 /* abCOpBin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpBin.h; sourceTree = "<group>"; };
|
||||
9DBFA60A2694E66A00B9C5E0 /* abCOpStws.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpStws.c; sourceTree = "<group>"; };
|
||||
9DBFA60B2694E66A00B9C5E0 /* abCOpRr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpRr.h; sourceTree = "<group>"; };
|
||||
9DBFA60C2694E66A00B9C5E0 /* abCOpSwap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSwap.c; sourceTree = "<group>"; };
|
||||
9DBFA60D2694E66A00B9C5E0 /* abCOpOct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpOct.h; sourceTree = "<group>"; };
|
||||
9DBFA60E2694E66A00B9C5E0 /* abCOpAlog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpAlog.c; sourceTree = "<group>"; };
|
||||
9DBFA60F2694E66A00B9C5E0 /* abCOpSr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSr.h; sourceTree = "<group>"; };
|
||||
9DBFA6102694E66A00B9C5E0 /* abCOpDrop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpDrop.h; sourceTree = "<group>"; };
|
||||
9DBFA6112694E66A00B9C5E0 /* abCOpB2R.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpB2R.c; sourceTree = "<group>"; };
|
||||
9DBFA6122694E66A00B9C5E0 /* abCOpRcws.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpRcws.c; sourceTree = "<group>"; };
|
||||
9DBFA6132694E66A00B9C5E0 /* abCOpPower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpPower.h; sourceTree = "<group>"; };
|
||||
9DBFA6142694E66A00B9C5E0 /* abCOpSin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSin.h; sourceTree = "<group>"; };
|
||||
9DBFA6152694E66A00B9C5E0 /* abCOpRl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpRl.c; sourceTree = "<group>"; };
|
||||
9DBFA6162694E66A00B9C5E0 /* abCOpCos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpCos.h; sourceTree = "<group>"; };
|
||||
9DBFA6172694E66A00B9C5E0 /* abCOpExp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpExp.h; sourceTree = "<group>"; };
|
||||
9DBFA6182694E66A00B9C5E0 /* abCOpAdd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpAdd.c; sourceTree = "<group>"; };
|
||||
9DBFA6192694E66A00B9C5E0 /* abCOpR2B.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpR2B.h; sourceTree = "<group>"; };
|
||||
9DBFA61A2694E66A00B9C5E0 /* abCOpOr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpOr.h; sourceTree = "<group>"; };
|
||||
9DBFA61B2694E66A00B9C5E0 /* abCOpPi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpPi.c; sourceTree = "<group>"; };
|
||||
9DBFA61C2694E66A00B9C5E0 /* abCOpClear.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpClear.h; sourceTree = "<group>"; };
|
||||
9DBFA61D2694E66A00B9C5E0 /* abCOpSubtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSubtr.h; sourceTree = "<group>"; };
|
||||
9DBFA61E2694E66A00B9C5E0 /* abCOpTanh.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpTanh.c; sourceTree = "<group>"; };
|
||||
9DBFA61F2694E66A00B9C5E0 /* abCOp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOp.h; sourceTree = "<group>"; };
|
||||
9DBFA6202694E66A00B9C5E0 /* abCOpCosh.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpCosh.c; sourceTree = "<group>"; };
|
||||
9DBFA6212694E66A00B9C5E0 /* abCOpAtan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpAtan.h; sourceTree = "<group>"; };
|
||||
9DBFA6222694E66A00B9C5E0 /* abCOpMult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpMult.h; sourceTree = "<group>"; };
|
||||
9DBFA6232694E66A00B9C5E0 /* abCOpSqrt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSqrt.c; sourceTree = "<group>"; };
|
||||
9DBFA6242694E66A00B9C5E0 /* abCOpChs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpChs.c; sourceTree = "<group>"; };
|
||||
9DBFA6252694E66A00B9C5E0 /* abCOpAsin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpAsin.c; sourceTree = "<group>"; };
|
||||
9DBFA6262694E66A00B9C5E0 /* abCOpDec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpDec.c; sourceTree = "<group>"; };
|
||||
9DBFA6272694E66A00B9C5E0 /* abCOpAsr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpAsr.c; sourceTree = "<group>"; };
|
||||
9DBFA6282694E66A00B9C5E0 /* abCOpHex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpHex.h; sourceTree = "<group>"; };
|
||||
9DBFA6292694E66A00B9C5E0 /* abCOpSq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSq.h; sourceTree = "<group>"; };
|
||||
9DBFA62A2694E66A00B9C5E0 /* abCOpLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpLog.h; sourceTree = "<group>"; };
|
||||
9DBFA62B2694E66A00B9C5E0 /* abCOpLn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpLn.c; sourceTree = "<group>"; };
|
||||
9DBFA62C2694E66A00B9C5E0 /* abCOpAnd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpAnd.c; sourceTree = "<group>"; };
|
||||
9DBFA62D2694E66A00B9C5E0 /* abCOpAcos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpAcos.c; sourceTree = "<group>"; };
|
||||
9DBFA62E2694E66A00B9C5E0 /* abCOpOct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpOct.c; sourceTree = "<group>"; };
|
||||
9DBFA62F2694E66A00B9C5E0 /* abCOpSwap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSwap.h; sourceTree = "<group>"; };
|
||||
9DBFA6302694E66A00B9C5E0 /* abCOpRr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpRr.c; sourceTree = "<group>"; };
|
||||
9DBFA6312694E66A00B9C5E0 /* abCOpStws.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpStws.h; sourceTree = "<group>"; };
|
||||
9DBFA6322694E66A00B9C5E0 /* abCOpInv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpInv.c; sourceTree = "<group>"; };
|
||||
9DBFA6332694E66A00B9C5E0 /* abCOpTan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpTan.h; sourceTree = "<group>"; };
|
||||
9DBFA6342694E66A00B9C5E0 /* abCOpBin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpBin.c; sourceTree = "<group>"; };
|
||||
9DBFA6352694E66A00B9C5E0 /* abCOpXor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpXor.c; sourceTree = "<group>"; };
|
||||
9DBFA6362694E66A00B9C5E0 /* abCOpDiv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpDiv.c; sourceTree = "<group>"; };
|
||||
9DBFA6372694E66A00B9C5E0 /* abCOpSl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSl.h; sourceTree = "<group>"; };
|
||||
9DBFA6382694E66A00B9C5E0 /* abCOpSinh.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSinh.c; sourceTree = "<group>"; };
|
||||
9DBFA6392694E66A00B9C5E0 /* abCOpNot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpNot.h; sourceTree = "<group>"; };
|
||||
9DBFA63A2694E66A00B9C5E0 /* abCOpPi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpPi.h; sourceTree = "<group>"; };
|
||||
9DBFA63B2694E66A00B9C5E0 /* abCOpClear.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpClear.c; sourceTree = "<group>"; };
|
||||
9DBFA63C2694E66A00B9C5E0 /* abCOpOr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpOr.c; sourceTree = "<group>"; };
|
||||
9DBFA63D2694E66A00B9C5E0 /* abCOpR2B.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpR2B.c; sourceTree = "<group>"; };
|
||||
9DBFA63E2694E66A00B9C5E0 /* abCOpCosh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpCosh.h; sourceTree = "<group>"; };
|
||||
9DBFA63F2694E66A00B9C5E0 /* abCOp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOp.c; sourceTree = "<group>"; };
|
||||
9DBFA6402694E66A00B9C5E0 /* abCOpTanh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpTanh.h; sourceTree = "<group>"; };
|
||||
9DBFA6412694E66A00B9C5E0 /* abCOpSubtr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSubtr.c; sourceTree = "<group>"; };
|
||||
9DBFA6422694E66A00B9C5E0 /* abCOpRl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpRl.h; sourceTree = "<group>"; };
|
||||
9DBFA6432694E66A00B9C5E0 /* abCOpExp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpExp.c; sourceTree = "<group>"; };
|
||||
9DBFA6442694E66A00B9C5E0 /* abCOpAdd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpAdd.h; sourceTree = "<group>"; };
|
||||
9DBFA6452694E66A00B9C5E0 /* abCOpCos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpCos.c; sourceTree = "<group>"; };
|
||||
9DBFA6462694E66A00B9C5E0 /* abCOpRcws.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpRcws.h; sourceTree = "<group>"; };
|
||||
9DBFA6472694E66A00B9C5E0 /* abCOpB2R.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpB2R.h; sourceTree = "<group>"; };
|
||||
9DBFA6482694E66A00B9C5E0 /* abCOpDrop.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpDrop.c; sourceTree = "<group>"; };
|
||||
9DBFA6492694E66A00B9C5E0 /* abCOpSin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSin.c; sourceTree = "<group>"; };
|
||||
9DBFA64A2694E66A00B9C5E0 /* abCOpPower.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpPower.c; sourceTree = "<group>"; };
|
||||
9DBFA64B2694E66A00B9C5E0 /* abCOpAlog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpAlog.h; sourceTree = "<group>"; };
|
||||
9DBFA64C2694E66A00B9C5E0 /* abCOpSr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSr.c; sourceTree = "<group>"; };
|
||||
9DBFA64D2694E66A00B9C5E0 /* abCOpChs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpChs.h; sourceTree = "<group>"; };
|
||||
9DBFA64E2694E66A00B9C5E0 /* abCOpSqrt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpSqrt.h; sourceTree = "<group>"; };
|
||||
9DBFA64F2694E66A00B9C5E0 /* abCOpMult.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpMult.c; sourceTree = "<group>"; };
|
||||
9DBFA6502694E66A00B9C5E0 /* abCOpAtan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpAtan.c; sourceTree = "<group>"; };
|
||||
9DBFA6512694E66A00B9C5E0 /* abCOpAcos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpAcos.h; sourceTree = "<group>"; };
|
||||
9DBFA6522694E66A00B9C5E0 /* abCOpAnd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpAnd.h; sourceTree = "<group>"; };
|
||||
9DBFA6532694E66A00B9C5E0 /* abCOpLn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpLn.h; sourceTree = "<group>"; };
|
||||
9DBFA6542694E66A00B9C5E0 /* abCOpAsr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpAsr.h; sourceTree = "<group>"; };
|
||||
9DBFA6552694E66A00B9C5E0 /* abCOpLog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpLog.c; sourceTree = "<group>"; };
|
||||
9DBFA6562694E66A00B9C5E0 /* abCOpSq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpSq.c; sourceTree = "<group>"; };
|
||||
9DBFA6572694E66A00B9C5E0 /* abCOpHex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCOpHex.c; sourceTree = "<group>"; };
|
||||
9DBFA6582694E66A00B9C5E0 /* abCOpDec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpDec.h; sourceTree = "<group>"; };
|
||||
9DBFA6592694E66A00B9C5E0 /* abCOpAsin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCOpAsin.h; sourceTree = "<group>"; };
|
||||
9DBFA65A2694E66A00B9C5E0 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
|
||||
9DBFA65C2694E66A00B9C5E0 /* abCMain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCMain.c; sourceTree = "<group>"; };
|
||||
9DBFA65E2694E66A00B9C5E0 /* abCExpReal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCExpReal.h; sourceTree = "<group>"; };
|
||||
9DBFA65F2694E66A00B9C5E0 /* abCExprInt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCExprInt.c; sourceTree = "<group>"; };
|
||||
9DBFA6602694E66A00B9C5E0 /* abCExpr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCExpr.h; sourceTree = "<group>"; };
|
||||
9DBFA6612694E66A00B9C5E0 /* abCExpReal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCExpReal.c; sourceTree = "<group>"; };
|
||||
9DBFA6622694E66A00B9C5E0 /* abCExprInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCExprInt.h; sourceTree = "<group>"; };
|
||||
9DBFA6632694E66A00B9C5E0 /* abCExpr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCExpr.c; sourceTree = "<group>"; };
|
||||
9DBFA6642694E66A00B9C5E0 /* abCalc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCalc.h; sourceTree = "<group>"; };
|
||||
9DBFA6652694E66A00B9C5E0 /* abCMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abCMode.h; sourceTree = "<group>"; };
|
||||
9DBFA6662694E66A00B9C5E0 /* abCalc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCalc.c; sourceTree = "<group>"; };
|
||||
9DBFA6672694E66A00B9C5E0 /* abCError.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCError.c; sourceTree = "<group>"; };
|
||||
9DBFA6682694E66A00B9C5E0 /* abCStack.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCStack.c; sourceTree = "<group>"; };
|
||||
9DBFA66A2694E66A00B9C5E0 /* abCalc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = abCalc.png; sourceTree = "<group>"; };
|
||||
9DBFA66B2694E66A00B9C5E0 /* abCalcNDA.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = abCalcNDA.png; sourceTree = "<group>"; };
|
||||
9DBFA66C2694E66A00B9C5E0 /* abCMode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abCMode.c; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
9DBFA5A62694E5DB00B9C5E0 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
9DBFA5982694E5DB00B9C5E0 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA5EB2694E5FF00B9C5E0 /* LICENSE */,
|
||||
9DBFA5EA2694E5FF00B9C5E0 /* README.md */,
|
||||
9DBFA5AA2694E5DB00B9C5E0 /* abCalc */,
|
||||
9DBFA5A02694E5DB00B9C5E0 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA5A02694E5DB00B9C5E0 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA59F2694E5DB00B9C5E0 /* abCalc */,
|
||||
9DBFA5A22694E5DB00B9C5E0 /* abCalc.2mg */,
|
||||
9DBFA5A42694E5DB00B9C5E0 /* abCalc.shk */,
|
||||
9DBFA5A92694E5DB00B9C5E0 /* doNotBuild */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA5AA2694E5DB00B9C5E0 /* abCalc */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA6662694E66A00B9C5E0 /* abCalc.c */,
|
||||
9DBFA6642694E66A00B9C5E0 /* abCalc.h */,
|
||||
9DBFA6672694E66A00B9C5E0 /* abCError.c */,
|
||||
9DBFA6002694E66A00B9C5E0 /* abCError.h */,
|
||||
9DBFA66C2694E66A00B9C5E0 /* abCMode.c */,
|
||||
9DBFA6652694E66A00B9C5E0 /* abCMode.h */,
|
||||
9DBFA6682694E66A00B9C5E0 /* abCStack.c */,
|
||||
9DBFA5FD2694E66A00B9C5E0 /* abCStack.h */,
|
||||
9DBFA5FF2694E66A00B9C5E0 /* abCalcHelp.md */,
|
||||
9DBFA65D2694E66A00B9C5E0 /* expr */,
|
||||
9DBFA65A2694E66A00B9C5E0 /* Makefile */,
|
||||
9DBFA5F92694E66A00B9C5E0 /* nda */,
|
||||
9DBFA6012694E66A00B9C5E0 /* ops */,
|
||||
9DBFA6692694E66A00B9C5E0 /* screenshots */,
|
||||
9DBFA65B2694E66A00B9C5E0 /* shell */,
|
||||
9DBFA5B02694E5DB00B9C5E0 /* nda.mk */,
|
||||
9DBFA5F42694E64E00B9C5E0 /* shell.mk */,
|
||||
9DBFA5B22694E5DB00B9C5E0 /* make */,
|
||||
9DBFA5CB2694E5DB00B9C5E0 /* Supporting Files */,
|
||||
);
|
||||
path = abCalc;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA5B22694E5DB00B9C5E0 /* make */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA5B32694E5DB00B9C5E0 /* config.txt */,
|
||||
9DBFA5B52694E5DB00B9C5E0 /* createDiskImage */,
|
||||
9DBFA5B72694E5DB00B9C5E0 /* head.mk */,
|
||||
9DBFA5B92694E5DB00B9C5E0 /* launchEmulator */,
|
||||
9DBFA5BB2694E5DB00B9C5E0 /* md2teach */,
|
||||
9DBFA5BD2694E5DB00B9C5E0 /* orca-asm */,
|
||||
9DBFA5BF2694E5DB00B9C5E0 /* orca-cc */,
|
||||
9DBFA5C12694E5DB00B9C5E0 /* orca-rez */,
|
||||
9DBFA5C32694E5DB00B9C5E0 /* system601.2mg */,
|
||||
9DBFA5C52694E5DB00B9C5E0 /* empty.2mg */,
|
||||
9DBFA5C72694E5DB00B9C5E0 /* tar */,
|
||||
9DBFA5C92694E5DB00B9C5E0 /* tail.mk */,
|
||||
);
|
||||
path = make;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA5CB2694E5DB00B9C5E0 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA5CC2694E5DB00B9C5E0 /* abCalc.xcscheme */,
|
||||
);
|
||||
path = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA5F92694E66A00B9C5E0 /* nda */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA5FA2694E66A00B9C5E0 /* abCalcNDA.rez */,
|
||||
9DBFA5FB2694E66A00B9C5E0 /* abCalcNDA.c */,
|
||||
9DBFA5FC2694E66A00B9C5E0 /* abCalcNDA.h */,
|
||||
);
|
||||
path = nda;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA6012694E66A00B9C5E0 /* ops */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA6022694E66A00B9C5E0 /* abCOpSl.c */,
|
||||
9DBFA6032694E66A00B9C5E0 /* abCOpDiv.h */,
|
||||
9DBFA6042694E66A00B9C5E0 /* abCOpXor.h */,
|
||||
9DBFA6052694E66A00B9C5E0 /* abCOpNot.c */,
|
||||
9DBFA6062694E66A00B9C5E0 /* abCOpSinh.h */,
|
||||
9DBFA6072694E66A00B9C5E0 /* abCOpInv.h */,
|
||||
9DBFA6082694E66A00B9C5E0 /* abCOpTan.c */,
|
||||
9DBFA6092694E66A00B9C5E0 /* abCOpBin.h */,
|
||||
9DBFA60A2694E66A00B9C5E0 /* abCOpStws.c */,
|
||||
9DBFA60B2694E66A00B9C5E0 /* abCOpRr.h */,
|
||||
9DBFA60C2694E66A00B9C5E0 /* abCOpSwap.c */,
|
||||
9DBFA60D2694E66A00B9C5E0 /* abCOpOct.h */,
|
||||
9DBFA60E2694E66A00B9C5E0 /* abCOpAlog.c */,
|
||||
9DBFA60F2694E66A00B9C5E0 /* abCOpSr.h */,
|
||||
9DBFA6102694E66A00B9C5E0 /* abCOpDrop.h */,
|
||||
9DBFA6112694E66A00B9C5E0 /* abCOpB2R.c */,
|
||||
9DBFA6122694E66A00B9C5E0 /* abCOpRcws.c */,
|
||||
9DBFA6132694E66A00B9C5E0 /* abCOpPower.h */,
|
||||
9DBFA6142694E66A00B9C5E0 /* abCOpSin.h */,
|
||||
9DBFA6152694E66A00B9C5E0 /* abCOpRl.c */,
|
||||
9DBFA6162694E66A00B9C5E0 /* abCOpCos.h */,
|
||||
9DBFA6172694E66A00B9C5E0 /* abCOpExp.h */,
|
||||
9DBFA6182694E66A00B9C5E0 /* abCOpAdd.c */,
|
||||
9DBFA6192694E66A00B9C5E0 /* abCOpR2B.h */,
|
||||
9DBFA61A2694E66A00B9C5E0 /* abCOpOr.h */,
|
||||
9DBFA61B2694E66A00B9C5E0 /* abCOpPi.c */,
|
||||
9DBFA61C2694E66A00B9C5E0 /* abCOpClear.h */,
|
||||
9DBFA61D2694E66A00B9C5E0 /* abCOpSubtr.h */,
|
||||
9DBFA61E2694E66A00B9C5E0 /* abCOpTanh.c */,
|
||||
9DBFA61F2694E66A00B9C5E0 /* abCOp.h */,
|
||||
9DBFA6202694E66A00B9C5E0 /* abCOpCosh.c */,
|
||||
9DBFA6212694E66A00B9C5E0 /* abCOpAtan.h */,
|
||||
9DBFA6222694E66A00B9C5E0 /* abCOpMult.h */,
|
||||
9DBFA6232694E66A00B9C5E0 /* abCOpSqrt.c */,
|
||||
9DBFA6242694E66A00B9C5E0 /* abCOpChs.c */,
|
||||
9DBFA6252694E66A00B9C5E0 /* abCOpAsin.c */,
|
||||
9DBFA6262694E66A00B9C5E0 /* abCOpDec.c */,
|
||||
9DBFA6272694E66A00B9C5E0 /* abCOpAsr.c */,
|
||||
9DBFA6282694E66A00B9C5E0 /* abCOpHex.h */,
|
||||
9DBFA6292694E66A00B9C5E0 /* abCOpSq.h */,
|
||||
9DBFA62A2694E66A00B9C5E0 /* abCOpLog.h */,
|
||||
9DBFA62B2694E66A00B9C5E0 /* abCOpLn.c */,
|
||||
9DBFA62C2694E66A00B9C5E0 /* abCOpAnd.c */,
|
||||
9DBFA62D2694E66A00B9C5E0 /* abCOpAcos.c */,
|
||||
9DBFA62E2694E66A00B9C5E0 /* abCOpOct.c */,
|
||||
9DBFA62F2694E66A00B9C5E0 /* abCOpSwap.h */,
|
||||
9DBFA6302694E66A00B9C5E0 /* abCOpRr.c */,
|
||||
9DBFA6312694E66A00B9C5E0 /* abCOpStws.h */,
|
||||
9DBFA6322694E66A00B9C5E0 /* abCOpInv.c */,
|
||||
9DBFA6332694E66A00B9C5E0 /* abCOpTan.h */,
|
||||
9DBFA6342694E66A00B9C5E0 /* abCOpBin.c */,
|
||||
9DBFA6352694E66A00B9C5E0 /* abCOpXor.c */,
|
||||
9DBFA6362694E66A00B9C5E0 /* abCOpDiv.c */,
|
||||
9DBFA6372694E66A00B9C5E0 /* abCOpSl.h */,
|
||||
9DBFA6382694E66A00B9C5E0 /* abCOpSinh.c */,
|
||||
9DBFA6392694E66A00B9C5E0 /* abCOpNot.h */,
|
||||
9DBFA63A2694E66A00B9C5E0 /* abCOpPi.h */,
|
||||
9DBFA63B2694E66A00B9C5E0 /* abCOpClear.c */,
|
||||
9DBFA63C2694E66A00B9C5E0 /* abCOpOr.c */,
|
||||
9DBFA63D2694E66A00B9C5E0 /* abCOpR2B.c */,
|
||||
9DBFA63E2694E66A00B9C5E0 /* abCOpCosh.h */,
|
||||
9DBFA63F2694E66A00B9C5E0 /* abCOp.c */,
|
||||
9DBFA6402694E66A00B9C5E0 /* abCOpTanh.h */,
|
||||
9DBFA6412694E66A00B9C5E0 /* abCOpSubtr.c */,
|
||||
9DBFA6422694E66A00B9C5E0 /* abCOpRl.h */,
|
||||
9DBFA6432694E66A00B9C5E0 /* abCOpExp.c */,
|
||||
9DBFA6442694E66A00B9C5E0 /* abCOpAdd.h */,
|
||||
9DBFA6452694E66A00B9C5E0 /* abCOpCos.c */,
|
||||
9DBFA6462694E66A00B9C5E0 /* abCOpRcws.h */,
|
||||
9DBFA6472694E66A00B9C5E0 /* abCOpB2R.h */,
|
||||
9DBFA6482694E66A00B9C5E0 /* abCOpDrop.c */,
|
||||
9DBFA6492694E66A00B9C5E0 /* abCOpSin.c */,
|
||||
9DBFA64A2694E66A00B9C5E0 /* abCOpPower.c */,
|
||||
9DBFA64B2694E66A00B9C5E0 /* abCOpAlog.h */,
|
||||
9DBFA64C2694E66A00B9C5E0 /* abCOpSr.c */,
|
||||
9DBFA64D2694E66A00B9C5E0 /* abCOpChs.h */,
|
||||
9DBFA64E2694E66A00B9C5E0 /* abCOpSqrt.h */,
|
||||
9DBFA64F2694E66A00B9C5E0 /* abCOpMult.c */,
|
||||
9DBFA6502694E66A00B9C5E0 /* abCOpAtan.c */,
|
||||
9DBFA6512694E66A00B9C5E0 /* abCOpAcos.h */,
|
||||
9DBFA6522694E66A00B9C5E0 /* abCOpAnd.h */,
|
||||
9DBFA6532694E66A00B9C5E0 /* abCOpLn.h */,
|
||||
9DBFA6542694E66A00B9C5E0 /* abCOpAsr.h */,
|
||||
9DBFA6552694E66A00B9C5E0 /* abCOpLog.c */,
|
||||
9DBFA6562694E66A00B9C5E0 /* abCOpSq.c */,
|
||||
9DBFA6572694E66A00B9C5E0 /* abCOpHex.c */,
|
||||
9DBFA6582694E66A00B9C5E0 /* abCOpDec.h */,
|
||||
9DBFA6592694E66A00B9C5E0 /* abCOpAsin.h */,
|
||||
);
|
||||
path = ops;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA65B2694E66A00B9C5E0 /* shell */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA65C2694E66A00B9C5E0 /* abCMain.c */,
|
||||
);
|
||||
path = shell;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA65D2694E66A00B9C5E0 /* expr */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA65E2694E66A00B9C5E0 /* abCExpReal.h */,
|
||||
9DBFA65F2694E66A00B9C5E0 /* abCExprInt.c */,
|
||||
9DBFA6602694E66A00B9C5E0 /* abCExpr.h */,
|
||||
9DBFA6612694E66A00B9C5E0 /* abCExpReal.c */,
|
||||
9DBFA6622694E66A00B9C5E0 /* abCExprInt.h */,
|
||||
9DBFA6632694E66A00B9C5E0 /* abCExpr.c */,
|
||||
);
|
||||
path = expr;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9DBFA6692694E66A00B9C5E0 /* screenshots */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9DBFA66A2694E66A00B9C5E0 /* abCalc.png */,
|
||||
9DBFA66B2694E66A00B9C5E0 /* abCalcNDA.png */,
|
||||
);
|
||||
path = screenshots;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXLegacyTarget section */
|
||||
9DBFA59D2694E5DB00B9C5E0 /* abCalc */ = {
|
||||
isa = PBXLegacyTarget;
|
||||
buildArgumentsString = "-C abCalc $(ACTION)";
|
||||
buildConfigurationList = 9DBFA5D02694E5DB00B9C5E0 /* Build configuration list for PBXLegacyTarget "abCalc" */;
|
||||
buildPhases = (
|
||||
);
|
||||
buildToolPath = /usr/bin/make;
|
||||
dependencies = (
|
||||
);
|
||||
name = abCalc;
|
||||
passBuildSettingsInEnvironment = 1;
|
||||
productName = abCalc;
|
||||
};
|
||||
/* End PBXLegacyTarget section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
9DBFA59E2694E5DB00B9C5E0 /* Binary */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 9DBFA5D32694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "Binary" */;
|
||||
buildPhases = (
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Binary;
|
||||
productName = Binary;
|
||||
productReference = 9DBFA59F2694E5DB00B9C5E0 /* abCalc */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
9DBFA5A12694E5DB00B9C5E0 /* DiskImage */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 9DBFA5D62694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "DiskImage" */;
|
||||
buildPhases = (
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DiskImage;
|
||||
productName = DiskImage;
|
||||
productReference = 9DBFA5A22694E5DB00B9C5E0 /* abCalc.2mg */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
9DBFA5A32694E5DB00B9C5E0 /* Archive */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 9DBFA5D92694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "Archive" */;
|
||||
buildPhases = (
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Archive;
|
||||
productName = Archive;
|
||||
productReference = 9DBFA5A42694E5DB00B9C5E0 /* abCalc.shk */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
9DBFA5A82694E5DB00B9C5E0 /* doNotBuild */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 9DBFA5DC2694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "doNotBuild" */;
|
||||
buildPhases = (
|
||||
9DBFA5A52694E5DB00B9C5E0 /* Sources */,
|
||||
9DBFA5A62694E5DB00B9C5E0 /* Frameworks */,
|
||||
9DBFA5A72694E5DB00B9C5E0 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = doNotBuild;
|
||||
productName = doNotBuild;
|
||||
productReference = 9DBFA5A92694E5DB00B9C5E0 /* doNotBuild */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
9DBFA5992694E5DB00B9C5E0 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1240;
|
||||
TargetAttributes = {
|
||||
9DBFA59D2694E5DB00B9C5E0 = {
|
||||
CreatedOnToolsVersion = 12.4;
|
||||
};
|
||||
9DBFA59E2694E5DB00B9C5E0 = {
|
||||
CreatedOnToolsVersion = 12.4;
|
||||
};
|
||||
9DBFA5A12694E5DB00B9C5E0 = {
|
||||
CreatedOnToolsVersion = 12.4;
|
||||
};
|
||||
9DBFA5A32694E5DB00B9C5E0 = {
|
||||
CreatedOnToolsVersion = 12.4;
|
||||
};
|
||||
9DBFA5A82694E5DB00B9C5E0 = {
|
||||
CreatedOnToolsVersion = 12.4;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 9DBFA59C2694E5DB00B9C5E0 /* Build configuration list for PBXProject "abCalc" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = 9DBFA5982694E5DB00B9C5E0;
|
||||
productRefGroup = 9DBFA5A02694E5DB00B9C5E0 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
9DBFA59D2694E5DB00B9C5E0 /* abCalc */,
|
||||
9DBFA59E2694E5DB00B9C5E0 /* Binary */,
|
||||
9DBFA5A12694E5DB00B9C5E0 /* DiskImage */,
|
||||
9DBFA5A32694E5DB00B9C5E0 /* Archive */,
|
||||
9DBFA5A82694E5DB00B9C5E0 /* doNotBuild */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
9DBFA5A52694E5DB00B9C5E0 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
9DBFA69D2694E66B00B9C5E0 /* abCExpReal.c in Sources */,
|
||||
9DBFA68B2694E66B00B9C5E0 /* abCOpOr.c in Sources */,
|
||||
9DBFA6842694E66B00B9C5E0 /* abCOpRr.c in Sources */,
|
||||
9DBFA6982694E66B00B9C5E0 /* abCOpSq.c in Sources */,
|
||||
9DBFA67D2694E66A00B9C5E0 /* abCOpAsin.c in Sources */,
|
||||
9DBFA6712694E66A00B9C5E0 /* abCOpStws.c in Sources */,
|
||||
9DBFA69B2694E66B00B9C5E0 /* abCMain.c in Sources */,
|
||||
9DBFA69A2694E66B00B9C5E0 /* Makefile in Sources */,
|
||||
9DBFA6802694E66A00B9C5E0 /* abCOpLn.c in Sources */,
|
||||
9DBFA6A12694E66B00B9C5E0 /* abCStack.c in Sources */,
|
||||
9DBFA67E2694E66A00B9C5E0 /* abCOpDec.c in Sources */,
|
||||
9DBFA6902694E66B00B9C5E0 /* abCOpCos.c in Sources */,
|
||||
9DBFA6702694E66A00B9C5E0 /* abCOpTan.c in Sources */,
|
||||
9DBFA6792694E66A00B9C5E0 /* abCOpTanh.c in Sources */,
|
||||
9DBFA6782694E66A00B9C5E0 /* abCOpPi.c in Sources */,
|
||||
9DBFA68C2694E66B00B9C5E0 /* abCOpR2B.c in Sources */,
|
||||
9DBFA6882694E66B00B9C5E0 /* abCOpDiv.c in Sources */,
|
||||
9DBFA6812694E66B00B9C5E0 /* abCOpAnd.c in Sources */,
|
||||
9DBFA6A02694E66B00B9C5E0 /* abCError.c in Sources */,
|
||||
9DBFA6922694E66B00B9C5E0 /* abCOpSin.c in Sources */,
|
||||
9DBFA6872694E66B00B9C5E0 /* abCOpXor.c in Sources */,
|
||||
9DBFA6912694E66B00B9C5E0 /* abCOpDrop.c in Sources */,
|
||||
9DBFA69C2694E66B00B9C5E0 /* abCExprInt.c in Sources */,
|
||||
9DBFA5B12694E5DB00B9C5E0 /* nda.mk in Sources */,
|
||||
9DBFA6942694E66B00B9C5E0 /* abCOpSr.c in Sources */,
|
||||
9DBFA66F2694E66A00B9C5E0 /* abCOpNot.c in Sources */,
|
||||
9DBFA6732694E66A00B9C5E0 /* abCOpAlog.c in Sources */,
|
||||
9DBFA66D2694E66A00B9C5E0 /* abCalcNDA.c in Sources */,
|
||||
9DBFA67F2694E66A00B9C5E0 /* abCOpAsr.c in Sources */,
|
||||
9DBFA6972694E66B00B9C5E0 /* abCOpLog.c in Sources */,
|
||||
9DBFA6742694E66A00B9C5E0 /* abCOpB2R.c in Sources */,
|
||||
9DBFA68E2694E66B00B9C5E0 /* abCOpSubtr.c in Sources */,
|
||||
9DBFA6832694E66B00B9C5E0 /* abCOpOct.c in Sources */,
|
||||
9DBFA6822694E66B00B9C5E0 /* abCOpAcos.c in Sources */,
|
||||
9DBFA6852694E66B00B9C5E0 /* abCOpInv.c in Sources */,
|
||||
9DBFA6862694E66B00B9C5E0 /* abCOpBin.c in Sources */,
|
||||
9DBFA6892694E66B00B9C5E0 /* abCOpSinh.c in Sources */,
|
||||
9DBFA68F2694E66B00B9C5E0 /* abCOpExp.c in Sources */,
|
||||
9DBFA6722694E66A00B9C5E0 /* abCOpSwap.c in Sources */,
|
||||
9DBFA6752694E66A00B9C5E0 /* abCOpRcws.c in Sources */,
|
||||
9DBFA67B2694E66A00B9C5E0 /* abCOpSqrt.c in Sources */,
|
||||
9DBFA6772694E66A00B9C5E0 /* abCOpAdd.c in Sources */,
|
||||
9DBFA67C2694E66A00B9C5E0 /* abCOpChs.c in Sources */,
|
||||
9DBFA6A22694E66B00B9C5E0 /* abCMode.c in Sources */,
|
||||
9DBFA6992694E66B00B9C5E0 /* abCOpHex.c in Sources */,
|
||||
9DBFA67A2694E66A00B9C5E0 /* abCOpCosh.c in Sources */,
|
||||
9DBFA69F2694E66B00B9C5E0 /* abCalc.c in Sources */,
|
||||
9DBFA6962694E66B00B9C5E0 /* abCOpAtan.c in Sources */,
|
||||
9DBFA66E2694E66A00B9C5E0 /* abCOpSl.c in Sources */,
|
||||
9DBFA68D2694E66B00B9C5E0 /* abCOp.c in Sources */,
|
||||
9DBFA68A2694E66B00B9C5E0 /* abCOpClear.c in Sources */,
|
||||
9DBFA6952694E66B00B9C5E0 /* abCOpMult.c in Sources */,
|
||||
9DBFA6762694E66A00B9C5E0 /* abCOpRl.c in Sources */,
|
||||
9DBFA6932694E66B00B9C5E0 /* abCOpPower.c in Sources */,
|
||||
9DBFA69E2694E66B00B9C5E0 /* abCExpr.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
9DBFA5CE2694E5DB00B9C5E0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9DBFA5CF2694E5DB00B9C5E0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
9DBFA5D12694E5DB00B9C5E0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEBUGGING_SYMBOLS = YES;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9DBFA5D22694E5DB00B9C5E0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
OTHER_CFLAGS = "";
|
||||
OTHER_LDFLAGS = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
9DBFA5D42694E5DB00B9C5E0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
PRODUCT_NAME = abCalc;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9DBFA5D52694E5DB00B9C5E0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
PRODUCT_NAME = abCalc;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
9DBFA5D72694E5DB00B9C5E0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
PRODUCT_NAME = abCalc.2mg;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9DBFA5D82694E5DB00B9C5E0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
PRODUCT_NAME = abCalc.2mg;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
9DBFA5DA2694E5DB00B9C5E0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
PRODUCT_NAME = abCalc.shk;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9DBFA5DB2694E5DB00B9C5E0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
PRODUCT_NAME = abCalc.shk;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
9DBFA5DD2694E5DB00B9C5E0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"inline(X,Y)=\"\"\n",
|
||||
"extended=double\n",
|
||||
"pascal=\"\"",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$TEMP_ROOT/abCalc.build/$CONFIGURATION/abCalc.build/DerivedSources\n",
|
||||
"$GOLDEN_GATE/Libraries/ORCACDefs\n",
|
||||
"~/Library/GoldenGate/Libraries/ORCACDefs\n",
|
||||
"/Library/GoldenGate/Libraries/ORCACDefs\n",
|
||||
"~/GoldenGate/Libraries/ORCACDefs",
|
||||
);
|
||||
PRODUCT_NAME = doNotBuild;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
9DBFA5DE2694E5DB00B9C5E0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
DEVELOPMENT_TEAM = VD9FGCW36C;
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"inline(X,Y)=\"\"\n",
|
||||
"extended=double\n",
|
||||
"pascal=\"\"",
|
||||
);
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$TEMP_ROOT/abCalc.build/$CONFIGURATION/abCalc.build/DerivedSources\n",
|
||||
"$GOLDEN_GATE/Libraries/ORCACDefs\n",
|
||||
"~/Library/GoldenGate/Libraries/ORCACDefs\n",
|
||||
"/Library/GoldenGate/Libraries/ORCACDefs\n",
|
||||
"~/GoldenGate/Libraries/ORCACDefs",
|
||||
);
|
||||
PRODUCT_NAME = doNotBuild;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
9DBFA59C2694E5DB00B9C5E0 /* Build configuration list for PBXProject "abCalc" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9DBFA5CE2694E5DB00B9C5E0 /* Debug */,
|
||||
9DBFA5CF2694E5DB00B9C5E0 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
9DBFA5D02694E5DB00B9C5E0 /* Build configuration list for PBXLegacyTarget "abCalc" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9DBFA5D12694E5DB00B9C5E0 /* Debug */,
|
||||
9DBFA5D22694E5DB00B9C5E0 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
9DBFA5D32694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "Binary" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9DBFA5D42694E5DB00B9C5E0 /* Debug */,
|
||||
9DBFA5D52694E5DB00B9C5E0 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
9DBFA5D62694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "DiskImage" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9DBFA5D72694E5DB00B9C5E0 /* Debug */,
|
||||
9DBFA5D82694E5DB00B9C5E0 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
9DBFA5D92694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "Archive" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9DBFA5DA2694E5DB00B9C5E0 /* Debug */,
|
||||
9DBFA5DB2694E5DB00B9C5E0 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
9DBFA5DC2694E5DB00B9C5E0 /* Build configuration list for PBXNativeTarget "doNotBuild" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
9DBFA5DD2694E5DB00B9C5E0 /* Debug */,
|
||||
9DBFA5DE2694E5DB00B9C5E0 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 9DBFA5992694E5DB00B9C5E0 /* Project object */;
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
BIN
abCalc.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate
generated
Normal file
BIN
abCalc.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate
generated
Normal file
Binary file not shown.
|
@ -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 = "abCalc"
|
||||
BlueprintName = "abCalc"
|
||||
ReferencedContainer = "container:abCalc.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 = "abCalc"
|
||||
BlueprintName = "abCalc"
|
||||
ReferencedContainer = "container:abCalc.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<CommandLineArguments>
|
||||
<CommandLineArgument
|
||||
argument = "-C"
|
||||
isEnabled = "YES">
|
||||
</CommandLineArgument>
|
||||
<CommandLineArgument
|
||||
argument = ""$PROJECT_DIR/abCalc""
|
||||
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 = "abCalc"
|
||||
BlueprintName = "abCalc"
|
||||
ReferencedContainer = "container:abCalc.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,34 @@
|
|||
<?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>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>Archive.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>Binary.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>DiskImage.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>4</integer>
|
||||
</dict>
|
||||
<key>abCalc.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>doNotBuild.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,21 @@
|
|||
all:
|
||||
make -f shell.mk gen
|
||||
make -f shell.mk build
|
||||
make -f nda.mk gen
|
||||
make -f nda.mk build
|
||||
|
||||
gen:
|
||||
make -f shell.mk gen
|
||||
make -f nda.mk gen
|
||||
|
||||
build:
|
||||
make -f shell.mk build
|
||||
make -f nda.mk build
|
||||
|
||||
clean:
|
||||
make -f shell.mk clean
|
||||
make -f nda.mk clean
|
||||
|
||||
execute:
|
||||
make -f nda.mk execute
|
||||
# make -f shell.mk execute
|
|
@ -75,14 +75,18 @@ abCalcExpr *abCalcStackExprAt(int depth)
|
|||
}
|
||||
|
||||
|
||||
char *abCalcStackExprStringAt(int depth, char *buffer)
|
||||
char *abCalcStackExprStringAt(int depth, char *buffer, int addPrefix)
|
||||
{
|
||||
static char tmpBuffer[AB_CALC_EXPR_STRING_MAX];
|
||||
|
||||
if (buffer == NULL)
|
||||
return NULL;
|
||||
|
||||
sprintf(buffer, "%3d: ", depth + 1);
|
||||
if (addPrefix) {
|
||||
sprintf(buffer, "%3d: ", depth + 1);
|
||||
} else {
|
||||
buffer[0] = '\0';
|
||||
}
|
||||
if (depth < gStackNumItems) {
|
||||
if (abCalcFormatExpr(&(gStack[gStackNumItems - 1 - depth]), tmpBuffer) != NULL) {
|
||||
strcat(buffer, tmpBuffer);
|
|
@ -22,7 +22,7 @@ abCalcExpr *abCalcStackExprPop(abCalcExpr *expr);
|
|||
|
||||
abCalcExpr *abCalcStackExprAt(int depth);
|
||||
|
||||
char *abCalcStackExprStringAt(int depth, char *buffer);
|
||||
char *abCalcStackExprStringAt(int depth, char *buffer, int addPrefix);
|
||||
|
||||
int abCalcStackNumItems(void);
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -34,7 +34,7 @@ abCalcExpr *abCalcExprIntParse(abCalcExpr *expr, char *buffer)
|
|||
abCalcModeIntBase base = abCalcModeGetBase();
|
||||
abCalcIntType value = 0;
|
||||
int len;
|
||||
int offset;
|
||||
int offset = 1;
|
||||
|
||||
if (buffer == NULL)
|
||||
return NULL;
|
||||
|
@ -46,12 +46,18 @@ abCalcExpr *abCalcExprIntParse(abCalcExpr *expr, char *buffer)
|
|||
if (len < 2)
|
||||
return NULL;
|
||||
|
||||
if (buffer[0] != '#')
|
||||
if (buffer[0] == '$') {
|
||||
base = abCalcModeHexBase;
|
||||
} else if ((buffer[0] == '0') &&
|
||||
(buffer[1] == 'x')) {
|
||||
base = abCalcModeHexBase;
|
||||
offset = 2;
|
||||
} else if (buffer[0] != '#')
|
||||
return NULL;
|
||||
|
||||
switch (base) {
|
||||
case abCalcModeBinBase:
|
||||
for (offset = 1; offset < len; offset++) {
|
||||
for ( ; offset < len; offset++) {
|
||||
value <<= 1;
|
||||
switch (buffer[offset]) {
|
||||
case '1':
|
||||
|
@ -68,7 +74,7 @@ abCalcExpr *abCalcExprIntParse(abCalcExpr *expr, char *buffer)
|
|||
break;
|
||||
|
||||
case abCalcModeOctBase:
|
||||
for (offset = 1; offset < len; offset++) {
|
||||
for ( ; offset < len; offset++) {
|
||||
value <<= 3;
|
||||
switch (buffer[offset]) {
|
||||
case '0':
|
||||
|
@ -89,7 +95,7 @@ abCalcExpr *abCalcExprIntParse(abCalcExpr *expr, char *buffer)
|
|||
break;
|
||||
|
||||
case abCalcModeDecBase:
|
||||
for (offset = 1; offset < len; offset++) {
|
||||
for ( ; offset < len; offset++) {
|
||||
value *= 10;
|
||||
switch (buffer[offset]) {
|
||||
case '0':
|
||||
|
@ -112,7 +118,7 @@ abCalcExpr *abCalcExprIntParse(abCalcExpr *expr, char *buffer)
|
|||
break;
|
||||
|
||||
case abCalcModeHexBase:
|
||||
for (offset = 1; offset < len; offset++) {
|
||||
for ( ; offset < len; offset++) {
|
||||
value <<= 4;
|
||||
switch (buffer[offset]) {
|
||||
case '0':
|
|
@ -0,0 +1,47 @@
|
|||
# GSport configuration file version 0.31
|
||||
|
||||
s5d1 =
|
||||
s5d2 =
|
||||
|
||||
s6d1 =
|
||||
s6d2 =
|
||||
|
||||
s7d1 =
|
||||
|
||||
g_joystick_type = 0
|
||||
g_limit_speed = 0
|
||||
|
||||
|
||||
bram1[00] = 00 00 00 01 00 00 0d 06 02 01 01 00 01 00 00 00
|
||||
bram1[10] = 00 00 07 06 02 01 01 00 00 00 0f 06 06 00 05 06
|
||||
bram1[20] = 01 00 00 00 00 00 00 01 00 00 00 00 03 02 02 02
|
||||
bram1[30] = 00 00 00 00 00 00 00 00 08 00 01 02 03 04 05 06
|
||||
bram1[40] = 07 0a 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d
|
||||
bram1[50] = 0e 0f ff ff ff ff ff ff ff 00 ff ff ff ff ff 81
|
||||
bram1[60] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[70] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[80] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[90] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[a0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[b0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[c0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[d0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[e0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
|
||||
bram1[f0] = ff ff ff ff ff ff ff ff ff ff ff ff 52 06 f8 ac
|
||||
|
||||
bram3[00] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[10] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[20] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[30] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[40] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[50] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[60] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[70] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[80] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[90] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[a0] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[b0] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[c0] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[d0] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[e0] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
bram3[f0] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
@ -0,0 +1,260 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ $# -lt 3 ]
|
||||
then
|
||||
echo USAGE: $0 diskimage bootimage file [bootdest]
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DISKIMAGE="$1"
|
||||
shift
|
||||
|
||||
DESTBOOTIMAGE="$1"
|
||||
shift
|
||||
|
||||
FILE="$1"
|
||||
shift
|
||||
|
||||
BOOTCOPYPATH="$1"
|
||||
|
||||
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"`/"abCalc.shk"
|
||||
|
||||
# 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
|
||||
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
|
||||
printErrorAndExit "Unable to find the template disk image, $TEMPLATEDISKIMAGE"
|
||||
fi
|
||||
|
||||
if [ ! -f "$TEMPLATEBOOTIMAGE" ]
|
||||
then
|
||||
printErrorAndExit "Unable to find the template boot image, $TEMPLATEBOOTIMAGE"
|
||||
fi
|
||||
|
||||
mkdir "$TMPDIR"
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
printErrorAndExit "Unable to create the mount directory."
|
||||
fi
|
||||
|
||||
mkdir "$MOUNTDIR"
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
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
|
||||
printErrorAndExit "Unable to mount the disk image."
|
||||
fi
|
||||
|
||||
cpProDOS "$FILE" "$MOUNTDIR"
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
printErrorAndExit "Unable to copy the file to the disk image."
|
||||
fi
|
||||
|
||||
# Special case for this project to copy the shell command to the distribution also.
|
||||
SHELLFILE=`echo "$FILE" | sed 's/NDA$//'`
|
||||
cpProDOS "$SHELLFILE" "$MOUNTDIR"
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
printErrorAndExit "Unable to copy the shell file to the disk image."
|
||||
fi
|
||||
|
||||
copyDirs $COPYDIRS
|
||||
|
||||
OLDDIR=`pwd`
|
||||
cd "$TMPDIR"
|
||||
$ORCA "$OLDDIR/make/tar" cf "$TMPARCHIVE" "$PROGRAM"
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
printErrorAndExit "Unable to create archive."
|
||||
fi
|
||||
cd "$OLDDIR"
|
||||
|
||||
unmount "$MOUNTDIR"
|
||||
|
||||
cp "$TMPDISKIMAGE" "$DISKIMAGE"
|
||||
if [ $? != 0 ]
|
||||
then
|
||||
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"
|
||||
rm -f "$TMPBOOTIMAGE"
|
||||
rm -f "$TMPARCHIVE"
|
||||
rm -rf "$TMPDIR"
|
||||
exit 0
|
Binary file not shown.
|
@ -0,0 +1,125 @@
|
|||
#
|
||||
# head.mk
|
||||
#
|
||||
|
||||
ORCA_HOME := $(HOME)/orca
|
||||
|
||||
ORCA_BINDIR = /usr/local/bin
|
||||
|
||||
export ORCA=$(ORCA_BINDIR)/orca
|
||||
|
||||
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
|
||||
DEFINES=
|
||||
INCLUDE_PATHS=
|
||||
|
||||
REZ=make/orca-rez
|
||||
REZFLAGS=
|
||||
|
||||
MACGEN=make/orca-macgen
|
||||
MACGENFLAGS=-P
|
||||
MACGENMACROS=13/ORCAInclude/m=
|
||||
|
||||
ASSEMBLE=make/orca-asm
|
||||
ASMFLAGS=-P
|
||||
|
||||
LINK=$(ORCA) link
|
||||
LDFLAGS=-P
|
||||
|
||||
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:
|
||||
$(MKDIR) $(OBJDIR) $(GENDIR) $(TARGETDIR)
|
||||
@make -f $(firstword $(MAKEFILE_LIST)) gen
|
||||
@make -f $(firstword $(MAKEFILE_LIST)) build
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
#!/bin/sh
|
||||
|
||||
TMPDIR="/tmp/a2gs_emulator.$$"
|
||||
|
||||
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 USAGE $0: diskimage bootimage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
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" $EMULATORARGS &
|
||||
PID=$!
|
||||
|
||||
trap cleanupAndExit SIGTERM SIGINT SIGHUP EXIT
|
||||
wait
|
Binary file not shown.
|
@ -0,0 +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 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`
|
||||
|
||||
pushd "$DIRNAME" > /dev/null
|
||||
$ORCA assemble $* keep="${BASENAME}" "${BASENAME}.s" 2> $ERROUTPUT
|
||||
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
|
|
@ -0,0 +1,95 @@
|
|||
#!/bin/bash
|
||||
|
||||
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
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CCARGS=""
|
||||
COMPILEARGS=""
|
||||
for ARG in $*
|
||||
do
|
||||
if echo $ARG | grep '^-[id]' > /dev/null
|
||||
then
|
||||
CCARGS="$CCARGS cc=$ARG"
|
||||
else
|
||||
COMPILEARGS="$COMPILEARGS $ARG"
|
||||
fi
|
||||
done
|
||||
|
||||
SRCBASENAME=`echo "$FILENAME" | sed 's/\.c$//'`
|
||||
SRCOBJNAME="${SRCBASENAME}.a"
|
||||
SRCROOTNAME="${SRCBASENAME}.root"
|
||||
|
||||
DESTDEPSNAME="${DESTBASENAME}.d"
|
||||
DESTOBJNAME="${DESTBASENAME}.a"
|
||||
DESTROOTNAME="${DESTBASENAME}.root"
|
||||
|
||||
$ORCA --trace-gsos compile $COMPILEARGS "$FILENAME" keep="${SRCBASENAME}" $CCARGS > $STDOUTPUT 2> $ERROUTPUT
|
||||
RESULT=$?
|
||||
|
||||
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 $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}' $ERROUTPUT | sort -u | while read FILE
|
||||
do
|
||||
if [ -f "$FILE" ]
|
||||
then
|
||||
echo $FILE
|
||||
fi
|
||||
done | tr '\012' ' '`
|
||||
|
||||
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 > $DESTDEPSNAME << EOF
|
||||
$DESTOBJNAME: $DEPS
|
||||
|
||||
$DESTROOTNAME: $DEPS
|
||||
EOF
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
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
|
||||
|
||||
SRCBASENAME=`echo $FILENAME | sed 's/\.rez$//'`
|
||||
SRCOBJNAME="${SRCBASENAME}.r"
|
||||
|
||||
DESTDEPSNAME="${DESTBASENAME}.rez.d"
|
||||
DESTOBJNAME="${DESTBASENAME}.r"
|
||||
|
||||
$ORCA --trace-gsos compile "$@" keep="${SRCOBJNAME}" "$FILENAME" 2> $ERROUTPUT
|
||||
RESULT=$?
|
||||
|
||||
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 $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}' $ERROUTPUT | sort -u | while read FILE
|
||||
do
|
||||
if [ -f "$FILE" ]
|
||||
then
|
||||
echo $FILE
|
||||
fi
|
||||
done`
|
||||
|
||||
echo $DESTOBJNAME: $DEPS > $DESTDEPSNAME
|
||||
rm -f $ERROUTPUT
|
||||
|
||||
exit 0
|
Binary file not shown.
|
@ -0,0 +1,239 @@
|
|||
#
|
||||
# tail.mk
|
||||
#
|
||||
|
||||
export PATH := $(PATH):$(ORCA_BIN)
|
||||
|
||||
CWD=$(shell pwd)
|
||||
|
||||
DISKIMAGE=$(TARGETDIR)/abCalc.2mg
|
||||
ARCHIVE=$(TARGETDIR)/abCalc.shk
|
||||
DESTBOOTIMAGE=$(TARGETDIR)/$(BOOTIMAGE)
|
||||
BUILDTARGET=$(DISKIMAGE)
|
||||
EXECTARGET=executeGUI
|
||||
BOOTCOPYPATH=
|
||||
AUXTYPE=
|
||||
CFLAGS+=-i$(GENDIR)
|
||||
|
||||
vpath $(GENDIR)
|
||||
|
||||
ifeq ($(TARGETTYPE),shell)
|
||||
FILETYPE=exe
|
||||
EXECTARGET=executeShell
|
||||
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
|
||||
BOOTCOPYPATH=System/Desk.Accs
|
||||
else ifeq ($(TARGETTYPE),cdev)
|
||||
BINTARGET=$(TARGETDIR)/$(PGM).bin
|
||||
FILETYPE=199
|
||||
BOOTCOPYPATH=System/CDevs
|
||||
REZFLAGS+=rez='-d BINTARGET="$(BINTARGET)"'
|
||||
else ifeq ($(TARGETTYPE),nba)
|
||||
FILETYPE=exe
|
||||
BUILDTARGET=$(TARGETDIR)/$(PGM)
|
||||
else ifeq ($(TARGETTYPE),nda)
|
||||
FILETYPE=nda
|
||||
BOOTCOPYPATH=System/Desk.Accs
|
||||
else ifeq ($(TARGETTYPE),xcmd)
|
||||
FILETYPE=exe
|
||||
BUILDTARGET=$(TARGETDIR)/$(PGM)
|
||||
endif
|
||||
|
||||
|
||||
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
|
||||
|
||||
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))
|
||||
|
||||
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) $(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) $(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 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) "$(TARGETDIR)/$(PGM)" $(BINTARGET)
|
||||
$(RM) $(ALL_OBJS)
|
||||
$(RM) $(ALL_ROOTS)
|
||||
$(RM) $(ALL_DEPS)
|
||||
$(RM) $(ASM_MACROS)
|
||||
$(RM) "$(DISKIMAGE)"
|
||||
$(RM) "$(DESTBOOTIMAGE)"
|
||||
$(RM) "$(ARCHIVE)"
|
||||
|
||||
createPackage:
|
||||
pkg/createPackage
|
||||
|
||||
cleanMacCruft:
|
||||
rm -rf pkg
|
||||
|
||||
|
||||
ifeq ($(BINTARGET),)
|
||||
ifeq ($(ASSEMBLER),orcam)
|
||||
|
||||
# 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) $(TARGETDIR)/$(PGM)
|
||||
$(CP) $(REZ_OBJS) $(TARGETDIR)/$(PGM)
|
||||
endif
|
||||
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
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
$(TARGETDIR)/$(PGM): $(REZ_OBJS)
|
||||
$(MKDIR) $(TARGETDIR)
|
||||
$(RM) $(TARGETDIR)/$(PGM)
|
||||
$(CP) $(REZ_OBJS) $(TARGETDIR)/$(PGM)
|
||||
$(CHTYP) -t $(FILETYPE) $(AUXTYPE) $(TARGETDIR)/$(PGM)
|
||||
|
||||
endif
|
||||
|
||||
$(DISKIMAGE): $(TARGETDIR)/$(PGM) make/empty.2mg make/$(BOOTIMAGE)
|
||||
make/createDiskImage "$(DISKIMAGE)" $(DESTBOOTIMAGE) "$(TARGETDIR)/$(PGM)" $(BOOTCOPYPATH)
|
||||
|
||||
execute: $(EXECTARGET)
|
||||
|
||||
executeGUI: all
|
||||
make/launchEmulator "$(DISKIMAGE)" "$(DESTBOOTIMAGE)"
|
||||
|
||||
executeShell: all
|
||||
$(ORCA) $(TARGETDIR)/$(PGM)
|
||||
|
||||
$(OBJDIR)/%.a: %.c
|
||||
$(COMPILE) $< $(@:.a=) $(CFLAGS) --noroot
|
||||
|
||||
$(OBJDIR)/%.a: $(GENDIR)/%.c
|
||||
$(COMPILE) $< $(@:.a=) $(CFLAGS) --noroot
|
||||
|
||||
$(OBJDIR)/%.root: %.c
|
||||
$(COMPILE) $< $(@:.root=) $(CFLAGS)
|
||||
|
||||
$(OBJDIR)/%.root: $(GENDIR)/%.c
|
||||
$(COMPILE) $< $(@:.root=) $(CFLAGS)
|
||||
|
||||
$(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
|
||||
|
||||
# Include the C and rez dependencies which were generated from the last build
|
||||
# so we recompile correctly on .h file changes.
|
||||
-include $(ALL_DEPS)
|
Binary file not shown.
|
@ -0,0 +1,185 @@
|
|||
#
|
||||
# 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=abCalcNDA
|
||||
|
||||
# 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:
|
||||
SRCDIRS+=nda expr ops
|
||||
|
||||
# If you put your main entry point for your project in a file called main.c
|
||||
# Then you don't need to change this value. If you want to call your entry
|
||||
# point something other than main.c, set this variable to point to this file.
|
||||
ROOTCFILE=nda/abCalcNDA.c
|
||||
|
||||
# Add any arguments you want passed to the C compiler to this variable:
|
||||
CFLAGS+=-dABCALC_GSOS
|
||||
|
||||
# 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+=
|
||||
|
||||
# Add any other macro libraries to include in this variable:
|
||||
MACGENMACROS+=
|
||||
|
||||
# Add any arguments you want passed to the assembler to this variable:
|
||||
ASMFLAGS+=
|
||||
|
||||
# Add any arguments you want passed to the linker to this variable:
|
||||
LDFLAGS+=
|
||||
|
||||
# Uncomment the following line if you want to build against the GNO libraries
|
||||
# export ORCA=$(ORCA_BINDIR)/gno
|
||||
|
||||
# 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=abCalcHelp.md
|
||||
|
||||
# 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. 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
|
||||
# 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
|
|
@ -0,0 +1,764 @@
|
|||
/*
|
||||
abCalcNDA.c
|
||||
By: Jeremy Rand
|
||||
*/
|
||||
|
||||
|
||||
#pragma nda NDAOpen NDAClose NDAAction NDAInit -1 0xFFFF " abCalc\\H**"
|
||||
|
||||
|
||||
#include <orca.h>
|
||||
#include <GSOS.h>
|
||||
#include <Locator.h>
|
||||
#include <QuickDraw.h>
|
||||
#include <Window.h>
|
||||
#include <Desk.h>
|
||||
#include <Resources.h>
|
||||
#include <Memory.h>
|
||||
#include <Loader.h>
|
||||
#include <Control.h>
|
||||
#include <Event.h>
|
||||
#include <List.h>
|
||||
#include <Sane.h>
|
||||
#include <LineEdit.h>
|
||||
#include <Scrap.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "nda/abCalcNDA.h"
|
||||
#include "abCalc.h"
|
||||
#include "abCStack.h"
|
||||
#include "abCError.h"
|
||||
|
||||
#include "expr/abCExpr.h"
|
||||
|
||||
#include "ops/abCOp.h"
|
||||
|
||||
|
||||
#define MIN_STACK_ITEMS 4
|
||||
|
||||
void UpdateStack(void);
|
||||
|
||||
|
||||
typedef struct listElement {
|
||||
char *memPtr;
|
||||
Byte memFlag;
|
||||
} listElement;
|
||||
|
||||
|
||||
static BOOLEAN gListStarted = FALSE;
|
||||
static Handle gSANEDirectPage = NULL;
|
||||
|
||||
static BOOLEAN gCalcActive = FALSE;
|
||||
static GrafPortPtr gCalcWinPtr = NULL;
|
||||
static unsigned int gUserId;
|
||||
static unsigned int gResourceId;
|
||||
listElement *gOpList = NULL;
|
||||
listElement gStackList[AB_CALC_STACK_DEPTH];
|
||||
abCalcExpr gNDAExpr;
|
||||
|
||||
static Str255 gStrBuf;
|
||||
static int gSelectedStackItem = -1;
|
||||
|
||||
char *gBuffer = NULL;
|
||||
|
||||
|
||||
void NDAClose(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (gCalcActive) {
|
||||
CloseWindow(gCalcWinPtr);
|
||||
gCalcWinPtr = NULL;
|
||||
gCalcActive = FALSE;
|
||||
}
|
||||
|
||||
if (gBuffer != NULL) {
|
||||
free(gBuffer);
|
||||
gBuffer = NULL;
|
||||
}
|
||||
|
||||
if (gOpList != NULL) {
|
||||
free(gOpList);
|
||||
gOpList = NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < AB_CALC_STACK_DEPTH; i++) {
|
||||
if (gStackList[i].memPtr != NULL) {
|
||||
free(gStackList[i].memPtr);
|
||||
gStackList[i].memPtr = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
CloseResourceFile(gResourceId);
|
||||
ResourceShutDown();
|
||||
}
|
||||
|
||||
|
||||
void NDAInit(int code)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (code) {
|
||||
gCalcActive = FALSE;
|
||||
gUserId = MMStartUp();
|
||||
|
||||
if (!ListStatus()) {
|
||||
LoadOneTool(0x1c, 0);
|
||||
ListStartUp();
|
||||
gListStarted = TRUE;
|
||||
}
|
||||
|
||||
if (!SANEStatus()) {
|
||||
LoadOneTool(0x0a, 0);
|
||||
gSANEDirectPage = NewHandle(256, gUserId,
|
||||
attrBank | attrFixed | attrLocked | attrPage, NULL);
|
||||
SANEStartUp((Word) *gSANEDirectPage);
|
||||
}
|
||||
|
||||
abCalcInit();
|
||||
|
||||
for (i = 0; i < AB_CALC_STACK_DEPTH; i++) {
|
||||
gStackList[i].memPtr = NULL;
|
||||
}
|
||||
} else {
|
||||
if (gSANEDirectPage) {
|
||||
SANEShutDown();
|
||||
DisposeHandle(gSANEDirectPage);
|
||||
UnloadOneTool(0x0a);
|
||||
gSANEDirectPage = NULL;
|
||||
}
|
||||
|
||||
if (gListStarted) {
|
||||
ListShutDown();
|
||||
UnloadOneTool(0x1c);
|
||||
gListStarted = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma databank 1
|
||||
void DrawContents(void)
|
||||
{
|
||||
PenNormal();
|
||||
DrawControls(GetPort());
|
||||
}
|
||||
#pragma databank 0
|
||||
|
||||
|
||||
GrafPortPtr NDAOpen(void)
|
||||
{
|
||||
Pointer pathToSelf;
|
||||
unsigned int oldResourceApp;
|
||||
LevelRecGS levelDCB;
|
||||
unsigned int oldLevel;
|
||||
SysPrefsRecGS prefsDCB;
|
||||
unsigned int oldPrefs;
|
||||
int numOps;
|
||||
int i;
|
||||
Handle opListCtl;
|
||||
|
||||
if (gCalcActive)
|
||||
return NULL;
|
||||
|
||||
oldResourceApp = GetCurResourceApp();
|
||||
ResourceStartUp(gUserId);
|
||||
pathToSelf = LGetPathname2(gUserId, 1);
|
||||
|
||||
levelDCB.pCount = 2;
|
||||
GetLevelGS(&levelDCB);
|
||||
oldLevel = levelDCB.level;
|
||||
levelDCB.level = 0;
|
||||
SetLevelGS(&levelDCB);
|
||||
|
||||
prefsDCB.pCount = 1;
|
||||
GetSysPrefsGS(&prefsDCB);
|
||||
oldPrefs = prefsDCB.preferences;
|
||||
prefsDCB.preferences = (prefsDCB.preferences & 0x1fff) | 0x8000;
|
||||
SetSysPrefsGS(&prefsDCB);
|
||||
|
||||
gResourceId = OpenResourceFile(readEnable, NULL, pathToSelf);
|
||||
|
||||
gCalcWinPtr = NewWindow2("\p abCalc ", 0, DrawContents, NULL, refIsResource,
|
||||
abCalcWinNum, rWindParam1);
|
||||
|
||||
SetSysWindow(gCalcWinPtr);
|
||||
ShowWindow(gCalcWinPtr);
|
||||
SelectWindow(gCalcWinPtr);
|
||||
SetPort(gCalcWinPtr);
|
||||
|
||||
if (gOpList == NULL) {
|
||||
numOps = abCalcOpNumOps();
|
||||
gOpList = malloc(sizeof(*gOpList) * numOps);
|
||||
for (i = 0; i < numOps; i++) {
|
||||
gOpList[i].memPtr = abCalcOpNth(i)->name;
|
||||
gOpList[i].memFlag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
opListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcOpList);
|
||||
NewList2(NULL, 1, (Ref)gOpList, 0, numOps, opListCtl);
|
||||
|
||||
UpdateStack();
|
||||
|
||||
gCalcActive = TRUE;
|
||||
|
||||
prefsDCB.preferences = oldPrefs;
|
||||
SetSysPrefsGS(&prefsDCB);
|
||||
|
||||
levelDCB.level = oldLevel;
|
||||
SetLevelGS(&levelDCB);
|
||||
|
||||
SetCurResourceApp(oldResourceApp);
|
||||
|
||||
return gCalcWinPtr;
|
||||
}
|
||||
|
||||
|
||||
void UpdateStack(void)
|
||||
{
|
||||
Handle stackListCtl;
|
||||
int i;
|
||||
int numToDisplay = abCalcStackNumItems();
|
||||
|
||||
if (numToDisplay < MIN_STACK_ITEMS) {
|
||||
numToDisplay = MIN_STACK_ITEMS;
|
||||
}
|
||||
|
||||
stackListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcStackList);
|
||||
|
||||
for (i = numToDisplay - 1; i >= 0; i--) {
|
||||
if (gStackList[i].memPtr == NULL) {
|
||||
gStackList[i].memPtr = malloc(AB_CALC_EXPR_STRING_MAX + 8);
|
||||
}
|
||||
abCalcStackExprStringAt(numToDisplay - i - 1, gStackList[i].memPtr,
|
||||
TRUE);
|
||||
gStackList[i].memFlag = 0;
|
||||
}
|
||||
|
||||
NewList2(NULL, numToDisplay - 3, (Ref)gStackList, 0, numToDisplay, stackListCtl);
|
||||
gSelectedStackItem = -1;
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN ErrorRaised(void)
|
||||
{
|
||||
char *errorString = abCalcGetError();
|
||||
if (errorString == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
AlertWindow(awCString+awResource, (Pointer)&errorString, abCalcErrorAlert);
|
||||
|
||||
abCalcClearError();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void PushCalcEntry(CtlRecHndl entryBox)
|
||||
{
|
||||
abCalcOp *op;
|
||||
|
||||
GetLETextByID(gCalcWinPtr, abCalcEntryBox, &gStrBuf);
|
||||
|
||||
if (gStrBuf.textLength > 0) {
|
||||
gStrBuf.text[gStrBuf.textLength] = '\0';
|
||||
|
||||
op = abCalcOpLookup(gStrBuf.text);
|
||||
|
||||
if (op != NULL) {
|
||||
op->execute();
|
||||
} else if (abCalcParseExpr(&gNDAExpr, gStrBuf.text) != NULL) {
|
||||
abCalcStackExprPush(&gNDAExpr);
|
||||
} else {
|
||||
LERecHndl leHandle;
|
||||
|
||||
HLock((Handle)entryBox);
|
||||
leHandle = (LERecHndl)(*entryBox)->ctlData;
|
||||
HUnlock((Handle)entryBox);
|
||||
|
||||
LESetSelect(0, gStrBuf.textLength, leHandle);
|
||||
abCalcRaiseError(abCalcSyntaxError, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
gStrBuf.textLength = 0;
|
||||
SetLETextByID(gCalcWinPtr, abCalcEntryBox, &gStrBuf);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ExecCalcCmd(char *cmd)
|
||||
{
|
||||
abCalcOp *op = abCalcOpLookup(cmd);
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
|
||||
PushCalcEntry(entryBox);
|
||||
|
||||
if ((!ErrorRaised()) &&
|
||||
(op != NULL)) {
|
||||
op->execute();
|
||||
}
|
||||
|
||||
ErrorRaised();
|
||||
|
||||
UpdateStack();
|
||||
}
|
||||
|
||||
|
||||
void InsertChar(CtlRecHndl entryBox, char ch)
|
||||
{
|
||||
LERecHndl leHandle;
|
||||
|
||||
HLock((Handle)entryBox);
|
||||
leHandle = (LERecHndl)(*entryBox)->ctlData;
|
||||
HUnlock((Handle)entryBox);
|
||||
|
||||
LEDelete(leHandle);
|
||||
LEInsert(&ch, 1, leHandle);
|
||||
}
|
||||
|
||||
|
||||
void ExecMinusButton(void)
|
||||
{
|
||||
int i;
|
||||
char aChar;
|
||||
BOOLEAN doCmd = FALSE;
|
||||
BOOLEAN dotSeen = FALSE;
|
||||
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
GetLETextByID(gCalcWinPtr, abCalcEntryBox, &gStrBuf);
|
||||
|
||||
if (gStrBuf.textLength > 0) {
|
||||
doCmd = TRUE;
|
||||
|
||||
gStrBuf.text[gStrBuf.textLength] = '\0';
|
||||
|
||||
aChar = gStrBuf.text[gStrBuf.textLength - 1];
|
||||
if (((aChar == 'e') ||
|
||||
(aChar == 'E')) &&
|
||||
(gStrBuf.textLength > 1)) {
|
||||
doCmd = FALSE;
|
||||
for (i = 0; i < gStrBuf.textLength - 1; i++) {
|
||||
switch (gStrBuf.text[i]) {
|
||||
case '-':
|
||||
if (i != 0) {
|
||||
doCmd = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
break;
|
||||
|
||||
case '.':
|
||||
if (dotSeen) {
|
||||
doCmd = TRUE;
|
||||
} else {
|
||||
dotSeen = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
doCmd = TRUE;
|
||||
break;
|
||||
}
|
||||
if (doCmd)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (doCmd) {
|
||||
ExecCalcCmd("-");
|
||||
} else {
|
||||
InsertChar(entryBox, '-');
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void HandleEntryBox(void)
|
||||
{
|
||||
Handle stackListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcStackList);
|
||||
if (gSelectedStackItem != -1) {
|
||||
ResetMember2(stackListCtl);
|
||||
DrawMember2(gSelectedStackItem, stackListCtl);
|
||||
gSelectedStackItem = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HandleStackClick(void)
|
||||
{
|
||||
Handle stackListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcStackList);
|
||||
int nthOp;
|
||||
int numStackItems = abCalcStackNumItems();
|
||||
int numDisplayed = numStackItems;
|
||||
int selectedStackItem = -1;
|
||||
|
||||
nthOp = NextMember2(0, stackListCtl);
|
||||
if (nthOp == gSelectedStackItem) {
|
||||
ResetMember2(stackListCtl);
|
||||
DrawMember2(gSelectedStackItem, stackListCtl);
|
||||
gSelectedStackItem = -1;
|
||||
nthOp = NextMember2(0, stackListCtl);
|
||||
}
|
||||
if (nthOp == 0)
|
||||
return;
|
||||
|
||||
if (numDisplayed < MIN_STACK_ITEMS)
|
||||
numDisplayed = MIN_STACK_ITEMS;
|
||||
|
||||
selectedStackItem = numDisplayed + 1 - nthOp;
|
||||
|
||||
if (selectedStackItem > numStackItems) {
|
||||
ResetMember2(stackListCtl);
|
||||
DrawMember2(nthOp, stackListCtl);
|
||||
gSelectedStackItem = -1;
|
||||
} else {
|
||||
gSelectedStackItem = nthOp;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HandleOpClick(void)
|
||||
{
|
||||
Handle opListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcOpList);
|
||||
int nthOp = ResetMember2(opListCtl);
|
||||
abCalcOp *op;
|
||||
|
||||
if (nthOp > 0) {
|
||||
nthOp--;
|
||||
|
||||
op = abCalcOpNth(nthOp);
|
||||
if (op != NULL) {
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
PushCalcEntry(entryBox);
|
||||
|
||||
if (!ErrorRaised()) {
|
||||
op->execute();
|
||||
}
|
||||
|
||||
ErrorRaised();
|
||||
|
||||
UpdateStack();
|
||||
}
|
||||
|
||||
DrawMember2(nthOp + 1, opListCtl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HandleControl(EventRecord *event)
|
||||
{
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
SetPort(gCalcWinPtr);
|
||||
|
||||
switch (event->wmTaskData4) {
|
||||
case abCalcBtn0:
|
||||
InsertChar(entryBox, '0');
|
||||
break;
|
||||
|
||||
case abCalcBtn1:
|
||||
InsertChar(entryBox, '1');
|
||||
break;
|
||||
|
||||
case abCalcBtn2:
|
||||
InsertChar(entryBox, '2');
|
||||
break;
|
||||
|
||||
case abCalcBtn3:
|
||||
InsertChar(entryBox, '3');
|
||||
break;
|
||||
|
||||
case abCalcBtn4:
|
||||
InsertChar(entryBox, '4');
|
||||
break;
|
||||
|
||||
case abCalcBtn5:
|
||||
InsertChar(entryBox, '5');
|
||||
break;
|
||||
|
||||
case abCalcBtn6:
|
||||
InsertChar(entryBox, '6');
|
||||
break;
|
||||
|
||||
case abCalcBtn7:
|
||||
InsertChar(entryBox, '7');
|
||||
break;
|
||||
|
||||
case abCalcBtn8:
|
||||
InsertChar(entryBox, '8');
|
||||
break;
|
||||
|
||||
case abCalcBtn9:
|
||||
InsertChar(entryBox, '9');
|
||||
break;
|
||||
|
||||
case abCalcBtnEnter:
|
||||
PushCalcEntry(entryBox);
|
||||
ErrorRaised();
|
||||
UpdateStack();
|
||||
break;
|
||||
|
||||
case abCalcBtnDot:
|
||||
InsertChar(entryBox, '.');
|
||||
break;
|
||||
|
||||
case abCalcBtnNum:
|
||||
InsertChar(entryBox, '#');
|
||||
break;
|
||||
|
||||
case abCalcBtnAdd:
|
||||
ExecCalcCmd("+");
|
||||
break;
|
||||
|
||||
case abCalcBtnSub:
|
||||
ExecMinusButton();
|
||||
break;
|
||||
|
||||
case abCalcBtnMult:
|
||||
ExecCalcCmd("*");
|
||||
break;
|
||||
|
||||
case abCalcBtnDiv:
|
||||
ExecCalcCmd("/");
|
||||
break;
|
||||
|
||||
case abCalcBtnPow:
|
||||
ExecCalcCmd("^");
|
||||
break;
|
||||
|
||||
case abCalcBtnA:
|
||||
InsertChar(entryBox, 'A');
|
||||
break;
|
||||
|
||||
case abCalcBtnB:
|
||||
InsertChar(entryBox, 'B');
|
||||
break;
|
||||
|
||||
case abCalcBtnC:
|
||||
InsertChar(entryBox, 'C');
|
||||
break;
|
||||
|
||||
case abCalcBtnD:
|
||||
InsertChar(entryBox, 'D');
|
||||
break;
|
||||
|
||||
case abCalcBtnE:
|
||||
InsertChar(entryBox, 'E');
|
||||
break;
|
||||
|
||||
case abCalcBtnF:
|
||||
InsertChar(entryBox, 'F');
|
||||
break;
|
||||
|
||||
case abCalcEntryBox:
|
||||
HandleEntryBox();
|
||||
break;
|
||||
|
||||
case abCalcStackList:
|
||||
HandleStackClick();
|
||||
break;
|
||||
|
||||
case abCalcOpList:
|
||||
HandleOpClick();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DoCut(void)
|
||||
{
|
||||
LERecHndl leHandle;
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
|
||||
HLock((Handle)entryBox);
|
||||
leHandle = (LERecHndl)(*entryBox)->ctlData;
|
||||
HUnlock((Handle)entryBox);
|
||||
|
||||
LECut(leHandle);
|
||||
LEToScrap();
|
||||
}
|
||||
|
||||
|
||||
void DoCopy(void)
|
||||
{
|
||||
Handle stackListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcStackList);
|
||||
LERecHndl leHandle;
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
|
||||
int numStackItems = abCalcStackNumItems();
|
||||
int numDisplayed = numStackItems;
|
||||
int selectedStackItem;
|
||||
|
||||
if (gSelectedStackItem == -1) {
|
||||
HLock((Handle)entryBox);
|
||||
leHandle = (LERecHndl)(*entryBox)->ctlData;
|
||||
HUnlock((Handle)entryBox);
|
||||
|
||||
LECopy(leHandle);
|
||||
LEToScrap();
|
||||
return;
|
||||
}
|
||||
|
||||
if (numDisplayed < MIN_STACK_ITEMS)
|
||||
numDisplayed = MIN_STACK_ITEMS;
|
||||
|
||||
selectedStackItem = numDisplayed - gSelectedStackItem;
|
||||
|
||||
if (gBuffer == NULL) {
|
||||
gBuffer = malloc(AB_CALC_EXPR_STRING_MAX);
|
||||
}
|
||||
|
||||
if ((selectedStackItem >= 0) &&
|
||||
(selectedStackItem < numStackItems) &&
|
||||
(abCalcStackExprStringAt(selectedStackItem, gBuffer, FALSE) != NULL)) {
|
||||
ZeroScrap();
|
||||
PutScrap(strlen(gBuffer), textScrap, gBuffer);
|
||||
}
|
||||
|
||||
SetPort(gCalcWinPtr);
|
||||
ResetMember2(stackListCtl);
|
||||
DrawMember2(gSelectedStackItem, stackListCtl);
|
||||
gSelectedStackItem = -1;
|
||||
}
|
||||
|
||||
|
||||
void DoPaste(void)
|
||||
{
|
||||
LERecHndl leHandle;
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
|
||||
HLock((Handle)entryBox);
|
||||
leHandle = (LERecHndl)(*entryBox)->ctlData;
|
||||
HUnlock((Handle)entryBox);
|
||||
|
||||
LEFromScrap();
|
||||
LEPaste(leHandle);
|
||||
}
|
||||
|
||||
|
||||
void DoClear(void)
|
||||
{
|
||||
LERecHndl leHandle;
|
||||
CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox);
|
||||
|
||||
HLock((Handle)entryBox);
|
||||
leHandle = (LERecHndl)(*entryBox)->ctlData;
|
||||
HUnlock((Handle)entryBox);
|
||||
|
||||
LEDelete(leHandle);
|
||||
}
|
||||
|
||||
|
||||
void HandleMenu(int menuItem)
|
||||
{
|
||||
SetPort(gCalcWinPtr);
|
||||
|
||||
switch (menuItem) {
|
||||
case cutAction:
|
||||
DoCut();
|
||||
break;
|
||||
|
||||
case copyAction:
|
||||
DoCopy();
|
||||
break;
|
||||
|
||||
case pasteAction:
|
||||
DoPaste();
|
||||
break;
|
||||
|
||||
case clearAction:
|
||||
DoClear();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HandleKey(EventRecord *event)
|
||||
{
|
||||
BOOLEAN appleKeyPressed = ((event->modifiers & appleKey) != 0);
|
||||
char key = (event->message & 0xff);
|
||||
|
||||
if (!appleKeyPressed)
|
||||
return;
|
||||
|
||||
switch (key) {
|
||||
case 'C':
|
||||
case 'c':
|
||||
DoCopy();
|
||||
break;
|
||||
|
||||
case 'X':
|
||||
case 'x':
|
||||
DoCut();
|
||||
break;
|
||||
|
||||
case 'V':
|
||||
case 'v':
|
||||
DoPaste();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN NDAAction(EventRecord *sysEvent, int code)
|
||||
{
|
||||
int event;
|
||||
static EventRecord localEvent;
|
||||
unsigned int eventCode;
|
||||
BOOLEAN result = FALSE;
|
||||
|
||||
switch (code) {
|
||||
case runAction:
|
||||
return result;
|
||||
|
||||
case eventAction:
|
||||
BlockMove((Pointer)sysEvent, (Pointer)&localEvent, 16);
|
||||
localEvent.wmTaskMask = 0x001FFFFF;
|
||||
eventCode = TaskMasterDA(0, &localEvent);
|
||||
switch(eventCode) {
|
||||
case updateEvt:
|
||||
BeginUpdate(gCalcWinPtr);
|
||||
DrawContents();
|
||||
EndUpdate(gCalcWinPtr);
|
||||
break;
|
||||
|
||||
case wInControl:
|
||||
HandleControl(&localEvent);
|
||||
break;
|
||||
|
||||
case keyDownEvt:
|
||||
case autoKeyEvt:
|
||||
HandleKey(&localEvent);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case cutAction:
|
||||
case copyAction:
|
||||
case pasteAction:
|
||||
case clearAction:
|
||||
result = TRUE;
|
||||
HandleMenu(code);
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
|
@ -81,9 +81,11 @@
|
|||
#define abCalcBtnPow 2047
|
||||
#define abCalcBtnPowStr 2048
|
||||
|
||||
#define abCalcEntryBox 2049
|
||||
#define abCalcStackList 2050
|
||||
#define abCalcOpList 2051
|
||||
#define abCalcEntryBox 3001
|
||||
#define abCalcStackList 3002
|
||||
#define abCalcOpList 3003
|
||||
|
||||
#define abCalcErrorAlert 4001
|
||||
|
||||
|
||||
#define abCalcWinX 10
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
|
||||
#include "types.rez"
|
||||
#include "abCalcNda.defs"
|
||||
#include "nda/abCalcNda.h"
|
||||
|
||||
|
||||
resource rWindParam1 (abCalcWinNum) {
|
||||
|
@ -77,7 +77,9 @@ resource rControlTemplate (abCalcBtn0) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn0Str
|
||||
abCalcBtn0Str,
|
||||
0,
|
||||
{"0","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn0Str, noCrossBank) { "0" };
|
||||
|
@ -89,7 +91,9 @@ resource rControlTemplate (abCalcBtnDot) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnDotStr
|
||||
abCalcBtnDotStr,
|
||||
0,
|
||||
{".","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnDotStr, noCrossBank) { "." };
|
||||
|
@ -101,7 +105,9 @@ resource rControlTemplate (abCalcBtnNum) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnNumStr
|
||||
abCalcBtnNumStr,
|
||||
0,
|
||||
{"#","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnNumStr, noCrossBank) { "#" };
|
||||
|
@ -113,7 +119,9 @@ resource rControlTemplate (abCalcBtn1) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn1Str
|
||||
abCalcBtn1Str,
|
||||
0,
|
||||
{"1","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn1Str, noCrossBank) { "1" };
|
||||
|
@ -125,7 +133,9 @@ resource rControlTemplate (abCalcBtn2) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn2Str
|
||||
abCalcBtn2Str,
|
||||
0,
|
||||
{"2","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn2Str, noCrossBank) { "2" };
|
||||
|
@ -137,7 +147,9 @@ resource rControlTemplate (abCalcBtn3) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn3Str
|
||||
abCalcBtn3Str,
|
||||
0,
|
||||
{"3","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn3Str, noCrossBank) { "3" };
|
||||
|
@ -149,7 +161,9 @@ resource rControlTemplate (abCalcBtn4) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn4Str
|
||||
abCalcBtn4Str,
|
||||
0,
|
||||
{"4","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn4Str, noCrossBank) { "4" };
|
||||
|
@ -161,7 +175,9 @@ resource rControlTemplate (abCalcBtn5) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn5Str
|
||||
abCalcBtn5Str,
|
||||
0,
|
||||
{"5","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn5Str, noCrossBank) { "5" };
|
||||
|
@ -173,7 +189,9 @@ resource rControlTemplate (abCalcBtn6) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn6Str
|
||||
abCalcBtn6Str,
|
||||
0,
|
||||
{"6","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn6Str, noCrossBank) { "6" };
|
||||
|
@ -185,7 +203,9 @@ resource rControlTemplate (abCalcBtn7) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn7Str
|
||||
abCalcBtn7Str,
|
||||
0,
|
||||
{"7","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn7Str, noCrossBank) { "7" };
|
||||
|
@ -197,7 +217,9 @@ resource rControlTemplate (abCalcBtn8) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn8Str
|
||||
abCalcBtn8Str,
|
||||
0,
|
||||
{"8","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn8Str, noCrossBank) { "8" };
|
||||
|
@ -209,7 +231,9 @@ resource rControlTemplate (abCalcBtn9) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtn9Str
|
||||
abCalcBtn9Str,
|
||||
0,
|
||||
{"9","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtn9Str, noCrossBank) { "9" };
|
||||
|
@ -235,7 +259,9 @@ resource rControlTemplate (abCalcBtnPow) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnPowStr
|
||||
abCalcBtnPowStr,
|
||||
0,
|
||||
{"^","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnPowStr, noCrossBank) { "^" };
|
||||
|
@ -247,7 +273,9 @@ resource rControlTemplate (abCalcBtnAdd) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnAddStr
|
||||
abCalcBtnAddStr,
|
||||
0,
|
||||
{"+","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnAddStr, noCrossBank) { "+" };
|
||||
|
@ -259,7 +287,9 @@ resource rControlTemplate (abCalcBtnSub) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnSubStr
|
||||
abCalcBtnSubStr,
|
||||
0,
|
||||
{"-","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnSubStr, noCrossBank) { "-" };
|
||||
|
@ -271,7 +301,9 @@ resource rControlTemplate (abCalcBtnMult) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnMultStr
|
||||
abCalcBtnMultStr,
|
||||
0,
|
||||
{"*","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnMultStr, noCrossBank) { "x" };
|
||||
|
@ -283,7 +315,9 @@ resource rControlTemplate (abCalcBtnDiv) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnDivStr
|
||||
abCalcBtnDivStr,
|
||||
0,
|
||||
{"/","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnDivStr, noCrossBank) { "/" };
|
||||
|
@ -295,7 +329,9 @@ resource rControlTemplate (abCalcBtnA) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnAStr
|
||||
abCalcBtnAStr,
|
||||
0,
|
||||
{"A","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnAStr, noCrossBank) { "A" };
|
||||
|
@ -307,7 +343,9 @@ resource rControlTemplate (abCalcBtnB) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnBStr
|
||||
abCalcBtnBStr,
|
||||
0,
|
||||
{"B","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnBStr, noCrossBank) { "B" };
|
||||
|
@ -319,19 +357,23 @@ resource rControlTemplate (abCalcBtnC) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnCStr
|
||||
abCalcBtnCStr,
|
||||
0,
|
||||
{"C","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnCStr, noCrossBank) { "C" };
|
||||
|
||||
resource rControlTemplate (abCalcBtnD) {
|
||||
abCalcBtnC,
|
||||
abCalcBtnD,
|
||||
{abCalcBtnRow6, abCalcBtnCol0, 0, 0},
|
||||
SimpleButtonControl {{
|
||||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnDStr
|
||||
abCalcBtnDStr,
|
||||
0,
|
||||
{"D","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnDStr, noCrossBank) { "D" };
|
||||
|
@ -343,7 +385,9 @@ resource rControlTemplate (abCalcBtnE) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnEStr
|
||||
abCalcBtnEStr,
|
||||
0,
|
||||
{"E","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnEStr, noCrossBank) { "E" };
|
||||
|
@ -355,7 +399,9 @@ resource rControlTemplate (abCalcBtnF) {
|
|||
$0002,
|
||||
$3002,
|
||||
0,
|
||||
abCalcBtnFStr
|
||||
abCalcBtnFStr,
|
||||
0,
|
||||
{"F","",0,0}
|
||||
}};
|
||||
};
|
||||
resource rPString (abCalcBtnFStr, noCrossBank) { "F" };
|
||||
|
@ -380,13 +426,13 @@ resource rControlTemplate (abCalcStackList) {
|
|||
|
||||
resource rControlTemplate (abCalcOpList) {
|
||||
abCalcOpList, /* control ID */
|
||||
{abCalcBtnRow7, abCalcOpCol, abCalcWinHeight-8, abCalcWinWidth-abCalcBtnSpaceX}, /* control rect */
|
||||
{abCalcBtnRow7, abCalcOpCol, abCalcWinHeight-(3*abCalcBtnSpaceY), abCalcWinWidth-abCalcBtnSpaceX}, /* control rect */
|
||||
ListControl {{
|
||||
$0000, /* flags */
|
||||
$1400, /* more flags */
|
||||
0, /* refcon */
|
||||
0, /* list size */
|
||||
4, /* List View */
|
||||
12, /* List View */
|
||||
$0007, /* List Type */
|
||||
0, /* List Start */
|
||||
10, /* ListMemHeight */
|
||||
|
@ -407,3 +453,10 @@ resource rControlTemplate (abCalcEntryBox) {
|
|||
0 /* text Ref */
|
||||
}};
|
||||
};
|
||||
|
||||
resource rAlertString (abCalcErrorAlert) {
|
||||
"23/"
|
||||
"*0"
|
||||
"/^#0\$00"
|
||||
};
|
||||
|
|
@ -45,6 +45,9 @@
|
|||
#include "ops/abCOpCosh.h"
|
||||
#include "ops/abCOpTanh.h"
|
||||
|
||||
#include "ops/abCOpR2B.h"
|
||||
#include "ops/abCOpB2R.h"
|
||||
|
||||
#include "ops/abCOpAnd.h"
|
||||
#include "ops/abCOpOr.h"
|
||||
#include "ops/abCOpXor.h"
|
||||
|
@ -72,6 +75,7 @@ static int gNumOps = 0;
|
|||
|
||||
void abCalcOpInit(void)
|
||||
{
|
||||
gNumOps = 0;
|
||||
memset(gOps, 0, sizeof(gOps));
|
||||
|
||||
abCalcOpAddInit();
|
||||
|
@ -104,6 +108,9 @@ void abCalcOpInit(void)
|
|||
abCalcOpCoshInit();
|
||||
abCalcOpTanhInit();
|
||||
|
||||
abCalcOpR2BInit();
|
||||
abCalcOpB2RInit();
|
||||
|
||||
abCalcOpAndInit();
|
||||
abCalcOpOrInit();
|
||||
abCalcOpXorInit();
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
abCOpB2R.c
|
||||
By: Jeremy Rand
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "abCError.h"
|
||||
#include "abCStack.h"
|
||||
|
||||
#include "expr/abCExpr.h"
|
||||
#include "expr/abCExpReal.h"
|
||||
#include "expr/abCExprInt.h"
|
||||
|
||||
#include "ops/abCOp.h"
|
||||
#include "ops/abCOpB2R.h"
|
||||
|
||||
|
||||
#define B2R_NAME "B2R"
|
||||
|
||||
|
||||
static void b2rExecute(void);
|
||||
|
||||
|
||||
void abCalcOpB2RInit(void)
|
||||
{
|
||||
abCalcOpRegister(B2R_NAME, b2rExecute);
|
||||
}
|
||||
|
||||
|
||||
void b2rExecute(void)
|
||||
{
|
||||
abCalcExpr result;
|
||||
int width;
|
||||
int topBit;
|
||||
AB_CALC_OP_ONE_ARG(B2R_NAME);
|
||||
|
||||
if (expr->type != abCalcExprTypeInt) {
|
||||
abCalcRaiseError(abCalcBadArgTypeError, B2R_NAME);
|
||||
return;
|
||||
}
|
||||
|
||||
abCalcExprRealSet(&result, (abCalcRealType)expr->u.integer);
|
||||
|
||||
abCalcStackExprPop(NULL);
|
||||
abCalcStackExprPush(&result);
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
abCOpB2R.h
|
||||
By: Jeremy Rand
|
||||
*/
|
||||
|
||||
|
||||
#ifndef ABCOPB2R_H
|
||||
#define ABCOPB2R_H
|
||||
|
||||
|
||||
void abCalcOpB2RInit(void);
|
||||
|
||||
|
||||
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue