0 'Club 100 Library - 415/939-1246 BBS 937-5039 NEWSLETTER, 932-8856 VOICE 10 CLS:PRINT"Pickett Plot (external HP plotter req)"'STS (c)1986 20 OPEN "COM:88N1E" FOR OUTPUT AS 1 21 PRINT#1,CHR$(27)+".N0;19:" 22 PRINT#1,CHR$(27)+".I10;;17:" 23 'lines 20-22 set up the proper 24 'Xon/Xoff handshaking for an HP7475A 25 'or compatible plotter (HP7550, 26 'HP7440 with graphics enhancement 27 'catridge, etc.) You will need 28 'either a "null modem" male-to-male 29 'RS232 cable, or a standard 25-pin 30 'direct male-to-male cable with a 31 'null modem convertor ($15 each at 32 'any Radio Shack). Set the plotter 33 'DIP switches for 9600 baud with no 34 'parity, direct mode (not remote). 40 DIM X(50),Y(50) 50 LINE INPUT "Title of plot=";T$ 60 FOR I=1 TO 100 70 INPUT "%Por,Rt (ENTER to plot)";X(I),Y(I) 80 X(I)=X(I)/100 90 IF X(I)=0 AND Y(I)=0 THEN 110 100 NEXT I 110 GOSUB 230 ' gridsub 120 GOSUB 460 ' plotsub 130 GOSUB 600 ' rosub 140 GOSUB 830 ' swsub 150 GOSUB 1070 ' bvwsub 160 PRINT#1,"SP0PA5,25IN;" 170 PRINT "***FINISHED***":CLOSE 1:END 230 ' gridsub 240 PRINT "plotting..." 250 PRINT#1,"INSC-25,5,-25,25SP1;" 260 PRINT#1,"PA-20,-20PD-20,20,0,20,0,-20,-20,-20PUSP2;" 270 FOR I=-2 TO -1 280 FOR J=2 TO 10 290 PRINT#1,"PA";10*(I+LOG(J)*.4342945);-20;"PD";10*(I+LOG(J)*.4342945);20;"PU;" 300 NEXT J 310 NEXT I 320 FOR I=-2 TO 1 330 FOR J=2 TO 10 335 J1=INT(1000*(I+LOG(J)*.4342945))/100:J2=INT(1000*(I+LOG(J)*.4342945))/100 340 PRINT#1,"PA";-20;J1;"PD";0,J2;"PU;" 350 NEXT J 360 NEXT I 370 PRINT#1,"PA-21,-20CP-3,-.25LB.01"+CHR$(3)+"PA-21,-10CP-2,-.25LB.1"+CHR$(3) 380 PRINT#1,"PA-21,0CP-1,-.25LB1"+CHR$(3)+"PA-21,10CP-2,-.25LB10"+CHR$(3) 390 PRINT#1,"PA-21,20CP-3,-.25LB100"+CHR$(3)+"PA-20,-21CP-1.5,-.5LB.01"+CHR$(3) 400 PRINT#1,"PA0,-21CP-1.5,-.5LB1.0"+CHR$(3)+"SP2;" 410 PRINT#1,"PA-23,0SP1SI.25,.5SL.577DI0,1CP-.75,-.5LBRt"+CHR$(3)+"DI1,0;" 420 PRINT#1,"PA-10,-21CP-4.5,-.5LBPorosity"+CHR$(3)+"SP1SI.3,.6;" 430 PRINT#1,"PA-10,25CP";-LEN(T$)/2;-.5;"LB";T$;CHR$(3);"SP2;" 440 PRINT#1,"SLSI.12,.2;" 450 RETURN 460 ' PLOTSUB 470 PRINT "Skip points? (Y/N)" 475 L1$="Y":L2$="N":GOSUB 2000 480 IF Z$="Y" THEN RETURN 490 PRINT "Circles or Triangles? (C/T)" 495 L1$="C":L2$="T":GOSUB 2000 497 PRINT "plotting..." 498 PRINT#1,"SP2;" 500 FOR I=1 TO 50 510 IF X(I)=0 AND Y(I)=0 THEN 570 520 PRINT#1,"PA";INT(LOG(X(I))*.4342945*10000)/1000,INT(LOG(Y(I))*.4342945*10000)/1000;"SC;" 530 IF Z$<>"T" THEN PRINT#1,"CI125,10CP-2,-.25LB";I;CHR$(3)ELSE PRINT#1,"EW150,90,360,120WG75,90,360,120;" 560 PRINT#1,"SC-25,5,-25,25;" 570 NEXT I 580 PRINT#1,"SP0PA5,25SI.25,.5SL.577;" 590 RETURN 600 ' ROSUB 610 PRINT "Two points are needed to fix the Ro" 620 PRINT "line. Real or phantom points can be" 630 PRINT "be used. Specify:" 640 PRINT "(R or P)?" 645 L1$="R":L2$="P":GOSUB 2000 650 IF Z$<>"R" THEN 700 660 INPUT "Point#1,Point#2=";P1,P2 670 X1=LOG(X(P1))*.4342945:Y1=LOG(Y(P1))*.4342945 680 X2=LOG(X(P2))*.4342945:Y2=LOG(Y(P2))*.4342945 690 GOTO 730 700 INPUT "Phantom point#1: Por%,Rt=";X1,Y1 710 INPUT "Phantom point#2: Por%,Rt=";X2,Y2 720 X1=LOG(X1/100)*.4342945:Y1=LOG(Y1)*.4342945 725 X2=LOG(X2/100)*.4342945:Y2=LOG(Y2)*.4342945 730 X1=INT(X1*1000)/1000:X2=INT(X2*1000)/1000 740 Y1=INT(Y1*1000)/1000:Y2=INT(Y2*1000)/1000 750 M=(Y1-Y2)/(X1-X2) 760 B=INT(1000*(Y1-M*X1))/1000 770 R=INT(10^B*1000)/1000 780 M1=ABS(INT(M*1000)/1000) 790 PRINT "Rw=";R;", m=";M1 800 PRINT "continue plotting? (Y/N)" 805 L1$="Y":L2$="N":GOSUB 2000 810 IF Z$="N" THEN 610ELSE PRINT"plotting..." 820 RETURN 830 ' swsub 840 PRINT#1,"SL.577SI.25,.5;" 850 X1=INT(1000*((2-B)/M))/1000:Y1=2 860 IF X1<-2 THEN X1=-2:Y1=INT(1000*LOG(R/.01^M1)*.4342945)/1000 870 PRINT#1,"SP3PA";10*X1;10*Y1;"PD";0;10*B;"PUSP2;" 880 PRINT#1,"PA1,15CP0,-.25LBa=1"+CHR$(3)+"PA1,5CP0,-.25LBn=2"+CHR$(3) 890 M$="m="+STR$(M1):R$="Rw="+STR$(R) 900 PRINT#1,"PA1,-5CP0,-.25LB"+M$+CHR$(3)+"PA1,-15CP0,-.25LB"+R$+CHR$(3) 910 PRINT#1,"SP3SLSI.12,.2;" 920 FOR I=.7 TO .1 STEP -.1 930 U=(R/(I^2*100))^(1/M1) 940 V=R/(1^M1*I^2):V1=100 950 IF LOG(U)*.4342945>0 OR LOG(V)*.4342945>2 THEN I=.1:GOTO 1020 960 IF LOG(U)*.4342945<-2 THEN U=.01:V1=R/(.01^M1*I^2) 970 PRINT#1,"PA";10*LOG(U)*.4342945;10*LOG(V1)*.4342945;"PD";0;10*LOG(V)*.4342945;"PU;" 980 IF LOG(R/(.5^M1*I^2))*.4342945>2 THEN I=.1:GOTO 1020 985 J1=INT(1000*(LOG(R/(.5^M1*I^2))*.4342945+.02))/100 990 PRINT#1,"PA";-3.01;J1;";" 1000 S$="Sw="+STR$(I*100)+"%" 1010 PRINT#1,"DI";2.3;M;"CP-4,0LB"+S$+CHR$(3) 1020 NEXT I 1030 PRINT#1,"PA";-3.01;10*(INT(1000*LOG(R/(.5^M1))*.4342945)/1000+.02);";" 1040 PRINT#1,"CP-8.5,0LBRo LINE, Sw=100%"+CHR$(3) 1050 PRINT#1,"SP0PA0,2;" 1060 RETURN 1070 'BVWSUB 1080 PRINT "BVW lines? (Y/N)" 1085 L1$="Y":L2$="N":GOSUB 2000 1090 IF Z$="N" THEN RETURNELSE PRINT "plotting..." 1100 PRINT#1,"SLSI.12,.2;" 1110 FOR I=.1 TO .01 STEP -.01 1120 X1=LOG(I)*.4342945:Y1=INT(1000*LOG(R/I^M1)*.4342945)/1000 1130 IF Y1>2 THEN 1200 1140 PRINT#1,"SP4PA";10*X1;10*Y1;";" 1150 X2=0:Y2=INT(1000*LOG(R/I^2)*.4342945)/1000 1160 IF Y2<2 THEN 1180 ELSE Y2=2 1170 X2=INT(1000*LOG((100*I^2/R)^(1/(2-M1)))*.4342945)/1000 1180 PRINT#1,"PD";10*X2;10*Y2;"PU;" 1190 NEXT I 1200 M2=INT(1000*(LOG(R/.1^M1)*.4342945-LOG(R/.1^2)*.4342945)/(-1))/1000 1210 FOR I=.1 TO .02 STEP -.02 1220 X1=INT(1000*LOG(I)*.4342945)/1000:Y1=INT(1000*LOG(R/I^M1)*.4342945)/1000 1225 IF 10*X1<-20 OR 10*Y1>20THEN1280 1230 PRINT#1,"PA";10*X1;10*Y1;";" 1240 Z$="BVW="+STR$(I*100)+"%" 1260 PRINT#1,"DR";1.5;M2;"CP-8,-.25;" 1270 PRINT#1,"LB"+Z$+CHR$(3) 1280 NEXT I 1290 RETURN 2000 A=ASC(INPUT$(1)) AND 95 2010 IF A=ASC(L1$)THENZ$=L1$:RETURNELSE IF A=ASC(L2$)THENZ$=L2$:RETURN ELSE2000