home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
EDUCATIN
/
COMUFLT.LBR
/
COMUFLT.BZS
/
COMUFLT.BAS
Wrap
BASIC Source File
|
2000-06-30
|
13KB
|
304 lines
10 REM COMPU-FLIGHT FLIGHT PLAN FROM 2-85 + 6-85 COMANCHE FLYER
20 REM SEE END OF PROGRAM FOR INFO (LINES 1330-)
30 PRINT CHR$(27);CHR$(69)
40 REM
41 PRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
42 PRINT
50 LINE INPUT "IS PRINTER AVAILABLE (Y/N) ? ", PR$
60 IF PR$ = "Y" OR PR$ = "y" OR PR$ = "YES" OR PR$ = "yes" THEN 1280
70 REM
80 IF PR$= "N" OR PR$= "n" OR PR$= "NO" OR PR$= "no" THEN 100
90 REM
100 PRINT CHR$(27);CHR$(69)
110 PRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
111 PRINT
120 PRINT "TO: FROM: DATE: TIME OFF:"
121 PRINT
130 INPUT "USABLE FUEL ON BOARD (GALS)? ",GT
140 INPUT "EXTRA FUEL BURN FOR TAXI, CLIMB, APPROACH (GALS)? ",GE
150 INPUT "CRUISE FUEL BURN (GPH)? ",GP
160 PRINT "(FUEL :";GT;"GALS USABLE LESS";GE;"EXTRA BURN,";GP;"GPH CRUISE)"
170 GT = GT-GE
180 FT = 60*GT/GP
190 REM FUEL TIME
200 REM MAIN LOOP
210 GOSUB 250: IF D=0 THEN 1050
220 GOSUB 960: IF TT=0 THEN 740
230 GOSUB 930: GOSUB 980: GOTO 200
240 IF TT=0 THEN 1270
250 REM INPUT DATA
260 LN=LN+1
270 DT=D+DT
280 TT=INT(TT+TI)
290 PRINT
300 PRINT "LEG"; LN; ":"
310 INPUT "DISTANCE (0 TO END) ?", D
320 IF D=0 THEN 1270
330 GOSUB 990
340 IF AQ THEN 350 ELSE 360
350 D=D/1.15
360 INPUT "COURSE ?", CO
370 IF CO>360 THEN 390
380 IF CO<1 THEN 390 ELSE 410
390 PRINT "WRONG !!" CHR$(7)
400 GOTO 360
410 LINE INPUT "TRUE OR MAGNETIC (T/M) ?",CS$
420 IF CS$= "T" OR CS$= "t" OR CS$= "TRUE" OR CS$= "true" THEN 430 ELSE 450
430 TC=CO
440 GOTO 460
450 IF CS$<> "M" AND CS$<> "m" THEN 410
460 IF MD THEN 470 ELSE 490
470 LINE INPUT "SAME VARIATION (Y/N) ?", A$
480 IF A$= "Y" OR A$= "y" OR A$= "YES" OR A$= "yes" THEN 500
490 INPUT "MAGNETIC VARIATION (+ OR -) ?", MD
500 IF CS$= "M" OR CS$="m" OR CS$= "MAG" OR CS$= "mag" THEN 510 ELSE 520
510 TC=CO-MD
520 IF TAS THEN 530 ELSE 550
530 LINE INPUT "SAME AIRSPEED (Y/N) ?", ZA$
540 IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 590
550 INPUT "TRUE AIRSPEED ?", TAS
560 GOSUB 990
570 IF AQ THEN 580 ELSE 590
580 TAS = TAS/1.15
590 IF WS THEN 600 ELSE 620
600 LINE INPUT "SAME WINDS (Y/N) ?",ZA$
610 IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 650 ELSE 620
620 INPUT "WIND DIRECTION ? ",WD
630 IF WD<0 OR WD>360 THEN 620
640 INPUT "WIND SPEED (NM) ? ",WS
650 WA=(WD+180) /57.29577900000003#
660 COURSE=TC/57.29577900000003#
670 WR=WA-COURSE
680 WX=SIN(WR)*WS
690 WY=COS(WR)*WS
700 TX=-WX/TAS
710 TH=(ATN(TX/SQR(TX*TX+1))*57.29577900000003#)+TC
720 GS=(ABS(COS((TH-TC)/57.29577900000003#))*TAS)+WY
730 TI=60*D/GS
740 REM
750 REM
760 PRINT "----------------------------------------------------------------"
770 PRINT "LEG";LN
780 PRINT "DISTANCE (NM)", INT (D)
790 PRINT "TRUE COURSE", TC
800 PRINT "MAG VAR", MD
810 PRINT "TAS",INT (TAS)
820 PRINT "WIND DIR", WD
830 PRINT "WIND SPEED ",WS
840 IF TH+MD >360 THEN 850 ELSE 870
850 TH=TH-360
860 GOTO 890
870 IF TH+MD <0 THEN 880 ELSE 890
880 TH=TH+360
890 PRINT "TRUE HEADING ",INT (TH)
900 PRINT "MAG HEADING", INT (TH+MD)
910 PRINT "GROUND SPEED", INT (GS)
920 PRINT "ETE (MINUTES)", INT (TI)
930 REM OUTPUT DATA
940 GOTO 250
950 RETURN
960 REM
970 RETURN
980 RETURN
990 REM NAUTICAL OR STATUTE
1000 AQ = 0
1010 LINE INPUT "STATUTE OR NAUTICAL (S/N) ? ", A$
1020 IF A$ = "S" OR A$ = "s" THEN 1030 ELSE 1040
1030 AQ = 1
1040 RETURN
1050 GOSUB 960
1060 PRINT "________________________________________________________ "
1070 PRINT "TOTAL DISTANCE = "; INT (DT); "NAUTICAL MILES"
1080 PRINT "________________________________________________________ "
1090 PRINT "TOTAL TIME = "; TT; "MIN (";INT(TT/60);"HR";TT MOD 60;"MIN)"
1100 PRINT "________________________________________________________ "
1110 PRINT "TOTAL FUEL BURN = ";INT(GP*TT/60)+INT(GE); "GALLONS"
1120 PRINT "________________________________________________________ "
1130 IF (FT-TT >0) THEN 1140 ELSE 1180
1140 PRINT "FUEL RESERVE = "; INT((FT-TT)/60); "HR";INT(FT-TT-60*INT((FT-TT)/60)); "MIN"
1150 PRINT "==============================================================="
1160 PRINT "REMEMBER TO CLOSE YOUR FLIGHT PLAN !!!!!!!!!!!!! "
1170 PRINT "==============================================================="
1180 IF (FT-TT<45) THEN 1190 ELSE 1220
1190 PRINT "==============================================================="
1200 PRINT "WARNING ! LESS THAN IFR RESERVES !! "
1210 PRINT "==============================================================="
1220 IF (FT-TT<0) THEN 1230 ELSE 1260
1230 PRINT "==============================================================="
1240 PRINT "NOT ENOUGH FUEL FOR FLIGHT BY "; INT(TT-FT); "MINUTES"
1250 PRINT "==============================================================="
1260 PRINT : END
1270 GOSUB 1050: PRINT :END
1280 REM PRINTER ROUTINE
1290 REM
1300 PRINT
1310 PRINT "Please align paper and make printer ready, then press <RETURN>";:LINE INPUT X$
1311 PRINT CHR$(27); CHR$(69)
1318 LPRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
1319 PRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
1320 LPRINT
1321 LPRINT "TO: FROM: DATE: TIME OFF:"
1322 LPRINT
1323 PRINT
1330 INPUT "USABLE FUEL ON BOARD (GALS)? ",GT
1340 INPUT "EXTRA FUEL BURN FOR TAXI, CLIMB, APPROACH (GALS)? ",GE
1350 INPUT "CRUISE FUEL BURN (GPH)? ",GP
1360 LPRINT "(FUEL :";GT;"GALS USABLE LESS";GE;"EXTRA BURN,";GP;"GPH CRUISE)"
1361 PRINT "(FUEL :";GT;"GALS USABLE LESS";GE;"EXTRA BURN,";GP;"GPH CRUISE)"
1370 GT = GT-GE
1380 FT = 60*GT/GP
1390 REM FUEL TIME
1400 REM MAIN LOOP
1410 GOSUB 1450: IF D=0 THEN 2250
1420 GOSUB 2160: IF TT=0 THEN 1940
1430 GOSUB 2130: GOSUB 2180: GOTO 1400
1440 IF TT=0 THEN 2470
1450 REM INPUT DATA
1460 LN=LN+1
1470 DT=D+DT
1480 TT=INT(TT+TI)
1490 PRINT
1500 PRINT "LEG"; LN; ":"
1510 INPUT "DISTANCE (0 TO END) ?", D
1520 IF D=0 THEN 2470
1530 GOSUB 2190
1540 IF AQ THEN 1550 ELSE 1560
1550 D=D/1.15
1560 INPUT "COURSE ?", CO
1570 IF CO>360 THEN 1590
1580 IF CO<1 THEN 1590 ELSE 1610
1590 PRINT "WRONG !!" CHR$(7)
1600 GOTO 1560
1610 LINE INPUT "TRUE OR MAGNETIC (T/M) ?",CS$
1620 IF CS$= "T" OR CS$= "t" OR CS$= "TRUE" OR CS$= "true" THEN 1630 ELSE 1650
1630 TC=CO
1640 GOTO 1660
1650 IF CS$<> "M" AND CS$<> "m" THEN 1610
1660 IF MD THEN 1670 ELSE 1690
1670 LINE INPUT "SAME VARIATION (Y/N) ?", A$
1680 IF A$= "Y" OR A$= "y" OR A$= "YES" OR A$= "yes" THEN 1700
1690 INPUT "MAGNETIC VARIATION (+ OR -) ?", MD
1700 IF CS$= "M" OR CS$="m" OR CS$= "MAG" OR CS$= "mag" THEN 1710 ELSE 1720
1710 TC=CO-MD
1720 IF TAS THEN 1730 ELSE 1750
1730 LINE INPUT "SAME AIRSPEED (Y/N) ?", ZA$
1740 IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 1790
1750 INPUT "TRUE AIRSPEED ?", TAS
1760 GOSUB 2190
1770 IF AQ THEN 1780 ELSE 1790
1780 TAS = TAS/1.15
1790 IF WS THEN 1800 ELSE 1820
1800 LINE INPUT "SAME WINDS (Y/N) ?",ZA$
1810 IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 1850 ELSE 1820
1820 INPUT "WIND DIRECTION ? ",WD
1830 IF WD<0 OR WD>360 THEN 1820
1840 INPUT "WIND SPEED (NM) ? ",WS
1850 WA=(WD+180) /57.29577900000003#
1860 COURSE=TC/57.29577900000003#
1870 WR=WA-COURSE
1880 WX=SIN(WR)*WS
1890 WY=COS(WR)*WS
1900 TX=-WX/TAS
1910 TH=(ATN(TX/SQR(TX*TX+1))*57.29577900000003#)+TC
1920 GS=(ABS(COS((TH-TC)/57.29577900000003#))*TAS)+WY
1930 TI=60*D/GS
1940 REM PROGRAM PRINTER
1950 LPRINT
1960 LPRINT "----------------------------------------------------------------"
1961 PRINT "----------------------------------------------------------------"
1970 LPRINT "LEG";LN,,"TO _______________________________________"
1971 PRINT "LEG";LN
1980 LPRINT "DISTANCE (NM)", INT (D),"TO (VOR) (NDB) __________ FREQ ________"
1981 PRINT "DISTANCE (NM)", INT (D)
1990 LPRINT "TRUE COURSE", TC, "FREQ: ATIS ___________________"
1991 PRINT "TRUE COURSE", TC
2000 LPRINT "MAG VAR", MD, " DEP_________________"
2001 PRINT "MAG VAR", MD
2010 LPRINT "TAS",INT (TAS), " APC _________________"
2011 PRINT "TAS",INT (TAS)
2020 LPRINT "WIND DIR", WD, " TOWER _______________"
2021 PRINT "WIND DIR", WD
2030 LPRINT "WIND SPEED ",WS, " GROUND _________________"
2031 PRINT "WIND SPEED ",WS
2040 IF TH+MD >360 THEN 2050 ELSE 2070
2050 TH=TH-360
2060 GOTO 2090
2070 IF TH+MD <0 THEN 2080 ELSE 2090
2080 TH=TH+360
2090 LPRINT "TRUE HEADING ",INT (TH), " UNICOM ___________________"
2091 PRINT "TRUE HEADING ",INT (TH)
2100 LPRINT "MAG HEADING", INT (TH+MD), "TPA ____________ MSL ___________ AGL"
2101 PRINT "MAG HEADING", INT (TH+MD)
2110 LPRINT "GROUND SPEED", INT (GS), "TIME OF ARRIVAL ____________________ "
2111 PRINT "GROUND SPEED", INT (GS)
2120 LPRINT "ETE (MINUTES)", INT (TI), "TIME OFF __________________________ "
2121 PRINT "ETE (MINUTES)", INT (TI)
2130 REM OUTPUT DATA
2140 GOTO 1450
2150 RETURN
2160 REM PRINTER
2170 RETURN
2180 RETURN
2190 REM NAUTICAL OR STATUTE
2200 AQ = 0
2210 LINE INPUT "STATUTE OR NAUTICAL (S/N) ? ", A$
2220 IF A$ = "S" OR A$ = "s" THEN 2230 ELSE 2240
2230 AQ = 1
2240 RETURN
2250 GOSUB 2160
2260 LPRINT "________________________________________________________ "
2261 PRINT "________________________________________________________ "
2270 LPRINT "TOTAL DISTANCE = "; INT (DT); "NAUTICAL MILES"
2271 PRINT "TOTAL DISTANCE = "; INT (DT); "NAUTICAL MILES"
2280 LPRINT "________________________________________________________ "
2281 PRINT "________________________________________________________ "
2290 LPRINT "TOTAL TIME = "; TT; "MIN (";INT(TT/60);"HR";TT MOD 60;"MIN)"
2291 PRINT "TOTAL TIME = "; TT; "MIN (";INT(TT/60);"HR";TT MOD 60;"MIN)"
2300 LPRINT "________________________________________________________ "
2301 PRINT "________________________________________________________ "
2310 LPRINT "TOTAL FUEL BURN = ";INT(GP*TT/60)+INT(GE); "GALLONS"
2311 PRINT "TOTAL FUEL BURN = ";INT(GP*TT/60)+INT(GE); "GALLONS"
2320 LPRINT "________________________________________________________ "
2321 PRINT "________________________________________________________ "
2330 IF (FT-TT >0) THEN 2340 ELSE 2380
2340 LPRINT "FUEL RESERVE = "; INT((FT-TT)/60); "HR";INT(FT-TT-60*INT((FT-TT)/60)); "MIN"
2341 PRINT "FUEL RESERVE = "; INT((FT-TT)/60); "HR";INT(FT-TT-60*INT((FT-TT)/60)); "MIN"
2350 LPRINT "==============================================================="
2351 PRINT "==============================================================="
2360 LPRINT "REMEMBER TO CLOSE YOUR FLIGHT PLAN !!!!!!!!!!!!! "
2361 PRINT "REMEMBER TO CLOSE YOUR FLIGHT PLAN !!!!!!!!!!!!! "
2370 LPRINT "==============================================================="
2371 PRINT "==============================================================="
2380 IF (FT-TT<45) THEN 2390 ELSE 2420
2390 LPRINT "==============================================================="
2391 PRINT "==============================================================="
2400 LPRINT "WARNING ! LESS THAN IFR RESERVES !! "
2401 PRINT "WARNING ! LESS THAN IFR RESERVES !! "
2410 LPRINT "==============================================================="
2411 PRINT "==============================================================="
2420 IF (FT-TT<0) THEN 2430 ELSE 2460
2430 LPRINT "==============================================================="
2431 PRINT "==============================================================="
2440 LPRINT "NOT ENOUGH FUEL FOR FLIGHT BY "; INT(TT-FT); "MINUTES"
2441 PRINT "NOT ENOUGH FUEL FOR FLIGHT BY "; INT(TT-FT); "MINUTES"
2450 LPRINT "==============================================================="
2451 PRINT "==============================================================="
2460 LPRINT CHR$(12); CHR$(192):END 'RESET PRINTER
2470 GOSUB 2250 : LPRINT :END
2480 REM ERROR ROUTINE
2490 REM
2500 REM
2510 ON ERROR GOTO 0
2520 REM COPYRIGHT 1985 BY ANGELO A. SGROI ICS#5619
2530 REM FOR PROBLEMS OR QUESTIONS CALL (314) 921-1200.
2540 REM THIS PROGRAM WAS DESIGNED FOR A TI-99/4A HOME COMPUTER
2550 REM YOUR PRINTER MAY REQUIRE DIFFERENT PROGRAMMING.
2560 REM SEND SUGGESTED MODIFICATIONS TO
2570 REM 110 ALBERT DRIVE
2580 REM FLORISSANT, MISSOURI 63031
2590 REM THIS PROGRAM WAS MODIFIED FOR AN IBM/PC
2600 REM BY BILL GODDARD, ICS #1069, (813) 635-3381.
2610 REM 815 N. LAKE REEDY BLVD., FROSTPROOF, FL 33843
2620 REM THIS PROGRAM WAS MODIFIED FOR AN CP/M-80 SYSTEM
2630 REM USING AN H/Z-19 TERMINAL ON 3/12/87.
FROSTPROOF,