1  ERASE : WSELECT 1: WINDOW 8,24,24,79
2  PRINT "STACKALC  by Slot 8"
3  PRINT : ' Developmental Revision 2.2, 11/7/85
4  PRINT "Copyright 1985"
5  PRINT "Slot Eight Associates":' Attn: Jim Lill
6  PRINT "PO Box 10098"
7  PRINT "Rochester, NY 14610"
8  WAIT 1000
9  ' Written/Compiled using MTBASIC by Softaid POB 2214 Colombia MD 21045
10  STRING A$(30),E$,F$(30),S$,PR$(30),B$,H$(30),PRX$,PRLX$,E2$,PRY$,PRZ$
11  STRING PBX$(20,20),PBF$(20,20),PBLX$(20,20)
12  REAL J,Q,R,T,UL,UX,UY,UZ,UT,Z,O,Y,X,LX,U,V,E9,ABS,X3,ANG,X4,O2
13  INTEGER C,D,G,I,L,K,N,W,P,M,X2,HE,U2,PB,PBO,QC,U3
14   S$="Ready for New Entry":  HE=0:  E2$="":  M=0:  PB=0
15   IF  HE = 64 THEN  GOTO 19
16   P=32:  F$=S$:  E$="":  Q=1000000.0:  X2=1
17   W=0:  O=0.0:  M=0:  HE=0:  QC=0
18   X=0.0:  Y=0.0:  Z=0.0:  T=0.0:  LX=0.0:  L=1:  C=1:  R=0.0:  J=0
19  DEF ABS(X3)
20   IF  X3 < 0.0 THEN   X3=X3 * ( - 1)
21   ABS=X3
22  FNEND
23  DEF ANG(X4)
24   IF  X4 < 360.0 THEN  GOTO 26
25   X4=X4 - 360: GOTO 24
26   IF  M = 1 THEN   X4=X4 * 57.29577951
27   ANG=X4: FNEND
28  DEF PR$(O)
29   IF  O = 0.0  OR  O > .01  OR  O < -0.01 THEN  GOTO 38
30   W=0
31   W=W + 1:  O=O * 10
32   IF  O < 1.0  AND  O > -1.0 THEN  GOTO 31
33  GOSUB 46
34   B$=STR$(W)
35   IF  W < 10 THEN   B$=CONCAT$("0",B$)
36   B$=CONCAT$("-",B$)
37  GOTO 54
38   IF  O > Q  OR  O < ( - Q) THEN  GOTO 41
39  GOSUB 60
40   PR$=CONCAT$(H$,"    "): GOTO 65
41   W=0
42   W=W + 1:  O=O / 10.0
43   IF  O >= 10.0  OR  O <= -10.0 THEN  GOTO 42
44  GOSUB 46
45  GOTO 52
46   IF  MID$(STR$(O),1,6) = "9.9999" THEN   O=1.0:  W=W + 1
47   IF  MID$(STR$(O),1,7) = "-9.9999" THEN   O= - 1.0:  W=W + 1
48   IF  MID$(STR$(O),3,4) = "9999" THEN   O=VAL(MID$(STR$(O),1,1)) + 1
49   IF  O > 0.0 THEN  GOTO 51
50   IF  MID$(STR$(O),4,4) = "9999" THEN   O= - (VAL(MID$(STR$(O),2,1)) + 1)
51  RETURN
52   B$=STR$(W)
53   IF  W < 10 THEN   B$=CONCAT$("0",B$)
54   B$=MID$(B$,1,LEN(B$) - 6)
55   IF  VAL(B$) > 0 THEN   B$=CONCAT$("+",B$)
56   IF  VAL(STR$(O)) = 0.0  AND  W < 0 THEN  GOTO 331
57   IF  W > 36  OR  W < -36 THEN  GOTO 331
58  GOSUB 60
59   PR$=CONCAT$(CONCAT$(H$,"E"),B$): GOTO 65
60   H$=STR$(O)
61  FOR U2=1 TO (14 - LEN(H$))
62   E2$=CONCAT$(E2$," ")
63  NEXT U2
64   H$=CONCAT$(E2$,H$):  E2$="": RETURN
65  FNEND
66   A$="                  ":  E9=2.3025850930
67  ERASE : WSELECT 0: WINDOW 0,0,21,79: WFRAME "_","|":WINDOW 0,0,21,44
68  WFRAME "_","|":WINDOW 2,4,20,43
69  PRINT "       S  T  A  C  K  A  L  C  "
70  PRINT "HELP          ?      QUIT         ESC"
71  PRINT "4 Function: +-*/     QuiCalc      ^ ^"
72  PRINT "Backsp.  <Cursor     Ang.Tog. ^T  DEG"
73  PRINT "Enter      <sp>      Clr. X     <cr>X"
74  PRINT "Roll-Down     D      Clr. Mem.  <cr>M"
75  PRINT "Roll ^ stack  U      Clr. Stack <cr>S"
76  PRINT "X-Y Exchange XY      X-Mem. Exch   XM"
77  PRINT "Sto/Recall  M/R      Change Sign    ;"
78  PRINT "PI 3.14159    P      Recall Last X LX"
79  PRINT "Sq.Root X    SR      Square X      SQ"
80  PRINT "Log (10)     LG      Log (e)       LN"
81  PRINT "AntiLog (10) ^L      AntiLog (e)   ^N"
82  PRINT "Y to the Xth ^X      Xth Root Y    ^Y"
83  PRINT "Sine X       SI      ArcSine X     AS"
84  PRINT "Cosine X      C      ArcCosine X   AC"
85  PRINT "Tangent X     T      ArcTangent X  AT"
86  PRINT "1/X           I      Sci.Notation   E"
87  PRINT "Print Toggle ^I      Paper Advance ^J"
88   IF  QC = 1 THEN  GOTO 91
89  WINDOW 0,44,3,79: WFRAME "_","|": WINDOW 2,46,3,78: PRINT "T register="
90  WINDOW 3,44,6,79: WFRAME "_","|": WINDOW 5,46,6,78: PRINT "Z register="
91  WINDOW 6,44,9,79: WFRAME "_","|": WINDOW 8,46,9,78
92  IF QC=1 THEN PRINT "        QUICK  CALCULATOR":GOTO 96
93  PRINT "Y register="
94  WINDOW 15,44,18,79: WFRAME "_","|": WINDOW 17,46,18,78: PRINT "    last X="
95  WINDOW 18,44,21,79: WFRAME "_","|": WINDOW 20,46,21,78: PRINT "    memory="
96  WINDOW 9,44,12,79: WFRAME "_","|": WINDOW 11,46,12,78: PRINT "X register="
97  WINDOW 12,44,15,79: WFRAME "_","|": WINDOW 14,46,15,78: PRINT "function:"
98   IF  HE = 64 THEN  GOTO 100
99   C=0
100   UL=LX:  UX=X:  UY=Y:  UZ=Z:  UT=T
101   IF  QC = 1 THEN  GOTO 108
102  WINDOW 2,60,3,78: PRINT PR$(T)
103  WINDOW 5,60,6,78:  PRZ$=PR$(Z): PRINT PRZ$
104  WINDOW 8,60,9,78:  PRY$=PR$(Y): PRINT PRY$
105   IF  QC = 1 THEN  GOTO 108
106  WINDOW 17,60,18,78:  PRLX$=PR$(LX): PRINT PRLX$
107  WINDOW 20,60,21,78: PRINT PR$(R)
108  WINDOW 11,60,12,78:  PRX$=PR$(X): PRINT PRX$
109   IF  P = 32 THEN  GOTO 113
110   IF  MID$(F$,1,2) = "**" THEN  GOTO 113
111   IF  MID$(F$,1,3) = "PRI" THEN  GOTO 113
112   PB=PB + 1:  PBLX$(PB)=(PRLX$):  PBX$(PB)=PRX$:  PBF$(PB)=F$
113  WINDOW 14,58,15,78: PRINT "                    "
114  WINDOW 14,58,15,78: PRINT F$
115   L=C
116  WINDOW 14,56,15,58: CURSOR 0,0
117   K=KEY
118   IF  K = 0 THEN  GOTO 117
119   IF  K > 96  AND  K < 123 THEN   K=K - 32
120  WINDOW 14,58,15,78: PRINT "New Entry in Process"
121   IF  K = 44 THEN  GOTO 330
122   IF  K = 46 THEN  GOTO 124
123   IF  K < 48  OR  K > 57 THEN  GOTO 131
124  WINDOW 11,60,12,78: PRINT A$
125  GOTO 131
126  WINDOW 11,60,12,78: PRINT E$: CURSOR 0,LEN(E$)
127   K=KEY
128   IF  K = 0 THEN  GOTO 127
129   IF  K > 96  AND  K < 123 THEN   K=K - 32
130   IF  K = 44 THEN  GOTO 330
131   IF  K >< 46 THEN  GOTO 134
132   IF  D = 1 THEN  GOTO 127
133   D=1: GOTO 135
134   IF  K < 48  OR  K > 57 THEN   L=C: GOTO 144
135   E$=CONCAT$(E$,CHR$(K))
136   IF  J = 1  OR  L = 2 THEN  GOTO 140
137   T=Z:  Z=Y:  Y=X:  J=1
138   IF  QC = 1 THEN  GOTO 140
139  WINDOW 2,60,3,78: PRINT PRZ$: WINDOW 5,60,6,78: PRINT PRY$: WINDOW 8,60,9,78: PRINT PRX$
140   IF  LEN(E$) < 18 THEN  GOTO 143
141   E$="":  F$="** Use 'E' Key **"
142   LX=UL:  X=UX:  Y=UY:  Z=UZ:  T=UT: GOTO 101
143   C=1: GOTO 126
144   U=V:  V=VAL(E$)
145   IF  K >< 8 THEN  GOTO 155
146   IF  L >< 1 THEN  GOTO 113
147   F$="Backspace Entry      ":  U3=LEN(E$) - 1
148   IF  U3 < 1 THEN   E$="":  F$=S$: WINDOW 11,60,12,78:  D=0:  C=2:  U=0.0: PRINT U: GOTO 113
149   H$=MID$(E$,(U3 + 1),1)
150   IF  H$ = "." THEN   D=0
151   E$=MID$(E$,1,U3)
152  WINDOW 11,60,12,78: PRINT "                    "
153  WINDOW 14,58,15,78: PRINT F$
154  GOTO 126
155   E$="":  J=0:  H$="":  D=0
156   IF  C = 3 THEN  GOTO 158
157   IF  C = 1 THEN   X=V
158   IF  K >< 32 THEN  GOTO 161
159   T=Z:  Z=Y:  Y=X:  V=X:  C=2:  F$="ENTER, X=>Y=>Z=>T"
160   IF  PB < 18 THEN  GOTO 100
161   IF  PB = 0  OR  K = 30 THEN  GOTO 168
162  FILE  - 1
163  FOR PBO=1 TO PB
164  PRINT PBLX$(PBO);" | ";PBX$(PBO);" | ";PBF$(PBO)
165  NEXT PBO
166   PB=0: FILE 0
167   IF  K = 32 THEN  GOTO 100
168   IF  K >< 9 THEN  GOTO 178
169   IF  P = 32 THEN  GOTO 171
170   P=32:  F$="PRINTER OFF": GOTO 101
171   P=64:  F$="PRINTER ON": FILE  - 1
172  PRINT " STACKALC                                            by SLOT 8"
173  PRINT "---------------------------------------------------------------"
174  PRINT "      Last   X     |          X         |     Function"
175  PRINT "---------------------------------------------------------------"
176  PRINT "                   |                    |  "
177  FILE 0: GOTO 99
178   IF  K > 65 THEN  GOTO 258
179   IF  K >< 13 THEN  GOTO 188
180  WINDOW 14,56,15,78: PRINT "  1st. Keystroke= <cr> ": CURSOR 0,0
181   K=KEY
182   IF  K = 0 THEN  GOTO 181
183   IF  K = 77  OR  K = 109 THEN   F$="Clear MEMORY":  R=0.0: GOTO 99
184   IF  K >< 83  AND  K >< 115 THEN  GOTO 186
185   F$="Clear STACK":  LX=0.0:  X=0.0:  Y=0.0:  Z=0.0:  T=0.0: GOTO 99
186   IF  K = 88  OR  K = 120 THEN   F$="Clear X":  C=2:  X=0.0: GOTO 108
187   IF  K >< 27 THEN  GOTO 330
188   IF  K >< 30 THEN  GOTO 193
189   IF  QC = 1 THEN   HE=64:  QC=0: WINDOW 8,46,9,78: WCLEAR : GOTO 89
190  WINDOW 2,45,8,78: WCLEAR
191  WINDOW 6,44,9,79: WFRAME "_","|": WINDOW 8,46,9,78: PRINT "        QUICK  CALCULATOR"
192  WINDOW 16,45,20,78: WCLEAR :  QC=1: GOTO 100
193   IF  K >< 43 THEN  GOTO 197
194   IF  X = 0.0  OR  Y = 0.0 THEN  GOTO 196
195   IF  LOG(ABS(X / 10) + ABS(Y / 10)) > 80.590 THEN  GOTO 331
196   F$="ADDITION":  LX=X:  X=Y + X:  Y=Z:  Z=T: GOTO 99
197   IF  K = 45 THEN   F$="SUBTRACTION":  LX=X:  X=Y - X:  Y=Z:  Z=T: GOTO 99
198   IF  K >< 42 THEN  GOTO 202
199   IF  Y = 0.0  OR  X = 0.0 THEN  GOTO 201
200   IF  LOG(ABS(Y)) + LOG(ABS(X)) > 82.893 THEN  GOTO 331
201   F$="MULTIPLICATION":  LX=X:  X=Y * X:  Y=Z:  Z=T: GOTO 99
202   IF  K = 35  OR  K = 63 THEN  GOTO 339
203   IF  K >< 59 THEN  GOTO 207
204   F$="Change Sign of X"
205   IF  X = 0.0 THEN  GOTO 108
206   X=( - X):  UX=X:  C=0: GOTO 108
207   IF  K >< 47 THEN  GOTO 210
208   IF  X = 0.0 THEN  GOTO 331
209   F$="DIVISION":  LX=X:  X=Y / X:  Y=Z:  Z=T: GOTO 99
210   IF  K >< 12 THEN  GOTO 213
211   IF  X > 36.0 THEN  GOTO 331
212   F$="anti-LOG(10)":  LX=X:  X=EXP(E9 * X): GOTO 99
213   IF  K >< 20 THEN  GOTO 217
214   IF  M = 0 THEN   M=1: WINDOW 5,38,6,40: PRINT "RAD": GOTO 216
215   IF  M = 1 THEN   M=0: WINDOW 5,38,6,40: PRINT "DEG"
216   F$="Ready for New Entry": GOTO 113
217   IF  K = 10 THEN  FILE  - 1: PRINT : FILE 0: GOTO 113
218   IF  K = 27 THEN  GOTO 336
219   IF  K >< 14 THEN  GOTO 223
220   IF  X > 82.893 THEN  GOTO 331
221   F$="anti-LOG(e)"
222   LX=X:  X=EXP(1 * X): GOTO 99
223   IF  K >< 24 THEN  GOTO 236
224   F$="Y Raised to the X":  I=X:  LX=X:  U=1
225   IF  X = 0.5 THEN   X=SQR(Y): GOTO 235
226   IF  Y = 0.0 THEN   X=0: GOTO 235
227   IF  X = 0.0 THEN   X=1: GOTO 235
228   IF  X * LOG(ABS(Y)) > 82.893 THEN  GOTO 331
229   IF  X >< I  OR  X < 1 THEN   X=EXP(LOG(Y) * X): GOTO 235
230   IF  X = 1 THEN   X=Y: GOTO 235
231   X=Y
232   IF  U = LX THEN  GOTO 235
233   X=X * Y:  U=U + 1
234  GOTO 232
235   Y=Z:  Z=T: GOTO 99
236   IF  K >< 25 THEN  GOTO 242
237   IF  X <= 0.0  OR  Y = 0.0 THEN  GOTO 331
238   F$="Xth Root of Y":  LX=X
239   IF  X = 2 THEN   X=SQR(Y): GOTO 241
240   U=LOG(Y) / X:  X=EXP(1 * U): GOTO 241
241   Y=Z:  Z=T: GOTO 99
242   IF  K >< 65 THEN  GOTO 258
243  WINDOW 14,56,15,78: PRINT "  1st. Keystroke= A    ": CURSOR 0,0
244   K=KEY
245   IF  K = 0 THEN  GOTO 244
246   IF  K = 27 THEN  GOTO 336
247   IF  K = 84  OR  K = 116 THEN   F$="arc TANGENT":  LX=X:  X=ATAN(X): GOTO 256
248   IF  K >< 67  AND  K >< 99 THEN  GOTO 253
249   F$="arc COSINE"
250   IF  X = 0.0 THEN   LX=X:  X=90.0: GOTO 256
251   IF  ABS(X) > 1.0 THEN  GOTO 331
252   LX=X:  X=ACOS(X): GOTO 256
253   IF  K >< 83  AND  K >< 115 THEN  GOTO 330
254   IF  ABS(X) > 1.0 THEN  GOTO 331
255   F$="arc SINE":  LX=X:  X=ASIN(X)
256   IF  M = 1 THEN   X=X / 57.29577951
257  GOTO 105
258   IF  K = 67  OR  K = 99 THEN   F$="COSINE":  LX=X:  X=COS(ANG(X)): GOTO 99
259   IF  K = 68  OR  K = 100 THEN   F$="Roll-Down Stack":  U=X:  X=Y:  Y=Z:  Z=T:  T=U: GOTO 99
260   IF  K >< 69 THEN  GOTO 282
261  WINDOW 14,58,15,78: PRINT "Enter Exponent      ":WINDOW 11,60,12,78: PRINT A$
262  IF X = 0.0 THEN  X = 1.0
263  WINDOW 11,60,12,73: PRINT X:  O2=1
264  WINDOW 11,74,12,78: PRINT "E": CURSOR 0,1
265   K=KEY
266   IF  K = 0 THEN  GOTO 265
267   IF  K = 8 THEN   H$="": WINDOW 11,75,12,78: PRINT "   ": GOTO 264
268   IF  K < 48  OR  K = 58 OR K > 59 THEN  GOTO 274
269   IF  K = 59 THEN   H$=CONCAT$("-",H$): GOTO 272
270   H$=CONCAT$(H$,CHR$(K))
271   IF  LEN(H$) = 3 THEN  GOTO 331
272   G=VAL(H$): WINDOW 11,75,12,78: PRINT G
273  CURSOR 0,LEN(H$): GOTO 265
274   IF  LOG(ABS(X)) + ABS(G) > 37  OR  ABS(G) > 35 THEN  GOTO 331
275   IF  G = 0 THEN   O2=1: GOTO 279
276  FOR U=1 TO ABS(G)
277   O2=O2 * 10
278  NEXT U
279   IF  G >= 0 THEN   X=X * O2
280   IF  G < 0 THEN   X=X / O2
281   C=3:  G=0: GOTO 155
282   IF  K >< 73 THEN  GOTO 285
283   IF  X = 0.0 THEN  GOTO 331
284   F$="RECIPROCAL":  LX=X:  X=1 / X: GOTO 99
285   IF  K >< 76 THEN  GOTO 298
286  WINDOW 14,56,15,78: PRINT "  1st. Keystroke= L    ": CURSOR 0,0
287   K=KEY
288   IF  K = 0 THEN  GOTO 287
289   IF  K = 88  OR  K = 120 THEN   F$="Recall Last X":  U=LX: GOTO 333
290   IF  K >< 71  AND  K >< 103 THEN  GOTO 293
291   IF  X <= 0.0 THEN  GOTO 331
292   F$="LOG(10)":  LX=X:  X=(LOG(X) / E9): GOTO 99
293   IF  K >< 78  AND  K >< 110 THEN  GOTO 296
294   IF  X <= 0.0 THEN  GOTO 331
295   F$="LOG(e)":  LX=X:  X=LOG(X): GOTO 99
296   IF  K = 27 THEN  GOTO 336
297  GOTO 330
298   IF  K = 77 THEN   F$="Store in Memory":  R=X: GOTO 99
299   IF  K = 80 THEN   F$="PI, 3.141592":  U=3.141592654: GOTO 333
300   IF  K = 82 THEN   F$="Recall Memory":  U=R: GOTO 333
301   IF  K >< 83 THEN  GOTO 319
302  WINDOW 14,56,15,78: PRINT "  1st. Keystroke= S    ": CURSOR 0,0
303   K=KEY
304   IF  K = 0 THEN  GOTO 303
305   IF  K = 73  OR  K = 105 THEN   F$="SINE":  LX=X:  X=SIN(ANG(X)): GOTO 99
306   IF  K >< 81  AND  K >< 113 THEN  GOTO 309
307   IF  2 * LOG(ABS(X)) > 82.893 THEN  GOTO 331
308   F$="SQUARE":  LX=X:  X=X * X: GOTO 99
309   IF  K >< 82  AND  K >< 114 THEN  GOTO 317
310   IF  X < 0.0 THEN  GOTO 331
311   IF  X = 0.0 THEN  GOTO 99
312   F$="SQUARE-ROOT":  LX=X
313   IF  X < 20 THEN   X=10000 * X:  X=SQR(X):  X=X / 100: GOTO 99
314   IF  X < 625 THEN   X=100 * X:  X=SQR(X):  X=X / 10: GOTO 99
315   IF  LOG(X) > 35 THEN   X=EXP(1 * (LOG(X) / 2)): GOTO 99
316   X=SQR(X): GOTO 99
317   IF  K = 27 THEN  GOTO 336
318  GOTO 330
319   IF  K >< 84 THEN  GOTO 322
320   IF  X = 90.0 THEN  GOTO 331
321   F$="TANGENT":  LX=X:  X=TAN(ANG(X)): GOTO 99
322   IF  K = 85 THEN   F$="Roll-Up Stack":  U=T:  T=Z:  Z=Y:  Y=X:  X=U: GOTO 99
323   IF  K >< 88 THEN  GOTO 330
324  WINDOW 14,56,15,78: PRINT "  1st. Keystroke= X    ": CURSOR 0,0
325   K=KEY
326   IF  K = 0 THEN  GOTO 325
327   IF  K = 89  OR  K = 121 THEN   F$="Exchange X and Y":  U=X:  X=Y:  Y=U: GOTO 99
328   IF  K = 77  OR  K = 109 THEN   F$="Exchange X and MEM":  U=X:  X=R:  R=U: GOTO 99
329   IF  K = 27 THEN  GOTO 336
330   F$="** FUNCTION ERROR **": GOTO 332
331   F$="** OUT-OF-RANGE **"
332   LX=UL:  X=UX:  Y=UY:  Z=UZ:  T=UT:GOTO 100
333   IF  L = 2 THEN   X=U: GOTO 99
334   IF  L = 1 THEN   T=Y:  Z=X:  Y=X:  X=U: GOTO 99
335   T=Z:  Z=Y:  Y=X:  X=U: GOTO 99
336  ERASE : PRINT "STACKALC by Slot 8"
337  WAIT 50
338  STOP
339  ' START OF HELP
340  ERASE : WSELECT 11
341  PRINT "FUNCTION LIST                    KEYSTROKES      NOTES": PRINT
342  PRINT "Calculative:": PRINT
343  PRINT "Simple Math, +   -   *   /              +   -   *   /"
344  PRINT "Square Root of X                        SR    X must be +"
345  PRINT "X Squared                               SQ"
346  PRINT "Log (base 10) of X                      LG"
347  PRINT "antiLog of above                  ctrl 'L'"
348  PRINT "Log (natural) of X                      LN    X must be >0"
349  PRINT "antiLog of above                  ctrl 'N'"
350  PRINT "Y to the Xth Power                ctrl 'X'         "
351  PRINT "Xth Root of Y                     ctrl 'Y'    use Y -Xth for best accuracy"
352  PRINT "Reciprocal, 1/X                         I"
353  PRINT "Cosine of X                             C"
354  PRINT "Sine of X                              SI"
355  PRINT "Tangent of X                            T"
356  PRINT "Arc Functions of above           AC,AS,AT"
357  PRINT
358  PRINT "hit any key to continue..... Q to quit"
359   K=KEY
360   IF  K = 0 THEN  GOTO 359
361   IF  K = 81 OR K= 113 THEN  GOTO 432
362  ERASE : PRINT "Manipulative:": PRINT
363  PRINT "Quit                                   ESC"
364  PRINT "Enter X=>Y=>Z=>T                      <sp>"
365  PRINT "Backspace New Entry               < cursor"
366  PRINT "Roll Down Stack                          D"
367  PRINT "Roll Up Stack                            U"
368  PRINT "Clear Stack                          <cr>S"
369  PRINT "Clear X                              <cr>X"
370  PRINT "Clear Memory                         <cr>M"
371  PRINT "Exchange X and Y                        XY"
372  PRINT "Exchange X and Memory                   XM"
373  PRINT "Store X in Memory                        M"
374  PRINT "Recall X from Memory                     R"
375  PRINT "Recall Last X                           LX"
376  PRINT "Change Sign of X or Exponent (semicolon) ;    see example that follows"
377  PRINT "PI, 3.14159
                         P"
