0 REM Tim Peters CIS 72227,2416 1 CLEAR900:DEFINTI-N:GOTO35 2 J=5*I:A=1+V(J+2)/100:R=1+V(J+4)/100:PV=V(J+1)*R^-V(J+3):IFA=RTHENPV=PV*V(J)ELSER=A/R:PV=PV*(1-R^V(J))/(1-R) 3 ?" PV"I"= "PV:RETURN 4 CLS:FORKP=0TO5:GOSUB8:NEXT:KP=1 5 ?@40*KP,EK$;:IFKPTHEN?EP$P$(KP-1)EQ$TAB(17)EP$;ELSE?" Group"EP$NP;EQ$"of"N:RETURN 6 IFMID$(K$,5*NP+KP,1)="?"THEN?"?? "; 7 ?V(5*NP+KP-1)EQ$:RETURN 8 EP$="":EQ$="":GOSUB5:EP$=E$+"p":EQ$=E$+"q":RETURN 9 ONINSTR(V$,I$)GOTO14,15,16,17,19,20,22,24,25,26,27,34:IFINSTR("(-.0123456789@&",I$)=0THENI$="don't understand that key":GOTO38 10 ?@241,I$EK$;:LINEINPUTJ$:I$=I$+J$ 11 I=INSTR(I$,"@"):IFITHENJ$=MID$(I$,I+1,1):IFINSTR("12345",J$)THENI$=LEFT$(I$,I-1)+"v("+MID$(STR$(5*NP+VAL(J$)-1),2)+")"+MID$(I$,I+2):GOTO11ELSEI$="need 1-5 after @":GOTO38 12 I=INSTR(I$,"&"):IFITHENJ$=MID$(I$,I+1,1):IFINSTR("0123456789",J$)THENI$=LEFT$(I$,I-1)+"y("+J$+")"+MID$(I$,I+2):GOTO12ELSEI$="need 0-9 after &":GOTO38 13 I$="y="+I$+CHR$(0):S=VARPTR(I$)+1:S=PEEK(S)+256*PEEK(S+1):CALL1606,0,S:ONERRORGOTO37:CALL2499,0,63105:ONERRORGOTO1:RETURN 14 NP=NP+1:N=N-(NP>N):GOTO4 15 IFNP=0THENRETURNELSENP=NP-1:GOTO4 16 IFKP=0THENRETURNELSEGOSUB8:KP=KP-1:GOTO5 17 IFKP<5THENGOSUB8:KP=KP+1 18 GOTO5 19 ?@241,"memory ? = "Y;EK$:?@248,;:I$=INPUT$(1):IFINSTR("0123456789",I$)THENY(VAL(I$))=Y:RETURNELSEI$="digit needed":GOTO38 20 IFKP=0THENI$="can't broadcast group":GOTO38 21 S=V(5*NP+KP-1):I$=MID$(K$,5*NP+KP,1):FORI=KP-1TO254STEP5:V(I)=S:MID$(K$,I+1)=I$:NEXT:RETURN 22 IFKPTHENV(5*NP+KP-1)=Y:MID$(K$,5*NP+KP)="-":GOTO17ELSENP=Y:IFNP>NTHENN=NP 23 GOTO4 24 MENU 25 I=NP:GOSUB2:Y=PV:RETURN 26 RUN 27 ?@240,"Solving for:"EK$:S$="":G$="":FORI=0TON:FORJ=0TO4:IFMID$(K$,5*I+J+1,1)="?"THEN?" "P$(J)" in group"I:S$=S$+CHR$(5*I+J):IFINSTR(G$,CHR$(I))=0THENG$=G$+CHR$(I) 28 NEXT:NEXT:IFG$=""THENI$="no unknowns":GOSUB38:GOTO4 29 SI=0:?"Computing invariants":FORI=0TON:IFINSTR(G$,CHR$(I))=0THENGOSUB2:SI=SI+PV 30 NEXT:?" invariant sum = "SI:?:INPUT"Enter guess";X:GOSUB33:X1=X:S1=SI+S:X=X1*1.05 31 IFINKEY$>""THEN4 32 ?"Trying "X:GOSUB33:S=SI+S:S1=X-S*(X-X1)/(S-S1):X1=X:X=S1:S1=S:IFABS(S)<1E-6THEN4ELSE31 33 FORI=1TOLEN(S$):V(ASC(MID$(S$,I)))=X:NEXT:S=0:FORK=1TOLEN(G$):I=ASC(MID$(G$,K)):GOSUB2:S=S+PV:NEXT:?" variant sum = "S:?"Sum of PV's = "SI+S:RETURN 34 IFKP=0THENI$="can't mark group":GOTO38ELSEMID$(K$,5*NP+KP)="?":GOTO17 35 E$=CHR$(27):EP$=E$+"p":EQ$=E$+"q":EK$=E$+"K":DIMV(254),Y(9),P$(4):FORI=0TO4:READP$(I):NEXT:FORI=0TO254STEP5:V(I)=1:NEXT:K$=STRING$(255,"-"):V$=CHR$(28)+CHR$(29)+CHR$(30)+CHR$(31)+"abdmprs?":GOSUB4 36 ?@241,Y;EK$;:?@240," ";:I$=INPUT$(1):GOSUB9:GOTO36 37 I$="error"+STR$(ERR)+" in evaluation":GOSUB38:RESUMENEXT 38 BEEP:?@240,I$"; hit a key"EK$;:I$=INPUT$(1):RETURN:DATA"num payments","initial payment","accretion %","start time","discount %