Dec 072017
Air traffic controller game.
File DULLES.ZIP from The Programmer’s Corner in
Category Games and Entertainment
Air traffic controller game.
File Name File Size Zip Size Zip Type
DULLES.001 16391 1400 deflated
DULLES.002 16391 2523 deflated
DULLES.003 16391 1461 deflated
DULLES.DAT 4783 824 deflated
DULLES.DOC 31627 11053 deflated
DULLES.EXE 147329 56036 deflated
DULLES.HLP 23350 2873 deflated
DULLES.REG 1968 650 deflated

Download File DULLES.ZIP Here

Contents of the DULLES.DOC file

Version 1.00
Copyright (C) 1988
John McKeown


DULLES TOWER is an Air Traffic Control (ATC) simulator that provides a
realistic representation of the responsibilities incurred while working
in a real airport control tower.

While using DULLES TOWER, you must guide inbound traffic to active
runways and vector departing aircraft toward their destinations, all
while maintaining proper separation. Five different skill levels are
available; additionally, each simulation is different, as the available
runways/destinations and number/type of aircraft change. It is your
responsibility to control each aircraft by issuing various keyboard
commands and tracking their progress and status on a very active
console display.

System requirements include:

- PC/XT/AT/386 with
- 384 K of RAM
- DOS 2.1 or higher
- Color graphics adapter and the
- 8 files included with this program:

DULLES.002 Opening graphics screens
DULLES.DAT - Aircraft/airport data
DULLES.DOC - Documentation
DULLES.EXE - Program
DULLES.HLP - On-Line Assistance
DULLES.REG - User registration form

All 8 files must be located in the startup directory; otherwise, you
will be greeted with a "MISSING FILES!" error and execution will be

DULLES TOWER is distributed as user supported shareware; if you like
and continue to use DULLES TOWER, please send a nominal donation to:

John McKeown
P.O. Box 277
Chantilly, VA 22021-0277

If you have questions or comments, feel free to contact me through
CompuServe 17531,3435.

Contributors of $18.00 or more will receive by return mail, a FREE
DULLES TOWER T-SHIRT! Please order by completing the questionnaire
within DULLES.REG and be sure to include your shirt size!


I. Introduction

A. The Airport
B. Some Vocabulary/Explanations

II. The Simulation
A. Skill Levels
B. The Screen Layout/Windows
1. Radar
2. Extended Range
3. Pending
4. Command
5. Status
6. Callsign
C. Command Set/Key Assignments

III. Using the Simulator

A. Near Miss/Mid-Air Collisions
B. Airspace Exits
C. Landing/Departures
D. Examples
E. Scoring

IV. Potpourri


The Airport

Dulles (DUL-les) International Airport is located west of Washington, D.C.
in northern Virginia. As one of the capital area's main airports, it
services thousands of travelers each year; as a result, scores of
aircraft must be controlled annually. Departing traffic are directed
to an active runway, cleared for takeoff, and issued departure vectors,
and eventually handed off to Dulles Departure Control. Conversely,
arriving aircraft must be directed to an active runway, cleared for an
approach, and cleared to land. This is precisely the simulated
scenario while using DULLES TOWER.

Some Vocabulary/Explanations

Every effort has been made to make this program as accurate as
possible. Since I've never been an Air Traffic Controller or a pilot,
certain liberties have been exercised to make up for a lack of
expertise. But there are a few things that I do know that may help to
get you started.

At the airport itself, there are 3 very long pieces of asphalt with
numbers on each end. For our purposes, we will assume that all runways
are at sea level. Because you can land or takeoff in either direction,
that means 6 runways are available. Each is referred to by the number
on each end. So what numbers are used? Stay tuned....

As the controller, you can order an aircraft to fly in a certain
direction by assigning it a heading. A heading is a number between 0
and 360 that corresponds to a compass direction. For example, if you
wanted a particular aircraft to fly straight east, you'd issue a
heading of 090; south and west would be headings 180 and 270,
respectively. The heading concept can be summarized by the following

325 045
northwest northeast

270 west 090 east

225 135
southwest southeast

Thus, you as a controller have 360 different headings to choose from.
How does this relate the runway numbers?

Runway numbers are based on the heading that a landing aircraft will
fly in order to land, minus the last digit. For example, let's assume
that a runway is number 09; simply add a zero to the end to get 090 as
the approximate heading you would assume to land. Because one piece of
pavement is available for landings in two directions, you would also be
able to land flying west (heading 270) on runway 27. These are the
numbers you will see on the end of each runway. For example,

