home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-10-05 | 4.1 KB | 111 lines |
- 10 ' KEY OFF
- 20 COLOR 14,9,4:CLS
- 30 REM |----------------------|
- 40 REM PROGRAM WRITTEN BY--------------------| R. THWING Sr. K4EDE |
- 50 REM | P.O. BOX 40 |
- 60 REM FOR IBM PC COMPATIBILES | COLUMBUS, NC |
- 70 REM | 28722 |
- 80 REM | (704) 894-3202 |
- 90 REM |----------------------|
- 100 REM
- 110 REM DELETE ALL COLOR STATEMENTS FOR MONOCHROME MONITOR
- 120 REM
- 130 REM PROGRAM IN PUBLIC DOMAIN
- 140 REM
- 150 REM ORIGINAL FORMULA FROM HP-67 CALCULATOR MANUAL PAGE 97
- 160 REM
- 170 REM <<<<<<<<<<<<<<<<<<<< PROGRAM BEGINS >>>>>>>>>>>>>>>>>>>>>>>>>>>
- 180 LOCATE 2,29:PRINT"GREAT CIRCLE DISTANCES"
- 190 LOCATE 4,25:PRINT"CALCULATES DIRECT AIR DISTANCES"
- 200 LOCATE 6,27:PRINT"BETWEEN TWO LAT/LON POINTS"
- 210 PRINT STRING$(79,"~")
- 220 LOCATE 10,20:PRINT"Provisions included for entering the LAT & LON"
- 230 LOCATE 12,20:PRINT"points in either degrees and minutes & seconds"
- 240 LOCATE 14,25:PRINT"or in degrees & decimals of degrees"
- 250 LOCATE 16,36:PRINT"N O T E"
- 260 LOCATE 18,20:PRINT"South latitudes & East longitudes are NEGATIVE"
- 270 LOCATE 22,35:COLOR 30:PRINT"[ENTER]";
- 280 GOSUB 760
- 290 IF ZZ$= CHR$(13) THEN 300 ELSE 270
- 300 COLOR 15,9,3:KEY OFF:CLS
- 310 PRINT:PRINT" DO YOU WANT TO "
- 320 PRINT " USE TWO LAT/LON PLACES...........Q"
- 330 PRINT " USE TEST LAT/LON DATA............T"
- 335 PRINT " ONLY CONVERT TO DECIMAL DEGREES..C"
- 340 S$=INKEY$:IF S$="" THEN 340
- 350 IF S$="T" OR S$="t" THEN GOTO 470
- 360 IF S$="Q" OR S$="q" THEN GOTO 370
- 365 IF S$="C" OR S$="c" THEN GOTO 900
- 366 GOTO 310
- 370 PRINT:PRINT"IS YOUR LAT/LON DATA IN:"
- 380 PRINT" DEGREES/MINUTES/SECONDS........M":'TO CONVERT TO DECIMALS
- 390 PRINT" DEGREES & DECIMAL DEGREES......D"
- 400 DAT$= INKEY$:IF DAT$= "" THEN 400
- 405 IF DAT$= "M" OR DAT$= "m" THEN GOTO 890
- 406 IF DAT$= "D" OR DAT$= "d" THEN GOTO 420
- 410 GOTO 310
- 420 PRINT:INPUT"START LATITUDE ";LAT1:'IN DECIMAL DEGREES ETC.
- 430 INPUT"START LONGITUDE ";LON1:PRINT
- 440 INPUT"DESTINATION LATITUDE ";LAT2
- 450 INPUT"DESTINATION LONGITUDE ";LON2
- 460 GOTO 510
- 470 LAT1=37.05:'TEST LAT/LON TO GIVE ANSWER OF 1315.2 NM
- 480 LON1=12.3
- 490 LAT2=15.92
- 500 LON2=5.72
- 510 R=0.0174533:'CONSTANT TO CONVERT DEGREES TO RADIANS (NEEDED BY BASIC)
- 520 LAS=LAT1*R:LOS=LON1*R:LAD=LAT2*R:LOD=LON2*R:'CONVERT LATS & LONS TO RADIANS
- 530 X=(SIN(LAS)*SIN(LAD)+COS(LAS)*COS(LAD)*COS(LOD-LOS)):'PER HP-67 BOOK
- 540 'BOOK NOW CALLS FOR COS^-1 WHICH IS NOT RECOGNIZED BY BASIC
- 550 'COS^-1=ARCCOS(X)
- 560 Z=-ATN(X/SQR(-X*X+1))+1.5708:'USING FORMULA FOR ARCCOS
- 570 M=Z/R:'CONVERT BACK TO DEGREES
- 580 'NOW CONVERT DEGREES TO MILES BY MULTIPLYING BY 60 (MILES PER DEGREE)
- 590 CLS
- 600 N=M*60:PRINT:PRINT TAB(20);"THE FOLLOWING ARE GREAT CIRCLE DISTANCES "
- 610 PRINT TAB(20);"FROM ";LAT1;"&";LON1;" TO ";LAT2;"&";LON2:PRINT
- 620 COLOR 14:PRINT TAB(25);USING"#####.#";N;:COLOR 15:PRINT " NAUTICAL MILES"
- 630 SM=N*1.1508:'CONVERT TO STATUE MILES
- 640 COLOR 11:PRINT TAB(25);USING"#####.#";SM;:COLOR 15:PRINT" STATUE MILES"
- 650 KM=N*1.852:'CONVERT TO KILOMETERS
- 660 COLOR 10:PRINT TAB(25);USING"#####.#";KM;:COLOR 15:PRINT" KILOMETERS"
- 670 LOCATE 18,35:PRINT"WHAT NOW?"
- 680 LOCATE 20,35:PRINT"DO ANOTHER?.............1"
- 690 LOCATE 21,35:PRINT"RETURN TO BASIC?........2"
- 700 LOCATE 22,35:PRINT"RETURN TO MS-DOS........3"
- 705 LOCATE 23,35:PRINT"RETURN TO MAIN MENU.....4";
- 710 INPUT YC
- 720 IF YC= 1 THEN RUN 300
- 730 IF YC= 2 THEN COLOR 15,0,0:CLS:NEW
- 740 IF YC= 3 THEN COLOR 15,0,0:GOTO 800
- 745 IF YC= 4 THEN COLOR 15,0,0:RUN"MAINMENU"
- 750 GOTO 670
- 760 ZZ$=INKEY$:IF ZZ$= "" THEN 760
- 770 RETURN
- 780 AZ=INP(&H379):IF AZ <> 217 THEN LOCATE 20,32:COLOR 20,15:PRINT"PRINTER NOT READY":GOTO 780:REM CHECK PRINTER STATUS
- 790 LOCATE 20,32:COLOR 7,0:PRINT" ":RETURN:REM REMOVES PRINTER STATUS
- 800 COLOR 31,4:CLS:FOR I=1 TO 12:PRINT:NEXT I:PRINT TAB(33)"ARE YOU SURE Y/N"
- 810 PLAY"DC":PRINT
- 820 PRINT TAB(26)"A (Y)es ACTION CANCELS BASIC!"
- 830 X$= INKEY$:IF X$= "" THEN 830
- 840 COLOR 15,0,4 :CLS
- 850 IF X$= "Y" OR X$="y" THEN 880
- 860 IF X$= "N" OR X$="n" THEN 300
- 870 GOTO 800
- 880 COLOR 15,0,0:CLS:KEY ON:SYSTEM
- 890 CLS
- 900 INPUT"ENTER START LAT AS DEGREES,MINUTES,SECONDS ";LDS,LMS,LSS
- 910 LMS=LMS/60:LSS=LSS/3600:LAT1=LDS+LMS+LSS
- 915 PRINT"LAT1= ";LAT1
- 920 INPUT"ENTER START LON AS DEGREES,MINUTES,SECONDS ";ODS,OMS,OSS
- 930 OMS=OMS/60:OSS=OSS/3600:LON1=ODS+OMS+OSS
- 935 PRINT"LON1= ";LON1
- 940 INPUT "ENTER DEST LAT AS DEGREES,MINUTES,SECONDS ";LDS,LMS,LSS
- 950 LMS=LMS/60:LSS=LSS/3600:LAT2=LDS+LMS+LSS
- 955 PRINT"LAT2= ";LAT2
- 960 INPUT "ENTER DEST LON AS DEGREES,MINUTES,SECONDS ";ODS,OMS,OSS
- 970 OMS=OMS/60:OSS=OSS/3600:LON2=ODS+OMS+OSS
- 975 PRINT"LON2= ";LON2
- 976 IF S$= "C" OR S$= "c" THEN STOP
- 980 GOTO 510
-