
;Flight Simulator Adventure File
;
;Date Created: 11-19-1992
;
;A Flight from SJC-San Jose International to SFO-San Francisco International.
;Generated using the Pilot's ToolBox conversion feature that makes
;Adventure script files from FLIGHT PLANNER Flight Plans.
;
;The Pilot's ToolBox is a authored by Robert M. MacKay of RMM Consulting.
;For information on this product, contact Robert on Compuserve, in the
;FSFORUM, at ID 71641,2321.
;
;Required: FS4, AAF
;
;Recommended: A&SD, SGA, Flight Planner, Pilot's ToolBox
;             Leave MAGROT.DRV driver out as it may mess up ILS approaches.
;             Leave FRAME.DRV  driver out as the Transponder is required.
;
;Notes: Clearance Del. Frequency is a default 118.0.
;       Orig Ground    Frequency is a default 121.7.
;       Orig Tower     Frequency is a default 124.0.
;       Orig Departure Frequency is a default 121.3.
;       Center         Frequency is a default 134.15.
;       Dest Approach  Frequency is a default 134.5.
;       Dest Tower     Frequency is a default 120.5.
;       Dest Ground    Frequency is a default 121.8
;       Flight Service Frequency is a default 122.20.
;
;       Variables A-E are used to count seconds passed during timing loops.
;       Variable  F stores a 1/0 to show if downwind leg should be skipped.
;       Variable  G stores a 1/0 to show if base leg should be skipped.
;       Variable  H is used to calculate heading error.
;       Variable  I stores a 1/0 to show if a procedure turn is needed.
;       Variable  J is used to store the cloud cover density.
;       Variable  K is used as a counter for random weather change intervals.
;       Variable  L stores the current facility: 0-Grd 1-Twr 2-Dep 3-Ctr 4-App
;       Variable  M stores the current cleared heading (used by FPAutoPilot).
;       Variable  N stores the current cleared altitude (used by FPAutoPilot).
;       Variable  O is the message # counter fo the randome ATC chatter.
;       Variable  P stores a 1/0 to show if the Flight Plan Auto Pilot is on.
;       Variable  R is used to indicate climb, level, or descent (0/1/2).
;       Variable  S is used to track if user has deviated from IFR to VFR.
;       Variables V and T store a 1/0 to indicate whether to use VOC/TXT.
;       Variables W-Z are temporary variables for use in math, etc.
;
;       This adventure works best with aircraft that cruise at 120kts.
;
;       Winds from a Flight Planner flight plan are set at 3500' MSL.
;
;       The FltPln AutoPilot (FPAP) will only climb/descend at 500 FPM.
;       If you are going to use FPAP, be sure your flight plan was created
;       with a plane having climb/descent rates of 500 FPM.
;
;Start adventure at origination.  NOTE:  This is a central point for the
;origination airport.  It may put you in a building, water, etc.  If you
;are crashed every time you start this adventure, then try changing the
;decimal values a little to move away from the object you are hitting.
;The best thing to do is get into FS4 and place yourself manually at the
;location you would like to start at and make a note of the exact N/E
;position.  Then edit this file and place those coordinates in the
;following SETPOSITION statement.
;
;SETPOSITION(17185.0000,05164.0000,0)
;
;Set which random chatter message # to start with.
SETVAR(X,22)
Y:=random/X
O:=remainder
;Set misc items.
SETVAR(F,0)
SETVAR(G,0)
SETVAR(I,0)
SETVAR(L,0)
EQU norrot 754
EQU magvar 756
;
SETUP:
PRINT "Default scenery; BAYAREA.SC1 recommended - hit 'x'"
if key("x")
	GOTO OPTIONS
endif
GOTO SETUP
;Setup options for Voice/Text/Both.
OPTIONS:
    PRINT"Adventure Setup...Please answer the following questions:"
    WAIT(4)
    PRINT"Press (W) for VOICE only, (E) for TEXT only, or (R) Both."
CHKVT:
    IF KEY("W") THEN
        SETVAR(V,1)
        SETVAR(T,0)
        GOTO INTRO
    ENDIF
    IF KEY("E") THEN
        SETVAR(V,0)
        SETVAR(T,1)
        GOTO INTRO
    ENDIF
    IF KEY("R") THEN
        SETVAR(V,1)
        SETVAR(T,1)
        GOTO INTRO
    ENDIF
    GOTO CHKVT
;
INTRO:
;   Set Winds on Surface and Aloft.
    SETVAR(Y,-256)
    SETVAR(Z,4)
    w0vel:=w0vel&Y|Z
    SETVAR(w0turb,0)
    SETVAR(w0depth,45)
    SETVAR(w0dir,21845)
    SETVAR(Z,0)
    w3vel:=w3vel&Y|Z
    SETVAR(w3dir,0)
    SETVAR(w3turb,0)
    SETVAR(w3top,15000)
    SETVAR(w3bot,915)
    PLAY"HASH.VOC"
    IF VARTEST(V,1,1) THEN
        PLAY"SJCSFO.V00"
    ENDIF
    IF VARTEST(T,1,1) THEN
        PRINT"Welcome to the flight from SJC to SFO."
        WAIT(4)
        PRINT"A Flight Planner converted Adventure made by the Pilot's ToolBox."
        WAIT(4)
        PRINT"Tune in San Jose International Clearance Delivery on 118.0 when ready to begin,"
        WAIT(4)
        PRINT"or press X to see some instructions."
        WAIT(4)
        PRINT""
    ENDIF
;
;On the ground at SJC receiving clearance.
LOOPC:
    IF COM(118.0) THEN
