Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (4.4BSD-Lite2)
Apropos / Subsearch:
optional field

ATC(6)                 BSD Reference Manual                ATC(6)

       atc - air traffic controller game

       atc -[u?lstp] [-[gf] game_name] [-r random seed]

       Atc lets you try your hand at the nerve wracking duties of
       the air traffic controller without endangering  the  lives
       of millions of travelers each year.  Your responsibilities
       require you to direct the flight of jets and  prop  planes
       into  and out of the flight arena and airports.  The speed
       (update time) and frequency of the planes  depend  on  the
       difficulty of the chosen arena.

       -u      Print the usage line and exit.

       -?      Same as -u.

       -l      Print  a  list  of  available games and exit.  The
               first game name printed is the default game.

       -s      Print the score list (formerly the Top Ten  list).

       -t      Same as -s.

       -p      Print  the path to the special directory where atc
               expects to find its private files.  This  is  used
               during the installation of the program.

       -g game Play  the  named  game.  If the game listed is not
               one of the ones printed from the  -l  option,  the
               default game is played.

       -f game Same as -g.

       -r seed Set  the random seed.  The purpose of this flag is

       Your goal in atc is to keep the game going as long as pos-
       sible.   There  is  no  winning  state, except to beat the
       times of other players.  You will need to:  launch  planes
       at  airports  (by instructing them to increase their alti-
       tude); land planes at airports (by instructing them to  go
       to  altitude  zero  when  exactly  over  the airport); and
       maneuver planes out of exit points.

       Several things will cause the end of the game.  Each plane
       has  a  destination  (see information area), and sending a

3rd Berkeley Distribution  May 31, 1993                         1

ATC(6)                 BSD Reference Manual                ATC(6)

       plane to the wrong destination is an  error.   Planes  can
       run  out of fuel, or can collide.  Collision is defined as
       adjacency in any of the three dimensions.  A plane leaving
       the  arena  in  any other way than through its destination
       exit is an error as well.

       Scores are sorted in order of the number of  planes  safe.
       The  other  statistics are provided merely for fun.  There
       is no  penalty  for  taking  longer  than  another  player
       (except in the case of ties).

       Suspending  a  game  is  not permitted.  If you get a talk
       message, tough.  When was the last  time  an  Air  Traffic
       Controller got called away to the phone?

       Depending  on the terminal you run atc on, the screen will
       be divided into 4 areas.  It should be stressed  that  the
       terminal  driver  portion  of  the game was designed to be
       reconfigurable, so the display format can  vary  depending
       the  version  you  are playing.  The descriptions here are
       based on the ascii version of the game.   The  game  rules
       and input format, however, should remain consistent.  Con-
       trol-L redraws the screen, should it become muddled.

              The first screen area is the radar display, showing
              the  relative  locations  of  the planes, airports,
              standard  entry/exit  points,  radar  beacons,  and
              "lines"  which  simply  serve to aid you in guiding
              the planes.

              Planes are shown as a single letter with  an  alti-
              tude.  If the numerical altitude is a single digit,
              then it represents thousands of  feet.   Some  dis-
              tinction  is  made  between the prop planes and the
              jets.  On ascii terminals, prop planes  are  repre-
              sented by a upper case letter, jets by a lower case

              Airports are shown as a number and some  indication
              of  the  direction  planes must be going to land at
              the airport.  On ascii terminals, this  is  one  of
              '^',  '>',  '<',  and  'v',  to  indicate  north (0
              degrees), east (90), west (270)  and  south  (180),
              respectively.   The  planes  will  also take off in
              this direction.

              Beacons are represented as circles or asterisks and
              a  number.   Their  purpose  is to offer a place of
              easy reference to the plane pilots.  See 'the delay

3rd Berkeley Distribution  May 31, 1993                         2

