10  COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78]
30  COM M$[60],N$[72]
40  COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1
45  COM I3,I4,U9,X$[20]
50  REM:28APR74
52  REM:EXPLANATION OF 'CALC'
100  DIM C$[12]
4000  PRINT '10'10'10"THE CALCULATOR WILL FIRST ASK HOW MANY DIGITS YOU WANT"
4010  PRINT "TO WORK WITH TO THE LEFT AND RIGHT OF THE DECIMAL POINT."
4020  PRINT '10"ALTHOUGH THE PRACTICAL LIMIT OF THIS ROUTINE IS ROUGHLY"
4030  PRINT "150 DIGITS, YOU SHOULD LIMIT THE TOTAL NUMBER OF DIGITS"
4040  PRINT "TO 25 IF YOU WANT ANSWERS PRINTED ON ONE OUTPUT LINE."
4050  PRINT '10"OPERATIONS ARE PERFORMED ON AN IMAGINARY ACCUMULATOR,"
4060  PRINT "THE CONTENTS OF WHICH ARE PRINTED (WITH DECIMAL POINT"
4070  PRINT "ALIGNED) AFTER EACH OPERATION.  IF THE RESULT EXCEEDS"
4080  PRINT "THE FIELD WIDTH YOU HAVE SPECIFIED, THE DECIMAL POINT"
4090  PRINT "WILL BE PUSHED TO THE RIGHT ENOUGH PLACES TO FIT THE"
4100  PRINT "NUMBER ONTO THE PRINTOUT."
4105  GOSUB 9020
4110  PRINT '10"IN RESPONSE TO THE QUESTION MARK PRINTED BY THE CALCULATOR"
4120  PRINT "YOU SHOULD TYPE AN OPERATOR FOLLOWED BY AN OPERAND."
4130  PRINT '10"THE LEGAL ARITHMETIC OPERATORS ARE:"
4140  PRINT '10"  OPERATION      OPERATOR"
4150  PRINT '10"  ADDITION       'ADD','A','+'"
4160  PRINT "  SUBTRACTION    'SUBTRACT','S','-'"
4170  PRINT "  MULTIPLICATION 'MULTIPLY','M','*'"
4180  PRINT "  DIVISION       'DIVIDE','D','/'"
4190  PRINT '10"THE FOLLOWING SPECIAL OPERATORS DO NOT REQUIRE AN OPERAND:"
4200  PRINT '10"  OPERATION      OPERATOR"
4210  PRINT '10"  CLEAR"'13'10"  ACCUMULATOR    'CLEAR','C'"
4220  PRINT '10"  RESET FIELD    'RESET','R'"'13'10"  WIDTH"
4222  PRINT 
4225  PRINT "  RETURN TO IDA  'QUIT','Q'"
4227  GOSUB 9020
4230  PRINT '10"MORE THAN ONE OPERATION MAY BE ENTERED WITH A SINGLE INPUT"
4240  PRINT "LINE BY SPACING BETWEEN AN OPERAND AND THE NEXT OPERATOR."
4250  PRINT "FOR EXAMPLE, THE FOLLOWING SEQUENCE ADDS 5,340 TO THE ACCUM-"
4260  PRINT "ULATOR,MULTIPLIES THE RESULT BY 67 AND DIVIDES THAT RESULT"
4270  PRINT "BY -34.56"
4280  PRINT 
4290  PRINT '30"? ADD 5,340  *67  DIVIDE BY 34.56-"
4300  PRINT '10"NOTE THAT INPUT TO THE CALCULATOR IS FREEFORM IN THAT IMBEDDED"
4310  PRINT "BLANKS, COMMAS OR REMARKS ARE IGNORED, AND A MINUS SIGN PLACED"
4320  PRINT "BEFORE, AFTER OR IMBEDDED IN AN OPERAND WILL NEGATE THAT OPERAND."
4325  PRINT 
4327  PRINT "TO USE 'CALC', REISSUE 'CALC'."
4330  GOTO 9998
9000  PRINT "*  WANT MORE DETAILS ? ";
9010  GOTO 9040
9020  IF P[64]=0 OR P[64]>10 THEN 9180
9030  PRINT "* MORE ?";
9040  ENTER 255,Q8,C$
9050  PRINT 
9070  IF Q8>0 THEN 9130
9080  PRINT "PLEASE RESPOND:"
9090  PRINT "NO,"'10"FOLLOWED BY A CARRIAGE RETURN, ";
9100  PRINT "IF YOU DON'T WANT ANY MORE EXPLANATION"
9110  PRINT "WITH A CARRIAGE RETURN ONLY,"'10"IF YOU WANT MORE EXPLANATION"
9120  GOTO 9030
9130  IF C$="" THEN 9190
9132  IF C$[1,1]="Y" THEN 9190
9140  IF C$[1,1]="N" THEN 9998
9150  IF C$[1,1]="?" THEN 9080
9160  PRINT "INVALID RESPONSE."
9170  GOTO 9080
9180  PRINT 
9190  RETURN 
9998  CHAIN "$IDA",150
9999  END 