Runways 09/27
09 27
->- -<-
Aircraft flying heading 090 Aircraft flying heading
preparing to land on 270 preparing to land on
runway 09. runway 27.

Major airports may have parallel runways and are distinguished by
suffixes of L for left and R for right. Dulles has six runways:
01L/19R, 01R/19L, and 12/30. Understanding the day's prevailing wind
patterns help you to understand why certain runways are open on one day
and closed another. By landing or taking off into the wind, a pilot
can effectively increase the amount of air moving over the plane's
wings or a helicopter's rotor blades. This tends to reduce the amount
of runway needed to takeoff/land. If the winds are calm, it's
theoretically possible to open runways in opposite directions (but
operationally, it would keep the laundromats busy!)

Thus, if you have a good grasp on headings and the runway numbering
system, you're ready to sit down at the console and start controlling


After typing DULLES at the DOS prompt, you will be greeted with the
opening screen/copyright notice. After reading the second screen,
simply press any key to view the available skill levels. Use the
up/down arrow keys on your keyboard to select a skill level.

Skill level 1 (STUDENT)

This level makes 5 of the 6 runways available, with a total of 7
aircraft to control throughout the simulation. Each departing aircraft
does not have to be directed to any specific destination. Also, at this
level, you control special planes; these planes never run out of fuel!
This is a great place to get familiar with the command set and the
console. It won't take you long to move onto other, more challenging
levels. Once all 7 aircraft have been handled, the simulation will

Skill level 2-5

These configurations are designed to add more realism to your
simulation. At these levels, you must not only successfully land
inbound traffic, but departing aircraft must be directed to their
assigned VOR (Very High Frequency Omnidirectional Range Station). The
VOR system will be explained shortly. Within this group of skill
levels, you must also keep an eye on the fuel level within each
aircraft. You may also see erroneous radar returns; these occasional
"equipment problems" will always seem to come up at the worst times.
Note that the number of aircraft you are assigned to control increases
with each skill level. Again, the simulation ends when all aircraft
are handled, or when one aircraft runs out of fuel or a mid-air
collision occurs.

The Screen Layout

There are many active windows on the DULLES TOWER console screen. The
overall screen looks something like this:

Extended Range Window - Shows inbound and outbound
radar returns. ---> .

Pending Window - Aircraft not shown on Main Radar.
American Airlines Flight 232 - awaiting takeoff ----> AA232
37 Delta - inbound. Note that aircraft with "N" ----> N8437D
callsigns are usually non-commercial and are
identified by the last three characters in their
callsign, e.g. "37 Delta".

Command Window - Keyboard commands to each aircraft
are echoed here. --->
Status Window - Shows active aircraft's:
- Current/Assigned Altitude ---> A: 0400 060
- Current/Assigned Heading ---> H: 130 140
- Current Airspeed/Fuel Level ---> S: 197
- Current Position shown as a
range/radial from Dulles. ---> 12.3 280
- Type of Aircraft/Destination ---> B727 IAD

- Current Status ---> ARRIVAL

42 X-RAY <---- Callsign Window - Shows active aircraft's callsign

Each one of the windows is more fully described below.

Radar Window -
The Radar Window is the biggest window on the screen; the name of the
game is to issue keyboard commands to the active aircraft to climb,
turn, etc. Aircraft shown in the Radar Window carry with it a datatag.
The datatag is a block of text that describes the aircraft's ID,
altitude (in hundreds of feet), if the return is climbing, descending,
level or low on fuel, and its airspeed (in tens of knots). A typical
datatag may look something like this:
/ AA424
021 19

This information tells you several things about the aircraft:

AA424 - Aircraft ID is American Airlines Flight 424. Note that
commercial traffic is identified with a two character company ID,
followed by the flight number. Some of the carrier abbreviations are
not intuitive; those used in the industry are:

Abbreviation Carrier
AA American Airlines
BA British Airways
CN Continental
DL Delta
EA Eastern
NW Northwest
PA Pan Am
TW Trans World
UA United Airlines

There are many more major airlines in the world, but these are the
major airlines that service Dulles.

021 - Aircraft is currently at 2100 feet
Climbin/Descending arrows may also be shown. If a red box is seen
in this position, the aircraft is low on fuel. Low fuel means the
aircraft will crash unless it reaches its destination
within approximately 10 minutes.
19 - Airspeed is about 190 knots.

Active runways are also shown in the Radar Window. Runways that are
open in both directions are shown as a string of dots. However, if a
runway is only available in one direction, chevrons will point in the
active direction. If a runway is closed in both directions, it will
not appear on the screen.

The blue triangles are navigational markers that help you line up
planes for final approach.

