5 GOTO405 7 KEYOFF:PRINT@40,Y;:E=0:RETURN 10 GOSUB7:I=MX:A=EX:J=MY:B=EY:GOTO250 15 K=MY:C=EY:MY=MX:EY=EX:MX=K:EX=C:RETURN 20 GOSUB7:I=MX:A=EX:GOTO250 25 GOSUB250:GOSUB380:IFETHEN30ELSEMY=I:EY=A:GOSUB60:Q=1:KEYON:GOTO50 30 KEYON:PRINT@40,"Error";:RETURN 35 F=1:PRINT@20," ";:GOSUB250:GOSUB380:IFETHEN30ELSEMX=I:EX=A:Q=1:KEYON:GOTO55 40 K=MX:C=EX:MX=MY:EX=EY:MY=MZ:EY=EZ:MZ=MT:EZ=ET:MT=K:ET=C:RETURN 45 K=MX:C=EX:MX=MT:EX=ET:MT=MZ:ET=EZ:MZ=MY:EZ=EY:MY=K:EY=C:RETURN 50 PRINT@120,Y;:I=MT:A=ET:GOSUB385:PRINT@160,Y;:I=MZ:A=EZ:GOSUB385:PRINT@200,Y;:I=MY:A=EY:GOSUB385 55 PRINT@240,Y;:I=MX:A=EX:GOTO385 60 MX=MY:EX=EY:MY=MZ:EY=EZ:MZ=MT:EZ=ET:RETURN 65 I=I*J:A=A+B:RETURN 70 IFI=0THENE=1:RETURNELSEI=J/I:A=B-A:RETURN 75 IFI<=0THENE=1:RETURNELSEI=LOG(I)/L+A:A=0:RETURN 80 IFA>12THENE=1:RETURNELSEIFA<-12THENI=0^ABS(D-9):A=0:RETURNELSEI=I*10^A/N:A=0:OND-7GOTO85,90,95 85 I=SIN(I):RETURN 90 IFI=OTHENI=0:A=0:RETURNELSEI=COS(I):RETURN 95 IFI=OTHENE=1:RETURNELSEI=SIN(I)/COS(I):RETURN 100 IFA>0OR(A=0ANDI<>1ANDI<>0)THENE=1:RETURNELSEIFA<-12THENRETURNELSEI=I*10^A:A=0:J=SQR(1-I*I) 102 IFJ=0THENI=O*N:RETURNELSEI=ATN(I/J)*N:RETURN 105 IFA>0OR(A=0ANDI<>0ANDI<>1)THENE=1:RETURNELSEIFA<-12THENI=N*O:A=0:RETURNELSEI=I*10^A:A=0:J=SQR(1-I*I) 107 IFJ=0THENI=0:RETURNELSEI=(-ATN(I/J)+O)*N:RETURN 110 IFA>12THENI=SGN(I)*O*N:A=0:RETURN:ELSEIFA<-12THENRETURNELSEI=I*10^A:A=0:I=ATN(I)*N:RETURN 115 I=(D=2)*I-(D=1)*I:C=A-B:IFC>15THENRETURNELSEIFC<-15THENI=J:A=B:RETURN 117 IFC>=0THENI=I+J/10^C:RETURNELSEI=I/10^ABS(C)+J:A=B:RETURN 120 IFI=0THENIFJ=0THENE=1:RETURNELSEI=0:A=0:RETURNELSEGOSUB75:IFE=1THENRETURNELSEGOSUB65:GOSUB250 125 IFA>2THENE=1:RETURNELSEIFA<-12THENI=1:A=0:RETURN 130 I=I*10^A:A=0:IFABS(INT(I))>999THENE=1:RETURNELSEA=INT(I):I=10^(I-A):RETURN 135 J=I:B=A:I=10:A=0:GOTO120 140 J=I:B=A:I=EXP(1):B=0:GOTO120 145 GOSUB75:J=L:B=0:GOTO65 150 IFA<0ORA>4ORI<0THENE=1:RETURNELSEIFI=0THENI=1:A=0:RETURNELSEK=FIX(I*10^A):IFK>449THENE=1:RETURNELSEI=1:A=0:FORJ=1TOK:I=I*J 155 IFI>1E+58THENI=I/1E+58:A=A+58:IFA>999THENE=1:RETURN 160 NEXT:RETURN 165 GOSUB10:D=1:GOSUB115:GOTO25 170 GOSUB10:D=2:GOSUB115:GOTO25 175 GOSUB10:GOSUB65:GOTO25 180 GOSUB10:GOSUB70:GOTO25 185 GOSUB15:GOSUB10:GOSUB120:GOSUB15:GOTO25 190 GOSUB20:PRINT@0,"working...";:GOSUB150:PRINT@0,SPACE$(10);:GOTO35 195 J=1:B=0:GOSUB20:GOSUB70:GOTO35 200 GOSUB10:I=I/100:GOSUB65:GOTO35 205 MENU 210 D=8:GOTO225 215 D=9:GOTO225 220 D=10 225 GOSUB20:IFF=1THENGOSUB80:GOTO35ELSEOND-7GOSUB100,105,110:GOTO35 230 GOSUB20:ONFGOSUB75,135:GOTO35 235 GOSUB20:ONFGOSUB145,140:GOTO35 240 IFF=1THENPRINT@20,"INV";:F=2:RETURNELSEPRINT@20," ";:F=1:RETURN 245 GOSUB20:J=2/(F*F):B=0:GOSUB120:GOTO35 250 IFI=0THENA=0:RETURN 255 IFABS(I)>=10THENA=A+1:I=I/10:GOTO255 260 IFABS(I)<1THENA=A-1:I=I*10:GOTO260ELSEIFABS(A)>999THENE=1:RETURNELSERETURN 265 GOSUB380 270 KEYON 275 U=INKEY$:IFU=""THEN275ELSEKEYOFF:IFETHENPRINT@40,Y;:E=0:GOSUB50:Z="":W="":R=0:S=1:T=1 280 IFINSTR(1,"0123456789.-",U)=0THEN325ELSEONQ+1GOTO285,300,305 285 IFRTHENIFU="-"THENT=-T:GOTO310ELSEIFU="."THEN270ELSEW=RIGHT$(W+U,3):GOTO310ELSEIFU="-"THENS=-S:GOTO310 290 IFU="."THENIFINSTR(1,Z,U)THEN270 295 IFLEN(Z)<14THENZ=Z+U:GOTO310ELSE270 300 GOSUB45:GOSUB50 305 Q=0:Z=U 310 PRINT@240,Y;:B=INSTR(1,Z+".",".")-2:B=B+4+B/3+(B>2)-(B<0):C=INSTR(1,Z+".","."):C=LEN(Z)-C-(C>LEN(Z)) 315 PRINTUSINGSPACE$(20-B)+RIGHT$(X,B)+STRING$(C,35);S*VAL(Z);:IFW<>""THENPRINTUSING" ####";T*VAL(W); 320 I=S*VAL(Z):A=T*VAL(W):GOSUB250:IFETHENGOSUB30:GOTO265ELSEMX=I:EX=A:GOTO270 325 C=ASC(U):IFC=13THENGOSUB45:Q=2:MX=MY:EX=EY:GOSUB50:GOTO265 330 IFC=28THENIFRORMX=0THEN270ELSER=1:W="000":GOTO310 335 IFC=30THENONQQGOSUB420,425,430:GOTO265ELSEIFC=31THENONQQGOSUB425,430,420:GOTO265 345 IFC=8THENIFR=0THENIFLEN(Z)>0THENZ=LEFT$(Z,LEN(Z)-1):GOTO310 350 IFC=127THENGOSUB380:GOTO310 370 IFC=27THENMENU 375 GOTO270 380 Z="":W="":R=0:S=1:T=1:RETURN 385 IFA>13OR(A<(2-P)ANDI<>0)THEN400ELSEC=15-A:IFC>PTHENC=P 390 B=A+4+A/3+(A>2):IFB<3THENB=3 395 PRINTUSINGSPACE$(20-B)+RIGHT$(X,B)+STRING$(C,35);I*10^A;:RETURN 400 PRINTUSINGSPACE$(17)+RIGHT$(X,3)+STRING$(P,35)+" ####";I,A;:RETURN 405 CLS:CLEAR:DEFSTRU-Z:DEFINTA-F,P-T:DIMMM(30),EM(30):P=13:IP=3.1415926535#:X="#####################,." 410 L=LOG(10):O=IP/2:E=0:F=1:Y=CHR$(27)+"K":GOSUB50:Q=2:KEYON:GOSUB420:GOSUB470:GOTO265 420 ONKEYGOSUB165,170,175,180,185,190,195,200:QQ=2 422 PRINT@280,CHR$(27)"p + - x / y^x ! 1/x % "CHR$(27)"q";:GOTO435 425 ONKEYGOSUB450,455,460,465,470,475,480,485:QQ=3 427 PRINT@280,CHR$(27)"p sto rcl r r deg grad rad fix"CHR$(27)"q";:GOTO435 430 ONKEYGOSUB210,215,220,230,235,245,205,240:QQ=1 432 PRINT@280,CHR$(27)"p sin cos tan log lnx x^2 inv"CHR$(27)"q"; 435 F=1:PRINT@20," ";:I=1:PRINT@75,Y;:LINE(234,56)-(239,63),1,BF:RETURN 450 Q=1:C=29:GOSUB500:MM(B)=MX:EM(B)=EX:KEYON:RETURN 455 C=29:GOSUB500:GOSUB45:MX=MM(B):EX=EM(B):KEYON:GOTO50 460 GOSUB7:GOSUB40:GOTO50 465 GOSUB7:GOSUB45:GOTO50 470 GOSUB7:PRINT@12,"DEGREE ";:N=180/IP:RETURN 475 GOSUB7:PRINT@12,"GRADIAN";:N=200/IP:RETURN 480 GOSUB7:PRINT@12,"RADIAN ";:N=1:RETURN 485 C=14:GOSUB500:P=B:GOSUB50:KEYON:RETURN 500 GOSUB7:PRINT@0,;:A=ASC(INPUT$(1))-48:B=ASC(INPUT$(1))-48:B=-A*10*(A>=0ANDA<=9)-B*(B>=0ANDB<=9):B=-B*(B<=C)-C*(B>C):RETURN