9000  REM CALCULATOR SUBROUTINE HP/PCC JAN. 73
9001  DIM Z$[60],X$[3]
9005  Z$="EXTCLREXCADDSUBMULDIVPOWHYPRCPNEGEXPLOGSQRSINCOSTANATNRTDDTR"
9010  PRINT "CALCULATOR MODE."
9020  PRINT "CLEARED TO ZERO"
9022  Z1=0
9024  Z2=0
9030  PRINT "1ST NUMBER";
9040  INPUT Z1
9050  PRINT "FUNCTION";
9060  INPUT X$
9062  FOR Z0=1 TO 58 STEP 3
9064  IF X$=Z$[Z0,Z0+2] THEN 9068
9066  NEXT Z0
9068  Z0=INT(Z0/3)
9070  IF Z0=0 THEN 9170
9072  IF Z0=1 THEN 9020
9073  IF Z0>19 THEN 9050
9074  IF Z0>8 THEN 9130
9076  IF Z0<0 THEN 9050
9080  PRINT "2ND NUMBER";
9090  INPUT Z2
9100  REM BRANCH TO FUNCTIONS 2 THROUGH 8
9110  GOSUB Z0-1 OF 9210,9220,9230,9240,9250,9260,9270
9120  GOTO 9150
9130  REM BRANCH TO FUNCTIONS 9 THROUGH 19
9140  GOSUB Z0-8 OF 9310,9320,9330,9340,9350,9360,9370,9380,9390,9400,9410
9150  REM PRINT ANSWER, LOOP TO FUNCTION REQUEST, OR RETURN
9155  PRINT X$;"=";Z1
9157  PRINT 
9160  GOTO 9050
9170  PRINT "EXIT."
9180  RETURN 
9190  REM *************************************************************
9200  REM BINARY FUNCTIONS (2-8) BEGIN HERE.
9210  Z0=Z1
9212  Z1=Z2
9214  Z2=Z0
9216  RETURN 
9220  Z1=Z1+Z2
9224  RETURN 
9230  Z1=Z1-Z2
9234  RETURN 
9240  Z1=Z1*Z2
9244  RETURN 
9250  IF Z2 <> 0 THEN 9256
9252  PRINT "DIVISION BY ZERO IS UNDEFINED."
9254  GOTO 9258
9256  Z1=Z1/Z2
9258  RETURN 
9260  Z1=Z1^Z2
9264  RETURN 
9270  Z1=SQR(Z1^2+Z2^2)
9274  RETURN 
9300  REM UNARY FUNCTIONS (9-19) BEGIN HERE.
9310  IF Z1 <> 0 THEN 9316
9312  PRINT "DIVISION BY ZERO IS UNDEFINED."
9314  GOTO 9318
9316  Z1=1/Z1
9318  RETURN 
9320  Z1=-Z1
9324  RETURN 
9330  Z1=EXP(Z1)
9334  RETURN 
9340  Z1=LOG(Z1)
9344  RETURN 
9350  IF Z1 >= 0 THEN 9356
9352  PRINT "SQR OF NEGATIVE NUMBER IS UNDEFINED."
9354  GOTO 9358
9356  Z1=SQR(Z1)
9358  RETURN 
9360  Z1=SIN(Z1)
9364  RETURN 
9370  Z1=COS(Z1)
9374  RETURN 
9380  Z1=TAN(Z1)
9384  RETURN 
9390  Z1=ATN(Z1)
9394  RETURN 
9400  Z1=Z1*57.2958
9404  RETURN 
9410  Z1=Z1/57.2958
9414  RETURN 
9999  END 