Active VOR gateways are shown in red around the perimeter of the Radar

Extended Range Window -
This box shows inbound/outbound aircraft not seen on the Radar Window,
as well as a scaled down version of the Radar Window.

Pending Window -
Aircraft that are inbound (but not yet visible in the Radar Window).
Aircraft IDs with a blue box to their left are those aircraft awaiting
takeoff. A dot in the center of the box means that you've cleared the
aircraft for takeoff and it is rolling down the runway. Note: if a red
box appears, that aircraft is low on fuel and must reach its
destination within 10 minutes!

Command Window -
Keyboard commands are echoed here.

Status Window -
As the controller, you select one aircraft as the ACTIVE aircraft.
This will be the recipient of all of your instructions until you switch
active aircraft. The ACTIVE aircraft's callsign will appear in the
Callsign Window. Generally, the Status Window is a rich source of
information about the ACTIVE aircraft's current status, intentions, and

Specifically, you can check the ACTIVE aircraft's:

1) - Current Altitude - Hundreds of feet
2) - Assigned Altitude (if different from current altitude) - Hundreds
of feet
3) - Climbing/Descending
4) - Current Heading - Degrees
5) - Assigned Heading (if different from current heading) - Degrees
6) - Airspeed - Knots
7) - Fuel Level (Skill Levels 2-5 only) where consumption starts when
the aircraft first appears in the Radar Window or as an aircraft
awaiting takeoff. For our purposes, 30 minutes represents a full
tank; note that I realize that that is somewhat unrealistic but I
tried to come up with just one more way to make things difficult!
8) - Range/Radial from Dulles - Miles/degrees
9) - Aircraft type - Possible aircraft are:

Manufacturer Model Abbreviation
Boeing 727 B727
Boeing 737 B737
Boeing 747 B747
Boeing 757 B757
Boeing 767 B767
Lockheed L-1011 L101
McDonnell Douglas DC-9 DC9
McDonnell Douglas DC-10 DC10
McDonnell Douglas MD-80 MD80
Beech Aircraft 99 BE99
Gates - Lear 23 LR23
Gulfstream America Gulfstream III G3
Dasault (Falcon) 50 DA50
Cessna 152 C152
Cessna 182 C182

You will discover that each aircraft has substantially different
performance characteristics (landing speeds and rates of climb/descent)
which makes for some interesting situations!

10) - VOR Destination - (Skill Levels 2-5 only) This is an excellent
opportunity to explain the VOR system and why each aircraft
has different destinations (and what do those abbreviations
mean anyway?)

VORs are simply radio beacons that broadcast continuously. There are
scores of them across the United States.

While the pilot is preparing the trip's flight plan, he/she identifies
the key VORs between Dulles and their final destination. By flying
from VOR to VOR, the pilot can play a game of "connect the dots". A
particular aircraft's position relative to a specific beacon can be
described by two pieces of information.

1) The VOR radial: The radial references the aircraft's direction from
the beacon in heading degrees. A 727 may report being on the "180
radial" from Casanova. This simply means that the aircraft is located
straight south from the Casanova VOR. Note that it says nothing about
the aircraft heading; the plane may be flying north, south, east, or
west, but at that particular moment, it is straight south from the

2) The VOR range: This information describes the distance from the
aircraft to the beacon. You might hear, "TWA 412 is 11.3 miles from
Martinsburg on a 325 radial". This translates to Trans World flight
412 is 11.3 miles northwest of the Martinsburg beacon.

As the controller, it is your responsibility to direct each aircraft to
the first VOR in their flight plan. DULLES TOWER has 7 different VORs
(destinations) around the airport. Departing aircraft may select from
any of these after takeoff. As the skill levels increase, so do the
possible VORs. In order to properly handle a given aircraft, you must
identify their destination, and route them off of the screen to the
proper VOR. To make things more difficult, I've arbitrarily selected
6000 feet as the exit altitude. If you direct a plane to an incorrect
destination or altitude, an "Illegal Airspace Exit" will be charged to
your performance record. Possible VORs are summarized below.

VOR Abbreviation Radial from Dulles


I realize that you may wonder why "EEY" is an abbreviation for
"Shawnee"; rest assured that I didn't make these up. On the air
navigation charts for the greater Washington area, that's the way it
really is. With so many VORs around the country, using the
abbreviations that would make the most sense would inevitably cause
duplication. So, that explains the two range/radial entry in the Status
Window. Now lets get back to the two final areas of the main screen.

11) - Current Status - Displays ACTIVE aircraft's current activity.
Possible entries are:

