home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 50 / 050.d81 / astro-calc (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1988-01-01  |  16.0 KB  |  487 lines

  1. 5 ifaz=0thenaz=1:load"dr",8,1
  2. 10 goto60
  3. 15 print"[147]";:poke53281,3:poke53280,3
  4. 20 l=len(f$):b=951:pokeb,l+2:pokeb+l+1,44:pokeb+l+2,80
  5. 25 fori=0tol-1:pokeb+i+1,asc(mid$(f$,i+1,1)):next:poke909,1
  6. 30 sys828:poke198,0:fz=0
  7. 35 poke214,23:print:iffq=0thenprint"[144]    [208]ress [211][208][193][195][197][146] to return to menu[145]":goto45
  8. 40 print"[144]  [211][208][193][195][197][146] for more     [210][197][212][213][210][206][146] for menu[145]"
  9. 45 geta$:ifa$<>" "anda$<>chr$(13)then45
  10. 50 ifa$=chr$(13)thenfz=1
  11. 55 return
  12. 60 def fna(x)=sgn(x)*(int(abs(x))+(abs(x)-int(abs(x)))*100/60):pi=3.14159265
  13. 65 dimjd$(22),m1$(13),m2$(13):deffns(x)=sin(pi/180*x)
  14. 70 deffnm(x)=x-(int(x/360)*360):deffne(x)=pi/180*x:deffnc(x)=180/pi*x
  15. 75 data"1.00","100.00","200.00","300.01","400.01","500.02","600.03","700.04"
  16. 80 data"800.04","900.05","1000.06",1100.07",1200.07","1300.08","1400.09"
  17. 85 data"1500.10","1600.10","1700.11","1800.12","1900.13","2000.13","2100.14"
  18. 90 fori=1to22:readjd$(i):next
  19. 95 data"jan000031","feb031059","mar059090","apr090120","may120151","jun151181"
  20. 100 data"jul181212","aug212243","sep243273","oct273304","nov304334","dec334365"
  21. 105 fori=1to12:readm1$(i):next
  22. 110 data"jan000031","feb031060","mar060091","apr091121",may"121152","jun152182"
  23. 115 data"jul182213","aug213244","sep244274","oct274305","nov305335","dec335366"
  24. 120 fori=1to12:readm2$(i):next
  25. 125 data"ast04","est05","cst06","mst07","pst08","yst09","aht10","bst11"
  26. 130 fori=1to8:readtz$(i):next
  27. 135 hg$=chr$(142)+"[147][149]           a s t r o - c a l c"
  28. 140 hh$="   [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]"
  29. 145 hi$="   [180]                                [170]"
  30. 150 hj$="   [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]"
  31. 155 cr$=""
  32. 160 sp$="                                       "
  33. 165 cd$=""
  34. 170 hp$= "             select a number[145]"
  35. 175 print"[147]":printchr$(142)
  36. 180 poke53280,15:poke53281,15:print"[142]"chr$(144)
  37. 185 printhg$
  38. 190 print"               [144] main menu "
  39. 195 printhh$
  40. 200 print"   [180]       [144]1[146] instructions           [170]"
  41. 205 printhi$
  42. 210 print"   [180]       [144]2[146] math for degrees       [170]"
  43. 215 printhi$
  44. 220 print"   [180]       [144]3[146] time conversions       [170]"
  45. 225 printhi$
  46. 230 print"   [180]       [144]4[146] useful formulas        [170]"
  47. 235 printhi$
  48. 240 print"   [180]       [144]5[146] quit                   [170]"
  49. 245 printhj$:printhp$
  50. 250 getg$:ifg$=""then250
  51. 255 ifval(g$)<1orval(g$)>5then250
  52. 260 onval(g$)goto265,270,365,500,2390
  53. 265 f$="mm 1":fq=0:gosub15:goto180
  54. 270 poke53280,15:poke53281,15:printhg$
  55. 275 print"           [144] math for degrees "
  56. 280 printhh$
  57. 285 print"   [180] [144]1[146] instructions                 [170]"
  58. 290 printhi$
  59. 295 print"   [180] [144]2[146] degrees dec > degrees,min,sec[170]"
  60. 300 printhi$
  61. 305 print"   [180] [144]3[146] degrees,min,sec > degrees dec[170]"
  62. 310 printhi$
  63. 315 print"   [180] [144]4[146] degree calculator            [170]"
  64. 320 printhi$
  65. 325 print"   [180] [144]5[146] main menu                    [170]"
  66. 330 printhj$
  67. 335 printhp$
  68. 340 getg$:ifg$=""then340
  69. 345 ifval(g$)<1orval(g$)>5then340
  70. 350 print"[147]":printchr$(31):onval(g$)goto355,610,650,680,185
  71. 355 f$="md 1":fq=0:gosub15
  72. 360 goto270
  73. 365 poke53280,15:poke53281,15:printhg$
  74. 370 print"           [144] time conversions [146][145]"
  75. 375 printhh$
  76. 380 printhi$
  77. 385 print"   [180] [144]1[146] instructions                 [170]"
  78. 390 printhi$
  79. 395 print"   [180] [144]2[146] local mean time > g.m.t.     [170]"
  80. 400 printhi$
  81. 405 print"   [180] [144]3[146] sidereal time of date        [170]"
  82. 410 printhi$
  83. 415 print"   [180] [144]4[146] julian day # > date          [170]"
  84. 420 printhi$
  85. 425 print"   [180] [144]5[146] date > julian day #          [170]"
  86. 430 printhi$
  87. 435 print"   [180] [144]6[146] julian > gregorian calendar  [170]"
  88. 440 printhi$
  89. 445 print"   [180] [144]7[146] main menu                    [170]"
  90. 450 printhj$
  91. 455 printhp$
  92. 460 getg$:ifg$=""then460
  93. 465 ifval(g$)<1orval(g$)>7then460
  94. 470 onval(g$)goto475,735,820,870,925,985,180
  95. 475 f$="tc 1":fq=1:gosub15:iffzthen365
  96. 480 f$="tc 2":gosub15:iffzthen365
  97. 485 f$="tc 3":gosub15:iffzthen365
  98. 490 f$="tc 4":fq=0:gosub15
  99. 495 goto365
  100. 500 poke53280,15:poke53281,15:printhg$
  101. 505 print"            [144] useful formulas "
  102. 510 printhh$
  103. 515 print"   [180]      [144]1[146] instructions            [170]"
  104. 520 printhi$
  105. 525 print"   [180]      [144]2[146] synetic vernal point    [170]"
  106. 530 printhi$
  107. 535 print"   [180]      [144]3[146] geog > geoc latitude    [170]"
  108. 540 printhi$
  109. 545 print"   [180]      [144]4[146] interpolation           [170]"
  110. 550 printhi$
  111. 555 print"   [180]      [144]5[146] main menu               [170]"
  112. 560 printhj$
  113. 565 printhp$
  114. 570 getg$:ifg$=""then570
  115. 575 ifval(g$)<1orval(g$)>5then570
  116. 580 onval(g$)goto585,1050,1125,1165,180
  117. 585 f$="uf 1":fq=1:gosub15:iffzthen500
  118. 590 f$="uf 2":gosub15:iffzthen500
  119. 595 f$="uf 3":fq=0:gosub15
  120. 600 goto500
  121. 605 rem convert deg dec to d,m,s
  122. 610 print"[147][144]  this routine converts degrees decimal"
  123. 615 print"to degrees, minutes and seconds."
  124. 620 print"    enter degrees decimal ";:ln=12:nu=2:gosub1930
  125. 625 a=val(g$):gosub1330:gosub1355
  126. 630 print"               ";h$+"d";m$+"m";s$+"s":gosub1375
  127. 635 ifg$="m"then270
  128. 640 ifg$="a"then610
  129. 645 rem convert d,m,s to deg dec
  130. 650 print"[147][144] this routine converts degrees, minutes"
  131. 655 print" and seconds to degrees decimal"
  132. 660 print" ";:gosub1995:gosub2040
  133. 665 print"         ";h;" degrees":gosub1375
  134. 670 ifg$="a"then650
  135. 675 ifg$="m"then270
  136. 680 print"[147]            degree calculator [146]"
  137. 685 print"           [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]"
  138. 690 print"           [180]                 [170]"
  139. 695 print"           [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]":sh$=""
  140. 700 print"[144]";:gosub1995
  141. 705 print"":gosub2040:a=h:t=a
  142. 710 ifsgn(h)=-1thensh$="[192]"
  143. 715 gosub1330:gosub1670:gosub1695:gosub1685
  144. 720 ifsh$="[192]"thena=a*-1
  145. 725 goto1700
  146. 730 me=c:gosub1685:sh$="":goto1700
  147. 735 rem lmt to gmt
  148. 740 print"[147]":gosub2180
  149. 745 print"         enter local mean time":print"          ";:gosub2060
  150. 750 printtab(15)"1[146] am":printtab(15)"2[146] pm":printtab(15)"3[146] noon"
  151. 755 printtab(15)"4[146] midnight"
  152. 760 gosub2095:poke214,10:print:fori=0to4:printsp$:next
  153. 765 r%=4:d%=13:gosub1655:print"enter the longitude of the place"
  154. 770 printtab(9)"";:gosub2125:b=h:ifh<0thenb%=1
  155. 775 c=b*4/60:ifb<0anda<abs(c)thena=a+24:c$=" (one day earlier)":a=a+c:goto785
  156. 780 a=a+c:c$=" (the same day)":ifa>=24thena=a-24:c$=" (one day later)"
  157. 785 ap$=" am":ifa=12thenap$=" noon"
  158. 790 ifa>12thena=a-12:ap$=" pm"
  159. 795 ifa=0thena=12:ap$=" mid"
  160. 800 gosub1330:gosub1355
  161. 805 print"    ";" gmt = [151]";h$+":";m$;ap$;c$:gosub1375
  162. 810 ifg$="a"then735
  163. 815 ifg$="m"then365
  164. 820 rem sidereal time for a date
  165. 825 print"[147]":gosub2145:gosub2165
  166. 830 ify<1583thengosub1855:goto820
  167. 835 gosub1420:jd=jd+.5
  168. 840 x=jd/365.2421988:y=x-int(x):z=y+.67128:a=z*24:a=a-12.03285
  169. 845 ifa>=24thena=a-24
  170. 850 gosub1330:gosub1355:printtab(7)"siderial time = "+h$+"h";m$+"m";s$+"s"
  171. 855 gosub1375
  172. 860 ifg$="m"then365
  173. 865 ifg$="a"then820
  174. 870 rem julian day # to a date
  175. 875 print"[147]":gosub2195
  176. 880 print"    enter julian day number  ";:nu=2:ln=7:gosub1930:jd=val(g$)
  177. 885 print"    date =";:z%=0
  178. 890 ifz%=0thengosub1555:e=abs(y):gosub1475:jd=jd+u:z%=1:gosub1555
  179. 895 ifjd>2488082thenwp%=2:goto1615
  180. 900 co$=",":y$=str$(abs(y)):da$=str$(da):s$="[157]":da$=da$+co$+   y$
  181. 905 print" ";mo$;da$;bc$;"  (new style)"
  182. 910 gosub1375
  183. 915 ifg$="m"then365
  184. 920 ifg$="a"then870
  185. 925 rem date to julian day #
  186. 930 print"[147]":gosub2210:printtab(13)"enter the date":print"[145][145]";:gosub2165:
  187. 935 wp%=0
  188. 940 ca$="n":gosub2225:ify>2099andbc$<>"b"thenwp%=1:goto1615
  189. 945 ify>4713andbc$="b"thenwp%=1:goto2250
  190. 950 gosub1505:print"julian day number =";jd
  191. 955 ify>2400thenwp%=1:goto1615
  192. 960 print"(for day beginning at noon)"
  193. 965 print"        for midnight subtract .5"
  194. 970 gosub1375
  195. 975 ifg$="m"then365
  196. 980 ifg$="a"then925
  197. 985 rem julian to gregorian calendar
  198. 990 print"[147]":gosub2270
  199. 995 printtab(5)"enter the julian calendar date":gosub2165:i=0:y%=y:bc$="a"
  200. 1000 ifm=1orm=2andy>=1000theny=y+1
  201. 1005 ifm=3andd<=24thenandy>=1000y=y+1
  202. 1010 ify>2400thenwp%=3:goto1615
  203. 1015 print"       date (ns) =";:lp=0:ca$="o":gosub1505:yd=365.25:
  204. 1020 x=0:z%=1:e=y%:gosub1475:jd=jd+u:gosub1555
  205. 1025 co$=",":y$=str$(abs(y)):da$=str$(da):s$="[157]":da$=da$+co$+   y$
  206. 1030 print" ";mo$;da$;bc$
  207. 1035 gosub1375
  208. 1040 ifg$="m"then365
  209. 1045 ifg$="a"then985
  210. 1050 rem a date to s.v.p. & ayanamsa
  211. 1055 print"[147]":gosub2285:printtab(14)"enter a date ":gosub2165:bc$="a"
  212. 1060 ify<221ory>2376then2300
  213. 1065 ca$="n":gosub1505:gosub1635
  214. 1070 ln=fnm((933060-6962911*t+7.5*t*t)/3600):sy=(259205536*t+2013816)/3600
  215. 1075 sy=17.23*sin(fne(ln))+1.27*sin(fne(sy))-(5025.64+1.11*t)*t
  216. 1080 sy=abs((sy-84038.27)/3600):sv=30-sy:a=sy:gosub1330
  217. 1085 ifsy>30thensy=sy=30:sv=30-sy:a=sy:gosub1330
  218. 1090 fb$=" (fagan-bradley)":print"ayanamsa = ";
  219. 1095 gosub1355:printh$+"d";m$+"m";s$+"s";+fb$
  220. 1100 print"  synetic vernal point = ";
  221. 1105 a=sv:gosub1330:gosub1355:printh$+"d";m$+"m";s$+"s"
  222. 1110 gosub1375
  223. 1115 ifg$="m"then500
  224. 1120 ifg$="a"then1050
  225. 1125 rem convert geog lat to geocentric
  226. 1130 gosub2315:printtab(4)"enter the geographical latitude":gosub2325
  227. 1135 ifh<0orh>90thengosub1640
  228. 1140 ge=(695.65*fns(2*la))-(1.17*fns(4*la)):ge=ge/3600:la=la-ge:a=la:gosub1330
  229. 1145 gosub1355:print"   geocentric latitude = ";h$+"d";m$+"m"
  230. 1150 gosub1375
  231. 1155 ifg$="m"then500
  232. 1160 ifg$="a"then1125
  233. 1165 printchr$(28);"[147]  interpolation for transiting planets ";chr$(144)
  234. 1170 print" enter the date the transit will occur[144]":r%=0:d%=0:gosub1655
  235. 1175 gosub2165
  236. 1180 ify<1583thengosub1855:goto1165
  237. 1185 gosub1420:print"";:gosub2340
  238. 1190 r%=0:d%=4:gosub1655:print"------------------------------------[144]"
  239. 1195 fori=1to8:ifval(right$(tz$(i),2))=tzthentz$=left$(tz$(i),3):i=8
  240. 1200 next
  241. 1205 print" enter the longitude of the transiting":print" planet for the ";
  242. 1210 print"date it will occur[144]":printtab(8);:gosub2325:t1=h
  243. 1215 ift1>=30thengosub1880:goto1165
  244. 1220 print"------------------------------------[144]":
  245. 1225 print" enter the degree the transiting planet":print" must be in to ";
  246. 1230 print"form an aspect[144]":printtab(8);:gosub2325:as=h
  247. 1235 ifas>=30thengosub1880:goto1165
  248. 1240 print"------------------------------------[144]":print
  249. 1245 print"[145] enter the longitude of the transiting":print" planet for the ";
  250. 1250 print"next day[144]":printtab(8);:gosub2325:t2=h
  251. 1255 print"------------------------------------[144]":
  252. 1260 ift2>=30thengosub1880:goto1165
  253. 1265 print"this transit will occur on":print
  254. 1270 ift1=t2thengosub1905:goto1165
  255. 1275 ift2<t1thent2=t2+30
  256. 1280 ifas<t1thenas=as+30
  257. 1285 ift2<asthent2=t2+30
  258. 1290 c=t2-t1:b=as-t1:t3=b*24/c:ift3<tzthent3=t3+24:jd=jd-1
  259. 1295 t3=t3-tz:gosub1435
  260. 1300 am$=" am":ift3>12thenam$=" pm":t3=t3-12:ift3<1thent3=t3+12
  261. 1305 a=t3:gosub1330:gosub1355:print"[145]";"at ";
  262. 1310 printh$;":";m$;am$;" ";tz$
  263. 1315 gosub1375
  264. 1320 ifg$="a"then1165
  265. 1325 ifg$="m"then500
  266. 1330 sg%=sgn(a):a=abs(a)
  267. 1335 h=int(a):m=int((a-int(a))*60):m1=(a-int(a))*60:s=int(((m1-m)*60)+.5)
  268. 1340 ifs>=60thens=s-60:m=m+1
  269. 1345 h=h*sg%
  270. 1350 return
  271. 1355 h$=str$(h):m$=str$(m):s$=str$(s):h$=mid$(h$,2):m$=mid$(m$,2):s$=mid$(s$,2)
  272. 1360 ifval(m$)<10thenm$="0"+m$
  273. 1365 ifval(s$)<10thens$="0"+s$
  274. 1370 return
  275. 1375 poke214,23:print:print"         a[146]nother   m[146]enu   e[146]nd[145]"
  276. 1380 getg$:ifg$=""then1380
  277. 1385 ifg$="e"then2390
  278. 1390 ifg$="a"org$="m"thenreturn
  279. 1395 goto1380
  280. 1400 sg%=sgn(val(a$)):h=val(right$(a$,13)):h=int(abs(h))
  281. 1405 m=int(val(right$(a$,5))):s=int(val(right$(a$,2))):m=m+(s/60)
  282. 1410 h=abs(h)+(m/60):h=h*sg%
  283. 1415 return
  284. 1420 x=12*(y+4800)+m-3:z=(2*(x-int(x/12)*12)+7+365*x)/12
  285. 1425 w=int(z)+d+int(x/48)-32083:ifz<=2299171then65535
  286. 1430 jd=w+int(x/4800)-int(x/1200)+38:jd=jd-.5:return
  287. 1435 x=int(jd+.5)+68569:n=int(4*x/146097):x=x-int((146097*n+3)/4)
  288. 1440 z=int(4000*(x+1)/1461001):x=x-int(1461*z/4)+31:w=int(80*x/2447)
  289. 1445 v=x-int(2447*w/80):x=int(w/11):w=w+2-12*x:u=100*(n-49)+z+x
  290. 1450 x$=str$(v):ifval(x$)<10thenx$="0"+right$(x$,1)
  291. 1455 d$="/"+right$(x$,2)+"/"+right$(str$(u),4)
  292. 1460 print"      "right$(str$(w),2)d$:return
  293. 1465 m=int(val(right$(a$,10))):d=int(val(right$(a$,7))):y=val(right$(a$,4))
  294. 1470 return
  295. 1475 fori=1to22:ifval(jd$(i))=>e+1thenx=val(jd$(i-1)):i=22
  296. 1480 next
  297. 1485 z=int(x)*100:x=x*100:u=int((x-z)+.5)
  298. 1490 ify%<>0thenify%=>0andy%<=99thenu=-2
  299. 1495 ify%<>0thenify%=>100andy%<=199thenu=-1
  300. 1500 return
  301. 1505 e=y:d1=d:m1=m
  302. 1510 ifbc$="a"thenjd=4712+y:jd=jd*365.25:h=jd
  303. 1515 ifbc$="b"thenjd=4713-y:jd=jd*365.25:h=jd
  304. 1520 ifjd-int(jd)=0thenh=jd-1:lp=1:goto1535
  305. 1525 h=int(h):m=1:d=0:y=1951:gosub1420:jc=jd:m=m1:d=d1:y=1951:gosub1420
  306. 1530 ifm<>1andm<>2thenh=h-1
  307. 1535 h=int(h):m=1:d=0:y=1952:gosub1420:jc=jd:m=m1:d=d1:y=1952:gosub1420
  308. 1540 df=jd-jc:jd=h+df
  309. 1545 ifca$="n"thengosub1475:jd=jd-u
  310. 1550 return
  311. 1555 yd=365.25:x%=0:x=0:y%=0:bc$="":lp=0:a%=0:b%=0
  312. 1560 jc=int(jd/yd):y=jc-4712:if(jc*yd)-int(jc*yd)=0thenlp=1
  313. 1565 ifz%=0thenreturn
  314. 1570 ifjd<1721424thenbc$=" bc":y=4713-jc
  315. 1575 iflp=1thenx=(jd/yd)-jc:dn=int(x*366)+1:goto1600
  316. 1580 x=(jd/yd)-jc:dn=int(x*365)+1
  317. 1585 fori=1to12:a=val(mid$(m1$(i),4,3)):b=val(mid$(m1$(i),7,3))
  318. 1590 ifdn>aanddn<=bthenmo$=mid$(m1$(i),1,3):da=dn-a:i=12
  319. 1595 next:return
  320. 1600 fori=1to12:a=val(mid$(m2$(i),4,3)):b=val(mid$(m2$(i),7,3))
  321. 1605 ifdn>aanddn<=bthenmo$=mid$(m2$(i),1,3):da=dn-a:i=12
  322. 1610 next:return
  323. 1615 print"[147]you went past the 21st century"
  324. 1620 gosub1375
  325. 1625 ifg$="m"then365
  326. 1630 ifg$="a"thenon wp%goto925,870,985
  327. 1635 t=((jd-2415020)+f/24-.5)/36525:return
  328. 1640 print"   you entered an unrealistic latutude."
  329. 1645 print"   a latitude can only be between zero":print"   and 90 degrees."
  330. 1650 gosub2420:goto1125
  331. 1655 print""
  332. 1660 printleft$(cr$,r%);left$(cd$,d%);
  333. 1665 return
  334. 1670 gosub1355:me$=sh$+h$+"d"+m$+"m"+s$+"s":poke214,3:print:printtab(14)"[144]";me$
  335. 1675 print    "":return
  336. 1680 r%=14:d%=3:gosub1655:print"              ":return
  337. 1685 print"   (p)lus    (m)inus    (t)imes"
  338. 1690 print" (d)ivided by  (c)lear  (b)ack to menu"
  339. 1695 poke214,10:print:fori=0to9:printsp$:next:return
  340. 1700 getx$:ifx$=""then1700
  341. 1705 ifx$="p"thengosub1695:sg$="[219]":gosub1830:gosub1805:sh$=""
  342. 1710 ifx$="p"andt+b<0thensh$="[192]"
  343. 1715 ifx$="p"thent=t+b:a=t
  344. 1720 ifx$="p"thengosub1695:gosub1680:gosub1330:gosub1670:goto730
  345. 1725 ifx$="m"thengosub1695:sg$="[195]":gosub1830:gosub1805:sh$=""
  346. 1730 ifx$="m"andt-b<0thensh$="[192]"
  347. 1735 ifx$="m"thent=t-b:a=t
  348. 1740 ifx$="m"thengosub1695:gosub1680:gosub1330:gosub1670:goto730
  349. 1745 ifx$="t"thengosub1695:sg$="[214]":gosub1830:gosub1845:t=t*b:a=t
  350. 1750 ifx$="t"thensh$="":ift<0thensh$="[192]"
  351. 1755 ifx$="t"thengosub1680:gosub1330:gosub1670:goto730
  352. 1760 ifx$="d"thengosub1695:sg$="[206]":gosub1830:gosub1845:t=t/b:a=t
  353. 1765 ifx$="d"thensh$="":ift<0thensh$="[192]"
  354. 1770 ifx$="d"thengosub1680:gosub1330:gosub1670:goto730
  355. 1775 ifx$="c"then680
  356. 1780 ifx$="b"then270
  357. 1785 goto1700
  358. 1790 r%=1:d%=7:gosub1655:printsp$
  359. 1795 r%=1:d%=8:gosub1655:print""sp$
  360. 1800 r%=14:d%=22:gosub1655:printsp$;:return
  361. 1805 d%=10:r%=0:gosub1655:gosub1995
  362. 1810 gosub2040:b=h
  363. 1815 d%=11:r%=8:gosub1655:printsp$
  364. 1820 d%=13:r%=8:gosub1655:printsp$
  365. 1825 d%=15:r%=8:gosub1655:printsp$:return
  366. 1830 d%=3:r%=27:gosub1655:print"[144]";sg$:return
  367. 1835 ifg$="p"thengosub1695:a=c
  368. 1840 d%=6:r%=19:gosub1655:print"  ":return
  369. 1845 poke214,10:print::print"enter a number  ";:ln=6:nu=2:gosub1930:b=val(g$)
  370. 1850 print"[145]"sp$:return
  371. 1855 print"    your date is either incorrectly"
  372. 1860 print"    entered or you are using a date"
  373. 1865 print"    earlier than 1583. use a date"
  374. 1870 print"    between 1583 and 2400.
  375. 1875 [141]2420:[142]
  376. 1880 [153]"    your degree is either incorrectly"
  377. 1885 [153]"    entered or you are using an"
  378. 1890 [153]"    unrealistic degree. use from 1 min"
  379. 1895 [153]"    to 29 degrees 59 minutes."
  380. 1900 [141]2420:[142]
  381. 1905 [153]"loadsince the planet has not moved"
  382. 1910 [153]"no interpolation is needed."
  383. 1915 [153]"press any key"
  384. 1920 [161]g$:[139]g$[178]""[167]1920
  385. 1925 [139]g$[179][177]""[167][142]
  386. 1930 [151]198,0:k$[178]""
  387. 1935 [153]"poke cmdwait";
  388. 1940 [129]i[178]1[164]30:[130]:[153]" cmd";:[129]j[178]1[164]10:[130]
  389. 1945 [161]g$:[139]g$[178]""[167]1935
  390. 1950 ls[178][195](k$)
  391. 1955 [139]g$[178][199](13)[167]g$[178]k$:[153]:[142]
  392. 1960 [139]g$[178][199](20)[175]ls[167][153]" cmdcmd";:k$[178][200](k$,ls[171]1):[137]1935
  393. 1965 [139]nu[178]0[167][139](g$[179]" "[176]g$[177]"_")[175](g$[179]"atn"[176]g$[177]"(NULL)")[167]1935
  394. 1970 [139]nu[178]1[167][139](g$[179]"a"[176]g$[177]"z")[175](g$[179]"atn"[176]g$[177]"(NULL)")[167]1935
  395. 1975 [139]nu[178]2[167][139](g$[179]"0"[176]g$[177]"9")[175](g$[179][177]".")[167]1935
  396. 1980 [139]ls[177][178]ln[167]1935
  397. 1985 [153]g$;:k$[178]k$[170]g$
  398. 1990 [137]1935
  399. 1995 [129]i[178]217[164]242:[151]i,[194](i)[176]128:[130]
  400. 2000 [153][163]10)"enter degrees ="
  401. 2005 [153][163]10)"enter minutes ="
  402. 2010 [153][163]10)"enter seconds ="
  403. 2015 [153][163]26)"ononononon";:nu[178]2:ln[178]3:[141]1930:h[178][197](g$)
  404. 2020 [153][163]26)"";:ln[178]2:[141]1930:m[178][197](g$)
  405. 2025 [153][163]26)"";:[141]1930:s[178][197](g$):[139]s[178][177]60[167]s[178]s[171]60:m[178]m[170]1
  406. 2030 [139]m[178][177]60[167]m[178]m[171]60:h[178]h[170]1
  407. 2035 [142]
  408. 2040 m[178]m[170](s[173]60):h[178]h[170](m[173]60):[142]
  409. 2045 [153]"enter month (1-12)   ";:ln[178]2:nu[178]2:[141]1930:m[178][197](g$):[142]
  410. 2050 [153]"enter day   (1-31)   ";:ln[178]2:nu[178]2:[141]1930:d[178][197](g$):[142]
  411. 2055 [153]"enter year  (0-2400) ";:ln[178]4:nu[178]2:[141]1930:y[178][197](g$):[142]
  412. 2060 ln[178]2:nu[178]2
  413. 2065 [153]"hours    minutes"
  414. 2070 [153][163]16)"on";:[141]1930:h[178][197](g$):[153][163]27)"on";:[141]1930:m[178][197](g$)
  415. 2075 :[141]2040:a[178]h:[142]
  416. 2080 [143]    r%=14:d%=12:gosub3080:print"         ":printtab(14)"          "
  417. 2085 [143] printtab(14)"           ":printtab(10)"                  "
  418. 2090 [143] printtab(10)"                  ":return
  419. 2095 [161]g$:[139]g$[178]""[167]2095
  420. 2100 [139]g$[179]"1"[176]g$[177]"4"[167]2095
  421. 2105 [139]g$[178]"3"[167]a[178]12:[142]
  422. 2110 [139]g$[178]"4"[167]a[178]24:[142]
  423. 2115 [139]g$[178]"2"[167]a[178]a[170]12:[139]a[177]24[167]a[178]a[171]12:[142]
  424. 2120 [142]
  425. 2125 ln[178]3:nu[178]2
  426. 2130 [153]"degrees     minutes"
  427. 2135 [153][163]17)"on";:[141]1930:h[178][197](g$):[153][163]29)"on";:ln[178]2
  428. 2140 [141]1930:m[178][197](g$):[141]2040:[142]
  429. 2145 [153]"loadstop this routine will return the sidereal":[153]" time for a date";
  430. 2150 [153]" between the years":[153]" 1583 and 2400. the sidereal time will"
  431. 2155 [153]" be for zero hours greenwich mean time."
  432. 2160 [153]"            enter the date":[142]
  433. 2165 [153]"       month    day    year":[153][163]13)"on";:nu[178]2:ln[178]2
  434. 2170 [141]1930:m[178][197](g$):[153][163]20)"on";:[141]1930:d[178][197](g$)
  435. 2175 [153][163]28)"on";:ln[178]4:[141]1930:y[178][197](g$):[142]
  436. 2180 [153]"loadstop    this routine will convert local ":[153]"   mean time to ";
  437. 2185 [153]" greenwich mean time.":[153]"   the western geographic longitude"
  438. 2190 [153]"   must be known and entered (1-180":[153]"   degrees).stop":[142]
  439. 2195 [153]"loadstop   when you enter a julian day number,":[153]"   this program ";
  440. 2200 [153]"returns the equivalent":[153]"   date for that number. (0-2488069)stop"
  441. 2205 [142]
  442. 2210 [153]"stop    when you enter a date, this program":[153]" returns the ";
  443. 2215 [153]"julian day number for your":[153]" date.(jan 1,4713 bc to dec 31";
  444. 2220 [153]",2099 ad)stop":[142]
  445. 2225 [153][163]11)"enter awaitd or bwaitc ? ";:nu[178]1:ln[178]1
  446. 2230 [141]1930:bc$[178]g$
  447. 2235 [139]g$[179][177]"a"[175]g$[179][177]"b"[167][153][163]11)"on                   "
  448. 2240 [139]g$[179][177]"a"[175]g$[179][177]"b"[167][153]"ononon";:[137]2225
  449. 2245 [142]
  450. 2250 [153]"load      you went earlier than 4713 bc"
  451. 2255 [141]1375
  452. 2260 [139]g$[178]"m"[167]365
  453. 2265 [139]g$[178]"a"[167][137]925
  454. 2270 [153]"stop    this routine will convert a julian":[153]" (old style) date to";
  455. 2275 [153]" its equivalent":[153]" gregorian (new style) calendar date."
  456. 2280 [153]" use dates from the years 1 to 2099 ad.":[142]
  457. 2285 [153]"stop     when you enter a date between the":[153]" years 221 and 2376,";
  458. 2290 [153]" this routine will":[153]" return the synetic vernal point and"
  459. 2295 [153]" the ayanamsa for the date you entered.":[142]
  460. 2300 [153]"   your entry date must not be earlier"
  461. 2305 [153]"   than 221 ad, or later than 2376 ad."
  462. 2310 [141]2420:[137]1050
  463. 2315 [153]"loadstop      when you enter a geographical":[153]"   latitude, this ";:
  464. 2320 [153]"routine will return":[153]"   the geocentric equivalent.":[142]
  465. 2325 [153][163]9)"degrees    minutes"
  466. 2330 [153][163]17)"on";:ln[178]2:nu[178]2:[141]1930:h[178][197](g$):[153][163]28)"on";:[141]1930
  467. 2335 m[178][197](g$):[141]2040:la[178]h:[142]
  468. 2340 [153]" select the time zone of your residence":[153][163]11)"(1) ";
  469. 2345 [153]"atlantic time":[153][163]11)"(2) eastern time":[153][163]11)"(3) ";
  470. 2350 [153]"central time":[153][163]11)"(4) mountain time":[153][163]11)"(5) ";
  471. 2355 [153]"pacific time":[153][163]11)"(6) yukon time":[153][163]11)"(7) alaska-";
  472. 2360 [153]"hawaii":[153][163]11)"(8) nome or bering"
  473. 2365 [161]g$:[139]g$[178]""[167]2365
  474. 2370 [139]g$[179]"1"[176]g$[177]"8"[167]2365
  475. 2375 tz[178][197](g$)[170]3
  476. 2380 [151]214,6:[153]:[129]i[178]1[164]13:[153]sp$:[130]
  477. 2385 [142]
  478. 2390 [151]214,23:[153]:[153]"       return to loadstar? (y/n)"
  479. 2395 [161]a$:[139]a$[179][177]"y"[175]a$[179][177]"n"[167]2395
  480. 2400 [139]a$[178]"n"[167]180
  481. 2405 [159]15,8,15,"r0:hello connect=hello connect":[132]15,er:[160]15
  482. 2410 [139]er[179][177]63[167][153]"load":[128]
  483. 2415 [147]"hello connect",8
  484. 2420 [151]214,23:[153]:[153]"        press spacewait to continueon"
  485. 2425 [161]g$:[139]g$[178]""[167]2425
  486. 2430 [142]
  487.