378  PRINT "Degrees/Radians In/Out              ctrl T"
379  PRINT "Scientific Notation Input                E    see example that follows"
380  PRINT "Printer Toggle (on/off)             ctrl I"
381  PRINT "Advance Paper/Dump Buffer           ctrl J    see note that follows"
382  PRINT : PRINT "hit any key to continue..... Q to quit"
383   K=KEY
384   IF  K = 0 THEN  GOTO 383
385   IF  K = 81 OR K=113 THEN  GOTO 432
386  ERASE
387  PRINT "The entry of very large or very small numbers is best accomplished"
388  PRINT "using scientific notation.  This is easily implemented in STACKALC"
389  PRINT "with the 'E' key.  For a very large number such as:"
390  PRINT "          35"
391  PRINT "  1.2 X 10      simply type:  1 . 2 E 3 5"
392  PRINT
393  PRINT "The change sign key (;) must be used for the entry of negative numbers"
394  PRINT "and exponents. For Example....."
395  PRINT
396  PRINT "To enter a negative number such as -12.2, type the following sequence:"
397  PRINT
398  PRINT "       1 2 . 2 ;"
399  PRINT "                                   -6"
400  PRINT "To enter a number such as 12.2 X 10    type:"
401  PRINT
402  PRINT "       1 2 . 2 E 6 ;"
403  PRINT "                                                        -6"
404  PRINT "Likewise, in combination for a number such as -12.2 X 10"
405  PRINT
406  PRINT "       1 2 . 2 ; E 6 ;"
407  PRINT : PRINT
408  PRINT "hit any key to continue..... Q to quit"
409   K=KEY
410   IF  K = 0 THEN  GOTO 409
411   IF  K = 81 OR K=113 THEN  GOTO 432
412  ERASE
413  PRINT "The Paper Advance Key (ctrl J) may be used to send linefeeds to the"
414  PRINT "printer.  It is also used to empty the print buffer at the end of"
415  PRINT "a series of calculations."
416  PRINT
417  PRINT
418  PRINT "Experts may use the Quick Calculator feature which limits the display"
419  PRINT "to the X register and function.  This assures fastest keyboard response"
420  PRINT "for string calculations..... It may be toggled with ctrl ^"
421  PRINT "                             (ctrl shift N on some computers)"
422  PRINT : PRINT
423  PRINT "ERROR MESSAGES consist of:"
424  PRINT
425  PRINT "**OUT-OF-RANGE**, for inputs or outputs that exceed approximately"
426  PRINT " 1 in 10 to the 36th."
427  PRINT
428  PRINT "**FUNCTION ERROR**, for key sequences that are not legal."
429  PRINT
430  PRINT "Although it will cause a FUNCTION ERROR, two-keystroke functions"
431  PRINT "may be cancelled after the first keystroke by hitting the spacebar."
432  PRINT : PRINT : PRINT "..... hit any key to start calculating!"
433   K=KEY
434   IF  K = 0 THEN  GOTO 433
435   HE=64: GOTO 15
END