Status Meaning
RWY xxx Ready for takeoff, runway xxx
APP xxx On approach for runway xxx
FINAL xxx On final approach for runway xxx
ARRIVAL Arriving aircraft
DEPARTURE Departing aircraft

xxx represents one of the six runways at Dulles, those being runways
1L, 1R, 19L, 19R, 12, and 30.

- Callsign Window

The window located across the bottom is shows the callsign of the
active aircraft. To reiterate, in order to save time, controllers
refer to those aircraft with an identification beginning with "N" by
the last three characters in that identification. "42 X-RAY"'s
complete ID might be N4342X. To ensure accurate communications, the
international phonetic alphabet is also used to describe any letters
that may appear in the description. The following table may be

International Phonetic Alphabet
A - Alpha B - Bravo C - Charlie
D - Delta E - Echo F - Foxtrot
G - Golf H - Hotel I - India
J - Juliet K - Kilo L - Lima
M - Mike N - November O - Oscar
P - Papa Q - Quebec R - Romeo
S - Sierra T - Tango U - Uniform
V - Victor W - Whiskey X - X - Ray
Y - Yankee Z - Zulu

To summarize what's been explained so far:

- As the skill levels increase, so do the number of aircraft to handle
and the possible destinations.

- With skill levels 2-5, each aircraft must be vectored off of the
screen to the correct VOR at 6000 feet.

- The main screen is divided up into several windows, each describing a
different aspect of the simulation.

The Command Set/Key Assignments

As mentioned earlier, you must issue keyboard commands to the ACTIVE
aircraft by ordering turns, takeoffs, etc. Remember that each
simulation is different and there will be different active runways and
VORs for each simulation; however, the following commands apply to all
simulations, regardless of aircraft type or destination. Note that the
active aircraft's callsign is shown in the Callsign Window located at
the bottom of the screen.

To Change: Command Comments xxx

Heading* Lxxx Left turn Compass headings
Rxxx Right turn (000-360)

Altitude +xxx Climb Altitude - hundreds
-xxx Descend of feet (10-100)

Aircraft xxxxx Aircraft callsign (e.g. AL212 or 37D)

To Order:

Takeoff Txxx
xxx identifies runway (e.g. 1L or 30)
Approach Axxx

Landing C Clears approaching aircraft to land

* All aircraft turn at approximately 180 degrees/minute.

All of these commands must be followed by a carriage return, except for
switching the ACTIVE aircraft, which requires the callsign to followed
with a space. After the instruction is accepted, the COMMAND window
will briefly flash white and two tones will be heard. If an invalid
command is entered, all aircraft will ignore your instruction.

Function Keys

Eight of the 10 function keys have been given specific assignments.

F1 = Help: Once the simulation has been initiated, you may request
assistance at any time. On 8088 machines, these screens may appear to
paint rather slowly.

F2 = Pause: Not surprisingly, this temporarily suspends play; the
simulation is resumed by striking any key.

F3 = Sound: Toggles sound on/off.

F4 = Speed: This controls the tempo of the simulation. A default speed
index of 5 is assigned to each simulation. You may slow the pace to an
index equivalent to the skill level or increase the index to a maximum
of 9. For example, if you've selected skill level 3, the index can be
set from 3-9. If you choose to operate the simulator at a higher
level, you will be rewarded with more points in the REPORT section.

F5 = Save: You may save the current status of any simulation with this
key. A file will be created called DULLES.SAV that contains all of the
necessary data to reload at a later time.

F6 = Load: Loads a previously saved simulation.

F7 = Report: This feature temporarily suspends operation and presents
you, the controller, with a status report on your performance.

F8 = A:/>: Immediately switches the console to a simulated DOS prompt.

The function keys are disabled during the cycle of recalculation necessary
to track the progress of the aircraft. So if the keyboard seems
somewhat unresponsive, simply try again.


As you can imagine, the object of the exercise is to route all aircraft
to their desired destination. A few interesting surprises may occur
along the way.

Near Miss/Mid-Air Collisions

If two aircraft pass within a 3 mile lateral separation while also
within 1000 feet of vertical separation, a near miss situation will
occur. The radar traces of the aircraft involved will turn red and you
will hear an attenuation squawk. Unless you intervene, the aircraft
may continue on a collision course. Once they pass within 0.5 miles
and 500 feet, a mid-air collision will occur and the simulation will be

Air Space Exits

Also note that if aircraft do not exit the airspace correctly, an attention
tone will be heard. If the destination is incorrect, the correct VOR will
be superimposed on the datatag. Remember that exiting aircraft must have an
altitude of 6000 feet. Incorrect altitudes will be boxed in red at the time
of exit.