ATC(6)                 BSD Reference Manual                ATC(6)

              command' under the input section of this manual.

              Entry/exit  points  are  displayed as numbers along
              the border of the radar screen.  Planes will  enter
              the arena from these points without warning.  These
              points have a direction associated with  them,  and
              planes will always enter the arena from this direc-
              tion.  On the ascii version of atc, this  direction
              is  not  displayed.   It  will become apparent what
              this direction is as the game progresses.

              Incoming planes will always enter at the same alti-
              tude:  7000  feet.   For  a  plane  to successfully
              depart through an entry/exit point, it must be fly-
              ing  at  9000  feet.   It  is not necessary for the
              planes to be flying  in  any  particular  direction
              when they leave the arena (yet).

              The  second  area of the display is the information
              area, which lists the time (number of updates since
              start),  and the number of planes you have directed
              safely out of the arena.  Below this is a  list  of
              planes  currently  in  the air, followed by a blank
              line, and then a list of planes on the  ground  (at
              airports).   Each line lists the plane name and its
              current altitude, an optional  asterisk  indicating
              low  fuel, the plane's destination, and the plane's
              current command.  Changing altitude is not  consid-
              ered  to  be  a  command  and is therefore not dis-
              played.  The following are some  possible  informa-
              tion lines:

                   B4*A0: Circle @ b1
                   g7 E4: 225

              The first example shows a prop plane named 'B' that
              is flying at 4000 feet.  It is low  on  fuel  (note
              the  '*').   It's  destination  is Airport #0.  The
              next command it expects to do  is  circle  when  it
              reaches  Beacon #1.  The second example shows a jet
              named 'g' at 7000 feet, destined for Exit  #4.   It
              is just now executing a turn to 225 degrees (South-

              The third area of the display is  the  input  area.
              It  is  here that your input is reflected.  See the
              INPUT heading of this manual for more details.

3rd Berkeley Distribution  May 31, 1993                         3

ATC(6)                 BSD Reference Manual                ATC(6)

              This area is  used  simply  to  give  credit  where
              credit is due. :-)

       A command completion interface is built into the game.  At
       any time, typing '?' will list possible input  characters.
       Typing  a backspace (your erase character) backs up, eras-
       ing the last part of the command.  When a command is  com-
       plete,  a  return  enters it, and any semantic checking is
       done at that time.  If no errors are detected, the command
       is  sent to the appropriate plane.  If an error is discov-
       ered during the check, the  offending  statement  will  be
       underscored  and a (hopefully) descriptive message will be
       printed under it.

       The command syntax is broken  into  two  parts:  Immediate
       Only and Delayable commands.  Immediate Only commands hap-
       pen on the next update.  Delayable commands also happen on
       the  next  update  unless they are followed by an optional
       predicate called the Delay command.

       In the following tables, the syntax [0-9] means any single
       digit,  and  <&lt;dir>&gt;  refers to the keys around the 's' key,
       namely ``wedcxzaq''.  In absolute references,  'q'  refers
       to  North-West or 315 degrees, and 'w' refers to North, or
       0 degrees.  In relative  references,  'q'  refers  to  -45
       degrees  or  45 degrees left, and 'w' refers to 0 degrees,
       or no change in direction.

       All commands start with a plane  letter.   This  indicates
       the recipient of the command.  Case is ignored.

              - a Altitude:
                     Affect a plane's altitude (and take off).
                     - [0-9] Number:
                             Go  to the given altitude (thousands
                             of feet).
                     - c/+ Climb:
                             Relative altitude change.
                             - [0-9] Number:
                                    Difference  in  thousands  of
                     - d/- Descend:
                             Relative altitude change.
                             - [0-9] Number:
                                    Difference  in  thousands  of
              - m Mark:
                     Display in  highlighted  mode.   Command  is

3rd Berkeley Distribution  May 31, 1993                         4

