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
/
SIMTEL
/
CPMUG
/
CPMUG033.ARK
/
CAESAR.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-04-29
|
22KB
|
534 lines
REM CAESAR A SAR BRIEFING-DEBRIEFING PROGRAM
REM WRITTEN IN BASIC-E FOR CPM VERSION 1.33 REV 0
REM OPTIMUM EQUIPMENT- VIDEO TERMINAL, PRINTER WITH FORMFEED
REM PROGRAM REQUIRES 32K RAM CP/M SYSTEM WITH SINGLE DISC DRIVE
REM SPECIAL EQUIPMENT-COMPTEK REAL TIME CLOCK ADDRESSED TO PORTS A9-AF
REM PRESENTLY LIMITED TO 50 SORTIES
REM
REM WRITTEN BY CAPTAIN R. A. GREGOIRE CAP PAWG GROUP 30
REM
REM
REM LEGEND:
REM M$(X,Y) = TEMP RAM STORAGE FOR MISSION SCENNARIO
REM FILE FL$(160)=BLOCKED DISC FILE HOLDING FLIGHT LOG
REM FILE MQ$=UNBLOCKED DISC FILE HOLDING MISSION SCENARIO QUERIES
REM FILE MD$=UNBLOCKED DISC FILE HOLDING MISSION SCENARIO
REM FILE BD$(500)=BLOCKED DISC FILE,1 SORTIE BRIEFING PER RECORD
REM FILE BQ$=UNBLOCKED DISC FILE HOLDING BRIEFING QUERIES(IE"SARQB.DAT")
REM FILE DQ$=UNBLOCKED DISC FILE HOLDING DEBRIEFING QUERIES
REM FILE DD$(500)=BLOCKED DISC FILE,1 SORTIE DEBRIEFING PER RECORD
REM Q$(X) = TEMP RAM STORAGE FOR CURRENT SORTIE QUERIES
REM D$(X) = TEMP RAM STORAGE FOR CURRENT SORTIE DATUM
REM BR(X) = IDENTIFIES SORTIES THAT HAVE BEEN BRIEFED
REM DR(X) = IDENTIFIES SORTIES THAT HAVE BEEN DEBRIEFED
REM T(1) = ETD = BRIEFING TIME + 15 MINUTES
REM TM = MILITARY TIME EG. 1430 HRS
REM TD = DECIMAL TIME EG. 14.5 HRS
REM C = COMMAND #
REM F = FLITE LOG FLAG (1=ALL SORTIES;0=ACTIVE SORTIES ONLY)
REM S = SORTIE #
REM B1= # OF LAST SORTIE BRIEFED
REM W,X,Y,Z,A$,B$,C$ = DUMMY VARIABLE
REM CHR$(25) OR CONTROL 'Y' = CLEARS VIDEO TERMINAL SCREEN
REM CHR$(12) OR CONTROL 'K' = FORMFEED FOR PRINTER
REM
REM ---------------------------------------------------------------------
REM SEQUENCE OF DATA FOR FL#(160)
REM RECORD 1---MISSION #,BASE LOC,DATE
REM RECORD 2UP-SORTIE #,$A/C#,$PILOT,$A/C TYPE,$FUEL,ETD,ATD,ETE,ETA,ATA
REM ,TOT,$AREA NB:ETD,ATD,ETA,ATA=MIL.HRS ETE,TOT=DEC.HRS
REM
REM SEQUENCE OF DATA FOR BD$(500) NOTE:ALL DATA IS STRING VARIABLES
REM SORTIE #,PILOT,HOME,PHONE,COPILOT,OBS 1,OBS 2,OBS 3,A/C #,A/C TYPE,
REM COLOR,FUEL,CRUISE,A/C BASE,EQUIP,CALLSIGN,ASSIGNED AREA,PATTERN,
REM ALT OF SEARCH,,ENROUTE ALT,DEPT AIRPORT,DEST AIRPORT,ALTERNATE,
REM ETE,ETD,ETA,TIME OF BRIEFING
REM
REM SEQUENCE OF DATA FOR DD$(500) NOTE:ALL DATA IS STRING VARIABLES
REM SORTIE#,PILOT,COPILOT,OBS1,OBS2,OBS3,A/C#,AREA ASSIGNED,ACTUAL AREA,
REM VISIBIL,TERRAIN,ALTITUDE,TIME OF DAY,AIRSPEED,SEARCH AREA TIME,
REM SPACING,% AREA COVERED,VISUAL?,ELT?,WEATHER,FALSE SIGHTINGS,
REM LEADS,POD,ATD,ATA,TOTAL SORTIE TIME,TIME OF DEBRIEFING
REM
REM ---------------------------------------------------------------------
REM
REM HOUSEKEEPING ROUTINES
REM
PRINT CHR$(25);"THIS IS CAESAR A SAR BRIEFING-DEBRIEFING PROGRAM"
INPUT "WHAT IS THIS MISSION # [7AN]";A$:DD$=A$+".DD":DQ$="CAESAR.DQ"
BD$=A$+".BD":BQ$="CAESAR.BQ":MQ$="CAESAR.MQ":MD$=A$+".MD":FL$=A$+".FL"
DIM Q$(26),D$(26),M$(6,10),BR(50),DR(50),T(7)
BR(0)=1 REM SET INITIALLY FOR LINE 9 MINUS 6
DEF FNA(X)=100*INT(X)+60*(X-INT(X)) REM FUNCTION FNA CHANGES TD->TM
DEF FNB(X)=INT(X/100)+(X-100*(INT(X/100)))/60 REM FNB CHANGES TM->TD
FILE BD$(500),DD$(500) REM WHICH SORTIES HAVE BEEN BRIEFED
IF END #1 THEN 2
FOR X=1 TO 50 REM READ IN THE BR( ) ARRAY
READ #1,X;A$:BR(X)=X
NEXT X
2 B1=X-1 REM SET # OF LAST BRIEFED SORTIE
FOR Y=1 TO B1 REM WHICH SORTIES HAVE BEEN DEBRIEFED? DR( ) ARRAY
IF END #2 THEN 3
READ #2,Y;A$
IF A$<>"" THEN DR(Y)=Y
3 NEXT Y
CLOSE(2):CLOSE(1)
4 GOSUB 700 REM CHECK TIME
REM
REM ---------------------------------------------------------------------
REM
REM COMMAND ROUTINE FOLLOWS
REM
5 PRINT "FRE=";FRE,CHR$(12), CHR$(25)
GOSUB 830 REM CLEAR ALL VARIABLES
6 PRINT:PRINT "THE FOLLOWING COMMANDS ARE AVAILABLE:":PRINT
PRINT"INITIATE";TAB(15);"UPDATE";TAB(45);"PRINT"
PRINT"---------";TAB(15);"------";TAB(45);"-----"
PRINT"1.SCENNARIO";TAB(15);"2.SCENNARIO";TAB(45);"3.SORTIE SUMMARY"
PRINT"4.BRIEFING";TAB(15);"5.BRIEFING";TAB(45);"6.BRIEFING"
PRINT"7.DEBRIEFING";TAB(15);"8.DEBRIEFING";TAB(45);"9.DEBRIEFING"
PRINT "10.TIME";TAB(15);"11.FLITE LOG(ALL SORTIES)";\
TAB(45);"12.FLIGHT LOG(ALL SORTIES)"
PRINT TAB(15);"13.FLITE LOG(ACTIVE SORTIES)";\
TAB(45);"14.FLIGHT LOG(ACTIVE SORTIES)"
PRINT:PRINT "THE FOLLOWING SORTIES HAVE BEEN BRIEFED:"
FOR X=1 TO 50:PRINT BR(X);
IF X=25 THEN PRINT
NEXT X:PRINT
PRINT:PRINT "THE FOLLOWING SORTIES HAVE BEEN DEBRIEFED:"
FOR X=1 TO 50:PRINT DR(X);
IF X=25 THEN PRINT
NEXT X:PRINT
GOSUB 750:PRINT "COMPUTER TIME= ";TM,"REMAINING MEMORY=";FRE:PRINT
PRINT:INPUT "TYPE THE COMMAND NUMBER PLEASE";C
IF C<1 OR C>14 OR C<>INT(C) THEN GOTO 6
IF C=11 OR C=12 THEN F=1 ELSE F=0
IF C<4 OR C>9 THEN GOTO 9 REM NO SORTIE # IS REQUIRED
INPUT "WHAT IS THE SORTIE NUMBER";S
IF S<1 OR S>50 OR S<>INT(S) THEN GOTO 6
IF C=4 AND (BR(S)=S OR BR(S-1)=0) THEN \
PRINT"THE NEXT SORTIE TO BE BRIEFED IS # ";B1+1:GOTO 6
IF (C=8 OR C=9) AND DR(S)=0 THEN \
PRINT "YOU HAVE NOT YET DEBRIEFED THAT SORTIE":GOTO 6
IF BR(S)=0 AND (C=5 OR C=6 OR C=7) THEN \
PRINT"YOU HAVE NOT YET BRIEFED THAT SORTIE":GOTO 6
9 ON C GOSUB 10,30,350,100,150,400,200,250,500,700,300,600,300,600
GOTO 5 REM COMMON RETURN POINT FOR ALL SUBROUTINES
REM
REM ---------------------------------------------------------------------
REM
REM SCENARIO INPUT ROUTINE FOLLOWS
REM
10 PRINT CHR$(12);CHR$(25);"THIS IS THE MISSION SCENNARIO ROUTINE"
FILE MD$,MQ$
IF END #1 THEN 15
IF END #2 THEN 15
FOR Y=0 TO 6:PRINT:PRINT
FOR X=0 TO 10:READ #2;Q$(X):NEXT X
PRINT Q$(0):FOR X=1 TO 9:PRINT Q$(X);:INPUT M$(Y,X):NEXT X
GOSUB 750:M$(Y,10)=STR$(TM):NEXT Y
FOR Y=0 TO 6:FOR X=1 TO 10:PRINT #1;M$(Y,X):NEXT X:NEXT Y
15 CLOSE(2):CLOSE(1) REM REWIND UNBLOCKED FILES
REM
REM ---------------------------------------------------------------------
REM
REM SCENARIO VERIFICATION ROUTINE FOLLOWS
REM
30 PRINT CHR$(12);CHR$(25);"THIS IS THE SCENARIO CORRECTION ROUTINE"
FILE MD$,MQ$
IF END #1 THEN 48
IF END #2 THEN 48
FOR Y=0 TO 6:PRINT:PRINT
FOR X=0 TO 10:READ #2;Q$(X):NEXT X
FOR X=1 TO 10:READ #1;M$(Y,X):NEXT X
35 PRINT Q$(0)
FOR X=1 TO 10:PRINT X;". ";MID$(Q$(X),13,80);"=";M$(Y,X):NEXT X
40 PRINT:INPUT "IS THAT OK ? TYPE YES OR THE # OF THE INCORRECT ENTRY";A$
IF LEFT$(A$,1)="Y" THEN GOTO 45 ELSE W=VAL(A$)
IF W<1 OR W>9 OR W<>INT(W) THEN GOTO 40
PRINT Q$(0):PRINT Q$(W);:INPUT M$(Y,W):PRINT
GOSUB 750:M$(Y,10)=STR$(TM):GOTO 35
45 NEXT Y:CLOSE(2):CLOSE(1):FILE MD$,FL$(160) REM FILE MD$ REWIND
PRINT #2,1;M$(0,1),M$(0,3),M$(0,2)
FOR Y=0 TO 6:FOR X=1 TO 10:PRINT #1;M$(Y,X):NEXT X:NEXT Y
48 CLOSE(2):CLOSE(1):RETURN REM EXIT TO COMMAND MENUE
REM
REM ---------------------------------------------------------------------
REM
REM BRIEFING ROUTINE FOLLOWS
REM
100 FILE BD$(500),BQ$,FL$(160),DD$(500)
BR(S)=S:D$(0)=STR$(S):B1=S
GOSUB 810 REM GET QUERIES FROM FILE BQ$
GOSUB 815 REM GET INPUT ANSWERS FOR FILE BD$
PRINT #4,S;A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$,A$, \
A$,A$,A$,A$,A$,A$,A$ REM DUMMY IN THE DD$ FILE
CLOSE(4)
GOTO 160 REM GOTO BRIEFING VERIFICATION SUBROUTINE
REM
REM ---------------------------------------------------------------------
REM
REM BRIEFING VERIFICATION FOLLOWS
REM
150 FILE BD$(500),BQ$,FL$(160)
GOSUB 810 REM GET QUERIES
GOSUB 800 REM READ FILE BD$
160 Y=1 :GOSUB 825 REM CHECK #1-13 ANSWERS
Y=14:GOSUB 825 REM CHECK #14-26 ANSWERS
PRINT #3,S+1;S,D$(8),D$(1),D$(9),D$(11),T(1),T(2),T(3),T(4),T(5),T(6),D$(16)
GOSUB 802 REM PRINT FILE BD$
190 CLOSE(3):CLOSE(2):CLOSE(1):RETURN REM EXIT TO COMMAND MENUE
REM
REM ---------------------------------------------------------------------
REM
REM DEBRIEFING INTERROGATION ROUTINE
REM
200 PRINT CHR$(12);CHR$(25)
FILE DD$(500),DQ$,BD$(500)
IF END #3 THEN 290
READ #3,S;A$,D$(1),A$,A$,D$(2),D$(3),D$(4),D$(5),D$(6), \
B$,A$,C$,A$,A$,A$,A$,D$(7)
PRINT "FOR SORTIE NO. ";S;"THE PILOT WAS ";D$(1); \
" AND THE AIRCRAFT WAS ";D$(6)
INPUT "IS THAT WHOM YOU ARE NOW DEBRIEFING";A$
IF LEFT$(A$,1)<>"Y" THEN GOTO 290
CLOSE(3):FILE FL$(160) REM FL$=FILE #3
D$(0)=STR$(S):DR(S)=S
GOSUB 750:D$(26)=STR$(TM) REM GET TIME
READ #3,S+1;X,A$,A$,A$,A$,T(1),T(2),T(3),T(4),T(5),T(6),A$
GOSUB 835 REM GET ATD,ATA FROM FILE FL$
GOSUB 810 REM GET QUERIES FROM FILE DQ$
GOSUB 815 REM GET ANSWERS FOR FILE DD$
GOTO 260 REM GOTO DEBRIEFING VERIFICATION SUBROUTINE
REM
REM ---------------------------------------------------------------------
REM
REM DEBRIEFING VERIFICATION ROUTINE FOLLOWS
REM
250 FILE DD$(500),DQ$,FL$(160)
GOSUB 810 REM GET QUERIES FROM FILE DQ$
GOSUB 800 REM GET DATA FROM FILE DD$
READ #3,S+1;X,A$,A$,B$,C$,T(1),T(2),T(3),T(4),T(5),T(6)
GOSUB 835 REM GET ATD,ATA,TOT FROM FILE FL$
260 Y=1 :GOSUB 825 REM CHECK #1-13 ANSWERS
Y=14:GOSUB 825 REM CHECK #14-26 ANSWERS
PRINT #3,S+1;S,D$(6),D$(1),B$,C$,T(1),T(2),T(3),T(4),T(5),T(6),D$(8)
GOSUB 802 REM PRINT FILE DD$
290 CLOSE(3):CLOSE(2):CLOSE(1):RETURN REM EXIT TO COMMAND MENUE
REM
REM
REM ---------------------------------------------------------------------
REM UPDATE THE FLIGHT OPERATIONS LOG
REM
300 GOSUB 855:GOSUB 610:FILE FL$(160) REM CLEAR SCREEN AND PRINT FLIGHT LOG
IF END #1 THEN 340
310 PRINT "1=ETD 2=ATD 3=ETE 4=ETA 5=ATA 6=NO ERROR"
INPUT "TYPE THE SORTIE #,ERROR #,DATA ";W,Y,X
IF Y>5 THEN CLOSE(1):RETURN REM ONLY EXIT POINT FOR THIS SUBROUTINE
IF W>B1 THEN GOTO 310 REM SORTIE # MUST BE <LAST BRIEFED #
READ #1,W+1;S,D$(8),D$(1),D$(9),D$(11),T(1),T(2),T(3),T(4),T(5),T(6),D$(16)
T(Y)=X REM CORRECTED ENTRY
IF T(2)<>0 THEN T(1)=T(2) REM IF ATD<>0 THEN ETA=ATD
T(4)=FNA(FNB(T(1))+T(3)) REM RECALCULATE ETA
IF T(4)>2400 THEN T(4)=T(4)-2400
GOSUB 840 REM CALCULATE TOTAL SORTIE TIME
PRINT #1,W+1;S,D$(8),D$(1),D$(9),D$(11),T(1),T(2),T(3),T(4),T(5),T(6),D$(16)
340 CLOSE(1):GOTO 300
REM
REM ---------------------------------------------------------------------
REM
REM PRINT THE DEBRIEFING SUMMARY REPORT
REM
350 FILE MD$,DD$(500)
IF END #1 THEN 395
READ #1;M$(0,1),M$(0,2),M$(0,3)
GOSUB 750 REM GET TIME
GOSUB 850 REM TURN THE PRINTER ON
PRINT "MISSION SUMMARY REPORT"
PRINT "MISSION #: ";M$(0,1);TAB(50);"DATE: ";M$(0,2)
PRINT "BASE: ";M$(0,3);TAB(50);"TIME: ";TM
PRINT:GOSUB 870:GOSUB 870
FOR S=1 TO B1 REM FROM SORTIE #1 TO LAST BRIEFED SORTIE
IF END #2 THEN 390
READ #2,S;D$(0),A$,A$,A$,A$,A$,A$,A$,D$(8),A$,A$,A$,A$,A$,D$(14),\
A$,D$(16),D$(17),D$(18),A$,A$,D$(21),D$(22),A$,A$,D$(25)
IF D$(0)="" THEN GOTO 390
PRINT:PRINT "SORTIE #";D$(0);
IF LEFT$(D$(17),1)="Y" THEN PRINT " VISUAL SEARCH";
IF LEFT$(D$(18),1)="Y" THEN PRINT " ELT SEARCH";
PRINT TAB(60);"POD(%): ";D$(22)
PRINT " AREA:";LEFT$(D$(8),50);TAB(58);"% COVERED:";D$(16)
PRINT " SEARCH TIME: ";D$(14);TAB(55);"SORTIE TIME: ";D$(25)
PRINT " LEADS: ";D$(21)
GOSUB 870 REM PRINT DIVIDER LINE *******->
390 NEXT S
GOSUB 850 REM TURN PRINTER OFF
395 CLOSE(2):CLOSE(1):RETURN REM EXIT TO COMMAND MENUE
REM
REM-------------------------------------------------------------------
REM
REM PRINT BRIEFING FORM
REM
400 FILE BD$(500),MD$
IF END #1 THEN 470
IF END #2 THEN 470
GOSUB 800 REM BLOCK FILE READ ROUTINE
FOR Y=0 TO 6:FOR X=1 TO 10:READ #2;M$(Y,X):NEXT X:NEXT Y
PRINT "THIS IS THE BRIEFING PRINT ROUTINE:":PRINT
GOSUB 850 REM TURN PRINTER ON
PRINT "MISSION BRIEFING FORM:";TAB(50);"SORTIE NO. ";D$(0)
PRINT "MISSION NUMBER: ";M$(0,1);TAB(50);"DATE: ";M$(0,2)
PRINT TAB(50);"TIME(L): ";D$(26)
GOSUB 870:GOSUB 870:PRINT "PERSONNEL:"
PRINT TAB(3);"PILOT: ";D$(1);" OF ";D$(2);TAB(40);"PHONE: ";D$(3)
PRINT TAB(3);"COPILOT: ";D$(4);TAB(40);"OBSERVER #1: ";D$(5)
PRINT TAB(3);"OBSERVER #2: ";D$(6);TAB(40);"OBSERVER #3: ";D$(7)
PRINT:GOSUB 870:PRINT "AIRCRAFT:"
PRINT TAB(3);"N NUMBER: ";D$(8);TAB(40);"TYPE: ";D$(9)
PRINT TAB(3);"COLOR: ";D$(10);TAB(40);"HOME AIRPORT: ";D$(13)
PRINT TAB(3);"FUEL AVAILABLE (HRS): ";D$(11);
PRINT TAB(40);"CRUISE SPEED (KNOTS): ";D$(12)
PRINT TAB(3);"EQUIPMENT ON BOARD:";TAB(40);"CALLSIGN: ";D$(15)
PRINT TAB(3);D$(14)
PRINT
PRINT "CONTROL BASE:"
PRINT TAB(3);"LOCATION: ";M$(0,3);TAB(40);"PHONE: ";M$(0,4)
PRINT TAB(3);"VHF CALLSIGN: ";M$(0,5);TAB(40);"MOBILE CALLSIGN: ";M$(0,6)
PRINT TAB(3);"GROUND-AIR RADIO: ";M$(0,8);
PRINT TAB(40);"26.620MHZ CALLSIGN: ";M$(0,7)
PRINT:GOSUB 870:PRINT:PRINT "MISSION OBJECTIVE:"
PRINT TAB(3);M$(0,9)
PRINT
PRINT "ASSIGNED SEARCH AREA:"
PRINT TAB(3);"LOCATION: ";D$(16)
PRINT TAB(3);"SEARCH PATTERN: ";D$(17);
PRINT TAB(3);"ASSIGNED SEARCH ALTITUDE (FT AGL): ";D$(18)
PRINT:GOSUB 870:PRINT:PRINT "FLIGHT INFORMATION:"
PRINT TAB(3);"DEPARTS FROM: ";D$(20);TAB(40);"ETD(L): ";D$(24)
PRINT TAB(3);"ARRIVES AT: ";D$(21);TAB(40);"ETA(L): ";D$(25)
PRINT TAB(3);"ALTERNATE: ";D$(22);TAB(40);"ENROUTE ALTITUDE (FT): ";D$(19)
PRINT
GOSUB 870:PRINT:PRINT "AIRPORT INFORMATION:"
PRINT TAB(3);"FBO NAME: ";M$(1,1);TAB(40);"APPROACH FREQ: ";M$(1,5)
PRINT" FUEL AVAILABLE: ";M$(1,2);TAB(40);"CONTROL TOWER FREQ: ";M$(1,5)
PRINT TAB(3);"FIELD ELEVATION: ";M$(1,3);TAB(40);"GROUND FREQ: ";M$(1,7)
PRINT TAB(3);"A/C TIEDOWN: ";M$(1,4);TAB(40);"ACTIVE RUNWAY: ";M$(1,8)
PRINT TAB(3);"ADDITIONAL COMMENTS: ";M$(1,9)
GOSUB 860 REM PRINT SIGNATURE LINE+FORMFEED
GOSUB 870:PRINT:PRINT TAB(28);"WEATHER CONDITIONS":PRINT:PRINT
X=2:PRINT "LOCAL: ";:GOSUB 450
X=3:PRINT "NORTH: ";:GOSUB 450
X=4:PRINT "EAST: ";:GOSUB 450
X=5:PRINT "SOUTH: ";:GOSUB 450
X=6:PRINT "WEST: ";:GOSUB 450:GOTO 465
450 PRINT M$(X,1);" REPORTS AT ";M$(X,10);" HRS LOCAL"
PRINT TAB(3);"CEILING(AGL): ";M$(X,2)
PRINT TAB(3);"TEMP/DEW PT: ";M$(X,4);"/";M$(X,5);
PRINT TAB(40);"WIND: ";M$(X,6);" DEG AT ";M$(X,7);" KNOTS"
PRINT TAB(3);"BAROMETRIC PRESSURE: ";M$(X,8);
PRINT TAB(40);"VISIBILITY(NM): ";M$(X,3)
PRINT TAB(3);"SYNOPSIS+PROGNOSIS: ";M$(X,9)
PRINT:PRINT:RETURN
465 GOSUB 850 REM TURN THE PRINTER OFF
470 CLOSE(2):CLOSE(1):RETURN REM EXIT TO COMMAND MENUE
REM
REM ---------------------------------------------------------------------
REM
REM PRINT DEBRIEFING FORM
REM
500 FILE DD$(500),MD$
IF END #1 THEN 570
IF END #2 THEN 570
GOSUB 800 REM BLOCK FILE READ ROUTINE
FOR X=1 TO 10:READ #2;M$(0,X):NEXT X
PRINT "THIS IS THE DEBRIEFING PRINT ROUTINE:":PRINT:PRINT
GOSUB 850 REM TURN PRINTER ON
PRINT "MISSION DEBRIEFING FORM:";TAB(50);"SORTIE NO. ";D$(0)
PRINT"MISSION NUMBER: ";M$(0,1);TAB(50);"DATE: ";M$(0,2)
PRINT TAB(50);"TIME(L): ";D$(26)
PRINT:GOSUB 870:GOSUB 870:PRINT
PRINT "PERSONNEL:"
PRINT TAB(3);"PILOT: ";D$(1);TAB(40);"COPILOT: ";D$(2)
PRINT TAB(3);"OBSERVER #1: ";D$(3);TAB(40);"OBSERVER #2: ";D$(4)
PRINT TAB(3);"OBSERVER #3: ";D$(5)
PRINT:GOSUB 870:PRINT
PRINT "CONTROL BASE: ";M$(0,3)
PRINT
PRINT "MISSION OBJECTIVE: ";M$(0,9)
PRINT:GOSUB 870:PRINT
PRINT "SEARCH AREA:"
PRINT TAB(3);"LOCATION: ";D$(8);TAB(40);"POD (%): ";D$(22)
PRINT TAB(3);"TERRAIN: ";D$(10);TAB(40);"VISIBILITY: ";D$(9)
PRINT TAB(3);"ALTITUDE (FT): ";D$(11);TAB(40);"SEARCH TIME OF DAY: ";D$(12)
PRINT TAB(3);"DEPARTURE TIME(L):";D$(23);TAB(40);"ARRIVAL TIME(L):";D$(24)
PRINT TAB(3);"AIR SPEED: ";D$(13);TAB(40);"% COVERED: ";D$(16)
PRINT TAB(3);"SEARCH TIME: ";D$(14);TAB(40);"TOTAL SORTIE TIME: ";D$(25)
PRINT TAB(3);"ELT MONITORED: ";D$(18);TAB(40);"VISUAL SEARCH: ";D$(17)
PRINT TAB(3);"SEARCH AREA WEATHER: ";D$(19)
PRINT
PRINT "FALSE SIGHTINGS (NUMBER) = ";D$(20)
PRINT:GOSUB 870:PRINT:PRINT "LEADS AND SUMMARY:"
PRINT TAB(3);D$(21)
GOSUB 860 REM PRINT SIGNATURE LINE+FORMFEED
GOSUB 850 REM TURN PRINTER OFF
570 CLOSE(2):CLOSE(1):RETURN REM EXIT TO COMMAND MENUE
REM
REM ---------------------------------------------------------------------
REM
REM THIS IS THE FLIGHT OPERATIONS LOG PRINT ROUTINE
REM
600 PRINT "THIS IS THE FLIGHT OPERATIONS LOG PRINT ROUTINE":PRINT
GOSUB 850 REM TURN PRINTER ON
GOSUB 610 REM PRINT LOG
GOSUB 850 REM TURN PRINTER OFF
RETURN REM EXIT TO COMMAND MENUE
REM
REM --------ACTUAL PRINT SUBROUTINE FOLLOWS------------------------------
REM
610 FILE FL$(160)
IF END #1 THEN 640
READ #1,1;D$(1),D$(3),D$(2)
PRINT TAB(20);"FLIGHT OPERATIONS LOG ";
IF F=1 THEN PRINT "FOR ALL SORTIES" ELSE PRINT "FOR ACTIVE SORTIES"
PRINT "MISSION #: ";LEFT$(D$(1),13);
PRINT TAB(24);"BASE: ";LEFT$(D$(3),22);
PRINT TAB(53);"DATE: ";LEFT$(D$(2),18):PRINT
620 PRINT "# A/C PILOT'S A/C TYPE FUEL ETD ATD ";
PRINT "ETE ETA ATA TOT AREA ASSIGNED"
PRINT TAB(4);"N#";TAB(11);"NAME";
PRINT TAB(29);"HRS HRS HRS HRS HRS HRS HRS"
REM PRINT THE DATA
PRINT:FOR X=1 TO B1 REM FOR SORTIE #1 TO LAST BRIEFED SORTIE
READ #1,X+1;S,D$(8),D$(1),D$(9),D$(11),T(1),T(2),T(3),T(4),T(5),T(6),D$(16)
IF F=0 AND T(5)<>0 THEN GOTO 635
PRINT LEFT$(STR$(S),2);TAB(4);LEFT$(D$(8),5);TAB(10);
PRINT LEFT$(D$(1),9);TAB(20);LEFT$(D$(9),8);
PRINT TAB(29);LEFT$(D$(11),4);
PRINT TAB(34);LEFT$(STR$(T(1)),4);TAB(39);LEFT$(STR$(T(2)),4);
PRINT TAB(44);LEFT$(STR$(T(3)),3);TAB(48);
PRINT LEFT$(STR$(T(4)),4);TAB(53);LEFT$(STR$(T(5)),4);
PRINT TAB(58);LEFT$(STR$(T(6)),3);
PRINT TAB(62);LEFT$(D$(16),17)
635 NEXT X
640 CLOSE(1):RETURN
REM
REM ---------------------------------------------------------------------
REM
REM CHECK AND SET TIME ROUTINE
700 GOSUB 750:PRINT "COMPUTER TIME= ";TM:INPUT "OK";A$
IF LEFT$(A$,1)="Y" THEN RETURN
710 OUT 169,0:INPUT "WHAT IS THE LOCAL 24 HR TIME [4 DIGITS REQUIRED]";A$
IF LEN(A$)<>4 OR VAL(A$)>2359 THEN GOTO 710 ELSE PRINT "WAIT"
FOR X=1 TO 4: T(X)=VAL(MID$(A$,X,1)):NEXT X: OUT 169,4
720 IF INP(175)=T(1) AND INP(174)=T(2) THEN OUT 169,0:GOTO 730
GOTO 720
730 OUT 169,2
740 IF INP(173)=T(3) AND INP(169)=T(4) THEN OUT 169,0:GOTO 700
GOTO 740
REM
REM READ SYSTEM CLOCK ROUTINE
750 FOR Z=0 TO 7:T(Z)=INP(168+Z):NEXT Z
TM=1000*T(7)+100*T(6)+10*T(5)+T(1)
TD=10*T(7)+T(6)+(INT(10*T(5)+T(1)))/60
FOR Z=0 TO 7:T(Z)=0:NEXT Z
RETURN
REM
REM ---------------------------------------------------------------------
REM
REM BLOCK FILE READ ROUTINES FOR BD$ AND DD$
REM
800 READ #1,S;D$(0),D$(1),D$(2),D$(3),D$(4),D$(5),D$(6),D$(7),D$(8), \
D$(9),D$(10),D$(11),D$(12),D$(13),D$(14),D$(15),D$(16),D$(17), \
D$(18),D$(19),D$(20),D$(21),D$(22),D$(23),D$(24),D$(25),D$(26)
RETURN
REM
802 PRINT #1,S;D$(0),D$(1),D$(2),D$(3),D$(4),D$(5),D$(6),D$(7),D$(8), \
D$(9),D$(10),D$(11),D$(12),D$(13),D$(14),D$(15),D$(16),D$(17), \
D$(18),D$(19),D$(20),D$(21),D$(22),D$(23),D$(24),D$(25),D$(26)
RETURN
REM
REM----------READ QUERIES SUBROUTINE FOR BD$+DD$ FILES----------
REM
810 IF END #1 THEN 190
IF END #2 THEN 190
IF END #3 THEN 190
PRINT CHR$(12);CHR$(25)
FOR X=0 TO 26:READ #2;Q$(X):NEXT X
RETURN
REM
REM----------GET ANSWERS SUBROUTINE FOR BD$+DD$ FILES----------
REM
815 FOR X=0 TO 26:PRINT Q$(X);
IF D$(X)<>"" THEN PRINT D$(X) ELSE INPUT D$(X)
IF C=4 AND X=23 THEN GOSUB 820 REM FOR BD$ GEN ETD,ETE,ETA
IF C=7 AND X=24 THEN GOSUB 838 REM GET D$(25),T(6),T(2),T(5)
817 NEXT X
RETURN
REM
REM----------GET ETD,ETE,ETA SUBROUTINE FOR BD$ FILE----------
REM
820 GOSUB 750:D$(26)=STR$(TM) REM TIME OF BRIEFING
T(1)=FNA(TD+.25):D$(24)=STR$(T(1)) REM ETD
822 T(1)=VAL(D$(24)):T(3)=VAL(D$(23)) REM ETE
T(4)=FNA(FNB(T(1))+T(3)) REM ETA
IF T(4)>2400 THEN T(4)=T(4)-2400
D$(25)=STR$(T(4))
RETURN
REM
REM----------VERIFICATION SUBROUTINE FOR BD$+DD$ FILES----------
REM
825 PRINT:FOR X=Y TO Y+12
PRINT X;". ";MID$(Q$(X),13,80);"=";D$(X)
NEXT X
PRINT
REM CHECK IF OK
828 INPUT"IS THIS OK? TYPE 'YES' OR THE # OF THE INCORRECT ENTRY";A$
IF LEFT$(A$,1)="Y" THEN RETURN ELSE W=VAL(A$) REM ONLY EXIT
IF W<Y OR W>Y+12 OR W<>INT(W) THEN GOTO 828
PRINT Q$(W);:INPUT D$(W)
IF (C=4 OR C=5) AND (W=23 OR W=24) THEN GOSUB 822
IF (C=7 OR C=8) AND (W=23 OR W=24) THEN GOSUB 838
GOTO 825
REM
REM----------CLEAR SUBROUTINE FOR ALL VARIABLES----------
830 FOR Y=0 TO 6:FOR X=0 TO 10:M$(Y,X)="":NEXT X:NEXT Y
FOR X=0 TO 26:D$(X)="":Q$(X)="":NEXT X
FOR Z=0 TO 7:T(Z)=0:NEXT Z
A$="":B$="":C$=""
RETURN
REM
REM----------ATA,ATD SUBROUTINE FOR DD$ FILE----------
REM
835 IF T(2)<>0 THEN D$(23)=STR$(T(2)) ELSE D$(23)="" REM ATD
IF T(5)<>0 THEN D$(24)=STR$(T(5)) ELSE D$(24)="" REM ATA
IF T(6)<>0 THEN D$(25)=STR$(T(6)) ELSE D$(25)="" REM TOT
RETURN
REM
REM---------- GET TOT FOR FILE FL$+DD$----------
838 T(2)=VAL(D$(23)):T(5)=VAL(D$(24))
840 IF T(5)<>0 AND T(2)<>0 THEN T(6)=.1*INT(10*(FNB(T(5))-FNB(T(2))))
IF T(6)<0 THEN T(6)=T(6)+24
D$(25)=STR$(T(6))
RETURN
REM
REM ----------TURN PRINTER ON AND OFF----------
REM
850 PRINT CHR$(12)
INPUT "TYPE THE LETTER 'P' AND CONTROL 'P'";A$
855 PRINT CHR$(25),CHR$(12)
RETURN
REM
REM ----------PRINT SIGNATURE LINE----------
REM
860 PRINT:GOSUB 870:GOSUB 870:PRINT:PRINT
B$="____________________"
PRINT B$;TAB(25);B$;TAB(50);B$
PRINT"BRIEF/DEBRIEF OFF";TAB(25);"PILOT/OBSERVER";TAB(50);"AIR OP OFFICER"
PRINT CHR$(12)
RETURN
REM
REM
870 PRINT "************************************************************"; \
"***********"
RETURN