1 REM This program was adapted from TAKI.BAS, Sky and Telescope magazine. 2 REM For conversion of ALT-AZ coordinates to Equitorial and the reverse. 3 REM Allows for easy use of altitude-azimuth setting circles just site 4 REM two stars, then input the ALT-AZ coordinate and time in decimal Min. 5 REM The starting time is abitrary, once the program is intialized with a 6 REM two star input you just put in the Equitorial or ALT-AZ coordinates 7 REM and a sub routine for elapsed time, not installed but is located in 8 REM lines 1125 to 1160. This sub could print out E.T. or automatically 9 REM input time with some minor additions. 10 REM Well good star hunting, Dr. Max S. Mirot 11 REM Please consult Sky and Telescope February 1989, pages 194-196 12 REM for further information (explains "Z" axis fine error adjustment). 100 CLEAR 500:DIM S$(17),B(17),D(17),Q(3,3),V(3,3),R(3,3),X(3,3),Y(3,3) 105 REM STAR DATA 110 FOR J=1 TO 17 115 READ S$(J),B(J),D(J) 120 NEXT J 125 GOSUB 1125 130 REM CONSTANTS 135 K=1.002738:G=57.2958:Z1=0:Z2=0:Z3=0 140 REM RESERVED FOR MOUNT ERROR 145 FOR I=1 TO 2 150 CLS 155 FOR O=1 TO 17 160 QW=10*O-10:PRINT@QW,S$(O):NEXT O 165 PRINT:PRINT"NAME OF BASIC STAR";I;:LINEINPUT"";S$(0) 170 N=0 175 N=N+1:IF S$(X)=S$(N) GOTO 185 180 IF N=17 GOTO 150 ELSE 175 185 CLS:PRINT"TIME MIN "; 190 GOSUB 1150 195 PRINT USING"ET:####.##";ET;:INPUT"";T 200 INPUT"TELESCOPE DIRECTION";F 205 INPUT"TELESCOPE ELEVATION";H 210 D(0)=D(N)/G:B(0)=(B(N)-K*T*0.25)/G 215 X(1,I)=COS(D(0))*COS(B(0)) 220 X(2,I)=COS(D(0))*SIN(B(0)) 225 X(3,I)=SIN(D(0)) 230 F=F/G:H=(H+Z3)/G:GOSUB 760 235 Y(1,I)=Y(1,0):Y(2,I)=Y(2,0):Y(3,I)=Y(3,0) 240 NEXT I 245 REM 250 X(1,3)=X(2,1)*X(3,2)-X(3,1)*X(2,2) 255 X(2,3)=X(3,1)*X(1,2)-X(1,1)*X(3,2) 260 X(3,3)=X(1,1)*X(2,2)-X(2,1)*X(1,2) 265 A=SQR(X(1,3)^2+X(2,3)^2+X(3,3)^2) 270 FOR I=1 TO 3:X(I,3)=X(I,3)/A:NEXT I 275 REM 280 Y(1,3)=Y(2,1)*Y(3,2)-Y(3,1)*Y(2,2) 285 Y(2,3)=Y(3,1)*Y(1,2)-Y(1,1)*Y(3,2) 290 Y(3,3)=Y(1,1)*Y(2,2)-Y(2,1)*Y(1,2) 295 A=SQR(Y(1,3)^2+Y(2,3)^2+Y(3,3)^2) 300 FOR I=1 TO 3:Y(I,3)=Y(I,3)/A:NEXT I 305 REM 310 REM TRANSFORM MATRIX 315 FOR I=1 TO 3:FOR J=1 TO 3 320 V(I,J)=X(I,J) 325 NEXT J:NEXT I 330 REM 335 GOSUB 660:E=W 340 FOR M=1 TO 3:FOR I=1 TO 3:FOR J=1 TO 3 345 V(I,J)=X(I,J) 350 NEXT J:NEXT I 355 FOR N=1 TO 3 360 V(1,M)=0:V(2,M)=0:V(3,M)=0:V(N,M)=1 365 GOSUB 660:Q(M,N)=W/E 370 NEXT N:NEXT M 375 REM 380 FOR I=1 TO 3:FOR J=1 TO 3:R(I,J)=0:NEXT J:NEXT I 385 FOR I=1 TO 3:FOR J=1 TO 3:FOR L=1 TO 3 390 R(I,J)=R(I,J)+Y(I,L)*Q(L,J) 395 NEXT L:NEXT J:NEXT I 400 REM 405 FOR M=1 TO 3 410 FOR I=1 TO 3:FOR J=1 TO 3 415 V(I,J)=R(I,J) 420 NEXT J:NEXT I 425 GOSUB 660:E=W 430 FOR N=1 TO 3 435 V(1,M)=0:V(2,M)=0:V(3,M)=0:V(N,M)=1 440 GOSUB 660:Q(M,N)=W/E 445 NEXT N:NEXT M 450 REM 455 REM TRANSFORMATION 460 CLS 461 PRINT@87,"1) EQUATORIAL --> TELESCOPE" 462 PRINT@127,"2) EQUATORIAL <-- TELESCOPE" 463 PRINT@167,"3) RETURN TO FIRST MENU" 464 PRINT@207,"4) QUIT" 465 E$=INKEY$:IF E$="" GOTO 465 466 IF E$="1" GOTO 480 467 IF E$="2" GOTO 575 468 IF E$="3" GOTO 100 469 IF E$="4" THEN MENU ELSE 465 470 REM 475 REM CONVERT EQUATORIAL --> TELESCOPE 480 CLS 485 INPUT"RIGHT ASCENSION HR,MN";RH,RM:GOSUB 1000:B(0)=RF 490 INPUT"DECLINATION HR,MN";DH,DM:GOSUB 1000:D(0)=DF 495 INPUT"TIME (MIN)";T 500 D(0)=D(0)/G:B(0)=(B(0)-K*T*0.25)/G 505 X(1,1)=COS(D(0))*COS(B(0)) 510 X(2,1)=COS(D(0))*SIN(B(0)) 515 X(3,1)=SIN(D(0)) 520 Y(1,1)=0:Y(2,1)=0:Y(3,1)=0 525 FOR I=1 TO 3:FOR J=1 TO 3 530 Y(I,1)=Y(I,1)+R(I,J)*X(J,1) 535 NEXT J:NEXT I 540 GOSUB 695:F=F/G:H=H/G:GOSUB 800 545 GOSUB 695:H=H-Z3:PRINT 550 PRINT USING"TELESCOPE DIRECTION (DEG):####.##";F 555 PRINT USING"TELESCOPE ELEVATION (DEG):####.##";H 560 PRINT:PRINT"HIT ENTER FOR NEXT OBJECT"; 565 K$=INKEY$:IF K$="" GOTO 565 ELSE IF K$=CHR$(13) GOTO 460 ELSE MENU 570 REM 575 REM CONVERT TELESCOPE --> EQUATORIAL 580 CLS 585 INPUT"TELESCOPE DIRECTION (DEG) ";F 590 INPUT"TELESCOPE ELEVATION (DEG) ";H 595 INPUT"TIME (MIN) ";T 600 F=F/G:H=(H+Z3)/G:GOSUB 760 605 X(1,1)=Y(1,0):X(2,1)=Y(2,0):X(3,1)=Y(3,0) 610 Y(1,1)=0:Y(2,1)=0:Y(3,1)=0 615 FOR I=1 TO 3:FOR J=1 TO 3 620 Y(I,1)=Y(I,1)+Q(I,J)*X(J,1) 625 NEXT J:NEXT I 630 GOSUB 695:F=F+K*T*0.25:F=F-INT(F/360)*360:PRINT 635 PRINT USING"RIGHT ASCENSION:####.##";F 640 PRINT USING"DECLINATION: ####.##";H 645 PRINT:PRINT"HIT ENTER FOR NEXT OBJECT"; 650 K$=INKEY$:IF K$="" GOTO 650 ELSE IF K$=CHR$(13) GOTO 460 ELSE MENU 655 REM 660 REM DETERMINANT SUBROUTINE 665 W=V(1,1)*V(2,2)*V(3,3)+V(1,2)*V(2,3)*V(3,1) 670 W=W+V(1,3)*V(3,2)*V(2,1) 675 W=W-V(1,3)*V(2,2)*V(3,1)-V(1,1)*V(3,2)*V(2,3) 680 W=W-V(1,2)*V(2,1)*V(3,3) 685 RETURN 690 REM 695 REM ANGLE SUBROUTINE 700 C=SQR(Y(1,1)*Y(1,1)+Y(2,1)*Y(2,1)) 705 IF C=0 AND Y(3,1)>0 THEN H=90 710 IF C=0 AND Y(3,1)<0 THEN H=-90 715 IF C<>0 THEN H=ATN(Y(3,1)/C)*G 720 IF C=0 THEN F=1000 725 IF C<>0 AND Y(1,1)=0 AND Y(2,1)>0 THEN F=90 730 IF C<>0 AND Y(1,1)=0 AND Y(2,1)<0 THEN F=270 735 IF Y(1,1)>0 THEN F=ATN(Y(2,1)/Y(1,1))*G 740 IF Y(1,1)<0 THEN F=ATN(Y(2,1)/Y(1,1))*G+180 745 F=F-INT(F/360)*360 750 RETURN 755 REM 760 REM SUBROUTINE 765 Y(1,0)=COS(F)*COS(H)-SIN(F)*(Z2/G) 770 Y(1,0)=Y(1,0)+SIN(F)*COS(H)*(Z1/G) 775 Y(2,0)=SIN(F)*COS(H)+COS(F)*(Z2/G) 780 Y(2,0)=Y(2,0)-COS(F)*SIN(H)*(Z1/G) 785 Y(3,0)=SIN(H) 790 RETURN 795 REM 800 REM SUBROUTINE 805 Y(1,1)=COS(F)*COS(H)+SIN(F)*(Z2/G) 810 Y(1,1)=Y(1,1)-SIN(F)*COS(H)*(Z1/G) 815 Y(2,1)=SIN(F)*COS(H)-COS(F)*(Z2/G) 820 Y(2,1)=Y(2,1)+COS(F)*SIN(H)*(Z1/G) 825 Y(3,1)=SIN(H) 830 RETURN 835 REM 840 REM STAR LIST 845 DATA "A UMI", 37.960, 89.264 850 DATA "A TAU", 68.980, 16.509 855 DATA "B ORI", 78.634, -8.202 860 DATA "A AUR", 79.172, 45.998 865 DATA "A ORI", 88.793, 7.407 870 DATA "A CMA", 101.287, -16.716 875 DATA "A GEM", 113.650, 31.888 880 DATA "A CMI", 114.825, 5.225 885 DATA "B GEM", 116.329, 28.026 890 DATA "A LEO", 152.093, 11.967 895 DATA "A VIR", 201.298, -11.161 900 DATA "A BOO", 213.915, 19.183 905 DATA "A SCO", 247.352, -26.432 910 DATA "A LYR", 279.234, 38.784 915 DATA "A AQL", 297.695, 8.868 920 DATA "A CYG", 310.358, 45.280 925 DATA "A PSA", 344.413, -29.622 1000 REM CONVERT DECIMAL TO H,M 1010 D1=ABS (DH)+(DM/60):DF=SGN(DH)*D1:D(0)=DF 1020 R1=RH*15:R2=(RM/60)*15:RF=R1 + R2:B(0)=RF 1030 RETURN 1125 REM SUB ROUTINE FOR MIN E.T. 1130 'HR=VAL(LEFT$(TIME$,2)):MN=VAL(MID$(TIME$,4,2)):SC=VAL(RIGHT$(TIME$,2)) 1135 'ST=HR*60+MN+SC:RETURN 1150 'HX=VAL(LEFT$(TIME$,2)):MX=VAL(MID$(TIME$,4,2)):SX=VAL(RIGHT$(TIME$,2)) 1155 'NT=HX/1440+MX+SX/60 1160 'IF NT<=ST THEN NT=NT+1440 1190 RETURN