LOOPCA:
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V01"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Jose International Clearance."
            WAIT(4)
            PRINT"Cleared to San Francisco International, direct SFO VOR, routing as filed."
            WAIT(4)
            PRINT"Climb and maintain 2000.  Expect 3000 within 10 minutes after departure."
            WAIT(4)
            PRINT"Check latest weather report with Flight Service on 122.20."
            WAIT(4)
            PRINT"Departure on 121.3, ATIS on 125.20, Squawk 6404."
            WAIT(8)
            PRINT"Contact Ground on 121.7."
            WAIT(4)
            PRINT""
        ENDIF
        GOSUB CLEARVARS
        GOTO LOOP1
    ENDIF
    IF KEY("R") THEN
        GOTO INTRO
    ENDIF
    IF KEY("X") THEN
        PRINT"Pressing R will repeat the last message."
        WAIT(4)
        PRINT"Pressing W activates FPAP, pressing E de-activates the FPAP."
        WAIT(4)
        PRINT"Pressing J when tuned to FSS gives flt plan summary & weather."
        WAIT(4)
        PRINT"Pressing X when tuned to FSS will toggle request to go VFR/IFR."
        WAIT(4)
        PRINT"Pressing 7 after Departure Clearance will unfold IAP of SFO"
        WAIT(4)
        PRINT"Tune in San Jose International Clearance Delivery on 118.0 when ready to begin."
        WAIT(4)
        PRINT""
    ENDIF
    GOTO LOOPC
;
;On the ground at SJC awaiting taxi instructions.
LOOP1:
    GOSUB COUNTER
    GOSUB FSS
    IF KEY("R") THEN
        GOTO LOOPCA
    ENDIF
    IF COM(121.7) THEN
LOOP1A:
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V02"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Jose International Ground."
            WAIT(4)
            PRINT"Taxi to runway 30R and hold short."
            WAIT(4)
            PRINT"When holding, Contact Tower on 124.0."
            WAIT(4)
            PRINT""
        ENDIF
        SETVAR(A,0)
LOOP1B:
        IF VARTEST(A,10,9999) THEN
            GOTO LOOP2
        ENDIF
        GOSUB FSS
        WAIT(1)
        ADDVAR(A,1)
        GOTO LOOP1B
    ENDIF
    IF VARTEST(A,10,9999) THEN
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V03"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Contact San Jose International Ground on 121.7."
            WAIT(4)
            PRINT""
        ENDIF
        SETVAR(A,0)
    ENDIF
    GOTO LOOP1
;
;Taxi until holding short & squawking 6404
LOOP2:
    IF KEY("R") THEN
        GOTO LOOP1A
    ENDIF
    GOSUB FSS
    IF GROUNDSPEED(0,0) THEN
        IF COM(124.0) THEN
            SETVAR(L,1)
            IF XPNDR(6404) THEN
LOOP2A:
                PLAY"HASH.VOC"
                IF VARTEST(V,1,1) THEN
                    PLAY"SJCSFO.V04"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 18390 San Jose International Tower."
                    WAIT(4)
                    PRINT"You're cleared for departure runway 30R."
                    WAIT(4)
                    PRINT"Maintain runway heading on departure."
                    WAIT(4)
                    PRINT"Expect climbing turn to 2000."
                    WAIT(4)
                    PRINT""
                ENDIF
                GOTO LOOP2B
            ENDIF
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V05"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Please squawk 6404 for radar contact."
                WAIT(4)
            ENDIF
            WAIT(8)
            GOTO LOOP2
        ENDIF
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V06"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Contact San Jose International Tower on 124.0."
            WAIT(4)
            PRINT""
        ENDIF
        WAIT(5)
        GOTO LOOP2
    ENDIF
    IF ALTAGL(100,9999) THEN
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V07"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Jose International Tower."
            WAIT(4)
            PRINT"You have departed before receiving clearance!"
            WAIT(4)
            PRINT"Your license is hereby revoked."
            WAIT(4)
            PRINT"Squawk 7777, tune 121.5, and activate your ELT."
            WAIT(5)
            PRINT"Your aircraft is being set to descend and maintain zero."
            WAIT(4)
            PRINT""
        ENDIF
LOOP2C:
        SETVAR(X,15)
        SETVAR(Y,-256)
        emrgcy:=emrgcy&Y|X
        SETVAR(smoke_enable,1)
        SETVAR(smoke_now,1)
        WAIT(45)
DAMO:
        
        SETVAR(magno,5)
        GOTO DAMO
    ENDIF
    GOTO LOOP2
;
;Check for Takeoff in Wrong Direction
LOOP2B:
    IF KEY("R") THEN
        GOTO LOOP2A
    ENDIF
    IF ALTAGL(100,9999) THEN
        IF HEADING(285,300) THEN
            GOTO LOOP3
        ENDIF
        IF HEADING(300,315) THEN
            GOTO LOOP3
        ENDIF
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V08"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Jose International Tower."
            WAIT(4)
            PRINT"You have departed on the wrong runway!"
            WAIT(4)
            PRINT"Your license is hereby revoked."
            WAIT(4)
            PRINT"Squawk 7777, tune 121.5, and activate your ELT."
            WAIT(5)
            PRINT"Your aircraft is being set to descend and maintain zero."
            WAIT(4)
            PRINT""
        ENDIF
        GOTO LOOP2C
    ENDIF
    GOTO LOOP2B
;
;Takeoff
LOOP3:
    IF KEY("R") THEN
        GOTO LOOP2A
    ENDIF
    GOSUB FSS
    IF ALTAGL(500,9999) THEN
