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
BASIC Source File  |  2000-06-30  |  13KB  |  304 lines

  1. 10 REM COMPU-FLIGHT FLIGHT PLAN FROM 2-85 + 6-85 COMANCHE FLYER
  2. 20 REM SEE END OF PROGRAM FOR INFO (LINES 1330-)
  3. 30 PRINT CHR$(27);CHR$(69)
  4. 40 REM
  5. 41 PRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
  6. 42 PRINT
  7. 50 LINE INPUT "IS PRINTER AVAILABLE (Y/N) ? ", PR$
  8. 60 IF PR$ = "Y" OR PR$ = "y" OR PR$ = "YES" OR PR$ = "yes" THEN 1280      
  9. 70 REM                                     
  10. 80 IF PR$= "N" OR PR$= "n" OR PR$= "NO" OR PR$= "no" THEN 100         
  11. 90 REM                                      
  12. 100 PRINT CHR$(27);CHR$(69)
  13. 110 PRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
  14. 111 PRINT
  15. 120 PRINT "TO:            FROM:          DATE:            TIME OFF:"
  16. 121 PRINT
  17. 130 INPUT "USABLE FUEL ON BOARD (GALS)?      ",GT
  18. 140 INPUT "EXTRA FUEL BURN FOR TAXI, CLIMB, APPROACH (GALS)?   ",GE
  19. 150 INPUT "CRUISE FUEL BURN (GPH)?    ",GP
  20. 160 PRINT "(FUEL :";GT;"GALS USABLE LESS";GE;"EXTRA BURN,";GP;"GPH CRUISE)"
  21. 170 GT = GT-GE
  22. 180 FT = 60*GT/GP
  23. 190 REM FUEL TIME
  24. 200 REM MAIN LOOP
  25. 210 GOSUB 250: IF D=0 THEN 1050
  26. 220 GOSUB 960: IF TT=0 THEN 740
  27. 230 GOSUB 930: GOSUB 980: GOTO 200
  28. 240 IF TT=0 THEN 1270
  29. 250 REM INPUT DATA
  30. 260 LN=LN+1
  31. 270 DT=D+DT
  32. 280 TT=INT(TT+TI)
  33. 290 PRINT
  34. 300 PRINT "LEG"; LN; ":"
  35. 310 INPUT "DISTANCE (0 TO END) ?", D
  36. 320 IF D=0 THEN 1270
  37. 330 GOSUB 990
  38. 340 IF AQ THEN 350 ELSE 360
  39. 350 D=D/1.15
  40. 360 INPUT "COURSE ?", CO
  41. 370 IF CO>360 THEN 390
  42. 380 IF CO<1 THEN 390 ELSE 410
  43. 390 PRINT "WRONG !!" CHR$(7)
  44. 400 GOTO 360
  45. 410 LINE INPUT "TRUE OR MAGNETIC (T/M) ?",CS$
  46. 420 IF CS$= "T" OR CS$= "t" OR CS$= "TRUE" OR CS$= "true" THEN 430 ELSE 450
  47. 430 TC=CO
  48. 440 GOTO 460
  49. 450 IF CS$<> "M" AND CS$<> "m" THEN 410
  50. 460 IF MD THEN 470 ELSE 490
  51. 470 LINE INPUT "SAME VARIATION (Y/N) ?", A$
  52. 480 IF A$= "Y" OR A$= "y" OR A$= "YES" OR A$= "yes" THEN 500
  53. 490 INPUT "MAGNETIC VARIATION (+ OR -) ?", MD
  54. 500 IF CS$= "M" OR CS$="m" OR CS$= "MAG" OR CS$= "mag" THEN 510 ELSE 520
  55. 510 TC=CO-MD
  56. 520 IF TAS THEN 530 ELSE 550
  57. 530 LINE INPUT "SAME AIRSPEED (Y/N) ?", ZA$
  58. 540 IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 590
  59. 550 INPUT "TRUE AIRSPEED ?", TAS
  60. 560 GOSUB 990
  61. 570 IF AQ THEN 580 ELSE 590
  62. 580 TAS = TAS/1.15
  63. 590 IF WS THEN 600 ELSE 620
  64. 600 LINE INPUT "SAME WINDS (Y/N) ?",ZA$
  65. 610 IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 650 ELSE 620
  66. 620 INPUT "WIND DIRECTION ?    ",WD
  67. 630 IF WD<0 OR WD>360 THEN 620
  68. 640 INPUT "WIND SPEED  (NM) ?    ",WS
  69. 650 WA=(WD+180) /57.29577900000003#
  70. 660 COURSE=TC/57.29577900000003#
  71. 670 WR=WA-COURSE
  72. 680 WX=SIN(WR)*WS
  73. 690 WY=COS(WR)*WS
  74. 700 TX=-WX/TAS
  75. 710 TH=(ATN(TX/SQR(TX*TX+1))*57.29577900000003#)+TC
  76. 720 GS=(ABS(COS((TH-TC)/57.29577900000003#))*TAS)+WY
  77. 730 TI=60*D/GS
  78. 740 REM 
  79. 750 REM 
  80. 760 PRINT "----------------------------------------------------------------"
  81. 770 PRINT "LEG";LN 
  82. 780 PRINT "DISTANCE (NM)", INT (D)
  83. 790 PRINT "TRUE COURSE", TC 
  84. 800 PRINT "MAG VAR", MD 
  85. 810 PRINT "TAS",INT (TAS) 
  86. 820 PRINT "WIND DIR", WD 
  87. 830 PRINT "WIND SPEED ",WS 
  88. 840 IF TH+MD >360 THEN 850 ELSE 870
  89. 850 TH=TH-360
  90. 860 GOTO 890
  91. 870 IF TH+MD <0 THEN 880 ELSE 890
  92. 880 TH=TH+360
  93. 890 PRINT "TRUE HEADING ",INT (TH) 
  94. 900 PRINT "MAG HEADING", INT (TH+MD)
  95. 910 PRINT "GROUND SPEED", INT (GS) 
  96. 920 PRINT "ETE (MINUTES)", INT (TI) 
  97. 930 REM OUTPUT DATA
  98. 940 GOTO 250
  99. 950 RETURN
  100. 960 REM        
  101. 970 RETURN
  102. 980 RETURN
  103. 990 REM NAUTICAL OR STATUTE
  104. 1000 AQ = 0
  105. 1010 LINE INPUT "STATUTE OR NAUTICAL (S/N) ? ", A$
  106. 1020 IF A$ = "S" OR A$ = "s" THEN 1030 ELSE 1040
  107. 1030 AQ = 1
  108. 1040 RETURN
  109. 1050 GOSUB 960
  110. 1060 PRINT "________________________________________________________ "
  111. 1070 PRINT "TOTAL DISTANCE = "; INT (DT); "NAUTICAL MILES"
  112. 1080 PRINT "________________________________________________________ "
  113. 1090 PRINT "TOTAL TIME = "; TT; "MIN  (";INT(TT/60);"HR";TT MOD 60;"MIN)"
  114. 1100 PRINT "________________________________________________________ "
  115. 1110 PRINT "TOTAL FUEL BURN = ";INT(GP*TT/60)+INT(GE); "GALLONS"
  116. 1120 PRINT "________________________________________________________ "
  117. 1130 IF (FT-TT >0) THEN 1140 ELSE 1180
  118. 1140 PRINT "FUEL RESERVE = "; INT((FT-TT)/60); "HR";INT(FT-TT-60*INT((FT-TT)/60)); "MIN"
  119. 1150 PRINT "==============================================================="
  120. 1160 PRINT "REMEMBER TO CLOSE YOUR FLIGHT PLAN !!!!!!!!!!!!! "
  121. 1170 PRINT "==============================================================="
  122. 1180 IF (FT-TT<45) THEN 1190 ELSE 1220
  123. 1190 PRINT "==============================================================="
  124. 1200 PRINT "WARNING ! LESS THAN IFR RESERVES !! "
  125. 1210 PRINT "==============================================================="
  126. 1220 IF (FT-TT<0) THEN 1230 ELSE 1260
  127. 1230 PRINT "==============================================================="
  128. 1240 PRINT "NOT ENOUGH FUEL FOR FLIGHT BY "; INT(TT-FT); "MINUTES"
  129. 1250 PRINT "==============================================================="
  130. 1260 PRINT : END
  131. 1270 GOSUB 1050: PRINT :END
  132. 1280 REM PRINTER ROUTINE                   
  133. 1290 REM
  134. 1300 PRINT
  135. 1310 PRINT "Please align paper and make printer ready, then press <RETURN>";:LINE INPUT X$
  136. 1311  PRINT CHR$(27); CHR$(69)
  137. 1318 LPRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
  138. 1319 PRINT TAB(24) "COMUFLT AIRNAV PROGRAM"
  139. 1320  LPRINT
  140. 1321  LPRINT  "TO:            FROM:          DATE:            TIME OFF:"
  141. 1322  LPRINT                 
  142. 1323 PRINT
  143. 1330  INPUT "USABLE FUEL ON BOARD (GALS)?      ",GT
  144. 1340  INPUT "EXTRA FUEL BURN FOR TAXI, CLIMB, APPROACH (GALS)?   ",GE
  145. 1350  INPUT "CRUISE FUEL BURN (GPH)?    ",GP   
  146. 1360  LPRINT "(FUEL :";GT;"GALS USABLE LESS";GE;"EXTRA BURN,";GP;"GPH CRUISE)"
  147. 1361  PRINT "(FUEL :";GT;"GALS USABLE LESS";GE;"EXTRA BURN,";GP;"GPH CRUISE)"
  148. 1370  GT = GT-GE
  149. 1380  FT = 60*GT/GP
  150. 1390  REM FUEL TIME
  151. 1400  REM MAIN LOOP
  152. 1410  GOSUB 1450: IF D=0 THEN 2250
  153. 1420  GOSUB 2160: IF TT=0 THEN 1940
  154. 1430  GOSUB 2130: GOSUB 2180: GOTO 1400
  155. 1440  IF TT=0 THEN 2470
  156. 1450  REM INPUT DATA
  157. 1460  LN=LN+1
  158. 1470  DT=D+DT
  159. 1480  TT=INT(TT+TI)
  160. 1490  PRINT
  161. 1500  PRINT "LEG"; LN; ":"
  162. 1510  INPUT "DISTANCE (0 TO END) ?", D
  163. 1520  IF D=0 THEN 2470
  164. 1530  GOSUB 2190
  165. 1540  IF AQ THEN 1550 ELSE 1560
  166. 1550  D=D/1.15
  167. 1560  INPUT "COURSE ?", CO
  168. 1570  IF CO>360 THEN 1590
  169. 1580  IF CO<1 THEN 1590 ELSE 1610
  170. 1590  PRINT "WRONG !!" CHR$(7)
  171. 1600  GOTO 1560
  172. 1610  LINE INPUT "TRUE OR MAGNETIC (T/M) ?",CS$
  173. 1620  IF CS$= "T" OR CS$= "t" OR CS$= "TRUE" OR CS$= "true" THEN 1630 ELSE 1650
  174. 1630  TC=CO
  175. 1640  GOTO 1660
  176. 1650  IF CS$<> "M" AND CS$<> "m" THEN 1610
  177. 1660  IF MD THEN 1670 ELSE 1690
  178. 1670  LINE INPUT "SAME VARIATION (Y/N) ?", A$
  179. 1680  IF A$= "Y" OR A$= "y" OR A$= "YES" OR A$= "yes" THEN 1700
  180. 1690  INPUT "MAGNETIC VARIATION (+ OR -) ?", MD
  181. 1700  IF CS$= "M" OR CS$="m" OR CS$= "MAG" OR CS$= "mag" THEN 1710 ELSE 1720
  182. 1710  TC=CO-MD
  183. 1720  IF TAS THEN 1730 ELSE 1750
  184. 1730  LINE INPUT "SAME AIRSPEED (Y/N) ?", ZA$
  185. 1740  IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 1790
  186. 1750  INPUT "TRUE AIRSPEED ?", TAS
  187. 1760  GOSUB 2190
  188. 1770  IF AQ THEN 1780 ELSE 1790
  189. 1780  TAS = TAS/1.15
  190. 1790  IF WS THEN 1800 ELSE 1820
  191. 1800  LINE INPUT "SAME WINDS (Y/N) ?",ZA$
  192. 1810  IF ZA$= "Y" OR ZA$= "y" OR ZA$= "YES" OR ZA$= "yes" THEN 1850 ELSE 1820
  193. 1820  INPUT "WIND DIRECTION ?    ",WD
  194. 1830  IF WD<0 OR WD>360 THEN 1820
  195. 1840  INPUT "WIND SPEED  (NM) ?    ",WS
  196. 1850  WA=(WD+180) /57.29577900000003#
  197. 1860  COURSE=TC/57.29577900000003#
  198. 1870  WR=WA-COURSE
  199. 1880  WX=SIN(WR)*WS
  200. 1890  WY=COS(WR)*WS
  201. 1900  TX=-WX/TAS
  202. 1910  TH=(ATN(TX/SQR(TX*TX+1))*57.29577900000003#)+TC
  203. 1920  GS=(ABS(COS((TH-TC)/57.29577900000003#))*TAS)+WY
  204. 1930  TI=60*D/GS
  205. 1940  REM PROGRAM PRINTER
  206. 1950  LPRINT 
  207. 1960  LPRINT "----------------------------------------------------------------"
  208. 1961  PRINT "----------------------------------------------------------------"
  209. 1970  LPRINT "LEG";LN,,"TO _______________________________________"
  210. 1971  PRINT "LEG";LN
  211. 1980  LPRINT "DISTANCE (NM)", INT (D),"TO (VOR) (NDB) __________ FREQ ________"
  212. 1981  PRINT "DISTANCE (NM)", INT (D)                                           
  213. 1990  LPRINT "TRUE COURSE", TC, "FREQ:   ATIS ___________________"
  214. 1991  PRINT "TRUE COURSE", TC
  215. 2000  LPRINT "MAG VAR", MD, "    DEP_________________"
  216. 2001  PRINT "MAG VAR", MD                                     
  217. 2010  LPRINT "TAS",INT (TAS), "    APC _________________"
  218. 2011  PRINT "TAS",INT (TAS)                                     
  219. 2020  LPRINT "WIND DIR", WD, "    TOWER _______________"
  220. 2021  PRINT "WIND DIR", WD                                     
  221. 2030  LPRINT "WIND SPEED ",WS, "    GROUND _________________"
  222. 2031  PRINT "WIND SPEED ",WS                                      
  223. 2040  IF TH+MD >360 THEN 2050 ELSE 2070
  224. 2050  TH=TH-360
  225. 2060  GOTO 2090
  226. 2070  IF TH+MD <0 THEN 2080 ELSE 2090
  227. 2080  TH=TH+360
  228. 2090  LPRINT "TRUE HEADING ",INT (TH), "    UNICOM ___________________"
  229. 2091  PRINT "TRUE HEADING ",INT (TH)                                     
  230. 2100  LPRINT "MAG HEADING", INT (TH+MD), "TPA ____________ MSL ___________ AGL"
  231. 2101  PRINT "MAG HEADING", INT (TH+MD)                                         
  232. 2110  LPRINT "GROUND SPEED", INT (GS), "TIME OF ARRIVAL ____________________ "
  233. 2111  PRINT "GROUND SPEED", INT (GS)                                           
  234. 2120  LPRINT "ETE (MINUTES)", INT (TI), "TIME OFF __________________________ "
  235. 2121  PRINT "ETE (MINUTES)", INT (TI)                                        
  236. 2130  REM OUTPUT DATA
  237. 2140  GOTO 1450
  238. 2150  RETURN
  239. 2160  REM PRINTER
  240. 2170  RETURN
  241. 2180  RETURN
  242. 2190  REM NAUTICAL OR STATUTE
  243. 2200  AQ = 0
  244. 2210  LINE INPUT "STATUTE OR NAUTICAL (S/N) ? ", A$
  245. 2220 IF A$ = "S" OR A$ = "s" THEN 2230 ELSE 2240
  246. 2230 AQ = 1
  247. 2240 RETURN
  248. 2250 GOSUB 2160
  249. 2260 LPRINT "________________________________________________________ "
  250. 2261 PRINT "________________________________________________________ "
  251. 2270 LPRINT "TOTAL DISTANCE = "; INT (DT); "NAUTICAL MILES"
  252. 2271 PRINT "TOTAL DISTANCE = "; INT (DT); "NAUTICAL MILES"
  253. 2280 LPRINT "________________________________________________________ "
  254. 2281 PRINT "________________________________________________________ "
  255. 2290 LPRINT "TOTAL TIME = "; TT; "MIN  (";INT(TT/60);"HR";TT MOD 60;"MIN)"
  256. 2291 PRINT "TOTAL TIME = "; TT; "MIN  (";INT(TT/60);"HR";TT MOD 60;"MIN)"
  257. 2300 LPRINT "________________________________________________________ "
  258. 2301 PRINT "________________________________________________________ "
  259. 2310 LPRINT "TOTAL FUEL BURN = ";INT(GP*TT/60)+INT(GE); "GALLONS"
  260. 2311 PRINT "TOTAL FUEL BURN = ";INT(GP*TT/60)+INT(GE); "GALLONS"
  261. 2320 LPRINT "________________________________________________________ "
  262. 2321 PRINT "________________________________________________________ "
  263. 2330 IF (FT-TT >0) THEN 2340 ELSE 2380
  264. 2340 LPRINT "FUEL RESERVE = "; INT((FT-TT)/60); "HR";INT(FT-TT-60*INT((FT-TT)/60)); "MIN"
  265. 2341 PRINT "FUEL RESERVE = "; INT((FT-TT)/60); "HR";INT(FT-TT-60*INT((FT-TT)/60)); "MIN"
  266. 2350 LPRINT "==============================================================="
  267. 2351 PRINT "==============================================================="
  268. 2360 LPRINT "REMEMBER TO CLOSE YOUR FLIGHT PLAN !!!!!!!!!!!!! "
  269. 2361 PRINT "REMEMBER TO CLOSE YOUR FLIGHT PLAN !!!!!!!!!!!!! "
  270. 2370 LPRINT "==============================================================="
  271. 2371 PRINT "==============================================================="
  272. 2380 IF (FT-TT<45) THEN 2390 ELSE 2420
  273. 2390 LPRINT "==============================================================="
  274. 2391 PRINT "==============================================================="
  275. 2400 LPRINT "WARNING ! LESS THAN IFR RESERVES !! "
  276. 2401 PRINT "WARNING ! LESS THAN IFR RESERVES !! "
  277. 2410 LPRINT "==============================================================="
  278. 2411 PRINT "==============================================================="
  279. 2420 IF (FT-TT<0) THEN 2430 ELSE 2460
  280. 2430 LPRINT "==============================================================="
  281. 2431 PRINT "==============================================================="
  282. 2440 LPRINT "NOT ENOUGH FUEL FOR FLIGHT BY "; INT(TT-FT); "MINUTES"
  283. 2441 PRINT "NOT ENOUGH FUEL FOR FLIGHT BY "; INT(TT-FT); "MINUTES"
  284. 2450 LPRINT "==============================================================="
  285. 2451 PRINT "==============================================================="
  286. 2460 LPRINT CHR$(12); CHR$(192):END 'RESET PRINTER
  287. 2470 GOSUB 2250 : LPRINT :END
  288. 2480 REM ERROR ROUTINE
  289. 2490 REM                                           
  290. 2500 REM      
  291. 2510 ON ERROR GOTO 0
  292. 2520 REM COPYRIGHT 1985 BY ANGELO A. SGROI ICS#5619
  293. 2530 REM FOR PROBLEMS OR QUESTIONS CALL (314) 921-1200.
  294. 2540 REM THIS PROGRAM WAS DESIGNED FOR A TI-99/4A HOME COMPUTER
  295. 2550 REM YOUR PRINTER MAY REQUIRE DIFFERENT PROGRAMMING.
  296. 2560 REM SEND SUGGESTED MODIFICATIONS TO
  297. 2570 REM 110 ALBERT DRIVE
  298. 2580 REM FLORISSANT, MISSOURI 63031
  299. 2590 REM THIS PROGRAM WAS MODIFIED FOR AN IBM/PC
  300. 2600 REM BY BILL GODDARD, ICS #1069, (813) 635-3381.
  301. 2610 REM    815 N. LAKE REEDY BLVD., FROSTPROOF, FL 33843
  302. 2620 REM THIS PROGRAM WAS MODIFIED FOR AN CP/M-80 SYSTEM
  303. 2630 REM USING AN H/Z-19 TERMINAL ON 3/12/87.
  304. FROSTPROOF,