home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / misc3 / navigate.lzh / AIRCRAFT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  3.5 KB  |  95 lines

  1. 10  ' AIRCRAFT.BAS   NAVPROGseven Aircraft Data Entry  22-Jan-82   Rev 01/22/86
  2. 20  ' Version F.03.02 for the IBM PC
  3. 30  ' (c) Copyright 1982 Alan Bose
  4. 40  ' 1224 Allison Lane
  5. 50  ' Schaumburg, IL  60194
  6. 60  '
  7. 70  ' CP/M  modifications (c) 1982 by Glen Hassebrock, Jr.
  8. 75  ' HP-150 modifications (c) 1984 by Alan Bose
  9. 80  '
  10. 90  CLEAR:ON ERROR GOTO 670:WIDTH 80:DEFINT I-J
  11. 95  GOSUB 8000           'install clr-eos
  12. 100  BL$=CHR$(7):E$=CHR$(27)
  13. 102  PROGDISK$="A:":DATADISK$="B:"
  14. 104  OPEN "I",1,"NAVDISCS.DAT"
  15. 106  INPUT #1,PROGDISK$,DATADISK$:CLOSE
  16. 130  HD$="A I R C R A F T   P E R F O R M A N C E"
  17. 140  CLS:PRINT TAB(40-(LEN(HD$)/2))HD$
  18. 150  LOCATE 3,1:PRINT "Aircraft identification?  <MENU>  N";
  19. 160  LINE INPUT AI$:IF AI$="" THEN 630
  20. 170  F$="N"+AI$
  21. 180  OPEN "I",2,DATADISK$+F$:PRINT"Found aircraft performance data for "F$" ";
  22. 190  LINE INPUT #2,AT$:PRINT AT$:INPUT#2,RU:INPUT#2,T9:INPUT#2,G9:INPUT#2,D9
  23. 200  INPUT #2,NA:INPUT#2,NS:INPUT#2,NF:INPUT#2,NB:INPUT#2,PH:CLOSE:GOTO 220
  24. 210  LOCATE 4,1:GOSUB 9000:PRINT "No data on file for "F$
  25. 220  LOCATE 24,1:PRINT "D- DELETE     E- Exit";:
  26. 225  LOCATE 7,21:PRINT AT$
  27. 230  LOCATE 7,1:PRINT"Enter aircraft type  ";STRING$(30,32);:LOCATE ,POS(0)-30
  28. 240  LINE INPUT X$:IF X$="E" OR X$="e" THEN 140
  29. 250  IF X$="D" OR X$="d" THEN KILL DATADISK$+F$:GOTO 140
  30. 270  IF X$<>"" THEN AT$=X$
  31. 280  PRINT "Fuel used for start-up, taxi & run-up?  ";
  32. 290  IF RU>0 THEN PRINT TAB(51)"<"RU">  ";
  33. 300  PRINT TAB(61);STRING$(4,32);" gallons";:LOCATE ,POS(0)-12:LINE INPUT RU$
  34. 310  IF RU$<>"" THEN RU=VAL(RU$)
  35. 320  PRINT"Enter normal cruising altitude  ";:IF NA>0 THEN PRINT TAB(50)"<"NA">  ";
  36. 330  PRINT TAB(60);STRING$(5,32);" ft";:LOCATE ,POS(0)-8:LINE INPUT X$:IF X$<>"" THEN NA=VAL(X$)
  37. 340  IF NA=0 THEN PRINT BL$:GOTO 320
  38. 350  PRINT"Enter time required to climb to"NA"feet  ";
  39. 360  IF T9>0 THEN PRINT TAB(50)"<"T9">  ";
  40. 370  PRINT TAB(60);STRING$(3,32);" minutes";:LOCATE ,POS(0)-11:LINE INPUT X$:IF X$<>"" THEN T9=VAL(X$)
  41. 380  IF T9=0 THEN PRINT BL$:GOTO 350
  42. 390  PRINT"Enter fuel required to climb to"NA"feet  ";
  43. 400  IF G9>0 THEN PRINT TAB(50)"<"G9">  ";
  44. 410  PRINT TAB(60);STRING$(3,32);" gallons";:LOCATE ,POS(0)-11:LINE INPUT X$:IF X$<>"" THEN G9=VAL(X$)
  45. 420  IF G9=0 THEN PRINT BL$:GOTO 390
  46. 430  PRINT"Enter distance required to climb to"NA"feet  ";
  47. 440  IF D9>0 THEN PRINT TAB(50)"<"D9">  ";
  48. 450  PRINT TAB(60);STRING$(3,32);" nm";:LOCATE ,POS(0)-6:LINE INPUT X$:IF X$<>"" THEN D9=VAL(X$)
  49. 460  IF D9=0 THEN PRINT BL$:GOTO 430
  50. 470  PRINT"Enter normal cruise true airspeed at"NA"feet  ";
  51. 480  IF NS>0 THEN PRINT TAB(50)"<"NS">  ";
  52. 490  PRINT TAB(60);STRING$(3,32);" kts";:LOCATE ,POS(0)-7:LINE INPUT X$:IF X$<>"" THEN NS=VAL(X$)
  53. 500  IF NS<40 THEN PRINT BL$:GOTO 470
  54. 510  PRINT"Enter normal fuel consumption at"NA"feet  ";
  55. 520  IF NF>0 THEN PRINT TAB(50)"<"NF">  ";
  56. 530  PRINT TAB(60);STRING$(4,32);" gal/hr";:LOCATE ,POS(0)-11:LINE INPUT X$:IF X$<>"" THEN NF=VAL(X$)
  57. 540  IF NF<6 THEN PRINT BL$:GOTO 510
  58. 550  PRINT"Enter normal fuel on board  ";:IF NB>0 THEN PRINT TAB(50)"<"NB">  ";
  59. 560  PRINT TAB(60);STRING$(4,32);" gal";:LOCATE ,POS(0)-8:LINE INPUT X$:IF X$<>"" THEN NB=VAL(X$)
  60. 570  IF NB<10 THEN PRINT BL$:GOTO 550
  61. 580  PRINT"Enter cost per hour  ";:IF PH>0 THEN PRINT TAB(50)"<"PH">  ";
  62. 590  PRINT TAB(59)"$";STRING$(4,32);:LOCATE ,POS(0)-4:LINE INPUT X$:IF X$<>"" THEN PH=VAL(X$)
  63. 600  IF PH<15 THEN PRINT BL$:GOTO 580
  64. 610  OPEN "O",2,DATADISK$+F$:PRINT#2,AT$:PRINT#2,RU:PRINT#2,T9:PRINT#2,G9
  65. 620  PRINT #2,D9:PRINT#2,NA:PRINT#2,NS:PRINT#2,NF:PRINT#2,NB:PRINT#2,PH
  66. 630  CLOSE
  67. 640  OPEN"I",1,DATADISK$+"FLIGHT.SEQ":CLOSE
  68. 650  CLS:PRINT "Standby one...":RUN PROGDISK$+"NAVPROG7"
  69. 660  RUN PROGDISK$+"NAVMENU"
  70. 670  'error trap
  71. 680  IF ERR=53 AND ERL=180 THEN RESUME 210
  72. 690  IF ERR=53 AND ERL=640 THEN RESUME 660
  73. 700  IF ERR=53 AND ERL=250 THEN RESUME 140
  74. 702  IF ERR=53 AND ERL=104 THEN CLOSE:RESUME 130
  75. 710  ON ERROR GOTO 0
  76. 8000  '     install erase-to-end-of-screen  subroutine
  77. 8010  DEF SEG=&H1700
  78. 8020  FOR ADDR% = 0 TO 19
  79. 8030  READ CODE%
  80. 8040  POKE ADDR%,CODE%
  81. 8050  NEXT
  82. 8060  CLREOS% = 0
  83. 8070  RETURN
  84. 8080  DATA &h55,&h8b,&hec,&h8b,&h76,&h06,&h8b,&h0c
  85. 8090  DATA &hb8,&h20,&h0a,&hb7,&h00
  86. 8100  DATA &hcd,&h10
  87. 8110  DATA &h5d,&hca,&h02,&h00,&h00
  88. 9000  '    erase to end-of-screen
  89. 9010  CLINE = CSRLIN                            'remember cursor position
  90. 9020  CROW  = POS(0)
  91. 9030  NUMCHR% = 1919 - ((CLINE - 1)*80 +CROW)   'num chars to write
  92. 9040  CALL CLREOS%(NUMCHR%)                     'erase to end of screen
  93. 9050  LOCATE CLINE,CROW,1                       'restore cursor
  94. 9060  RETURN
  95.