home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Software / STARDATE (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  5.0 KB  |  160 lines

  1. 1 A$="[174]...[176][219]":C$="":D$="":DR$="S"
  2. 2 FOR X=0 TO 23:C$=A$+C$
  3. 3 D$=RIGHT$(STR$(X),LEN(STR$(X))-1)+D$
  4. 4 IF X<10 THEN D$="0"+D$
  5. 5 D$="    "+D$
  6. 6 NEXT X
  7. 10 PRINT "[147]":POKE 53280,0:POKE 53281,0
  8. 20 REM SIDEREAL DAY
  9. 30 DIM H(12),M(12),E(12),D(12)
  10. 40 H(1)=6:M(1)=42:E(1)=0:D(1)=0
  11. 50 H(2)=8:M(2)=45:E(2)=0:D(2)=31
  12. 60 H(3)=10:M(3)=35:E(3)=0:D(3)=59
  13. 70 H(4)=12:M(4)=37:E(4)=0:D(4)=90
  14. 80 H(5)=14:M(5)=35:E(5)=0:D(5)=120
  15. 90 H(6)=16:M(6)=38:E(6)=0:D(6)=151
  16. 100 H(7)=18:M(7)=36:E(7)=0:D(7)=181
  17. 110 H(8)=20:M(8)=38:E(8)=0:D(8)=212
  18. 120 H(9)=22:M(9)=40:E(9)=0:D(9)=243
  19. 130 H(10)=0:M(10)=39:E(10)=0:D(10)=273
  20. 140 H(11)=2:M(11)=41:E(11)=0:D(11)=304
  21. 150 H(12)=4:M(12)=39:E(12)=0:D(12)=334
  22. 160 INPUT "MONTH";MOTH
  23. 170 INPUT "DAY";DAY
  24. 180 INPUT "LONGITUDE";LNG
  25. 185 INPUT "LATITUDE";LTD
  26. 190 INPUT "LOCAL HOUR";LHOUR
  27. 200 INPUT "P.M. (Y/N)";A$
  28. 201 IF LHOUR=12 AND A$="Y" THEN 230
  29. 202 IF LHOUR=12 AND A$<>"Y" THEN LHOUR=0
  30. 210 IF A$="Y" THEN LHOUR=LHOUR+12
  31. 220 IF LHOUR>23 OR LHOUR<0 THEN 190
  32. 230 LH$=STR$(INT(LHOUR)):X=LEN(LH$)-1:LH$=RIGHT$(LH$,X)
  33. 240 IF LHOUR<10 THEN LH$="0"+LH$
  34. 250 INPUT "LOCAL MINUTE";LMINUTE
  35. 260 IF LMINUTE>59 OR LMINUTE<0 THEN 250
  36. 270 LM$=STR$(INT(LMINUTE)):X=LEN(LM$)-1:LM$=RIGHT$(LM$,X)
  37. 280 IF LMINUTE<10 THEN LM$="0"+LM$
  38. 290 TI$=LH$+LM$+"00"
  39. 300 DL=0:INPUT "DAYLIGHT SAVINGS (Y/N)";A$
  40. 310 IF A$<>"Y" AND A$<>"N" THEN 300
  41. 320 IF A$="Y" THEN DL=-1
  42. 321 M=LNG-(INT(LNG/15)*15):M=4*M:IF ABS(M)>30 THEN M=M-60
  43. 322 POKE 53265,PEEK(53265) AND 239
  44. 330 PRINT "[147][154]"
  45. 340 PRINT "           [213][195][195][195][195][201]             [213][195][195][195][195][195][201]"
  46. 350 PRINT "R.A.       [194]    [194]    DEC.     [194][160][160][160][160][160][194]"
  47. 360 PRINT "           [202][195][195][195][195][203]             [202][195][195][195][195][195][203]"
  48. 361 PRINT "           [213][195][195][195][195][201]             [213][195][195][195][195][201]"
  49. 362 PRINT "SUNRISE    [194]    [194]    SUNSET   [194][160][160][160][160][194]"
  50. 363 PRINT "           [202][195][195][195][195][203]             [202][195][195][195][195][203]"
  51. 370 PRINT "           [213][195][195][195][195][195][201]            [213][195][195][195][195][195][201]"
  52. 380 PRINT "AZIMUTH    [194]     [194]   ALTITUDE [194][160][160][160][160][160][194]"
  53. 390 PRINT "           [202][195][195][195][195][195][203]            [202][195][195][195][195][195][203]"
  54. 400 PRINT "           [213][195][195][195][195][195][195][201]           [213][195][195][195][195][195][195][201]"
  55. 410 PRINT "LOCAL TIME [194]      [194]  SIDEREAL [194]      [194]"
  56. 420 PRINT "           [202][195][195][195][195][195][195][203]           [202][195][195][195][195][195][195][203]"
  57. 460 HOURS=0:MINUTES=M(MOTH)+(DAY-1)*4
  58. 470 IF MINUTES<60 THEN 500
  59. 480 HOURS=INT(MINUTES/60)
  60. 490 MINUTES=MINUTES-HOURS*60
  61. 500 MM=MINUTES
  62. 510 HOURS=HOURS+H(MOTH)
  63. 520 H2=HOURS
  64. 530 SUNRA=HOUR + 12
  65. 540 IF SUNRA>23 THEN SUNRA=SUNRA-24
  66. 550 SM=MINUTES-E(MOTH)
  67. 552 IF SM<0 THEN SUNRA=SUNRA-1:SM=60+SM
  68. 553 IF SM<60 THEN 560
  69. 554 H=INT(MINUTES/60)
  70. 555 SM=SM-H*60
  71. 556 SUNRA=SUNRA+H
  72. 560 IF SUNRA>23 THEN SUNRA=SUNRA-24
  73. 561 IF SUNRA<0 THEN SUNRA=SUNRA+24
  74. 570 SH$=STR$(INT(SUNRA)):X=LEN(SH$)-1:SH$=RIGHT$(SH$,X)
  75. 580 IF SUNRA<10 THEN SH$="0"+SH$
  76. 590 SM$=STR$(INT(SM)):X=LEN(SM$)-1:SM$=RIGHT$(SM$,X)
  77. 600 IF SM<10 THEN SM$="0"+SM$
  78. 610 POKE 211,12:POKE 214,2:SYS 58732:PRINT "";SH$+SM$;
  79. 620 DEC=(SUNRA*60+SM+E(MOTH))/4:F=1:IF DEC<180 THEN DEC=ABS(DEC-90):GOTO 630
  80. 625 DEC=DEC-270:F=-1
  81. 630 DEC=COS(DEC*(null)/180)*SIN(F*23.45*(null)/180)
  82. 631 DEC=ATN(DEC/SQR(-DEC*DEC+1))*180/(null)
  83. 635 T$=LEFT$(STR$(DEC),5):IF ASC(T$)=32 THEN T$="+"+MID$(T$,2)
  84. 640 PRINT "";T$
  85. 641 HD=-TAN(LTD*(null)/180)*TAN(DEC*(null)/180)
  86. 642 HD=-ATN(HD/SQR(-HD*HD+1))+(null)/2
  87. 643 HD=4*HD*180/(null)
  88. 645 SR=720-HD-(DL*60)+M-E(MOTH):SH=INT(SR/60):SS=SR-SH*60
  89. 646 SR$=STR$(INT(SH)):X=LEN(SR$)-1:SR$=RIGHT$(SR$,X)
  90. 647 IF SH<10 THEN SR$="0"+SR$
  91. 648 SM$=STR$(INT(SS)):X=LEN(SM$)-1:SM$=RIGHT$(SM$,X)
  92. 649 IF SS<10 THEN SM$="0"+SM$
  93. 650 PRINT TAB(12) "";SR$+SM$;
  94. 651 SR=HD-(DL*60)+M-E(MOTH):SH=INT(SR/60):SS=SR-SH*60
  95. 652 SR$=STR$(INT(SH)):X=LEN(SR$)-1:SR$=RIGHT$(SR$,X)
  96. 653 IF SH<10 THEN SR$="0"+SR$
  97. 654 SM$=STR$(INT(SS)):X=LEN(SM$)-1:SM$=RIGHT$(SM$,X)
  98. 655 IF SS<10 THEN SM$="0"+SM$
  99. 656 PRINT "";SR$+SM$
  100. 680 LHOUR=VAL(LEFT$(TI$,2))
  101. 690 LMINUTE=VAL(MID$(TI$,3,2))
  102. 700 HOURS=H2
  103. 710 MINUTES=MM+LMINUTE-M
  104. 720 IF MINUTES<0 THEN HOUR=HOUR-1:MINUTES=60+MINUTES
  105. 730 IF MINUTES<60 THEN 770
  106. 740 H=INT(MINUTES/60)
  107. 750 MINUTES=MINUTES-H*60
  108. 760 HOURS=HOURS+H
  109. 770 HOURS=HOURS+LHOUR+DL
  110. 780 IF HOURS>23 THEN HOURS=HOURS-24
  111. 790 IF HOURS<0 THEN HOURS=24+HOURS
  112. 800 MH$=STR$(INT(HOURS)):X=LEN(MH$)-1:MH$=RIGHT$(MH$,X)
  113. 810 IF HOURS<10 THEN MH$="0"+MH$
  114. 820 MM$=STR$(INT(MINUTES)):X=LEN(MM$)-1:MM$=RIGHT$(MM$,X)
  115. 830 IF MINUTES<10 THEN MM$="0"+MM$
  116. 840 MH$=MH$+MM$+RIGHT$(TI$,2)
  117. 841 TX$=RIGHT$(TI$,4):X=VAL(LEFT$(TI$,2)):IF X>12 THEN X=X-12
  118. 842 IF X=0 THEN X=12
  119. 843 IF X<10 THEN TX$="0"+RIGHT$(STR$(X),1)+TX$
  120. 844 IF X>9 THEN TX$=RIGHT$(STR$(X),2)+TX$
  121. 850 POKE 211,12:POKE 214,11:SYS 58732:PRINT "";TX$;"";MH$
  122. 868 HA=ABS((SUNRA*60+SM)-(HOURS*60+MINUTES))/4
  123. 869 IF HA>180 THEN HA=360-HA
  124. 870 SA=COS(LTD*(null)/180)*COS(DEC*(null)/180)*COS(HA*(null)/180)
  125. 880 SA=SA+SIN(LTD*(null)/180)*SIN(DEC*(null)/180)
  126. 890 SA=ATN(SA/SQR(-SA*SA+1))
  127. 900 SA=180*SA/(null)
  128. 901 C=7:IF SGN(SA)=-1 THEN C=0
  129. 902 POKE 53280,C:POKE 53281,C
  130. 930 AZ=COS(DEC*(null)/180)*SIN(HA*(null)/180)/COS(SA*(null)/180)
  131. 940 AZ=ATN(AZ/SQR(-AZ*AZ+1))
  132. 950 AZ=180*AZ/(null):IF HA>90 THEN AZ=180-AZ
  133. 960 POKE 211,12:POKE 214,8:SYS 58732:PRINT MID$(STR$(AZ),2,5);
  134. 965 T$=LEFT$(STR$(SA),5):IF ASC(T$)=32 THEN T$="+"+MID$(T$,2)
  135. 970 PRINT "";T$
  136. 980 POKE 53265,PEEK(53265) OR 16
  137. 10000 C=(SUNRA*6)+INT(SM/10+.5)+1
  138. 10055 B=(HOURS*6)+INT(MINUTES/10+.5)+1:
  139. 10070 B=145-B:IF B>20 THEN 10080
  140. 10071 T$=RIGHT$(C$,20-B)+LEFT$(C$,B+20)
  141. 10072 B$=RIGHT$(D$,20-B)+LEFT$(D$,B+20)
  142. 10073 GOTO 10090
  143. 10080 E=B+19:IF E<LEN(C$) THEN 10085
  144. 10081 T$=MID$(C$,B-19)+LEFT$(C$,E-LEN(C$)+1)
  145. 10082 B$=MID$(D$,B-19)+LEFT$(D$,E-LEN(C$)+1)
  146. 10083 GOTO 10090
  147. 10085 T$=MID$(C$,B-19,40):B$=MID$(D$,B-19,40)
  148. 10090 POKE 211,0:POKE 214,22:SYS 58732:PRINT  "";B$;T$;
  149. 10095 POKE 211,19:POKE 214,23:SYS 58732:PRINT "[154]^[157]S";
  150. 10096 IF 144-B-C>19 OR 144-B-C<-20 THEN 10100
  151. 10097 POKE 211,20+144-B-C:POKE 214,23:SYS 58732:PRINT "[209]";
  152. 10100 IF TI$<>"235959" THEN 680
  153. 10110 DAY=DAY+1
  154. 10115 IF TI$<>"000000" THEN 10115
  155. 10120 GOTO 460
  156. 50000 REM    9.856 SECONDS/HOUR
  157. 50001 REM     .1643 SECONDS/MIN
  158. 50002 REM     .0019 SECONDS/SECOND
  159. 50003 REM  3M 56.565 SECOS/DAY
  160.