10 PDEV=4:DEF FNC(X)=INT((X+2)/3)*3 20 DEFFNZ(V)=V*-1*((V+.01)-INT(V+.01)>=.02)-INT(V+.01)*((V+.01)-INT(V+.01)<.02) 120 DIM C(16),N$(16),T$(32),NN$(10),M$(18),R$(100),CV(8),CC(11),CC$(11) 130 FORJ=1TO16:READC(J):NEXTJ:FORJ=1TO16:READN$(J):NEXT 140 FORJ=1TO18:READM$(J):NEXT:FORJ=1TO8:READCV(J):NEXT 150 FORJ=1TO11:READCC(J):NEXT:FORJ=1TO11:READCC$(J):NEXT 160 PRINT"[147]"TAB(12)"RECIPE CONVERTER":INPUT"RECIPE TITLE";T$ 170 S1=0:INPUT" ORIGINAL RECIPE SERVES";X$:S1=VAL(X$):IFS1<1THEN170 180 S2=0:INPUT" NUMBER OF ADJUSTED SERVINGS";X$:S2=VAL(X$):IFS2<1THEN180 190 INPUT"OUTPUT TO S[146]CREEN OR P[146]RINTER (S/P) P[157][157][157]";D$ 200 PDEV=-3*(D$="S")-4*(D$="P") 210 PRINT" INPUT RECIPE LINES, TYPE '*' TO QUIT.":NL=0 220 INPUTS$:IFS$="*"THEN350 230 GOSUB400:IFNT>=2THEN250 240 PRINT"DON'T UNDERSTAND THIS LINE.":GOTO220 250 S$=T$(1):GOSUB460:IFEXTHENPRINT"AN AMOUNT MUST COME FIRST":GOTO220 260 V=X:S$=T$(2):Z=2:GOSUB460:IFEX=0THENZ=3:V=V+X 270 IFZ>NT THEN240 280 P$=T$(Z):GOSUB540 290 GOSUB 660:GOTO300 300 IFZ>NTTHEN340 310 FOR J=Z TO NT:X$=X$+" "+T$(J) 320 IF(J=Z)AND(J=NT)AND(P=0)AND(V>1)AND(RIGHT$(T$(J),1)<>"S")THENX$=X$+"S" 330 NEXT 340 NL=NL+1:R$(NL)=X$:GOTO220 350 CLOSE3:OPEN3,PDEV 360 PRINT#3:PRINT#3:PRINT#3:W=80:IFPDEV=3THENW=40:PRINT#3,"[147]" 370 PRINT#3,SPC((W-LEN(T$))/2*-(LEN(T$)<=W))T$ 380 X$="(SERVES"+STR$(S2)+")":PRINT#3,SPC((W-LEN(X$))/2)X$:PRINT#3:PRINT#3 390 FORJ=1TONL:PRINT#3,R$(J):NEXT:PRINT#3:CLOSE3:END 400 NT=0:J=1:A$="":F=1 410 IF J>LEN(S$)THEN ON F GOTO 450,440 420 B$=MID$(S$,J,1):IFB$=" "THENJ=J+1:ON F GOTO 410,440 430 A$=A$+B$:J=J+1:F=2:GOTO410 440 NT=NT+1:T$(NT)=A$:A$="":F=1:GOTO 410 450 RETURN 460 X=0:NN=0:J=1:A$="":F=1:EX=0 470 IF J>LEN(S$)THEN ON F GOTO 510,500 480 B$=MID$(S$,J,1):IF(B$>="0"ANDB$<="9")ORB$="."THENA$=A$+B$:J=J+1:F=2:GOTO470 490 IF B$<>"/"THEN EX=1:RETURN 500 NN=NN+1:NN$(NN)=A$:A$="":J=J+1:F=1:GOTO 470 510 IF NN>2 OR VAL(NN$(1))=0THEN EX=1:RETURN 520 X=VAL(NN$(1)):IF NN>1 THEN X=X/VAL(NN$(2)) 530 RETURN 540 L=LEN(P$):X$=MID$(P$,L):IFX$="." THEN IFL>1 THENP$=LEFT$(P$,L-1) 550 L=LEN(P$):X$=MID$(P$,L):IFX$="S" THEN IFL>1 THENP$=LEFT$(P$,L-1) 560 P=0:FORJ=1TO18:IFP$=M$(J)THENP=FNC(J):RETURN 570 NEXTJ:RETURN 580 DATA 1,2,4,8,12,24,36,48,64,96,128,144,192,384,768,3072 590 DATA 1/4 TSP,1/2 TSP,1 TSP,2 TSP,1 TBSP,2 TBSP,3 TBSP,1/4 CUP,1/3 CUP 600 DATA 1/2 CUP,2/3 CUP,3/4 CUP,1 CUP,1 PINT, 1 QUART, 1 GALLON 610 DATA T,TSP,TEASPOON,TB,TBSP,TABLESPOON,C,CP,CUP,P,PT,PINT 620 DATA Q,QT,QUART,G,GAL,GALLON 630 DATA 4,12,192,384,768,3072,0,0 640 DATA 0,.125,.25,.333333,.375,.5,.625,.666666,.75,.875,1 650 DATA ,,1/8,1/4,1/3,3/8,1/2,5/8,2/3,3/4,7/8,1 660 V=FNZ(V)*(S2/S1):IFP=0THENGOSUB880:RETURN 670 Z=Z+1:J=FNC(P)/3:IF(J<6)OR(S1>S2)THEN690 680 V=FNZ(V):GOSUB880:X$=X$+" GALLON"+MID$("S",1,-1*(V<>1)):GOSUB780:RETURN 690 V=FNZ(V+.005*-1*(INT(V)=V))*CV(J):X$="":VV=V*-1*(V>383OR(P=9ANDS1=1 AND V/VX>.05 THEN X$=X$+" PLUS ":GOTO700 750 IF VV THEN GOSUB 780 760 IF X$=""THEN X$=X$+"1 DASH" 770 RETURN 780 K=INT(VV/192):IFK<2THENVV=0:RETURN 790 X$=X$+" ("+MID$(STR$(K),2):VV=VV-K*192:K=1 800 IFC(K)<=VVTHENK=K+1:GOTO800 810 VV=0:IFK>8THENX$=X$+" "+N$(K-1)+"S)":RETURN 820 X$=X$+" CUPS)":RETURN 830 IF VV=0 THEN RETURN 840 X$=X$+" ("+MID$(STR$(INT(VV)),2)+" " 850 K=1:J=VV-INT(VV):IFJ=0THENX$=X$+"CUPS)":RETURN 860 IF (J-CC(K))>.05 THEN K=K+1:GOTO860 870 X$=X$+N$(K)+"S)":RETURN 880 V1=INT(V):V2=V-V1:J=1 890 IF(CC(J)-V2)>.0625THEN920 900 J=J+1:IFJ<11THEN890 910 X$=MID$(STR$(V1+1),2):RETURN 920 X$="":IFV1>0THENX$=MID$(STR$(V1),2)+"[160]" 930 X$=X$+CC$(J):RETURN