LOOP3A:
        IF RADIAL(17340,5060,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V09"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Jose International Tower."
            WAIT(4)
            PRINTVAR(W,"Climbing turn to 2000, heading ")
            WAIT(4)
            PRINT"Contact Departure on 121.3.  Good day."
            WAIT(4)
            PRINT""
        ENDIF
        M:=W
        SETVAR(N,2000)
        GOTO LOOP4
    ENDIF
    GOTO LOOP3
;
;Contact Departure
LOOP4:
    IF KEY("R") THEN
        GOTO LOOP3A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF COM(121.3) THEN
        SETVAR(L,2)
        W:=M
        GOSUB CHKHDGDIRECT
        IF VARTEST(H,-6,6) THEN
            IF ALTITUDE(1800,31999) THEN
LOOP4A:
                PLAY"HASH.VOC"
                IF VARTEST(V,1,1) THEN
                    PLAY"SJCSFO.V10"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 18390 Departure."
                    WAIT(4)
                    PRINT"Radar contact.  Climb and maintain 3000."
                    WAIT(4)
                ENDIF
                IF GEARDOWN() THEN
                    IF VARMASK(retractable,255) THEN
                        IF VARTEST(V,1,1) THEN
                            PLAY"SJCSFO.V11"
                        ENDIF
                        IF VARTEST(T,1,1) THEN
                            PRINT"San Jose International Tower reports gear still down."
                            WAIT(4)
                        ENDIF
                    ENDIF
                ENDIF
                IF VARTEST(V,1,1) THEN
                    PLAY"SJCSFO.V12"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Contact Center on 134.15.  See ya."
                    WAIT(4)
                ENDIF
                SETVAR(N,3000)
                GOSUB CLEARVARS
                GOTO LOOP5
            ENDIF
            IF CYLINDER(17185,5164,0,9) THEN
                IF VARTEST(C,15,31999) THEN
                    PLAY"HASH.VOC"
                    IF VARTEST(V,1,1) THEN
                        PLAY"SJCSFO.V13"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 18390 Departure."
                        WAIT(4)
                        PRINT"Please expedite climb to cleared altitude of 2000 now!"
                        WAIT(4)
                    ENDIF
                    SETVAR(C,0)
                ENDIF
            ENDIF
            GOTO LOOP4
        ENDIF
        IF VARTEST(B,10,31999) THEN
            IF RADIAL(17340,5060,0,0) THEN
            ENDIF
            W:=RESULT
            GOSUB CORRECTHDGCHK
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V14"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 Departure."
                WAIT(4)
                PRINTVAR(W,"Establish a heading of ")
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(B,0)
        ENDIF
        GOTO LOOP4
    ENDIF
    IF VARTEST(A,10,31999) THEN
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V15"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 Tower."
            WAIT(4)
                PRINT"Contact Departure on 121.3."
            WAIT(4)
        ENDIF
        SETVAR(A,0)
    ENDIF
    GOTO LOOP4
;
;Direct to San Francisco International VOR
LOOP5:
    IF KEY("R") THEN
        GOTO LOOP4A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF COM(134.15)
        SETVAR(L,3)
        IF RADIAL(17340,5060,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        IF VARTEST(H,-6,6) THEN
LOOP5A:
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V16"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 Center."
                WAIT(4)
                PRINT"Cleared direct to San Francisco International VOR at 3000."
                WAIT(4)
            ENDIF
            GOSUB CLEARVARS
            GOTO LOOP6
        ENDIF
        IF VARTEST(C,10,31999) THEN
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V17"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 Center."
                WAIT(4)
                PRINTVAR(W,"Establish a heading to San Francisco International VOR of ")
                WAIT(4)
                PRINT"Frequency for San Francisco International VOR is 115.80."
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(C,0)
        ENDIF
        GOTO LOOP5
    ENDIF
    IF VARTEST(A,5,31999) THEN
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V18"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 Departure."
            WAIT(4)
            PRINT"Contact Center on 134.15."
            WAIT(4)
        ENDIF
        SETVAR(A,0)
    ENDIF
    GOTO LOOP5
;
;Waiting to get to San Francisco International VOR
LOOP6:
    IF KEY("R") THEN
        GOTO LOOP5A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF RADIAL(17340,5060,0,0) THEN
    ENDIF
    W:=RESULT
    GOSUB CORRECTHDGCHK
    IF COM(134.15) THEN
        IF CYLINDER(17263,5112,0,8) THEN
LOOP6A:
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V18"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 Center."
                WAIT(4)
                PRINT"You're cleared direct to San Francisco International."
                WAIT(4)
                IF RADIAL(17340,5060,0,0) THEN
                ENDIF
                W:=RESULT
                GOSUB CORRECTHDGCHK
                PRINTVAR(W,"New heading should be close to ")
                WAIT(4)
                PRINT"Maintain current cleared altitude of 3000."
                WAIT(4)
                SETVAR(R,1)
                PRINT"Reduce speed and contact Approach on 134.50."
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(N,3000)
            GOSUB CLEARVARS
            GOTO LOOP7
        ENDIF
        IF RADIAL(17263,5112,0,0) THEN
        ENDIF
        W:=RESULT
        GOSUB CORRECTHDGCHK
        IF VARTEST(H,-6,6) THEN
            IF ALTITUDE(2800,3200) THEN
                SETVAR(R,1)
                GOTO LOOP6
            ENDIF
            IF VARTEST(R,1,1) THEN
                IF VARTEST(A,10,31999) THEN
                    PLAY"HASH.VOC"
                    IF VARTEST(V,1,1) THEN
                        PLAY"SJCSFO.V19"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 18390 Center."
                        WAIT(4)
                        PRINT"Please maintain cleared altitude of 3000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
                GOTO LOOP6
            ENDIF
            IF CYLINDER(17263,5112,0,0.187) THEN
                IF VARTEST(A,10,31999) THEN
                    PLAY"HASH.VOC"
                    IF VARTEST(V,1,1) THEN
                        PLAY"SJCSFO.V20"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 18390 Center."
                        WAIT(4)
                        PRINT"Expedite your climb to 3000."
                        WAIT(4)
                    ENDIF
                    SETVAR(A,0)
                ENDIF
            ENDIF
            GOTO LOOP6
        ENDIF
        IF VARTEST(B,10,31999) THEN
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V21"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 Center."
                WAIT(4)
                PRINT"Establish and maintain a direct heading to San Francisco International VOR."
                WAIT(4)
                PRINTVAR(W,"You're heading should be close to ")
                WAIT(4)
                PRINT"Frequency for San Francisco International VOR is 115.80."
                WAIT(4)
            ENDIF
            M:=W
            SETVAR(B,0)
        ENDIF
        GOTO LOOP6
    ENDIF
    IF VARTEST(C,10,31999)
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V22"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 Center."
            WAIT(4)
            PRINT"Please remain on frequency 134.15."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP6
;
;Approach to destination airport San Francisco International
LOOP7:
;   Set surface winds at destination
    SETVAR(Y,-256)
    SETVAR(Z,5)
    w0vel:=w0vel&Y|Z
    SETVAR(w0turb,0)
    SETVAR(w0depth,45)
    SETVAR(w0dir,-30947)
LOOP7C:
    IF KEY("R") THEN
        GOTO LOOP6A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB RADARCHK
    GOSUB FSS
    GOSUB COUNTER
    IF COM(134.50) THEN
        SETVAR(L,4)
;Check for when to turn downwind
        IF CYLINDER(17340,5060,0,8) THEN
;See if approach will require a procedure turn after passing over the runway
            SETVAR(W,10)
            GOSUB CHKHDGDIRECT
            IF VARTEST(H,-45,45) THEN
                SETVAR(I,1)
            ENDIF
;See if downwind is necessary, if not, go direct to base leg
            SETVAR(W,190)
            GOSUB CHKHDGDIRECT
            IF VARTEST(H,-45,45) THEN
LOOP7B:
                SETVAR(F,1)
                PLAY"HASH.VOC"
                IF VARTEST(V,1,1) THEN
                    PLAY"SJCSFO.V23"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 18390 Approach."
                    WAIT(4)
                    PRINT"Radar contact.  Descend and maintain 2000."
                    WAIT(4)
                    PRINT"ATIS information is available on 118.85."
                    WAIT(4)
                    PRINT"Expect vectors to Final for runway 19L ILS approach."
                    WAIT(4)
                    PRINT""
                ENDIF
                SETVAR(N,2000)
                GOSUB CLEARVARS
                GOTO LOOP8
            ENDIF
LOOP7A:
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V24"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 Approach."
                WAIT(4)
                PRINT"Turn right for downwind heading 010."
                WAIT(4)
                PRINT"Descend and maintain 2000."
                WAIT(4)
                PRINT"Expect vectors to final for runway 19L ILS approach."
                WAIT(4)
                PRINT"ATIS information is available on 118.85."
                WAIT(4)
            ENDIF
            SETVAR(M,10)
            SETVAR(N,2000)
            GOSUB CLEARVARS
            GOTO LOOP8
        ENDIF
        GOTO LOOP7C
    ENDIF
    IF VARTEST(C,10,31999)
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V25"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 Center."
            WAIT(4)
            PRINT"Please contact Approach on frequency 134.50."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP7C
;
;On the downwind leg
LOOP8:
    IF KEY("R") THEN
        IF VARTEST(F,1,1) THEN
            GOTO LOOP7B
        ENDIF
        GOTO LOOP7A
    ENDIF
    GOSUB FPAPCHK
    GOSUB TRAFFICCHK
    GOSUB COUNTER
    IF COM(134.50) THEN
        IF VARTEST(F,1,1) THEN
            GOTO LOOP8C
        ENDIF
;Check for when to turn base after downwind
        IF CYLINDER(17340,5060,8,9999) THEN
            GOTO LOOP8D
        ENDIF
        GOTO LOOP8
LOOP8C:
;Check for when to turn base if no downwind
        IF CYLINDER(17340,5060,0,9999) THEN
LOOP8D:
;See if procedure turn is required. If so, issue command & go direct to final
            IF VARTEST(I,1,1) THEN
                GOTO LOOP8B
            ENDIF
;See if base is necessary, if not, go direct to final leg
            SETVAR(W,190)
            GOSUB CHKHDGDIRECT
            IF VARTEST(H,-20,20) THEN
LOOP8B:
                SETVAR(G,1)
                PLAY"HASH.VOC"
                IF VARTEST(V,1,1) THEN
                    IF VARTEST(I,1,1) THEN
                        PLAY"SJCSFO.V26"
                    ENDIF
                    IF VARTEST(I,0,0) THEN
                        PLAY"SJCSFO.V27"
                    ENDIF
                ENDIF
                IF VARTEST(T,1,1) THEN
                    IF VARTEST(I,1,1) THEN
                        PRINT"Cessna 18390 Approach."
                        WAIT(4)
                        PRINT"Execute a standard Procedure Turn."
                        WAIT(4)
                        PRINT"Maintain 2000.  Contact San Francisco International Tower on 120.50."
                        WAIT(4)
                        PRINT""
                    ENDIF
                    IF VARTEST(I,0,0) THEN
                        PRINT"Cessna 18390 Approach."
                        WAIT(4)
                        PRINT"Maintain 2000.  Contact San Francisco International Tower on 120.50."
                        WAIT(4)
                        PRINT""
                    ENDIF
                ENDIF
                SETVAR(N,2000)
                GOSUB CLEARVARS
                GOTO LOOP9
            ENDIF
LOOP8A:
                PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                IF VARTEST(F,0,0) THEN
                    PLAY"SJCSFO.V28"
                ENDIF
                IF VARTEST(F,1,1) THEN
                    PLAY"SJCSFO.V29"
                ENDIF
            ENDIF
            IF VARTEST(T,1,1) THEN
                IF VARTEST(F,0,0) THEN
                    PRINT"Cessna 18390 Approach."
                    WAIT(4)
                    PRINT"Turn left for base heading 280."
                    WAIT(4)
                    PRINT"Maintain 2000.  Contact San Francisco International Tower on 120.50."
                    WAIT(4)
                ENDIF
                IF VARTEST(F,1,1) THEN
                    PRINT"Cessna 18390 Approach."
                    WAIT(4)
                    PRINT"Turn right for base heading 280."
                    WAIT(4)
                    PRINT"Maintain 2000.  Contact San Francisco International Tower on 120.50."
                    WAIT(4)
                ENDIF
            ENDIF
            SETVAR(M,280)
            SETVAR(N,2000)
            GOSUB CLEARVARS
            GOTO LOOP9
        ENDIF
        GOTO LOOP8
    ENDIF
    IF VARTEST(C,20,31999)
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V30"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 Approach."
            WAIT(4)
            PRINT"Please set radio to Approach frequency 134.50."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP8
;
;On the base leg
LOOP9:
    IF KEY("R") THEN
        IF VARTEST(G,1,1) THEN
            GOTO LOOP8B
        ENDIF
        GOTO LOOP8A
    ENDIF
    IF VARTEST(P,1,1) THEN
        GOSUB FPAPCHK
    ENDIF
    GOSUB TRAFFICCHK
    GOSUB COUNTER
    IF COM(120.50) THEN
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V31"
        ENDIF
        IF VARTEST(T,1,1) THEN
LOOP9A:
    IF KEY("7")
	VIEW(10,"SFOIAP.PCX")
    ENDIF
            PRINT"Cessna 18390 San Francisco International Tower."
            WAIT(4)
            PRINT"Cleared for landing on runway 19L, winds 190 at 5."
            WAIT(4)
        ENDIF
        IF VARTEST(G,1,1) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V32"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Line up for final and intercept localizer 108.90."
            ENDIF
        ENDIF
        IF VARTEST(G,0,0) THEN
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V33"
            ENDIF
            IF VARTEST(T,1,1) THEN
            PRINT"Turn left for final upon localizer 108.90 intercept."
            ENDIF
            WAIT(4)
        ENDIF
        IF VARTEST(P,1,1) THEN
            WAIT(10)
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V34"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"**ATTENTION** The Flight Plan Auto Pilot is about to disengage!"
            ENDIF
            SETVAR(P,0)
            GOSUB FPAPOFF
        ENDIF
        GOSUB CLEARVARS
        GOTO LOOP10
    ENDIF
    IF VARTEST(C,10,31999)
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V35"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 Approach."
            WAIT(4)
            PRINT"Contact San Francisco International Tower on 120.50."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP9
;
;On final, waiting for touchdown
LOOP10:
    IF KEY("7")
	VIEW(10,"SFOIAP.PCX")
    ENDIF
    IF KEY("R") THEN
        GOTO LOOP9A
    ENDIF
    GOSUB COUNTER
    IF VARMASK(ground,1) THEN
        GOTO LOOP11
    ENDIF
    IF COM(120.50) THEN
        IF CYLINDER(17340,5060,0,5) THEN
LOOP10A:
            IF GEARUP() THEN
                PLAY"HASH.VOC"
                IF VARTEST(V,1,1) THEN
                    PLAY"SJCSFO.V36"
                ENDIF
                IF VARTEST(T,1,1) THEN
                    PRINT"Cessna 18390 San Francisco International Tower."
                    WAIT(4)
                    PRINT"Please check landing gear status."
                    WAIT(4)
                ENDIF
            ENDIF
            IF JETENGINE() THEN
                IF GROUNDSPEED(200,999) THEN
                    PLAY"HASH.VOC"
                    IF VARTEST(V,1,1) THEN
                        PLAY"SJCSFO.V37"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 18390 San Francisco International Tower."
                        WAIT(4)
                        PRINT"Reduce speed for final approach."
                        WAIT(4)
                    ENDIF
                ENDIF
            ENDIF
            IF PROPENGINE() THEN
                IF GROUNDSPEED(150,999) THEN
                    PLAY"HASH.VOC"
                    IF VARTEST(V,1,1) THEN
                        PLAY"SJCSFO.V37"
                    ENDIF
                    IF VARTEST(T,1,1) THEN
                        PRINT"Cessna 18390 San Francisco International Tower.
                        WAIT(4)
                        PRINT"Reduce speed for final approach."
                        WAIT(4)
                    ENDIF
                ENDIF
            ENDIF
        ENDIF
        WAIT(10)
        GOTO LOOP10
    ENDIF
    IF VARTEST(C,10,31999)
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V38"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Francisco International Tower."
            WAIT(4)
            PRINT"Please keep radio on Tower frequency 120.50."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP10
;
;Touchdown!
LOOP11:
    GOSUB COUNTER
    IF COM(120.50) THEN
        IF VARTEST(A,10,31999) THEN
LOOP11A:
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V39"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 San Francisco International Tower."
                WAIT(4)
                PRINT"Turn off active runway on first available taxiway and hold."
                WAIT(4)
                PRINT"Contact San Francisco International Ground on 121.80."
                WAIT(4)
            ENDIF
            GOSUB CLEARVARS
            GOTO LOOP12
        ENDIF
        GOTO LOOP11
    ENDIF
    IF VARTEST(C,10,31999)
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V40"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Francisco International Tower."
            WAIT(4)
            PRINT"Please keep radio on Tower frequency 120.50."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP11
;
;Turned off runway and holding
LOOP12:
    IF KEY("R") THEN
        GOTO LOOP11A
    ENDIF
    GOSUB COUNTER
    IF COM(121.80) THEN
        IF GROUNDSPEED(0,0) THEN
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"SJCSFO.V41"
            ENDIF
            IF VARTEST(T,1,1) THEN
                PRINT"Cessna 18390 San Francisco International Ground."
                WAIT(4)
                PRINT"Welcome to San Francisco International."
                WAIT(4)
                PRINT"Cleared for taxi to terminal area.  So long."
                WAIT(4)
                PRINT"*** This concludes the adventure file ***"
                WAIT(5)
            ENDIF
            EOF
        ENDIF
        GOTO LOOP12
    ENDIF
    IF VARTEST(C,20,31999)
        PLAY"HASH.VOC"
        IF VARTEST(V,1,1) THEN
            PLAY"SJCSFO.V42"
        ENDIF
        IF VARTEST(T,1,1) THEN
            PRINT"Cessna 18390 San Francisco International Tower."
            WAIT(4)
            PRINT"Please contact San Francisco International Ground on 121.80."
            WAIT(4)
        ENDIF
        SETVAR(C,0)
    ENDIF
    GOTO LOOP12
;
;***************
;* SUBROUTINES *
;***************
;
COUNTER:
    ADDVAR(A,1)
    ADDVAR(B,1)
    ADDVAR(C,1)
    ADDVAR(D,1)
    ADDVAR(E,1)
    WAIT(1)
    RETURN
;
CLEARVARS:
    SETVAR(A,0)
    SETVAR(B,0)
    SETVAR(C,0)
    SETVAR(D,0)
    SETVAR(E,0)
    RETURN
;
FPAPCHK:
;Parameters: M = Desired Heading
;            N = Desired Altitude
    IF KEY("7")
	VIEW(10,"SFOIAP.PCX")
    ENDIF
    IF KEY("W") THEN
        SETVAR(P,1)
        SETVAR(heading_lock,1)
        SETVAR(altit_lock,1)
        PLAY"HASH.VOC"
        IF VARTEST(V, 1, 1) THEN
            PLAY"PTB.VYA"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"*** Flight Plan Auto Pilot is now engaged ***"
            WAIT(4)
            PRINT""
        ENDIF
    ENDIF
    IF KEY("E") THEN
FPAPOFF:
        SETVAR(P,0)
        SETVAR(autop_master,0)
        SETVAR(heading_lock,0)
        SETVAR(altit_lock,0)
        PLAY"HASH.VOC"
        IF VARTEST(V, 1, 1) THEN
            PLAY"PTB.VYB"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"*** Flight Plan Auto Pilot is now disengaged ***"
            WAIT(4)
            PRINT""
        ENDIF
    ENDIF
    IF VARTEST(P,1,1) THEN
;       Add MagVar and NorRot to Heading
        SETVAR(X,180)
        SETVAR(Z,32767)
        SETVAR(W,0)
        Y:=norrot+magvar
        IF VARTEST(Y,-32765,-1) THEN
            SETVAR(W,360)
        ENDIF
        Y:=norrot+magvar*X/Z-W+M
        IF VARTEST(Y,361,999) THEN
            Y:=Y-X-X
        ENDIF
        IF VARTEST(Y,-999,-1) THEN
            Y:=Y+X+X
        ENDIF
;       Convert Heading to a WORD
        SETVAR(Z,65534)
        SETVAR(X,360)
        IF VARTEST(Y,0,180) THEN
            head_lock_var:=Y*Z/X
        ENDIF
        IF VARTEST(Y,181,360) THEN
            head_lock_var:=Y*Z/X-Z
        ENDIF
;       Convert Altitude in feet to meters
        SETVAR(Y,305)
        SETVAR(Z,1000)
        X:=N*Y/Z
        altit_lock_var:=X
        SETVAR(autop_master,1)
    ENDIF
    RETURN
;
FSS:
    IF COM(122.20) THEN
        IF KEY("J") THEN
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"PTB.VYC"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 18390 Flight Service."
                WAIT(4)
                PRINT"You're routed SJC->SFO at 3000."
                WAIT(4)
                PRINT"Latest weather report showed winds from 0 at 0 above 3500."
                WAIT(4)
                GOSUB WXCOND
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(C,0)
            GOTO FSSDONE
        ENDIF
        IF VARTEST(L,0,1) THEN
            GOTO FSSDONE
        ENDIF
        IF KEY("X") THEN
            PLAY"HASH.VOC"
            IF VARTEST(V, 1, 1) THEN
                PLAY"SJCSFO.VYE"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 18390 Flight Service."
                WAIT(4)
                PRINT"You're cleared for deviation from plan."
                WAIT(4)
                PRINT"Radar service suspended.  Squawk 1200."
                WAIT(4)
                PRINT"Fly VFR while deviated."
                WAIT(4)
                PRINT"Contact us again when ready to resume flight as filed."
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(S,1)
            SETVAR(E,0)
            GOTO FSSVFR
        ENDIF
    ENDIF
    GOTO FSSDONE
FSSVFR:
    IF COM(122.20) THEN
        IF KEY("X") THEN
            PLAY"HASH.VOC"
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VYD"
                GOSUB FSSWHOV
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 18390 Flight Service."
                WAIT(4)
                PRINT"Radar service resuming.  Squawk 6404."
                WAIT(4)
                GOSUB FSSWHOT
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(S,0)
            SETVAR(C,0)
            GOTO FSSDONE
        ENDIF
        GOSUB COUNTER
        IF VARTEST(E,180,9999)
            PLAY"HASH.VOC"
            IF VARTEST(V,1,1) THEN
                PLAY"PTB.VYF"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 18390 Flight Service."
                WAIT(4)
                PRINT"Contact us again when ready to resume flight as filed."
                WAIT(4)
                PRINT""
            ENDIF
            SETVAR(E,0)
        ENDIF
    ENDIF
    GOSUB FPAPCHK
    GOTO FSSVFR
FSSDONE:
    RETURN
;
FSSWHOV:
    IF VARTEST(V,1,1) THEN
        IF VARTEST(L,0,0) THEN
            PLAY"SJCSFO.VYG"
        ENDIF
        IF VARTEST(L,1,1) THEN
            PLAY"SJCSFO.VYH"
        ENDIF
        IF VARTEST(L,2,2) THEN
            PLAY"SJCSFO.VYI"
        ENDIF
        IF VARTEST(L,3,3) THEN
            PLAY"SJCSFO.VYJ"
        ENDIF
        IF VARTEST(L,4,4) THEN
            PLAY"SJCSFO.VYK"
        ENDIF
    ENDIF
    RETURN
;
FSSWHOT:
    IF VARTEST(T,1,1) THEN
        IF VARTEST(L,0,0) THEN
            PRINT"Contact Ground on 121.80."
        ENDIF
        IF VARTEST(L,1,1) THEN
            PRINT"Contact Tower on 124.0."
        ENDIF
        IF VARTEST(L,2,2) THEN
            PRINT"Contact Departure on 121.3, expect vectors back to plan."
        ENDIF
        IF VARTEST(L,3,3) THEN
            PRINT"Contact Center on 134.15, expect vectors back to plan."
        ENDIF
        IF VARTEST(L,4,4) THEN
            PRINT"Contact Approach on 134.50, navigate back into the pattern."
        ENDIF
    ENDIF
    RETURN
;
WXUPDATE:
    ADDVAR(K,1)
    IF VARTEST(K,0,40) THEN
        GOTO WXEND
    ENDIF
    SETVAR(K,0)
    SETVAR(X,101)
    Y:=random/X
    X:=remainder
    IF VARTEST(X,0,999) THEN
        GOTO WXEND
    ENDIF
    SETVAR(X,101)
    Y:=random/X
    X:=remainder
    IF VARTEST(X,0,0) THEN
        SETVAR(Y,1)
        J:=J-Y
        IF VARTEST(J,-999,-1) THEN
            SETVAR(J,0)
        ENDIF
        IF VARTEST(J,9,999) THEN
            SETVAR(J,8)
        ENDIF
        X:=J
        IF VARTEST(X,-999,-1) THEN
            SETVAR(X,0)
        ENDIF
        IF VARTEST(X,9,999) THEN
            SETVAR(X,8)
        ENDIF
        cloud1cover:=X
    ENDIF
    SETVAR(X,156)
    cloud1top:=cloud1top-X-X
    Y:=cloud1bot+X
    IF VARTEST(Y,-9999,976) THEN
        SETVAR(Y,976)
    ENDIF
    cloud1bot:=Y
WXEND:
    RETURN
;
WXCOND:
    SETVAR(X,305)
    SETVAR(Z,100)
    Y:=cloud1bot*X/Z
    IF VARTEST(cloud1cover,0,0) THEN
        PRINT"Visibility 10 with clear skies."
    ENDIF
    IF VARTEST(cloud1cover,1,4) THEN
        PRINTVAR(Y,"Currently scattered clouds with a measured ceiling of ")
    ENDIF
    IF VARTEST(cloud1cover,5,7) THEN
        PRINTVAR(Y,"Currently broken clouds with a measured ceiling of ")
    ENDIF
    IF VARTEST(cloud1cover,8,8) THEN
        PRINTVAR(Y,"Currently overcast with a measured ceiling of ")
    ENDIF
    RETURN
;
CORRECTHDGCHK:
;
;Parameters: W = Opposite Desired Heading
;Variables : U = Current Heading
;            X,Y,Z = temporary
;Outputs   : W = Required Heading
;            H = Absolute value of Heading error in degrees
;
;   Compute good heading from radial
    SETVAR(X,180)
    W:=W+X
CHKHDGDIRECT:
    SETVAR(X,360)
    IF VARTEST(W,-800,0) THEN
        W:=W+X
    ENDIF
    IF VARTEST(W,361,800) THEN
        W:=W-X
    ENDIF
;   Compute current heading
    IF COURSE(0,0) THEN
    ENDIF
    U:=RESULT
;   Compute heading error regardless of Curr/Req Hdg values
    H:=U-W
    SETVAR(Y,-1)
    IF VARTEST(H,-999,-1) THEN
        H:=H*Y
    ENDIF
;   Compute heading error depending if Curr or Req heading is greater
    IF VARTEST(H,181,999) THEN
        SETVAR(Y,1)
        Z:=W+Y
        SETVAR(Y,360)
        IF VARTEST(U,Z,999) THEN
            H:=U-W-Y
            GOTO CHKHDGCONT
        ENDIF
        H:=U-W+Y
    ENDIF
CHKHDGCONT:
    RETURN
;
RADARCHK:
    IF XPNDR(6404) THEN
        GOTO RADARCHKA
    ENDIF
    PLAY"HASH.VOC"
    IF VARTEST(V, 1, 1) THEN
        PLAY"PTB.VYL"
    ENDIF
    IF VARTEST(T, 1, 1) THEN
        PRINT"Cessna 18390 Center."
        WAIT(2)
        PRINT"We have lost you off the radar."
        WAIT(2)
        PRINT"Please squawk 6404 unless told otherwise."
        WAIT(4)
        PRINT""
    ENDIF
    WAIT(10)
    GOTO RADARCHKB
RADARCHKA:
    IF VARTEST(RANDOM,0,300) THEN
        PLAY"HASH.VOC"
        IF VARTEST(V, 1, 1) THEN
            PLAY"PTB.VYM"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"Cessna 18390 Center."
            WAIT(2)
            PRINT"Radar check to follow..."
            WAIT(1)
        ENDIF
        IF ALTITUDE(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Altitude: ")
        WAIT(2)
        IF HEADING(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Heading: ")
        WAIT(2)
        IF COURSE(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Course: ")
        WAIT(2)
        IF AIRSPEED(0,0) THEN
        ENDIF
        PRINTVAR(RESULT,"...Airspeed: ")
        WAIT(2)
        PRINT ""
        IF VARTEST(V, 1, 1) THEN
            PLAY"PTB.VYN"
        ENDIF
        IF VARTEST(T, 1, 1) THEN
            PRINT"Radar check complete.  Thank you and so long."
            WAIT(2)
            PRINT ""
        ENDIF
    ENDIF
RADARCHKB:
    RETURN
;
;***************
;* ATC CHATTER *
;***************
;
TRAFFICCHK:
    IF VARTEST(RANDOM,0,2500) THEN
        IF VARTEST(O, 0, 0) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZA"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American 267 Heavy Center."
                WAIT(4)
                PRINT"Climb to FL340, traffic eastbound at FL320."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 1, 1) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZB"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Delta 1244 Center."
                WAIT(4)
                PRINT"At station passage, resume normal navigation. So Long."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 2, 2) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZC"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Cessna 2034 Center."
                WAIT(4)
                PRINT"Descend and Maintain 3000.  Contact Approach Control.  Good day."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 3, 3) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZD"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Yankee Cargo 662 Center."
                WAIT(4)
                PRINT"You're cleared for 12000."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 4, 4) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZE"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"United 3168 Heavy Center."
                WAIT(4)
                PRINT"Reduce speed to 210.  Descend and maintain FL180."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 5, 5) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZF"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American 267 Heavy Center."
                WAIT(4)
                PRINT"Please repeat that last request."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 6, 6) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZG"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"US Air Express Center."
                WAIT(4)
                PRINT"Be advised of significant turbulence in the area."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 7, 7) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZH"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American Eagle 2190 Center."
                WAIT(4)
                PRINT"Turn right for downwind.  Expect ILS vectors."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 8, 8) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZI"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Care Flight One Center."
                WAIT(4)
                PRINT"You're cleared on a direct visual."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 9, 9) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZJ"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"American 2143 Center."
                WAIT(4)
                PRINT"Descend and maintain 7000.  Continue to hold at the marker."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 10, 10) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZK"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Piper 6229 Center."
                WAIT(4)
                PRINT"Turn heading 080.  Maintain current altitude."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 11, 11) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZL"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Grand Tours 215 Center."
                WAIT(4)
                PRINT"Remain under 1000 to continue visual clearance."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 12, 12) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZM"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Delta 447 Center."
                WAIT(4)
                PRINT"Squawk 2831.  Expect radar check."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 13, 13) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZN"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Citation 220 Center."
                WAIT(4)
                PRINT"Climb to 15000.  Watch for traffic westbound."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 14, 14) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZO"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Delta 310 Heavy Center."
                WAIT(4)
                PRINT"Descend to 2500 and contact approach.  So long."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 15, 15) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZP"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Citation 220 Center."
                WAIT(4)
                PRINT"Turn heading 322. Maintain 16000."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 16, 16) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZQ"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"US Air 3351 Center."
                WAIT(4)
                PRINT"Expect vectors around storm cell."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 17, 17) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZR"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Continental 1144 Center."
                WAIT(4)
                PRINT"Proceed direct to outer marker and Hold."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 18, 18) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZS"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"United 337 Heavy Center."
                WAIT(4)
                PRINT"Prepare for handoff to approach when you reach 3000."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 19, 19) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZT"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Federal Express 662 Center."
                WAIT(4)
                PRINT"Expedite descent to 8000.  Report fuel status."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 20, 20) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZU"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"United 449 Center."
                WAIT(4)
                PRINT"Reduce speed to 190.  Contact Approach.  Bye."
                WAIT(4)
            ENDIF
        ENDIF
        IF VARTEST(O, 21, 21) THEN
            IF VARTEST(V, 1, 1) THEN
                PLAY"PTB.VZV"
            ENDIF
            IF VARTEST(T, 1, 1) THEN
                PRINT"Southwest 1221 Center."
                WAIT(4)
                PRINT"Maintain current heading and altitude."
                WAIT(4)
            ENDIF
        ENDIF
        PRINT""
    ENDIF
    ADDVAR(O,1)
    IF VARTEST(O, 22, 999) THEN
        SETVAR(O,0)
    ENDIF
    RETURN
