0 ' HALLEY.BA CODEWORKS MAGAZINE 3838 S.WARNER ST.TACOMA,WA 98409 1 ' CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 2 ' (206) 475-2219 : DO NOT 'OVE THESE LINES PLEASE 4 ' ** HALLEY'S COMET ** DO NOT DELETE 'ARK LINES ** 6 ' Adapted for the Model 100 and Tandy 200 by Dave Thomas 8 CLEAR 1000:' ** DELETE THIS LINE IF YOU DON'T NEED IT ** 10 CLS:DIMOB(3,8),MD(12),EA(2,10),HC(2,10),VN(2,10),DT(10):FORI=1TO3:FORJ=1TO8:READOB(I,J):NEXT:NEXT 12 ' ** ORBITAL PARAMETERS FOR THE COMET, EARTH AND VENUS ** 14 DATA1986.112,76.0081,170.0110,170.0110,0.9673,17.9435,162.2384,58.1540,1980.0,1.00004,98.833540,102.596403,0.016718,1.000000,0,0 16 DATA 1980.0,0.61521,355.73352,131.2895792,0.0067826,0.7233316,3.394435,76.4997524 18 ' ** DAYS TO FIRST OF THE MONTH ** 20 FORI=1TO12:READMD(I):NEXTI:DATA 0,31,59,90,120,151,181,212,243,273,304,334:SX=(80/8)*2:SY=(66/11)*2:ND=10:JD=15020:DR=3.14159/180 22 ES$="earthorbit":HS$="HALLEYSCOM":VS$="venuspathx":PRINTSTRING$(12,"-");" The CodeWorks ";STRING$(13,"-");:PRINT"H A L L E Y' S C O M E T T R A C K E R";:PRINT" by Terry R Dettmann" 24 PRINTSTRING$(40,"-"); 26 ' ** MAIN COMPUTATION LOOP ** 28 INPUT"STARTING DATE (mm,dd,yy)";MM,DD,YY:GOSUB56:TB=T:DY=10:FORI=1TOND:GOSUB30:GOSUB34:NEXTI:GOSUB50:GOSUB84:END 30 ' ** GET THE CURRENT DAY FOR THE COMPUTATION ** 32 T=TB+(I-1)*DY:DT(I)=T:RETURN 34 ' ** COMPUTE EARTH AND COMET LOCATIONS ** 36 PRINT@160,CHR$(27);"J":PRINT@165,"TIME: ",T 38 ' ** THE COMET FIRST ** 40 OP=1:GOSUB98:HC(1,I)=INT(40+X*SX+.5):HC(2,I)=INT(30-Y*SY+.5):PRINT@205,"COMET: ",HC(1,I);HC(2,I) 42 ' ** EARTH NOW ** 44 OP=2:GOSUB98:EA(1,I)=INT(40+X*SX+.5):EA(2,I)=INT(30-Y*SY+.5):PRINT@245,"EARTH: ",EA(1,I);EA(2,I) 46 ' ** VENUS ** 48 OP=3:GOSUB98:VN(1,I)=INT(40+X*SX+.5):VN(2,I)=INT(30-Y*SY+.5):PRINT@285,"VENUS: ",VN(1,I);VN(2,I);:FORZZ=1TO1000:NEXT:RETURN 50 ' ** PLOT THE POSTIONS AS GIVEN ** 52 FORY=1TO45:IFY<>30THENY$=" "ELSEY$="-" 54 LN$=STRING$(78,Y$):MID$(LN$,40,1)="!":GOSUB68:LPRINTLN$:NEXTY:RETURN 56 ' ** DETERMINE THE FIRST JULIAN DAY NUMBER ** 58 GOSUB64:T=JD+INT(365.25*YY)+DN:RETURN 60 ' ** DETERMINE JULIAN DAY FOR EPOCH ** 62 T0=JD+INT(365.25*(EP-1900)):RETURN 64 ' ** DETERMINE THE DAY NUMBER (DN) ** 66 DN=MD(MM)+DD-1:RETURN 68 ' ** FIND ANY LOCATIONS TO PUT IN THIS PLACE ** 70 FORI=1TOND:IFHC(2,I)=YTHENX$=MID$(HS$,I,1):X=HC(1,I):GOSUB78 72 IFEA(2,I)=YTHENX$=MID$(ES$,I,1):X=EA(1,I):GOSUB78 74 IFVN(2,I)=YTHENX$=MID$(VS$,I,1):X=VN(1,I):GOSUB78 76 NEXTI:RETURN 78 ' ** PLACE THE CURRENT LOCATION INTO THE LINE ** 80 IFX>LEN(LN$)THENRETURN 82 MID$(LN$,X,1)=X$:RETURN 84 ' ** WRITE OUT THE FINAL DATE TABLE ** 86 LPRINT"DATE","COMET","EARTH","VENUS":FORI=1TOND:JX=DT(I):GOSUB88:LPRINTUSING"##/##/##";MX,DX,YX;:LPRINT,MID$(HS$,I,1),MID$(ES$,I,1),MID$(VS$,I,1):NEXTI:RETURN 88 ' ** GET THE CURRENT DATE FROM JULIAN DATE ** 90 CD=JX-JD-INT(365.25*YY):YX=YY:IFCD>365THENYX=YX+1:CD=CD-365 92 FORJ=1TO11:IFCD>=MD(J)ANDCD