At the higher skill levels, the VORs are marked but not labeled. Thus,
it's up to you to learn your airspace!


All aircraft must be cleared for landing. Once they have been cleared
for the approach to a particular runway, sometime before touchdown,
they must also be cleared to land.

When clearing aircraft for the approach, best results are seen when
they are vectored directly toward the blue triangles indicating the
navigational marker for that runway. You may see improper in no
responses if wide radical turns are expected from each aircraft. Thus,
try to aim an aircraft directly at that imaginary line that extends
from the end of the runway called the glideslope. If they are heading
toward the glidepath and are cleared for the approach, the aircraft
will automatically turn toward the runway and descend at the proper
rate for landing. However, an occasional aircraft will abort the
landing, called a Missed Approach. You will spot these as the plane
overflies the end of the runway and levels at 200-1000 feet. This may
occur if the aircraft does not have ample room for landing, a
mechanical failure, etc. When these occur, simply vector the aircraft
for another approach.

Let me try to further explain the various commands with a few examples.


Example 1: Assume that N8437D enters the Radar Window at 8000 feet on a
heading of 125, and you want him/her to land on runway 12. Remember,
the object of the exercise is to help the plane find the glide slope.
Thus, you might command the plane to fly south until the glideslope is
intercepted and then automatically turn to a heading of 120 to line up
with the runway. Commands would read:

Command - Meaning
37D(space) - Makes 37 Delta the active aircraft.
R180(CR) - Orders plane to turn right to heading 180.
A12(CR) - Clears aircraft for the approach to runway 12.
C(CR) - Clears aircraft to land on approach runway.

Note: (space) means hit the space bar, (CR) means strike the carriage return
or the ENTER key.

Example 2: Suppose that the Status Window show you that Delta 002 is
ready for takeoff on runway 1 right, i.e. RWY 1R appear in the lower
right; also assume his destination is Casanova (CSN). These
instructions would read:

Command - Meaning
DL002(space) - Makes Delta 002 the active aircraft.
T1R(CR) - Clear aircraft for takeoff.

After the status window shows DEPARTURE, that flight is ready to accept
altitude/heading instructions. After takeoff, all aircraft will fly a
runway heading and automatically level at 2000 feet until further
directed. You must now direct it to its desired destination, Casanove,
marked CSN.

L225(CR) - Turns aircraft from current heading to 225 degrees.
+60(CR) - Orders aircraft to climb to exit altitude, 6000 feet.

You may have to fine tune each heading to ensure exit through the VOR
gate. Improper exits are indicated with squawks and "braps". Watch
and listen!!


When you generate a performance report (F7), a SCORE is calculated.
This is based on:

Points for each
+ 1000 aircraft handled

- 2500 minute in near miss situations
- 500 illegal airspace exit/destination
- 300 uncleard landing

The total is then multiplied by a speed coefficient, which is
calculated by taking the number of minutes you have simulated by the
number of minutes that have elapsed since the start of the simulation.
Thus, if you have the SPEED (F4) set at 8, you will simulate 15 minutes
of aircraft activity in about 10 minutes. So, the coefficient is about
1.5. In other words, the faster the game, the better your score.


DULLES TOWER is written in Borland's Turbo Basic, Version 1.10. To
date, it has been a fairly well behaved program and runs on most any
compatible. However, in testing this program on as many machines as
possible; a few notes may help.

1) Some autoswitching EGA video cards may need to be set to CGA
manually, instead of depending on the automatic switching of the card.
This has been the case on a few tested.

2> Some circa 1985 portable computers that have CGA video built into
the system board have had trouble with the opening screens. Program
execution seems OK once the program begins.

3> One unit tested used a monochrome card coupled with a utility that
allowed monochrome cards to emulate CGA; this one would not show the
help screens properly.

4> All VGA cards tested had no trouble with CGA emulation.

5> 4.77 Mhz 8088 based machines were painfully slow in loading and
screen painting. A math coprocessor helps significantly!

6) The program may trip on a few not-so-well behaved TSRs (Terminate
and Stay Resident or RAM resident) programs. Cleaning those out of
memory will help.

After typing this list, I thought "What a picky program!". Actually,
I've been very pleased with the compatibility, it's just that in good
conscience, I couldn't withhold any known problems. Anything that you
have to contribute, please let me know; I'd like to be able to pass it
on to others.

I hope that you enjoy DULLES TOWER. If interest warrants it, I may
write a new version with bug fixes, EGA support, wake turbulence, etc.
Your feedback and support is sincerely appreciated.

John McKeown
Chantilly, VA
July 1, 1988

 December 7, 2017  Add comments

Leave a Reply