0 'RPNCAL--FULL VERSION (4.0K) by Terry Morgan [75735,1635] 9/83 REVISED 6/84 Copyright (c) 1984 NOT FOR RESALE 1 ONERRORGOTO86:CLS:DEFINTR:DEFSTRA-F:B=SPACE$(15):E=CHR$(27):C=E+"K" 2 R$="#######.## ":RE$="##.####^^^^ ":R2$="\ \#######.####\ \" 3 PRINTE;"p RPN CALCULATOR EMULATOR [ to END]"E"q";:PRINT@60," scroll display=>or<"; 4 R2=2 5 PRINT@40,"T:"B;CHR$(239)+" ":PRINT"Z:"B;CHR$(239)+" ":PRINT"Y:"B;CHR$(239)+" ":PRINT"X:"B;CHR$(239)+" ":PRINTE"pLASTX: "E"q";:GOTO80 6 GOTO67 7 PRINT@240," FUNCTION: "; 8 X$="" 9 F="":PRINT@250,SPACE$(8) 10 IFT<9999999ANDT>-999999THENPRINT@42,USINGR$;TELSEPRINT@42,USINGRE$;T; 11 IFZ<9999999ANDZ>-999999THENPRINT@82,USINGR$;ZELSEPRINT@82,USINGRE$;Z; 12 IFY<9999999ANDY>-999999THENPRINT@122,USINGR$;YELSEPRINT@122,USINGRE$;Y; 13 IFX<9999999ANDX>-999999THENPRINT@162,USINGR$;XELSEPRINT@162,USINGRE$;X; 14 IFLX<9999999ANDLX>-999999THENPRINT@206,USING"#######.####";LXELSEPRINT@206,USINGRE$;LX; 15 A=INKEY$:IFA=""ORA="["ORA=" "ORA=","ORA="'"THEN15 16 IFASC(A)>47ANDASC(A)<58THEN36 17 IFASC(A)>96ANDASC(A)<123THENPRINT@250,"CAP LOCK";:GOTO15 18 IFA="."THEN36 19 IFA="P"THENLX=X:X=X+Y:Y=Z:Z=T:GOTO75 20 IFASC(A)>64ANDASC(A)<91THEN38 21 IFA="-"THENLX=X:X=Y-X:Y=Z:Z=T:GOTO75 22 IFA=";"THENLX=X:X=Y*X:Y=Z:Z=T:GOTO75 23 IFA="/"THENLX=X:X=Y/X:Y=Z:Z=T:GOTO75 24 IFA=CHR$(31)THENXX=X:X=Y:Y=Z:Z=T:T=XX:GOTO75 25 IFA=CHR$(13)THENT=Z:Z=Y:Y=X:R=0:GOTO8 26 IFA=ETHENMENU 27 IFA=CHR$(30)THENXX=X:X=T:T=Z:Z=Y:Y=XX:GOTO75 28 IFA=CHR$(8)AND(F=""ANDLEN(X$)>0)THENX$=LEFT$(X$,LEN(X$)-1):X=VAL(X$):R=0:GOTO10 29 IFA="="THENS(0)=S(0)+1:S(6)=S(6)+X:S(7)=S(7)+X^2:S(8)=S(8)+Y:S(9)=S(9)+Y^2:S(10)=S(10)+X*Y:X=S(0):R=0:GOTO8 30 IFA="+"THENS(0)=S(0)-1:S(6)=S(6)-X:S(7)=S(7)-X^2:S(8)=S(8)-Y:S(9)=S(9)-Y^2:S(10)=S(10)-X*Y:X=S(0):R=0:GOTO8 31 IFA="^"THENLX=X:X=X^2:GOTO75 32 IFA=CHR$(28)ORA=CHR$(29)THENR2=R2+1:GOTO80 33 IFA="!"THENLX=X:XX=1:FORI=1TOINT(X):XX=XX*I:NEXT:X=XX:GOTO75 34 IFA="_"THENX=-X:X$="-"+X$:GOTO9 35 GOTO8 36 IFR=1THENT=Z:Z=Y:Y=X:R=0 37 X$=X$+A:X=VAL(X$):GOTO9 38 F=F+A:IFLEN(F)>5THENF="" 39 PRINT@250,F+SPACE$(8-LEN(F)):IFF="FX"THEN69 40 IFF="CX"THENX=0:R=0:GOTO8 41 IFF="RX"THENT=Z:Z=Y:Y=X:X=LX:R=1:GOTO9 42 IFF="ST"THENGOSUB77:S(VAL(A))=X:R=1:GOTO80 43 IFF="RC"THENT=Z:Z=Y:Y=X:GOSUB77:X=S(VAL(A)):R=1:GOTO7 44 IFF="SN"ANDRD=0THENLX=X:GOSUB73:X=SIN(X):GOTO75 45 IFF="SN"THENLX=X:X=SIN(X):R=1:GOTO8 46 IFF="CS"ANDRD=0THENLX=X:GOSUB73:X=COS(X):GOTO75 47 IFF="CS"THENLX=X:X=COS(X):R=1:GOTO8 48 IFF="TN"ANDRD=0THENLX=X:GOSUB73:X=TAN(X):GOTO75 49 IFF="TN"THENLX=X:X=TAN(X):R=1:GOTO8 50 IFF="ASN"THENLX=X:X=ATN(X/SQR(-X*X+1)):GOTO76 51 IFF="ACS"THENLX=X:X=-ATN(X/SQR(-X*X+1))+1.5708:GOTO76 52 IFF="ATN"THENLX=X:X=ATN(X):GOTO76 53 IFF="SQR"THENLX=X:X=SQR(X):GOTO75 54 IFF="XY"THENXX=X:X=Y:Y=XX:GOTO75 55 IFF="YX"THENLX=X:X=Y^X:Y=Z:Z=T:GOTO75 56 IFF="TX"THENLX=X:X=10^X:GOTO75 57 IFF="LN"THENLX=X:X=LOG(X):GOTO75 58 IFF="EX"THENLX=X:X=EXP(X):GOTO75 59 IFF="MN"THENX=S(6)/S(0):Y=S(8)/S(0):GOTO75 60 IFF="SD"THENX=SQR((S(7)-(S(6)^2/S(0)))/(S(0)-1)):Y=SQR((S(9)-(S(8)^2/S(0)))/(S(0)-1)):GOTO75 61 IFF="CA"THENFORR=6TO10:S(R)=0:NEXT:S(0)=0:GOTO75 62 IFF="CRD"THENLX=X:GOSUB74:GOTO75 63 IFF="CDR"THENLX=X:GOSUB73:GOTO75 64 IFF="RAD"THENRD=1:GOTO67 65 IFF="DEG"THENRD=0:GOTO67 66 GOTO10 67 IFRD=1THENRD$="RAD"ELSERD$="DEG" 68 PRINT@57,E"p"RD$E"q":GOTO7 69 PRINT@241,"PLACES? "; 70 A=INKEY$:IFA=""THEN70 71 IFASC(A)>47ANDASC(A)<55THEN72ELSE70 72 R$="#######."+STRING$(VAL(A),35)+SPACE$(6-VAL(A)):GOTO5 73 X=X*3.1415926544/180:RETURN 74 X=180*X/3.1419526544:RETURN 75 R=1:GOTO8 76 R=1:IFRD=1THEN8ELSEGOSUB74:GOTO8 77 PRINT@241,"REGIST.NO.? "; 78 A=INKEY$:IFA=""THEN78 79 IFASC(A)>47ANDASC(A)<58THENRETURNELSE78 80 IFR2=5THENR2=1 81 ONR2GOSUB82,83,84,85:R=1:GOTO6 82 FORR=1TO5:PRINT@58+40*R,USINGR2$;" R"+MID$(STR$(R),2,1)+":";S(R);SPACE$(5);:NEXT:PRINT@298,C;:RETURN 83 PRINT@98," clr X=CX roll =UD";:PRINT@138," lastX=RX X<>Y=XY";:PRINT@178," subtr=- store=ST";:PRINT@218," add =P recl =RC";:PRINT@258," mult =; fix =FX";:PRINT@298," div =/ +/- =_";:RETURN 84 PRINT@98," X^2=^ S+== ";:PRINT@138," QX =SQR S-=+ ";:PRINT@178," Y^X =YX clrS=CA";:PRINT@218," 10^X=TX mean=MN";:PRINT@258," e^X=EX stdv=SD";:PRINT@298," ln=LN X!=! ";:RETURN 85 PRINT@98," deg=DEG deg>rad=CDR";:PRINT@138," rad=RAD rad>deg=CRD";:PRINT@178," sin=SN asin=ASN";:PRINT@218," cos=CS acos=ACS";:PRINT@258," tan=TN atan=ATN";:PRINT@298,C;:RETURN 86 IFERR=11THENPRINT@250,"DIV by 0":RESUME10 87 IFERR=5THENPRINT@250,"OVERFLOW":RESUME10 88 IFERR=6THENPRINT@250,"BAD DATA":RESUME10 89 PRINT"ERROR";ERR;"in line";ERL:END 100 'After downloading, edit as follows: lines 3 and 85 change ">" to GRPH-l; line 3 change "<" to GRPH-k 101 ' line 83 change "U" to GRPH-o and change "D" to GRPH-, (up/down arrows) 102 ' line 84 change "S" to GRPH-s and change "Q" to GRPH-r 103 ' Delete lines 100-105 104 ' If you have a Disk/Video Interface that you use in 80-column mode, you may wish to add "width40:screen,0: " to the beginning of line 1 and "width80: " before "MENU" in line 26. 105 ' Questions & comments welcome.