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