ATC(6)                 BSD Reference Manual                ATC(6)

                     displayed normally.
              - i Ignore:
                     Do not display highlighted.  Command is dis-
                     played as a line of dashes if  there  is  no
              - u Unmark:
                     Same  as ignore, but if a delayed command is
                     processed, the  plane  will  become  marked.
                     This is useful if you want to forget about a
                     plane during part, but not all, of its jour-

              - c Circle:
                     Have   the   plane   circle   (clockwise  by
                     - l Left:
                             Circle counterclockwise.
                     - r Right:
                             Circle clockwise.
              - t Turn:
                     Change direction.
                     - l Left:
                             Turn counterclockwise (45 degrees by
                             - <&lt;dir>&gt; Direction:
                                    Turn  ccw the given number of
                                    degrees.  Zero degrees is  no
                                    turn.   A  ccw  turn  of  -45
                                    degrees is 45 cw.
                     - r Right:
                             Turn  clockwise   (45   degrees   by
                             - <&lt;dir>&gt; Direction:
                                    Same as turn left <dir>.
                     - L Left 90:
                             Turn counterclockwise 90 degrees.
                     - R Right 90:
                             Turn clockwise 90 degrees.
                     - <&lt;dir>&gt; Direction:
                             Turn to the absolute compass heading
                             given.  The shortest  turn  will  be
                     - t Towards:
                             Turn  towards  a  beacon, airport or
                             exit.  The turn is just an estimate.
                             - b/* Beacon:
                                    Turn towards the beacon.
                                    - [0-9] Number:
                                           The beacon number.
                             - e Exit:

3rd Berkeley Distribution  May 31, 1993                         5

ATC(6)                 BSD Reference Manual                ATC(6)

                                    Turn towards the exit.
                                    - [0-9] Number:
                                           The exit number.
                             - a Airport:
                                    Turn towards the airport.
                                    - [0-9] Number:
                                           The airport number.

       The  Delay  (a/@) command may be appended to any Delayable
       command.  It allows the controller to instruct a plane  to
       do  an  action  when the plane reaches a particular beacon
       (or other objects in future versions).

              - a/@ At:
                     Do the  given  delayable  command  when  the
                     plane reaches the given beacon.
                     - b/* Beacon:
                             This   is  redundant  to  allow  for
                             - [0-9] Number:
                                    The beacon number.

       Planes are marked when they enter the arena.   This  means
       they  are  displayed in highlighted mode on the radar dis-
       play.  A plane may also be either unmarked or ignored.  An
       unmarked  plane is drawn in unhighlighted mode, and a line
       of dashes is displayed in the command field of the  infor-
       mation  area.  The plane will remain this way until a mark
       command has  been  issued.   Any  other  command  will  be
       issued,  but  the  command  line  will return to a line of
       dashes when the command is completed.

       An ignored plane is treated the same as an unmarked plane,
       except  that it will automatically switch to marked status
       when a delayed command has been processed.  This is useful
       if  you  want to forget about a plane for a while, but its
       flight path has not yet been completely set.

       As with all of the commands, marking, unmarking and ignor-
       ing  will take effect at the beginning of the next update.
       Do not be surprised if  the  plane  does  not  immediately
       switch to unhighlighted mode.

              atlab1          a: turn left at beacon #1

              cc              C: circle

              gtte4ab2        g:  turn  towards exit #4 at beacon

3rd Berkeley Distribution  May 31, 1993                         6

ATC(6)                 BSD Reference Manual                ATC(6)


              ma+2            m: altitude: climb 2000 feet

              stq             S: turn to 315

              xi              x: ignore

       Jets move every  update;  prop  planes  move  every  other

       All planes turn a most 90 degrees per movement.

       Planes enter at 7000 feet and leave at 9000 feet.

       Planes  flying  at  an altitude of 0 crash if they are not
       over an airport.

       Planes waiting at airports can only be told  to  take  off
       (climb in altitude).

       The  Game_List  file  lists  the  currently available play
       fields.  New field description file names must  be  placed
       in  this  file  to be 'playable'.  If a player specifies a
       game not in this file, his score will not be logged.

       The game field  description  files  are  broken  into  two
       parts.   The  first part is the definition section.  Here,
       the four tunable game parameters must be set.  These vari-
       ables are set with the syntax:

              variable = number;

       Variable  may  be one of: update, indicating the number of
       seconds  between  forced  updates;  newplane,   indicating
       (about)  the  number of updates between new plane entries;
       width, indicating the width of the play field; and height,
       indicating the height of the play field.

       The  second  part of the field description files describes
       the locations of the exits, the beacons, the airports  and
       the lines.  The syntax is as follows:

              beacon:   (x y) ... ;
              airport:  (x y direction) ... ;
              exit:     (x y direction) ... ;
              line:     [ (x1 y1) (x2 y2) ] ... ;

       For  beacons,  a  simple  x,  y  coordinate  pair  is used

3rd Berkeley Distribution  May 31, 1993                         7

ATC(6)                 BSD Reference Manual                ATC(6)

       (enclosed in parenthesis).  Airports and exits  require  a
       third  value,  a direction, which is one of wedcxzaq.  For
       airports, this is the direction that planes must be  going
       to take off and land, and for exits, this is the direction
       that planes will going when they enter  the  arena.   This
       may  not seem intuitive, but as there is no restriction on
       direction  of  exit,  this  is  appropriate.   Lines   are
       slightly  different,  since they need two coordinate pairs
       to specify the line endpoints.  These  endpoints  must  be
       enclosed in square brackets.

       All  statements  are  semi-colon (;) terminated.  Multiple
       item statements accumulate.  Each  definition  must  occur
       exactly  once, before any item statements.  Comments begin
       with a hash (#) symbol and terminate with a newline.   The
       coordinates  are  between  zero  and  width-1 and height-1
       inclusive.  All of the exit coordinates must  lie  on  the
       borders,  and  all  of  the  beacons and airports must lie
       inside of the borders.  Line  endpoints  may  be  anywhere
       within  the  field,  so  long as the lines are horizontal,
       vertical or exactly diagonal.

              # This is the default game.

              update = 5;
              newplane = 5;
              width = 30;
              height = 21;

              exit:     ( 12  0 x ) ( 29  0 z ) ( 29  7 a ) ( 29 17 a )
                        (  9 20 e ) (  0 13 d ) (  0  7 d ) (  0  0 c ) ;

              beacon:   ( 12  7 ) ( 12 17 ) ;

              airport:  ( 20 15 w ) ( 20 18 d ) ;

              line:     [ (  1  1 ) (  6  6 ) ]
                        [ ( 12  1 ) ( 12  6 ) ]
                        [ ( 13  7 ) ( 28  7 ) ]
                        [ ( 28  1 ) ( 13 16 ) ]
                        [ (  1 13 ) ( 11 13 ) ]
                        [ ( 12  8 ) ( 12 16 ) ]
                        [ ( 11 18 ) ( 10 19 ) ]
                        [ ( 13 17 ) ( 28 17 ) ]
                        [ (  1  7 ) ( 11  7 ) ] ;

       Files are kept in a special directory. See the OPTIONS for
       a way to print this path out.

3rd Berkeley Distribution  May 31, 1993                         8

ATC(6)                 BSD Reference Manual                ATC(6)

       ATC_score       Where the scores are kept.

       Game_List       The list of playable games.

       Ed  James,  UC Berkeley: edjamesATucbvax.edu, ucb-

       This game is based on someone's description of the overall
       flavor  of  a  game written for some unknown PC many years
       ago, maybe.

       The screen sometimes refreshes after you have quit.

       Yet Another Curses Bug was discovered during the  develop-
       ment  of  this game.  If your curses library clrtobot.o is
       version 5.1 or earlier, you will have erase problems  with
       the backspace operator in the input window.

3rd Berkeley Distribution  May 31, 1993                         9