10 DIM SC$(8),M(8),C$(8),S$(36),LS(36),SS$(36),SM(36),MP(15),R(15) 20 FOR I=1 TO 8:READ SC$(I),M(I),C$(I):NEXT 30 FOR I=1 TO 17:READ S$(I),SS$(I),SM(I):LS(I)=SM(I)^3.5:NEXT 40 FOR I=18 TO 36:READ S$(I),SS$(I),LS(I):SM(I)=LS(I)^.285714:NEXT 50 DATA O,100,BLUE,B,17,PALE BLUE,A,3.2,WHITE,F,1.54,PALE YELLOW 60 DATA G,1.02,YELLOW,K,.75,ORANGE,M,.38,RED,D,0.,RED 70 DATA SOL,G2,1.0,ALPHA CENTAURI A,G4,1.08,ALPHA CENTAURI B,K1,.88 80 DATA EPSILON ERIDANI,K2,.8,TAU CETI,G8,.82 90 DATA 70 OPHIUCHI A,K1,.9,70 OPHIUCHI B,K5,.65 100 DATA ETA CASSIOPEIAE A,F9,.94,ETA CASSIOPEIAE B,K6,.58 110 DATA SIGMA DRACONIS,G9,.82,36 OPHIUCHI A,K2,.77 120 DATA 36 OPHIUCHI B,K1,.76,HR 7703,K2,.76 130 DATA DELTA PAVONIS,G7,.98,82 ERIDANI,G5,.91 140 DATA BETA HYDRI,G1,1.23,HR 8832,K3,.74 150 DATA SIRIUS,A1,23,CANOPUS,F0,130,VEGA,A0,52,ARCTURUS,K2,100 160 DATA RIGEL,B8,52000,CAPELLA,G8,145,PROCYON,F5,7.6 170 DATA ACHERNAR,B5,1000,ALTAIR,A7,10,BETELGEUSE,M2,8300 180 DATA ALDEBARAN,K5,160,SPICA,B1,760,ANTARES,M1,830 190 DATA POLLUX,K0,33,FOMALHAUT,A3,13,BETA CRUCIS,B0,8300 200 DATA DENEB,A2,52000,REGULUS,B7,160,BARNARD'S STAR,M5,.00044 210 PRINT CHR$(&H1A);"WORLD BUILDER" 220 PRINT"ENTER THE NUMBER FOR THE OPTION YOU WANT" 230 PRINT:PRINT"1. USE A KNOWN STAR" 240 PRINT"2. USE A STAR NOT ON LIST" 250 PRINT"3. LIST KNOWN STARS" 260 PRINT"4. QUIT" 270 INPUT"YOUR CHOICE? ",A 280 IF(A<1 OR A>4)THEN 210 290 ON(A)GOTO 360,500,320,300 300 INPUT"ARE YOU SURE YOU WANT TO QUIT? ",A$ 310 IF(ASC(A$)=89 OR ASC(A$)=121)THEN END ELSE 210 320 PRINT CHR$(&H1A);"I KNOW THE FOLLOWING STARS:":PRINT 330 FOR I=1 TO 12 340 PRINT S$(I);TAB(20);S$(I+12);TAB(40);S$(I+24) 350 NEXT 360 PRINT:INPUT"WHICH STAR SHOULD I USE? ",S$ 370 IF(S$="NONE" OR S$="")THEN 210 380 FOR I=1 TO 36 390 IF(S$=S$(I))THEN SK=I:GOTO 420 400 NEXT I 410 PRINT"I DON'T KNOW THAT STAR.":GOTO 220 420 SC = VAL(RIGHT$(SS$(SK),1))/10 430 S1$=LEFT$(SS$(SK),1) 440 FOR I=1 TO 7:IF(S1$=SC$(I))THEN J=I:GOTO 460 450 NEXT 460 MS=SM(SK):L=LS(SK):AS=(MS^-2.5)*10 470 P=(1.25-MS/(L^.285714))/.005 480 IF(P/100*AS>10)THEN P=1000/AS 490 GOTO 690 500 INPUT"WHAT IS THE STAR'S NAME? ",S$ 510 INPUT"WHAT IS THE STAR'S SPECTRAL CLASS? ",S1$ 520 IF(S1$<>"")THEN 590 530 INPUT"WHAT IS THE ABSOLUTE MAGNITUDE (SUN=4.85)? ",M 540 L=EXP(1.94-.4*M):MS=L^.285714 550 FOR I=1 TO 7:IF(M(I)<MS)THEN J=I-1:GOTO 570 560 NEXT 570 S1$=SC$(I-1):SC=INT((MS-M(J))/(M(I)-M(J)))/10 580 GOTO 630 590 SC=VAL(RIGHT$(S1$,1))/10:S1$=LEFT$(S1$,1) 600 FOR I=1 TO 7:IF(S1$=SC$(I))THEN J=I:GOTO 620 610 NEXT:PRINT"I DON'T KNOW THAT CLASS.":GOTO 510 620 MS=M(J)-SC*(M(J)-M(J+1)) 630 AS=(MS^-2.5)*10 640 PRINT S$;" HAS AN EXPECTED LIFE OF";AS;" BILLION YEARS." 650 INPUT"WHAT PERCENT (1..100) HAS ALREADY PASSED? ",P 660 IF(P/100*AS>12)THEN PRINT"THE BIG BANG OCCURRED 12 BILLION YEARS AGO.":INPUT"IS THIS WHAT YOU WANT? ",A$:IF(ASC(A$)<>89)THEN 640 670 MS=MS*(1.25-.005*P) 680 L=MS^3.5 690 TS=6000*MS^.35 700 DS=MS^.3333 710 PRINT CHR$(&H1A);"STELLAR DATA:":PRINT 720 PRINT"THE SELECTED STAR, ";S$;", IS A CLASS '";S1$;SC*10;"' STAR." 730 IF(SC>.75)THEN PRINT"IT IS ";C$(J+1);:GOTO 760 740 IF(SC<.25)THEN PRINT"IT IS ";C$(J);:GOTO 760 750 PRINT"IT IS BETWEEN ";C$(J);" AND ";C$(J+1); 760 PRINT" IN COLOR.":PRINT"IT HAS A MASS OF";MS;"SOLAR MASSES," 770 PRINT"AND IT IS";L;"TIMES AS BRIGHT AS THE SUN." 780 PRINT S$;" HAS AN EXPECTED LIFESPAN OF";AS;"BILLION YEARS." 790 PRINT"IT IS";P;"PERCENT (ABOUT";AS*P/100;"BILLION YEARS) INTO ITS LIFESPAN." 800 IF(P>95)THEN PRINT"IT IS IN ITS DEATH THROES." 810 IF(P<5)THEN PRINT"IT IS JUST A BABY STAR." 820 PRINT"IT HAS A MEAN SURFACE TEMPERATURE OF";TS;"DEGREES KELVIN," 830 IF(J+SC<2.5 OR J+SC>7)THEN PRINT"AND IT IS NOT BELIEVED TO HAVE PLANETS.":GOTO 850 840 PRINT"AND IT MAY HAVE PLANETS." 850 PRINT S$;" WILL DIE AS A "; 860 IF(MS<1.5)THEN PRINT"WHITE DWARF.":GOTO 900 870 IF(MS<4)THEN PRINT"NEUTRON STAR.":GOTO 900 880 IF(MS<10)THEN PRINT"NEUTRON STAR AFTER GOING NOVA.":GOTO 900 890 PRINT"BLACK HOLE AFTER GOING SUPERNOVA." 900 INPUT"ANOTHER STAR? ",A$ 910 IF(ASC(A$)=89)THEN 210 920 P=P/100 930 PRINT CHR$(&H1A);"INFORMATION WILL NOW BE GATHERED ABOUT THE MAIN PLANET OF INTEREST." 940 PRINT:PRINT"THE EARTH HAS AN AVERAGE SURFACE TEMPERATURE OF 60 DEGREES F." 950 INPUT"WHAT SURFACE TEMPERATURE WOULD YOU LIKE? ",TP:TP=TP+460 960 INPUT"DESIRED SURFACE GRAVITY (EARTH = 1)? ",G 970 IF(G<=0)THEN PRINT"COME ON, THE PLANET MUST HAVE SOME GRAVITY!":GOTO 960 980 RP=SQR(L/(TP/520)^4) 990 IF(RP<MS/5)THEN PRINT"THIS PLANET IS TOO CLOSE TO BE STABLE.":GOTO 940 1000 PP=SQR(RP^3/MS) 1010 IS=L/(RP*RP) 1020 RM=.00012*TS 1030 RX=.06452*EXP(.0005*TS) 1040 SA=DS/RP 1050 INPUT"HOW BIG SHOULD THE PLANET BE RELATIVE TO EARTH (EARTH = 1)? ",D 1060 M=G*D*D 1070 IF(M<.055)THEN PRINT"THIS PLANET WON'T RETAIN AN OXYGEN ATMOSPHERE." 1080 IF(M>17.6)THEN PRINT"THIS PLANET WON'T LOSE ITS HYDROGEN ATMOSPHERE." 1090 PRINT"EARTH'S ORBIT HAS AN ECCENTRICITY OF .01672" 1100 INPUT"WHAT IS THE ORBITAL ECCENTRICITY (LESS THAN 1)? ",EC 1110 IF(EC=>1)THEN 1100 1120 CA=(1-EC)*RP:FA=(1+EC)*RP 1130 INPUT"HOW DOES THE AXIS TILT (EARTH=23.5 DEGREES)? ",TI 1140 IF(TI<0 OR TI>90)THEN 1130 1150 INPUT"HOW MANY MOONS DOES THE PLANET HAVE? ",MN 1160 IF(MN>10)THEN PRINT"FOR CONVENIENCE WE'LL CALL IT 10.":MN=10 1170 MM=1000:H=0:R=56*G 1180 IF(MN<=0)THEN 1280 1190 FOR I=1 TO MN 1200 PRINT"MASS OF MOON #";I;"(OUR MOON = 1)";:INPUT"? ",MN(I) 1210 INPUT"ORBIT (OUR MOON = 30)? ",MR(I) 1220 IF(MR(I)<3*G)THEN PRINT"THE MOON IS TOO CLOSE AND WILL BREAK UP.":GOTO 1210 1230 IF(MR(I)>56*G)THEN PRINT"THE MOON IS TOO FAR AWAY AND WILL DRIFT OFF.":GOTO 1210 1240 MP(I)=SQR(MR(I)^3/M)*4 1250 IF(MR(I)<R)THEN MM=MP(I):R=MR(I) 1260 H=MN(I)*.01235/(MR(I)^3)+H 1270 NEXT 1280 H2=.85*D^4/M*(MS*333500!/(11759*RP)^3+H) 1290 DA=1.75926E+06*H2*14+10 1300 IF(DA>MM)THEN DA=MM 1310 PRINT CHR$(&H1A);"PLANETARY INFORMATION:":PRINT:PRINT"THE PLANET'S DAY SHOULD BE ABOUT";DA;"HOURS LONG." 1320 PRINT"THAT MAKES ITS YEAR";8766/DA*PP;"DAYS LONG. WITH A TILT OF";TI;"," 1330 HI=(1+.025*DA/24)*TP-460:LO=(1-.025*DA/24)*TP-460 1340 IF(LO<-460)THEN LO=-460 1350 IF(HI<-460)THEN HI=-460 1360 PRINT"TODAY'S HIGH TEMPERATURE SHOULD BE";HI;"DEGREES F," 1370 PRINT"AND TONIGHT'S EXPECTED LOW SHOULD BE AROUND";LO;"." 1380 SH=HI+1.9*TI*(1+EC)^2:LL=LO-1.9*TI/(1+EC)^2 1390 IF(LL<-460)THEN LL=-460 1400 IF(SH<-460)THEN SH=-460 1410 PRINT"THIS SUMMER WE EXPECT IT TO GET UP TO";SH;", AND" 1420 PRINT"THIS WINTER WE EXPECT IT TO GET DOWN TO";LL;"DEGREES F." 1430 IF(SH<32 OR LL>175)THEN PRINT"THERE ARE TIMES WHEN NO LIQUID WATER EXISTS." 1440 PRINT"HIT ANY KEY TO CONTINUE.":A$=INPUT$(1) 1450 IF(MN<=0)THEN 1590 1460 IF(MN=1)THEN 1560 1470 FOR I=1 TO MN:FOR K=1 TO (MN-I) 1480 IF(MR(K+1)=>MR(K))THEN 1530 1490 T=MR(K):MR(K)=MR(K+1):MR(K+1)=T 1500 T=MN(K):MN(K)=MN(K+1):MN(K+1)=T 1510 T=MP(K):MP(K)=MP(K+1):MP(K+1)=T 1520 F=1 1530 NEXT K 1540 IF(F=0)THEN 1560 1550 NEXT I 1560 PRINT CHR$(&H1A);"YOUR SELECTED SYSTEM OF MOONS:":PRINT 1570 PRINT"ORBIT","MASS","PERIOD" 1580 FOR I=1 TO MN:PRINT MR(I),MN(I),MP(I);"HRS",MP(I)/DA;"DAYS":NEXT 1590 INPUT"DO YOU WANT A DIFFERENT SET OF MOONS? ",A$ 1600 IF(ASC(A$)=89)THEN 1150 1610 PRINT CHR$(&H1A);"PLANETARY DATA:":PRINT 1620 PRINT"OUR PRINCIPAL PLANET OF INTEREST HAS AN AVERAGE SURFACE" 1630 PRINT"TEMPERATURE OF";TP-460;"DEGREES F. THIS REQUIRES AN ORBIT" 1640 PRINT"OF";RP;"ASTRONOMICAL UNITS, OR";RP*93;"MILLION MILES." 1650 PRINT"THE CLOSEST APPROACH TO ";S$;" IS";CA;"A.U.," 1660 PRINT"AND THE GREATEST DISTANCE FROM ";S$;" IS";FA;"A.U." 1670 PRINT"THIS ALSO MEANS THAT IT HAS A YEAR THAT IS";PP;" YEARS LONG." 1680 PRINT:PRINT S$;" APPEARS TO BE"; 1690 IF(SA>1.5 OR SA<.75)THEN PRINT" MUCH"; 1700 IF(SA=1)THEN PRINT" THE SAME SIZE AS";ELSE IF(SA>1)THEN PRINT" LARGER THAN";ELSE PRINT" SMALLER THAN"; 1710 PRINT" OUR SUN APPEARS." 1720 IF(G>.95 AND G<1.05)THEN PRINT"GRAVITY IS ESSENTIALLY THE SAME AS EARTH'S.":GOTO 1840 1730 PRINT"SINCE THE PLANET HAS A GRAVITY";:IF(G<1)THEN 1790 1740 PRINT" GREATER THAN EARTH'S, WE EXPECT" 1750 PRINT"A THICKER ATMOSPHERE. THERE IS GREATER TECTONIC ACTION AND GREATER" 1760 PRINT"RESISTING FORCES; THUS, WE ANTICIPATE MORE CONTINENTS AND SHORTER" 1770 PRINT"MOUNTAINS. EARTHQUAKES SHOULD BE MORE FREQUENT AND MORE SEVERE." 1780 GOTO 1840 1790 PRINT" LESS THAN EARTH'S, WE EXPECT" 1800 PRINT"A THINNER ATMOSPHERE. THERE IS LESS TECTONIC ACTION AND LOWER" 1810 PRINT"RESISTING FORCES; THUS, THERE WILL BE FEWER CONTINENTS AND FEWER" 1820 PRINT"MOUNTAINS, ALTHOUGH THEY MAY BE QUITE TALL. EARTHQUAKES, IF ANY," 1830 PRINT"WILL NOT BE AS SEVERE AS ON EARTH." 1840 PRINT"A GRAVITY OF";G;"MEANS THAT IF YOU WEIGH 220 POUNDS," 1850 PRINT"YOU WOULD WEIGH";G*220;"POUNDS ON THE PLANET." 1860 INPUT"WOULD YOU LIKE A NEW GRAVITY? ",A$ 1870 IF(ASC(A$)=89)THEN 960 1880 PRINT CHR$(&H1A);"THE SUBJECT OF LIFE...":PRINT 1890 IF(M<.055 OR M>17.6)THEN PRINT"BECAUSE OF THE BAD ATMOSPHERE,":GOTO 2270 1900 IF(RP<RM OR RP>RX)THEN PRINT"BECAUSE OF THE LEVEL OF RADIATION,":GOTO 2270 1910 IF(SH<32 OR LL>175)THEN PRINT"BECAUSE THERE IS NO LIQUID WATER,":GOTO 2270 1920 IF(AS*P<1.5)THEN PRINT"BECAUSE THE PLANET IS TOO YOUNG,":GOTO 2270 1930 IF(P>.95)THEN PRINT"BECAUSE ";S$;" IS IN ITS DEATH THROES,":GOTO 2270 1940 IF(P<.05)THEN PRINT"BECAUSE ";S$;" IS SO YOUNG AND UNSTABLE,":GOTO 2270 1950 PRINT"CONDITIONS ARE RIGHT FOR THERE TO BE SOME "; 1960 IF(AS*P<2*G)THEN PRINT"BACTERIA AND BLUE-GREEN ALGAE.":GOTO 2250 1970 IF(AS*P<3*G)THEN PRINT"SINGLE-CELL LIFE WITH NUCLEI.":GOTO 2250 1980 IF(AS*P<4*G)THEN PRINT"SIMPLE MULTI-CELLED LIFE.":GOTO 2250 1990 IF(AS*P<4.4*G)THEN PRINT"WATER VERTEBRATES AND LAND PLANTS.":GOTO 2250 2000 PRINT"MAJOR LAND ANIMALS, PERHAPS INCLUDING INTELLIGENT LIFE." 2010 IF(G<.95)THEN 2110 2020 IF(G<1.05)THEN 2180 2030 PRINT"HIGHER GRAVITY MEANS A THICK ATMOSPHERE WHICH WILL SUPPORT LARGE" 2040 PRINT"BIRDS. IT ALSO MEANS THAT SHORT FALLS COULD BE FATAL, SO REACTION" 2050 PRINT"TIMES WILL BE VERY SHORT. ALL LIFE FORMS WILL BE SHORT AND STOCKY." 2060 IF(G>1.2)THEN PRINT"THERE ARE NO 2-LEGGED ANIMALS."ELSE PRINT"THERE MIGHT BE 2-LEGGED ANIMALS." 2070 PRINT"THE THICK ATMOSPHERE IMPROVES SOUND TRANSMISSION AND REDUCES" 2080 PRINT"VISIBILITY EXCEPT IN THE INFRARED. ANIMALS WOULD HAVE TO RELY" 2090 PRINT"MORE ON HEARING, BUT THEIR EARS WOULD NOT HAVE TO BE LARGE." 2100 GOTO 2180 2110 PRINT"LOWER GRAVITY MEANS A THINNER ATMOSPHERE. BIRDS, IF ANY, WILL HAVE" 2120 PRINT"WIDE WINGSPANS. ALL LIFEFORMS WILL BE TALLER AND MORE SLENDER THAN" 2130 PRINT"THEIR COUNTERPARTS ON EARTH. THERE PROBABLY ARE MANY 2-LEGGED" 2140 PRINT"ANIMALS. THE THIN ATMOSPHERE HURTS SOUND TRANSMISSION, SO ANIMALS" 2150 PRINT"WILL EITHER HAVE LARGE EARS OR WILL NOT HAVE DEVELOPED THE SENSE OF" 2160 PRINT"HEARING AT ALL. LUNGS WILL BE MUCH LARGER." 2170 IF(TP>75)THEN PRINT"SOME FORM OF RADIATION PROTECTION WILL BE NECESSARY." 2180 IF(SA>.75)THEN 2210 2190 PRINT"BECAUSE OF THE SMALL SUN, WE EXPECT ANIMALS EITHER TO HAVE LARGE EYES" 2200 PRINT"OR TO RELY ON OTHER SENSES, HAVING NEVER DEVELOPED SIGHT." 2210 IF(SA<1.5)THEN 2240 2220 PRINT"UNLESS THE ATMOSPHERE IS OBSCURED, WE EXPECT RELIANCE UPON SIGHT" 2230 PRINT"USING RELATIVELY SMALL EYES, AS UPON EARTH." 2240 IF(HI-LO>75)THEN PRINT"EXTREME TEMPERATURE VARIATIONS FAVOR UNDERGROUND AND/OR AQUATIC LIFEFORMS." 2250 HM=((TP-460)>32 AND (TP-460)<90 AND G<1.5 AND G>.65 AND M>.4 AND M<2.35 AND DA<96 AND SH<125 AND LL>-30 AND HI<110 AND LO>-10) 2260 GOTO 2280 2270 PRINT"LIFE, AS WE KNOW IT, CANNOT EXIST ON THIS PLANET." 2280 PRINT"THIS PLANET ";:IF(HM)THEN PRINT"MIGHT BE ";ELSE PRINT"WOULDN'T BE "; 2290 PRINT"CONSIDERED HABITABLE BY MAN." 2300 INPUT"WANT ANOTHER PLANET? ",A$ 2310 IF(ASC(A$)=89)THEN 930 2320 PRINT CHR$(&H1A);"OTHER PLANETS...":PRINT 2330 INPUT"HOW MANY PLANETS IN THE SYSTEM (1..15)? ",NP 2340 IF(NP>15)THEN PRINT"TOO MANY...TRY AGAIN.":GOTO 2330 2350 IF(NP<=1)THEN 2790 2360 AM=1180/SQR(MS)-M*SQR(RP) 2370 R(1)=RP:MP(1)=M 2380 FOR I=2 TO NP 2390 PRINT CHR$(&H1A); 2400 PRINT"THE SOLAR SYSTEM IS LAID OUT LIKE THIS:":PRINT 2410 PRINT"PLANET","MASS","DISTANCE (A.U.)" 2420 PRINT"MERCURY",.055,.387 2430 PRINT"VENUS",.815,.723 2440 PRINT"TERRA",1,1 2450 PRINT"MARS",.908,1.524 2460 PRINT"JUPITER",317.9,5.203 2470 PRINT"SATURN",95.2,9.539 2480 PRINT"URANUS",14.6,19.18 2490 PRINT"NEPTUNE",17.2,30.06 2500 PRINT"PLUTO",.1,39.44 2510 PRINT:PRINT"MASS FOR PLANET #";I;:INPUT"? ",MP(I) 2520 IF(MP(I)>1000)THEN PRINT"A BODY THIS LARGE WOULD BECOME A STAR.":GOTO 2510 2530 PRINT"DISTANCE FROM ";S$;" (A.U.)";:INPUT"? ",R(I) 2540 IF(R(I)<MS/5)THEN PRINT"PLANET IS TOO CLOSE TO ";S$;".":GOTO 2530 2550 IF(R(I)>MS*56)THEN PRINT"PLANET IS TOO FAR FROM ";S$;".":GOTO 2530 2560 FOR K=1 TO I-1:IF(R(K)>.9*R(I) AND R(K)<1.1*R(I))THEN 2620 2570 NEXT K 2580 A1=MP(I)*SQR(R(I)) 2590 IF(A1>AM)THEN PRINT"THE PLANET HAS TOO MUCH MASS FOR THE SYSTEM":GOTO 2400 2600 AM=AM-A1 2610 NEXT I:GOTO 2640 2620 PRINT"THE PLANET IS TOO CLOSE TO OTHER PLANETS TO HAVE A STABLE ORBIT." 2630 GOTO 2400 2640 FOR I=1 TO NP:F=0:FOR K=1 TO (NP-I) 2650 IF(R(K+1)=>R(K))THEN 2690 2660 T=R(K):R(K)=R(K+1):R(K+1)=T 2670 T=MP(K):MP(K)=MP(K+1):MP(K+1)=T 2680 F=1 2690 NEXT K 2700 IF(F=0)THEN 2720 2710 NEXT I 2720 PRINT CHR$(&H1A);"THE SYSTEM OF ";S$;":":PRINT:PRINT"PLANET #","MASS","ORBIT (A.U.)" 2730 FOR I=1 TO NP 2740 PRINT I,MP(I),R(I); 2750 IF(R(I)>RM AND R(I)<RX AND MP(I)>.055 AND MP(I)<17.6)THEN PRINT " LIFE??" ELSE PRINT 2760 NEXT I 2770 INPUT"WOULD YOU LIKE TO TRY ANOTHER SYSTEM? ",A$ 2780 IF(ASC(A$)=89)THEN 2320 2790 INPUT"WOULD YOU LIKE TO TRY ANOTHER STAR? ",A$ 2800 IF(ASC(A$)=89)THEN 210 2810 END ,A$ 2780 IF(ASC(A$)=89)THE