diff --git a/.DS_Store b/.DS_Store index 622cd64..7667bbb 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Makefile b/Makefile index 10dc8d3..10523e7 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ fixfiles: chtyp -l CC ops/*.c ops/*.h %.o: %.c - occ $(CFLAGS) -c -o $@ $< + occ $(CFLAGS) -r -c -o $@ $< %.r: %.rez occ -o $@ $< diff --git a/abCalcNDA.c b/abCalcNDA.c index 0ae9ce4..c9f3922 100644 --- a/abCalcNDA.c +++ b/abCalcNDA.c @@ -5,11 +5,12 @@ #pragma nda NDAOpen NDAClose NDAAction NDAInit 0 0xFFFF " abCalc\\H**" -#pragma stacksize 4096 +#pragma stacksize 2048 #include #include +#include #include #include #include @@ -19,6 +20,8 @@ #include #include #include +#include +#include #include #include @@ -33,7 +36,7 @@ #include "ops/abCOp.h" -void UpdateStack(Boolean draw); +void UpdateStack(void); typedef struct listElement { @@ -42,6 +45,15 @@ typedef struct listElement { } listElement; +static ToolTable gToolTable = { + 2, + { { 0x1c, 0 }, /* List Manager */ + { 0x0a, 0 } } /* SANE */ +}; + +static BOOLEAN gListStarted = FALSE; +static BOOLEAN gSANEStarted = FALSE; + static BOOLEAN gCalcActive = FALSE; static GrafPortPtr gCalcWinPtr = NULL; static unsigned int gUserId; @@ -51,30 +63,29 @@ listElement gStackList[AB_CALC_STACK_DEPTH]; abCalcExpr gNDAExpr; + void NDAClose(void) { int i; - int numOps; if (gCalcActive) { CloseWindow(gCalcWinPtr); gCalcWinPtr = NULL; gCalcActive = FALSE; + } - numOps = abCalcOpNumOps(); - for (i = 0; i < numOps; i++) { - free(gOpList[i].memPtr); - } + 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; - } + 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(); } @@ -87,6 +98,21 @@ void NDAInit(int code) if (code) { gCalcActive = FALSE; gUserId = MMStartUp(); + + LoadTools((Pointer)&gToolTable); + + if (!ListStatus()) { + ListStartUp(); + gListStarted = TRUE; + } + + if (!SANEStatus()) { + Handle hdl = NewHandle(256, gUserId, + attrBank | attrFixed | attrLocked | attrPage, NULL); + SANEStartUp((Word) *hdl); + gSANEStarted = TRUE; + } + abCalcInit(); for (i = 0; i < AB_CALC_STACK_DEPTH; i++) { @@ -94,6 +120,16 @@ void NDAInit(int code) } } else if (gCalcActive) { NDAClose(); + + if (gSANEStarted) { + SANEShutDown(); + gSANEStarted = FALSE; + } + + if (gListStarted) { + ListShutDown(); + gListStarted = FALSE; + } } } @@ -146,6 +182,7 @@ GrafPortPtr NDAOpen(void) SetSysWindow(gCalcWinPtr); ShowWindow(gCalcWinPtr); SelectWindow(gCalcWinPtr); + SetPort(gCalcWinPtr); if (gOpList == NULL) { numOps = abCalcOpNumOps(); @@ -155,10 +192,11 @@ GrafPortPtr NDAOpen(void) gOpList[i].memFlag = 0; } } + opListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcOpList); NewList2(NULL, 1, (Ref)gOpList, 0, numOps, opListCtl); - UpdateStack(FALSE); + UpdateStack(); gCalcActive = TRUE; @@ -174,7 +212,7 @@ GrafPortPtr NDAOpen(void) } -void UpdateStack(BOOLEAN draw) +void UpdateStack(void) { Handle stackListCtl; int i; @@ -191,128 +229,214 @@ void UpdateStack(BOOLEAN draw) if (gStackList[i].memPtr == NULL) { gStackList[i].memPtr = malloc(AB_CALC_EXPR_STRING_MAX + 8); } - abCalcStackExprStringAt(i, gStackList[i].memPtr); + abCalcStackExprStringAt(numToDisplay - i - 1, gStackList[i].memPtr); gStackList[i].memFlag = 0; } NewList2(NULL, 1, (Ref)gStackList, 0, numToDisplay, stackListCtl); - if (draw) - DrawMember2(0, stackListCtl); + SelectMember2(numToDisplay, stackListCtl); + ResetMember2(stackListCtl); } -void DoCalcStuff(char *cmd) +void PushCalcEntry(CtlRecHndl entryBox) +{ + static Str255 strBuf; + abCalcOp *op; + + GetLETextByID(gCalcWinPtr, abCalcEntryBox, &strBuf); + + if (strBuf.textLength > 0) { + strBuf.text[strBuf.textLength] = '\0'; + + op = abCalcOpLookup(strBuf.text); + + if (op != NULL) { + op->execute(); + } else if (abCalcParseExpr(&gNDAExpr, strBuf.text) != NULL) { + abCalcStackExprPush(&gNDAExpr); + } else { + abCalcRaiseError(abCalcSyntaxError, NULL); + return; + } + + strBuf.textLength = 0; + SetLETextByID(gCalcWinPtr, abCalcEntryBox, &strBuf); + } +} + + +void ExecCalcCmd(char *cmd) { abCalcOp *op = abCalcOpLookup(cmd); + CtlRecHndl entryBox = GetCtlHandleFromID(gCalcWinPtr, abCalcEntryBox); + + PushCalcEntry(entryBox); if (op != NULL) { op->execute(); - } else if (abCalcParseExpr(&gNDAExpr, cmd) != NULL) { - abCalcStackExprPush(&gNDAExpr); - } else { - abCalcRaiseError(abCalcSyntaxError, NULL); } - UpdateStack(TRUE); + 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 HandleStackClick(void) +{ + Handle stackListCtl = (Handle)GetCtlHandleFromID(gCalcWinPtr, abCalcStackList); + + DrawMember2(ResetMember2(stackListCtl), stackListCtl); +} + + +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); + op->execute(); + UpdateStack(); + } + + DrawMember2(nthOp + 1, opListCtl); + } } void HandleControl(EventRecord *event) { - static Str255 strBuf; 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: - GetLETextByID(gCalcWinPtr, abCalcEntryBox, &strBuf); - strBuf.text[strBuf.textLength] = '\0'; - DoCalcStuff(strBuf.text); - strBuf.textLength = 0; - SetLETextByID(gCalcWinPtr, abCalcEntryBox, &strBuf); + PushCalcEntry(entryBox); + UpdateStack(); break; case abCalcBtnDot: + InsertChar(entryBox, '.'); break; case abCalcBtnNum: + InsertChar(entryBox, '#'); break; case abCalcBtnAdd: - DoCalcStuff("+"); + ExecCalcCmd("+"); break; case abCalcBtnSub: - DoCalcStuff("-"); + ExecCalcCmd("-"); break; case abCalcBtnMult: - DoCalcStuff("*"); + ExecCalcCmd("*"); break; case abCalcBtnDiv: - DoCalcStuff("/"); + ExecCalcCmd("/"); break; case abCalcBtnPow: - DoCalcStuff("^"); + 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: break; case abCalcStackList: + HandleStackClick(); break; case abCalcOpList: + HandleOpClick(); break; } } @@ -346,13 +470,3 @@ BOOLEAN NDAAction(EventRecord *sysEvent, int code) return FALSE; } - - -/* I shouldn't need a main() but the linker seems to want one when I - link multiple objects together in the final link step. If I only - have a single object, there is no problem. There is probable a - compile incantation which will avoid this but for now... */ -int main(void) -{ - return 0; -} diff --git a/abCalcNDA.map b/abCalcNDA.map new file mode 100644 index 0000000..fb9a2a8 --- /dev/null +++ b/abCalcNDA.map @@ -0,0 +1,486 @@ +Segment: + + +00000000 00000060 02 Code: ~_ROOT +00000000 00000060 03 Code: ~_STACK +0000005F 000001EC 02 Code: NDAClose +0000024B 000000C2 02 Code: NDAInit +0000030D 0000003F 02 Code: DrawContents +0000034C 000003CA 02 Code: NDAOpen +00000716 0000020A 02 Code: UpdateStack +00000920 00000103 02 Code: DoCalcStuff +00000A23 00000577 02 Code: HandleControl +00000F9A 00000118 02 Code: NDAAction +000010B2 0000000F 02 Code: ~GLOBALS +000010C1 000003B8 02 Code: ~ARRAYS +00001479 00000085 02 Code: abCalcInit +000014FE 00000001 02 Code: ~GLOBALS +000014FF 00000007 02 Code: abCalcStackInit +00001506 00000107 02 Code: abCalcStackExprPush +0000160D 000000C7 02 Code: abCalcStackExprPop +000016D4 0000001B 02 Code: abCalcStackNumItems +000016EF 00000084 02 Code: abCalcStackExprAt +00001773 0000011C 02 Code: abCalcStackExprStringAt +0000188F 0000000D 02 Code: abCalcStackClear +0000189C 00000003 02 Code: ~GLOBALS +0000189F 00000528 02 Code: ~ARRAYS +00001DC7 00000007 02 Code: abCalcModeInit +00001DCE 0000001B 02 Code: abCalcModeGetBase +00001DE9 00000059 02 Code: abCalcModeSetBase +00001E42 0000001B 02 Code: abCalcModeGetIntWidth +00001E5D 0000005A 02 Code: abCalcModeSetIntWidth +00001EB7 00000005 02 Code: ~GLOBALS +00001EBC 00000266 02 Code: abCalcErrorInit +00002122 0000007B 02 Code: abCalcRaiseError +0000219D 000001BA 02 Code: abCalcGetError +00002357 0000001F 02 Code: abCalcClearError +00002376 00000007 02 Code: ~GLOBALS +0000237D 000000A4 02 Code: ~ARRAYS +00002421 0000006F 02 Code: abCalcExprInit +00002490 00000094 02 Code: abCalcRegisterExprType +00002524 00000148 02 Code: abCalcParseExpr +0000266C 00000140 02 Code: abCalcFormatExpr +000027AC 00000001 02 Code: ~GLOBALS +000027AD 00000008 02 Code: ~ARRAYS +000027B5 00000023 02 Code: abCalcExprRealInit +000027D8 000002B2 02 Code: abCalcExprRealParse +00002A8A 00000617 02 Code: abCalcExprRealFormat +000030A1 00000065 02 Code: abCalcExprRealSet +00003106 00000001 02 Code: ~GLOBALS +00003107 00000018 02 Code: ~ARRAYS +0000311F 00000023 02 Code: abCalcExprIntInit +00003142 00000600 02 Code: abCalcExprIntParse +00003742 00000327 02 Code: abCalcExprIntFormat +00003A69 000000DB 02 Code: abCalcExprIntSet +00003B44 00000001 02 Code: ~GLOBALS +00003B45 00000008 02 Code: ~ARRAYS +00003B4D 0000030B 02 Code: abCalcOpInit +00003E58 000000F7 02 Code: abCalcOpRegister +00003F4F 000000D0 02 Code: abCalcOpLookup +0000401F 00000095 02 Code: abCalcOpNth +000040B4 0000001B 02 Code: abCalcOpNumOps +000040CF 00000003 02 Code: ~GLOBALS +000040D2 00000400 02 Code: ~ARRAYS +000044D2 00000027 02 Code: abCalcOpAddInit +000044F9 000002F7 02 Code: addExecute +000047F0 00000001 02 Code: ~GLOBALS +000047F1 00000027 02 Code: abCalcOpSubtrInit +00004818 000002F7 02 Code: subtrExecute +00004B0F 00000001 02 Code: ~GLOBALS +00004B10 00000027 02 Code: abCalcOpMultInit +00004B37 000002DE 02 Code: multExecute +00004E15 00000001 02 Code: ~GLOBALS +00004E16 00000027 02 Code: abCalcOpDivInit +00004E3D 00000379 02 Code: divExecute +000051B6 00000001 02 Code: ~GLOBALS +000051B7 00000027 02 Code: abCalcOpPowerInit +000051DE 00000354 02 Code: powerExecute +00005532 00000001 02 Code: ~GLOBALS +00005533 00000029 02 Code: abCalcOpAndInit +0000555C 00000196 02 Code: andExecute +000056F2 00000001 02 Code: ~GLOBALS +000056F3 00000028 02 Code: abCalcOpOrInit +0000571B 00000193 02 Code: orExecute +000058AE 00000001 02 Code: ~GLOBALS +000058AF 00000029 02 Code: abCalcOpXorInit +000058D8 00000196 02 Code: xorExecute +00005A6E 00000001 02 Code: ~GLOBALS +00005A6F 00000029 02 Code: abCalcOpNotInit +00005A98 0000011F 02 Code: notExecute +00005BB7 00000001 02 Code: ~GLOBALS +00005BB8 00000029 02 Code: abCalcOpBinInit +00005BE1 0000001D 02 Code: binExecute +00005BFE 00000001 02 Code: ~GLOBALS +00005BFF 00000029 02 Code: abCalcOpOctInit +00005C28 0000001D 02 Code: octExecute +00005C45 00000001 02 Code: ~GLOBALS +00005C46 00000029 02 Code: abCalcOpDecInit +00005C6F 0000001D 02 Code: decExecute +00005C8C 00000001 02 Code: ~GLOBALS +00005C8D 00000029 02 Code: abCalcOpHexInit +00005CB6 0000001D 02 Code: hexExecute +00005CD3 00000001 02 Code: ~GLOBALS +00005CD4 0000002A 02 Code: abCalcOpStwsInit +00005CFE 00000164 02 Code: stwsExecute +00005E62 00000001 02 Code: ~GLOBALS +00005E63 0000002A 02 Code: abCalcOpRcwsInit +00005E8D 0000005C 02 Code: rcwsExecute +00005EE9 00000001 02 Code: ~GLOBALS +00005EEA 00000028 02 Code: abCalcOpSlInit +00005F12 0000011F 02 Code: slExecute +00006031 00000001 02 Code: ~GLOBALS +00006032 00000028 02 Code: abCalcOpRlInit +0000605A 00000182 02 Code: rlExecute +000061DC 00000001 02 Code: ~GLOBALS +000061DD 00000028 02 Code: abCalcOpSrInit +00006205 0000011F 02 Code: srExecute +00006324 00000001 02 Code: ~GLOBALS +00006325 00000028 02 Code: abCalcOpRrInit +0000634D 00000181 02 Code: rrExecute +000064CE 00000001 02 Code: ~GLOBALS +000064CF 00000029 02 Code: abCalcOpAsrInit +000064F8 0000017D 02 Code: asrExecute +00006675 00000001 02 Code: ~GLOBALS +00006676 00000029 02 Code: abCalcOpInvInit +0000669F 00000178 02 Code: invExecute +00006817 00000001 02 Code: ~GLOBALS +00006818 00000029 02 Code: abCalcOpChsInit +00006841 0000012A 02 Code: chsExecute +0000696B 00000001 02 Code: ~GLOBALS +0000696C 0000002A 02 Code: abCalcOpDropInit +00006996 0000009B 02 Code: dropExecute +00006A31 00000001 02 Code: ~GLOBALS +00006A32 0000002A 02 Code: abCalcOpSwapInit +00006A5C 00000155 02 Code: swapExecute +00006BB1 00000001 02 Code: ~GLOBALS +00006BB2 00000029 02 Code: abCalcOpSinInit +00006BDB 0000012D 02 Code: sinExecute +00006D08 00000001 02 Code: ~GLOBALS +00006D09 00000029 02 Code: abCalcOpCosInit +00006D32 0000012D 02 Code: cosExecute +00006E5F 00000001 02 Code: ~GLOBALS +00006E60 00000029 02 Code: abCalcOpTanInit +00006E89 0000012D 02 Code: tanExecute +00006FB6 00000001 02 Code: ~GLOBALS +00006FB7 0000002A 02 Code: abCalcOpAsinInit +00006FE1 000001B8 02 Code: asinExecute +00007199 00000001 02 Code: ~GLOBALS +0000719A 0000002A 02 Code: abCalcOpAcosInit +000071C4 000001B8 02 Code: acosExecute +0000737C 00000001 02 Code: ~GLOBALS +0000737D 0000002A 02 Code: abCalcOpAtanInit +000073A7 0000012F 02 Code: atanExecute +000074D6 00000001 02 Code: ~GLOBALS +000074D7 00000028 02 Code: abCalcOpSqInit +000074FF 0000012C 02 Code: sqExecute +0000762B 00000001 02 Code: ~GLOBALS +0000762C 0000002A 02 Code: abCalcOpSqrtInit +00007656 0000017E 02 Code: sqrtExecute +000077D4 00000001 02 Code: ~GLOBALS +000077D5 00000028 02 Code: abCalcOpPiInit +000077FD 0000007E 02 Code: piExecute +0000787B 00000001 02 Code: ~GLOBALS +0000787C 00000029 02 Code: abCalcOpLogInit +000078A5 000001C9 02 Code: logExecute +00007A6E 00000001 02 Code: ~GLOBALS +00007A6F 0000002A 02 Code: abCalcOpAlogInit +00007A99 0000013E 02 Code: alogExecute +00007BD7 00000001 02 Code: ~GLOBALS +00007BD8 00000028 02 Code: abCalcOpLnInit +00007C00 000001C5 02 Code: lnExecute +00007DC5 00000001 02 Code: ~GLOBALS +00007DC6 00000029 02 Code: abCalcOpExpInit +00007DEF 0000012D 02 Code: expExecute +00007F1C 00000001 02 Code: ~GLOBALS +00007F1D 0000002A 02 Code: abCalcOpSinhInit +00007F47 0000012F 02 Code: sinhExecute +00008076 00000001 02 Code: ~GLOBALS +00008077 0000002A 02 Code: abCalcOpCoshInit +000080A1 0000012F 02 Code: coshExecute +000081D0 00000001 02 Code: ~GLOBALS +000081D1 0000002A 02 Code: abCalcOpTanhInit +000081FB 0000012F 02 Code: tanhExecute +0000832A 00000001 02 Code: ~GLOBALS +0000832B 0000002B 02 Code: abCalcOpClearInit +00008356 00000019 02 Code: clearExecute +0000836F 00000001 02 Code: ~GLOBALS +00008370 00000169 02 Code: stricmp +000084D9 00000033 02 Code: PDOSINT +0000850C 0000001B 02 Code: atof +00008527 00000089 02 Code: fprintf +000085B0 0000013B 02 Code: fputc +000086EB 00000061 02 Code: memcpy +0000874C 0000008A 02 Code: memmove +000087D6 0000005C 02 Code: memset +00008832 0000007E 02 Code: sprintf +000088B0 0000003C 02 Code: stderr +000088EC 0000004C 02 Code: strcat +00008938 00000034 02 Code: strcpy +0000896C 00000024 02 Code: strlen +00008990 0000001A 02 Code: toupper +000089AA 00000040 02 Code: ~LSHR4 +000089EA 00000008 02 Code: CVars +000089F2 0000006D 02 Code: ~UDIV4 +00008A5F 00000042 02 Code: ~VerifyStream +00008AA1 0000001A 02 Code: ~ioerror +00008ABB 00000192 02 Code: ~printf +00008C4D 00000099 02 Data: ~printfCommon +00008CE6 0000004B 02 Code: putchar +00008D31 00000101 02 Code: __ctype +00008E32 000000FF 02 Code: fflush +00008F31 000000D3 02 Code: ftell +00009004 0000003C 02 Code: stdin +00009040 0000003C 02 Code: stdout +0000907C 00000010 02 Code: ~Format_Percent +0000908C 00000090 02 Code: ~Format_x +0000911C 00000082 02 Code: ~Format_s +0000919E 00000014 02 Code: ~Format_c +000091B2 0000016F 02 Code: ~Format_d +00009321 0000002F 02 Code: ~Format_n +00009350 00000073 02 Code: ~Format_o +000093C3 00000056 02 Code: ~InitBuffer +00009419 0000001F 02 Code: ~LeftJustify +00009438 000000C5 02 Code: acos +000094FD 000000CA 02 Code: asin +000095C7 00000033 02 Code: atan +000095FA 00000033 02 Code: cos +0000962D 0000009D 02 Code: cosh +000096CA 0000004A 02 Code: exp +00009714 00000026 02 Code: fabs +0000973A 0000005A 02 Code: floor +00009794 0000004A 02 Code: log +000097DE 0000006A 02 Code: log10 +00009848 000000B8 02 Code: modf +00009900 00000064 02 Code: pow +00009964 00000033 02 Code: sin +00009997 000000F6 02 Code: sinh +00009A8D 0000004A 02 Code: sqrt +00009AD7 000000A7 02 Code: strtod +00009B7E 0000004A 02 Code: tan +00009BC8 000000CA 02 Code: tanh +00009C92 00000029 02 Code: ~ADDE +00009CBB 00000026 02 Code: ~CNVINTREAL +00009CE1 00000032 02 Code: ~CNVREALINT +00009D13 00000035 02 Code: ~CNVREALLONG +00009D48 0000002C 02 Code: ~COPYDOUBLE +00009D74 00000029 02 Code: ~DIVE +00009D9D 00000035 02 Code: ~REALFN +00009DD2 0000002E 02 Code: ~EQUE +00009E00 000001D6 02 Code: ~Format_e +00009FD6 00000087 02 Code: ~Format_g +0000A05D 00000033 02 Code: ~GEQE +0000A090 00000033 02 Code: ~GRTE +0000A0C3 0000002D 02 Code: ~LOADDOUBLE +0000A0F0 00000029 02 Code: ~LOADEXTENDED +0000A119 00000029 02 Code: ~MULE +0000A142 00000034 02 Code: ~SAVEDOUBLE +0000A176 00000029 02 Code: ~SUBE +0000A19F 00000043 02 Data: ~stdglobals +0000A1E2 0000005C 02 Data: MathCommon +0000A23E 00000040 02 Code: SYSCHARERROUT +0000A27E 00000040 02 Code: SYSCHAROUT +0000A2BE 0000002E 02 Code: ~DISPOSE +0000A2EC 0000002B 02 Code: ~NEW +0000A317 0000006B 02 Code: ~DAID +0000A382 000000ED 02 Code: ~DISPOSE_AREA +0000A46F 00000074 02 Code: ~DISPOSE_BLOCK +0000A4E3 00000031 02 Code: ~GEQL +0000A514 0000002A 02 Code: ~GRTL +0000A53E 00000114 02 Data: ~GSOSIO +0000A652 0000002B 02 Code: ~MMINSERT +0000A67D 00000015 02 Code: ~MM_INIT +0000A692 000000DB 02 Code: ~MUL2 +0000A76D 000000DC 02 Code: ~MUL4 +0000A849 00000117 02 Code: ~NEW_AREA +0000A960 000000DB 02 Code: ~NEW_BLOCK +0000AA3B 0000006B 02 Code: ~REMOVE +0000AAA6 00000010 02 Code: ~SHIFTLEFT +0000AAB6 00000043 02 Code: ~SHL4 +0000AAF9 00000039 02 Code: ~SIGN +0000AB32 00000069 02 Code: ~UMUL2 +0000AB9B 0000006F 02 Code: ~UMUL4 +0000AC0A 0000002C 02 Data: ~common +0000AC36 00000011 02 Code: ~FIND_DISP + +Global symbol table: + +000089EA G 02 00 CVars 00000920 G 02 00 DoCalcStuff +0000030D G 02 00 DrawContents 00000A23 G 02 00 HandleControl +0000A1E2 P 02 03 MathCommon 00000F9A G 02 00 NDAAction +0000005F G 02 00 NDAClose 0000024B G 02 00 NDAInit +0000034C G 02 00 NDAOpen 000084D9 G 02 00 PDOSINT +0000A23E G 02 00 SYSCHARERROUT 0000A27E G 02 00 SYSCHAROUT +00000716 G 02 00 UpdateStack 00008D31 G 02 00 __ctype +000089EC G 02 00 _ownerid 000089F0 G 02 00 _toolErr +00002357 G 02 00 abCalcClearError 00001EBC G 02 00 abCalcErrorInit +00002421 G 02 00 abCalcExprInit 00003742 G 02 00 abCalcExprIntFormat +0000311F G 02 00 abCalcExprIntInit 00003142 G 02 00 abCalcExprIntParse +00003A69 G 02 00 abCalcExprIntSet 00002A8A G 02 00 abCalcExprRealFormat +000027B5 G 02 00 abCalcExprRealInit 000027D8 G 02 00 abCalcExprRealParse +000030A1 G 02 00 abCalcExprRealSet 0000266C G 02 00 abCalcFormatExpr +0000219D G 02 00 abCalcGetError 00001479 G 02 00 abCalcInit +00001DCE G 02 00 abCalcModeGetBase 00001E42 G 02 00 abCalcModeGetIntWidth +00001DC7 G 02 00 abCalcModeInit 00001DE9 G 02 00 abCalcModeSetBase +00001E5D G 02 00 abCalcModeSetIntWidth 0000719A G 02 00 abCalcOpAcosInit +000044D2 G 02 00 abCalcOpAddInit 00007A6F G 02 00 abCalcOpAlogInit +00005533 G 02 00 abCalcOpAndInit 00006FB7 G 02 00 abCalcOpAsinInit +000064CF G 02 00 abCalcOpAsrInit 0000737D G 02 00 abCalcOpAtanInit +00005BB8 G 02 00 abCalcOpBinInit 00006818 G 02 00 abCalcOpChsInit +0000832B G 02 00 abCalcOpClearInit 00006D09 G 02 00 abCalcOpCosInit +00008077 G 02 00 abCalcOpCoshInit 00005C46 G 02 00 abCalcOpDecInit +00004E16 G 02 00 abCalcOpDivInit 0000696C G 02 00 abCalcOpDropInit +00007DC6 G 02 00 abCalcOpExpInit 00005C8D G 02 00 abCalcOpHexInit +00003B4D G 02 00 abCalcOpInit 00006676 G 02 00 abCalcOpInvInit +00007BD8 G 02 00 abCalcOpLnInit 0000787C G 02 00 abCalcOpLogInit +00003F4F G 02 00 abCalcOpLookup 00004B10 G 02 00 abCalcOpMultInit +00005A6F G 02 00 abCalcOpNotInit 0000401F G 02 00 abCalcOpNth +000040B4 G 02 00 abCalcOpNumOps 00005BFF G 02 00 abCalcOpOctInit +000056F3 G 02 00 abCalcOpOrInit 000077D5 G 02 00 abCalcOpPiInit +000051B7 G 02 00 abCalcOpPowerInit 00005E63 G 02 00 abCalcOpRcwsInit +00003E58 G 02 00 abCalcOpRegister 00006032 G 02 00 abCalcOpRlInit +00006325 G 02 00 abCalcOpRrInit 00006BB2 G 02 00 abCalcOpSinInit +00007F1D G 02 00 abCalcOpSinhInit 00005EEA G 02 00 abCalcOpSlInit +000074D7 G 02 00 abCalcOpSqInit 0000762C G 02 00 abCalcOpSqrtInit +000061DD G 02 00 abCalcOpSrInit 00005CD4 G 02 00 abCalcOpStwsInit +000047F1 G 02 00 abCalcOpSubtrInit 00006A32 G 02 00 abCalcOpSwapInit +00006E60 G 02 00 abCalcOpTanInit 000081D1 G 02 00 abCalcOpTanhInit +000058AF G 02 00 abCalcOpXorInit 00002524 G 02 00 abCalcParseExpr +00002122 G 02 00 abCalcRaiseError 00002490 G 02 00 abCalcRegisterExprType +0000188F G 02 00 abCalcStackClear 000016EF G 02 00 abCalcStackExprAt +0000160D G 02 00 abCalcStackExprPop 00001506 G 02 00 abCalcStackExprPush +00001773 G 02 00 abCalcStackExprStringAt 000014FF G 02 00 abCalcStackInit +000016D4 G 02 00 abCalcStackNumItems 00009438 G 02 00 acos +000071C4 G 02 00 acosExecute 000044F9 G 02 00 addExecute +00007A99 G 02 00 alogExecute 0000555C G 02 00 andExecute +000094FD G 02 00 asin 00006FE1 G 02 00 asinExecute +000064F8 G 02 00 asrExecute 000095C7 G 02 00 atan +000073A7 G 02 00 atanExecute 0000850C G 02 00 atof +00005BE1 G 02 00 binExecute 00006841 G 02 00 chsExecute +00008356 G 02 00 clearExecute 000095FA G 02 00 cos +00006D32 G 02 00 cosExecute 0000962D G 02 00 cosh +000080A1 G 02 00 coshExecute 00005C6F G 02 00 decExecute +0000A19F P 02 02 decrec 00004E3D G 02 00 divExecute +00006996 G 02 00 dropExecute 000089EA G 02 00 errno +000096CA G 02 00 exp 0000A1A1 P 02 02 exp +00007DEF G 02 00 expExecute 00009714 G 02 00 fabs +00008E32 G 02 00 fflush 0000973A G 02 00 floor +00008527 G 02 00 fprintf 000085B0 G 02 00 fputc +0000A2BE G 02 00 free 00008F31 G 02 00 ftell +00001EBA P 02 00 gBase 000010B5 P 02 00 gCalcActive +000010B7 P 02 00 gCalcWinPtr 000027AD P 02 00 gCallbacks +00002379 P 02 00 gCurrErrorOpName 00002377 P 02 00 gCurrErrorType +0000237D G 02 00 gErrorBuffer 000023FD P 02 00 gErrorStrings +00003B45 G 02 00 gIntCallbacks 00001EB8 P 02 00 gIntWidth +0000146F G 02 00 gNDAExpr 000040D0 P 02 00 gNumOps +000010BD G 02 00 gOpList 000040D2 G 02 00 gOps +00003107 G 02 00 gRealCallbacks 000010B3 P 02 00 gResourceId +0000189F G 02 00 gStack 000011EF G 02 00 gStackList +0000189D P 02 00 gStackNumItems 000010BB P 02 00 gUserId +0000A200 P 02 03 half 00005CB6 G 02 00 hexExecute +0000A1CE P 02 02 huge_val 0000A1C0 P 02 02 index +0000669F G 02 00 invExecute 00007C00 G 02 00 lnExecute +00009794 G 02 00 log 000097DE G 02 00 log10 +000078A5 G 02 00 logExecute 0000A2EC G 02 00 malloc +000086EB G 02 00 memcpy 0000874C G 02 00 memmove +000087D6 G 02 00 memset 00009848 G 02 00 modf +00004B37 G 02 00 multExecute 00005A98 G 02 00 notExecute +00005C28 G 02 00 octExecute 0000A20A P 02 03 one +0000571B G 02 00 orExecute 0000A1E2 P 02 03 pi +000077FD G 02 00 piExecute 0000A1EC P 02 03 piover2 +00009900 G 02 00 pow 000051DE G 02 00 powerExecute +000085B0 G 02 00 putc 00008CE6 G 02 00 putchar +0000A1F6 P 02 03 quarter 00005E8D G 02 00 rcwsExecute +0000605A G 02 00 rlExecute 0000634D G 02 00 rrExecute +0000A19F P 02 02 sgn 0000A1A3 P 02 02 sig +0000A23C P 02 03 sign 00009964 G 02 00 sin +00006BDB G 02 00 sinExecute 00009997 G 02 00 sinh +00007F47 G 02 00 sinhExecute 00005F12 G 02 00 slExecute +00008832 G 02 00 sprintf 000074FF G 02 00 sqExecute +00009A8D G 02 00 sqrt 00007656 G 02 00 sqrtExecute +00006205 G 02 00 srExecute 000088B0 G 02 00 stderr +00009004 G 02 00 stdin 00009040 G 02 00 stdout +000088EC G 02 00 strcat 00008938 G 02 00 strcpy +00008370 G 02 00 stricmp 0000896C G 02 00 strlen +00009AD7 G 02 00 strtod 00005CFE G 02 00 stwsExecute +00004818 G 02 00 subtrExecute 00006A5C G 02 00 swapExecute +000089EE G 02 00 sys_nerr 0000A21E P 02 03 t1 +0000A1D8 P 02 02 t1 0000A228 P 02 03 t2 +0000A232 P 02 03 t3 00009B7E G 02 00 tan +00006E89 G 02 00 tanExecute 00009BC8 G 02 00 tanh +000081FB G 02 00 tanhExecute 00008990 G 02 00 toupper +0000A214 P 02 03 two 0000A1C2 P 02 02 valid +000058D8 G 02 00 xorExecute 0000A1C4 P 02 02 zero +00001D9F P 02 00 ~0141tmpBuffer 0000310F P 02 00 ~0149format +000010C1 P 02 00 ~0694strBuf 000011C1 P 02 00 ~0696localEvent +00009C92 G 02 00 ~ADDE 000010C1 P 02 00 ~ARRAYS +0000189F P 02 00 ~ARRAYS 0000237D P 02 00 ~ARRAYS +000027AD P 02 00 ~ARRAYS 00003107 P 02 00 ~ARRAYS +00003B45 P 02 00 ~ARRAYS 000040D2 P 02 00 ~ARRAYS +00009CBB G 02 00 ~CNVINTREAL 00009CE1 G 02 00 ~CNVREALINT +00009D13 G 02 00 ~CNVREALLONG 00009D48 G 02 00 ~COPYDOUBLE +0000A317 G 02 00 ~DAID 0000A2BE G 02 00 ~DISPOSE +0000A382 P 02 00 ~DISPOSE_AREA 0000A46F P 02 00 ~DISPOSE_BLOCK +00009D74 G 02 00 ~DIVE 00009D9D G 02 00 ~DOUBLEFN +00009DD2 G 02 00 ~EQUE 0000A648 P 02 04 ~ERROUTREFNUM +0000AC36 P 02 00 ~FIND_DISP 00009E05 G 02 00 ~Format_E +00009FDB G 02 00 ~Format_G 00009211 P 02 00 ~Format_IntOut +0000907C P 02 00 ~Format_Percent 0000909A P 02 00 ~Format_X +0000913D P 02 00 ~Format_b 0000919E P 02 00 ~Format_c +000091B2 P 02 00 ~Format_d 00009E00 G 02 00 ~Format_e +00009E13 G 02 00 ~Format_f 00009FD6 G 02 00 ~Format_g +00009321 P 02 00 ~Format_n 00009350 P 02 00 ~Format_o +00009094 P 02 00 ~Format_p 0000911C P 02 00 ~Format_s +000091DF P 02 00 ~Format_u 0000908C P 02 00 ~Format_x +0000A05D G 02 00 ~GEQE 0000A4E3 G 02 00 ~GEQL +000010B2 P 02 00 ~GLOBALS 000014FE P 02 00 ~GLOBALS +0000189C P 02 00 ~GLOBALS 00001EB7 P 02 00 ~GLOBALS +00002376 P 02 00 ~GLOBALS 000027AC P 02 00 ~GLOBALS +00003106 P 02 00 ~GLOBALS 00003B44 P 02 00 ~GLOBALS +000040CF P 02 00 ~GLOBALS 000047F0 P 02 00 ~GLOBALS +00004B0F P 02 00 ~GLOBALS 00004E15 P 02 00 ~GLOBALS +000051B6 P 02 00 ~GLOBALS 00005532 P 02 00 ~GLOBALS +000056F2 P 02 00 ~GLOBALS 000058AE P 02 00 ~GLOBALS +00005A6E P 02 00 ~GLOBALS 00005BB7 P 02 00 ~GLOBALS +00005BFE P 02 00 ~GLOBALS 00005C45 P 02 00 ~GLOBALS +00005C8C P 02 00 ~GLOBALS 00005CD3 P 02 00 ~GLOBALS +00005E62 P 02 00 ~GLOBALS 00005EE9 P 02 00 ~GLOBALS +00006031 P 02 00 ~GLOBALS 000061DC P 02 00 ~GLOBALS +00006324 P 02 00 ~GLOBALS 000064CE P 02 00 ~GLOBALS +00006675 P 02 00 ~GLOBALS 00006817 P 02 00 ~GLOBALS +0000696B P 02 00 ~GLOBALS 00006A31 P 02 00 ~GLOBALS +00006BB1 P 02 00 ~GLOBALS 00006D08 P 02 00 ~GLOBALS +00006E5F P 02 00 ~GLOBALS 00006FB6 P 02 00 ~GLOBALS +00007199 P 02 00 ~GLOBALS 0000737C P 02 00 ~GLOBALS +000074D6 P 02 00 ~GLOBALS 0000762B P 02 00 ~GLOBALS +000077D4 P 02 00 ~GLOBALS 0000787B P 02 00 ~GLOBALS +00007A6E P 02 00 ~GLOBALS 00007BD7 P 02 00 ~GLOBALS +00007DC5 P 02 00 ~GLOBALS 00007F1C P 02 00 ~GLOBALS +00008076 P 02 00 ~GLOBALS 000081D0 P 02 00 ~GLOBALS +0000832A P 02 00 ~GLOBALS 0000836F P 02 00 ~GLOBALS +0000A090 G 02 00 ~GRTE 0000A514 G 02 00 ~GRTL +0000A53E P 02 04 ~GSOSIO 0000A650 P 02 04 ~INPUTISCONSOLE +000093C3 G 02 00 ~InitBuffer 0000A53E P 02 04 ~LINE +0000A63E P 02 04 ~LINEDISP 0000A640 P 02 04 ~LINELENGTH +0000A0C3 G 02 00 ~LOADDOUBLE 0000A0F0 G 02 00 ~LOADEXTENDED +000089AA G 02 00 ~LSHR4 00009419 G 02 00 ~LeftJustify +0000A652 P 02 00 ~MMINSERT 0000A67D G 02 00 ~MM_INIT +0000A692 G 02 00 ~MUL2 0000A76D G 02 00 ~MUL4 +0000A119 G 02 00 ~MULE 0000A2EC G 02 00 ~NEW +0000A849 P 02 00 ~NEW_AREA 0000A960 P 02 00 ~NEW_BLOCK +0000A64A P 02 04 ~OPENED 0000A642 P 02 04 ~PUTBACK +00009D9D G 02 00 ~REALFN 0000AA3B P 02 00 ~REMOVE +0000941F G 02 00 ~RightJustify 0000A142 G 02 00 ~SAVEDOUBLE +0000AAA6 G 02 00 ~SHIFTLEFT 0000AAB6 G 02 00 ~SHL4 +0000AAF9 G 02 00 ~SIGN 0000A644 P 02 04 ~STINREFNUM +0000A646 P 02 04 ~STOUTREFNUM 0000A176 G 02 00 ~SUBE +000089F0 G 02 00 ~TOOLERROR 000089F2 G 02 00 ~UDIV4 +0000AB32 G 02 00 ~UMUL2 0000AB9B G 02 00 ~UMUL4 +000089EC G 02 00 ~USER_ID 00008A5F P 02 00 ~VerifyStream +00000000 P 02 00 ~_ROOT 00000000 P 03 00 ~_STACK +00008C54 G 02 01 ~altForm 0000000E P 02 00 ~blockheader +0000AC0A P 02 00 ~blocks 00001000 P 02 00 ~blocksize +0000AC0A P 02 05 ~common 00008CC1 G 02 01 ~decForm +00008CC5 G 02 01 ~decRec 00008CC3 G 02 01 ~digits +00008CC7 G 02 01 ~exp 00008C56 G 02 01 ~fieldWidth +00000004 P 02 00 ~headersize 00008C58 G 02 01 ~hexPrefix +00008AA1 G 02 00 ~ioerror 00008C5A G 02 01 ~isLong +00008C5C G 02 01 ~leftJustify 0000AC0E P 02 00 ~list +00000024 P 02 00 ~maxdisp 00008C68 G 02 01 ~num +00008C6C G 02 01 ~numChars 00008C5E G 02 01 ~paddChar +00008C60 G 02 01 ~precision 00008C62 G 02 01 ~precisionSpecified +00008ABB P 02 00 ~printf 00008C4D G 02 01 ~printfCommon +00008C4D G 02 01 ~putchar 00008C64 G 02 01 ~removeZeros +00008CC5 G 02 01 ~sgn 00008CC9 G 02 01 ~sig +00008C66 G 02 01 ~sign 0000A19F P 02 02 ~stdglobals +00008D01 G 02 00 ~stdout 00008C6E G 02 01 ~str +00008CC1 G 02 01 ~style + + +Segment Information: + + Number Name Type Length Org + + 2 $00 $0000AC47 Relocatable + 3 ~_STACK $12 $00001000 Relocatable + +There are 2 segments, for a length of $0000BC47 bytes. diff --git a/abCalcNDA.rez b/abCalcNDA.rez index f40bd98..a98afbc 100644 --- a/abCalcNDA.rez +++ b/abCalcNDA.rez @@ -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 */