100 REM STARPLOT 1.0 110 REM COPYRIGHT @ 1987 120 REM BY STEPHEN SHERVAIS JR 130 REM 4868 LANGER LN 140 REM WOODBRIDGE, VA, 22193 150 REM COMPUSERVE 72060,573 160 PRINT"THIS PROGRAM IS DESIGNED TO COMPUTE" 170 PRINT"THE DISTANCE BETWEEN STARS NEAR THE SUN" 180 PRINT"IN CARTESIAN COORDINATES ALIGNED WITH" 190 PRINT"THE PLANE OF THE ECLIPTIC":PRINT 200 DEF FNA(Q)=(INT(Q)/57.296)+((Q-INT(Q))/60/57.296) 210 REM **** INPUT OR OUTPUT ***** 220 PRINT"DO YOU WISH TO CREATE A NEW FILE OR PRINT OUT AN OLD ONE?" 230 PRINT 240 PRINT"1. NEW FILE" 250 PRINT"2. OLD FILE: CARTESIAN COORDINATES" 260 PRINT"3. OLD FILE: DISTANCES" 270 PRINT 280 GET A1$: IF A1$="" THEN 280 290 IF A1$="1" THEN GOSUB 340 300 IF A1$="2" THEN GOSUB760: GOSUB970 310 IF A1$="3" THEN GOSUB760: GOSUB1120 320 END 330 REM **** INPUT NEW FILE **** 340 INPUT"TOTAL NUMBER OF STAR SYSTEMS";S1:S1=S1-1 350 DIM S$(S1), S(S1,8) 360 FOR T=0 TO S1 370 PRINT"[146]SYSTEM";T+1 380 INPUT"SYSTEM NAME ";S$(T) 390 INPUT"RIGHT ASCENSION ";S(T,0) 400 INPUT"DECLINATION ";S(T,1) 410 INPUT"DISTANCE, LY ";S(T,4) 420 REM **** ERROR CHECK **** 430 PRINT 440 PRINT"CHECK: NAME "; S$(T) 450 PRINT" R.A. "; S(T,0) 460 PRINT" DEC "; S(T,1) 470 PRINT" DIST "; S(T,4) 480 INPUT"IS THIS CORRECT (Y/N) Y[157][157][157]";A2$ 490 IF A2$<>CHR$(89) THEN 370 500 S(T,2)=FNA(S(T,0))*15 510 S(T,3)=FNA(S(T,1)) 520 GOSUB 570:REM *** XYZ COORDS *** 530 NEXT T 540 GOSUB 650:REM ** OUTPUT TO FILE ** 550 RETURN 560 REM ** ECLIPTIC CARTESIAN CONV ** 570 X=S(T,4)*SIN((90/57.296)-S(T,3))*COS(S(T,2)) 580 S(T,5)=X 590 Y=S(T,4)*SIN((90/57.296)-S(T,3))*SIN(S(T,2)) 600 S(T,6)=Y 610 Z=S(T,4)*COS((90/57.296)-S(T,3)) 620 S(T,7)=Z 630 RETURN 640 REM *** OUTPUT TO DISK *** 650 INPUT "NEW FILE NAME?";A3$ 660 OPEN14,8,14,"0:"+A3$+",S,W" 670 FOR T=0 TO S1 680 PRINT#14,S$(T) 690 FOR I=0 TO 7 700 PRINT#14,S(T,I) 710 NEXT I 720 NEXT T 730 PRINT#14:CLOSE14 740 RETURN 750 REM *** INPUT FROM DISK *** 760 INPUT "OLD FILE NAME ";A3$ 770 PRINT"DO YOU WANT TO OUTPUT TO SCREEN," 780 PRINT"OR PRINTER?":PRINT 790 PRINT"1. OUTPUT TO SCREEN" 800 PRINT"2. OUTPUT TO PRINTER" 810 GET B1$: IF B1$="" THEN 810 820 IF B1$<>"1" AND B1$<>"2" THEN 810 830 PRINT 840 INPUT "NUMBER OF STAR SYSTEMS";S1:S1=S1-1 850 IF S<0 THEN RETURN 860 DIM S$(S1), S(S1,8) 870 OPEN10,8,10,"0:"+A3$+",S,R" 880 FOR T=0 TO S1 890 INPUT#10,S$(T) 900 FOR I=0 TO 7 910 INPUT#10,S(T,I) 920 NEXT I 930 NEXT T 940 PRINT#10:CLOSE10 950 RETURN 960 REM *** ECLIPTIC OUTPUT *** 970 OPEN4,3: IF B1$="2" THEN CLOSE4: OPEN4,4 980 FOR T=0 TO S1 990 PRINT#4 1000 PRINT#4,S$(T) 1010 PRINT#4,"RIGHT ASCENSION ";S(T,0);"HOURS.MINUTES" 1020 PRINT#4," DECLINATION ";S(T,1);"DEGREES.MINUTES" 1030 PRINT#4," DISTANCE= ";S(T,4);"LIGHT YEARS" 1040 PRINT#4," X= ";S(T,5);"LIGHT YEARS" 1050 PRINT#4," Y= ";S(T,6);"LIGHT YEARS" 1060 PRINT#4," Z= ";S(T,7);"LIGHT YEARS" 1070 IF B1$="1" THEN GOSUB 1340 1080 NEXT T 1090 PRINT#4:CLOSE4 1100 RETURN 1110 REM *** DISTANCE OUTPUT *** 1120 OPEN4,3: IF B1$="2" THEN CLOSE4: OPEN4,4 1130 PRINT#4,"DISTANCE FROM SUN TO ":PRINT 1140 FOR T=0 TO S1 1150 PRINT#4,S$(T);TAB(25-LEN(S$(T)));S(T,4) 1155 IF B1$="1" THEN GOSUB 1440 1160 NEXT T 1170 PRINT#4:CLOSE4 1180 PRINT:INPUT"MAXIMUM TRIP DISTANCE ";D2:PRINT 1190 OPEN4,3: IF B1$="2" THEN CLOSE4: OPEN4,4 1200 FOR T=0 TO S1-1 1201 GOSUB 1470 1210 PRINT#4,"DISTANCE FROM ";S$(T);" TO:":PRINT:B2=0 1220 FOR U=T+1 TO S1 1230 X1=S(T,5)-S(U,5):X2=X1*X1 1240 Y1=S(T,6)-S(U,6):Y2=Y1*Y1 1250 Z1=S(T,7)-S(U,7):Z2=Z1*Z1 1260 D1=SQR(X2+Y2+Z2) 1270 IF D1