|
|
1.1 root 1: .TH ATC 6
2: .CT 1 games
3: .SH NAME
4: atc \- air traffic controller
5: .SH SYNOPSIS
6: .B /usr/games/atc
7: .SH DESCRIPTION
8: .I Atc
9: presents air traffic on a cursor-controlled screen.
10: As the controller, you must shepherd it safely through the air space.
11: At the beginning of the game
12: .I atc
13: displays the takeoff/landing direction for each airport and
14: prompts for the game duration with:
15: .LR "< >" .
16: Enter a number from 16 simulated minutes (hard) to 99 (easier)
17: .PP
18: Options are
19: .TP "\w'-m=file 'u"
20: .BI \-u= file
21: Take airspace description from
22: .I file.
23: .PD0
24: .TP
25: .BI \-a= name
26: use the named airspace; default is
27: .LR Apple1 .
28: .TP
29: .BI \-s= seed
30: for a 32-bit random number generator
31: .TP
32: .BI \-t= time
33: Preset the game duration.
34: .TP
35: .BI \-p= file
36: save the play of the game in the named file
37: .TP
38: .BI \-m= file
39: play a `movie' of the saved game
40: .PD
41: .PP
42: In the display of the airspace
43: .ig
44: .ne24
45: .IP
46: .ta +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC +1vC
47: .EX
48: \&. 0 . . . . . . 1 . . . . . . . . . . . . . .
49: \&. . , . . . . . , . . . . . . . . . . . . . .
50: \&. . . , . . . . , . . . . . . . . . . . . . 2
51: \&. . . . , . . . , . . . . . . . . . . . . , .
52: \&. . . . . , . . , . . . . . . . . . . . , . .
53: \&. . . . . . , . , . . . . . . . . . . , . . .
54: \&. . . . . . . , , . . . . . . . . . , . . . .
55: \&6 , , , , , , , * , , , , , , , , , , , , , 3
56: \&. . . . . . . . , , . . . . . . , . . . . . .
57: \&. . . . . . . . , . , . . . . , . . . . . . .
58: \&. . . . . . . . , . . , . . % . . . . . . . .
59: \&. . . . . . . . , . . . , , . . . . . . . . .
60: \&. . . . . . . . , . . . , , . . . . . . . . .
61: \&. . . . . . . . , . . , . . , . . . . . . . .
62: \&. . . . . . . . , . , . . . . , . . . . . . .
63: \&. . . . . . . . , , . . . . . . , . . . . . .
64: \&4 , , , , , , , * , , , , , # , , , , , , , 5
65: \&. . . . . . . , , . . . . . . . . . , . . . .
66: \&. . . . . . , . , . . . . . . . . . . , . . .
67: \&. . . . . , . . , . . . . . . . . . . . , . .
68: \&. . . . , . . . , . . . . . . . . . . . . , .
69: \&. . . , . . . . , . . . . . . . . . . . . . 9
70: \&. . 7 . . . . . 8 . . . . . . . . . . . . . .
71: .EE
72: .DT
73: .tc
74: .LP
75: ..
76: .B % and
77: .B #
78: denote airports;
79: .B *
80: and
81: .B !
82: denote navigational aids (navaids); and
83: commas denote airways that link numbered entry/exit `fixes',
84: airports, and navaids.
85: Dots are separated by one mile, horizontally, vertically, and diagonally.
86: An airplane appears as a letter followed by its height in thousands of feet.
87: .PP
88: There are two kinds of planes: jets flying 1 mile per tick (15 seconds)
89: and props flying 1/2 mile per tick.
90: .PP
91: You must prevent various misfortunes.
92: Running out of fuel is serious.
93: So is a close encounter \- less than 3 miles horizontal separation
94: at a given altitude.
95: A plane
96: changing altitude is considered to be at both its old and new
97: altitudes.
98: A `boundary error',
99: leaving the airspace at the wrong place, not on an airway, or
100: at the wrong height, is also serious, but not as likely to be fatal.
101: .PP
102: The right side of the screen shows flight plans.
103: A typical
104: flight strip looks like:
105: .br
106: .B " Fj 7\->3 4 NE +"
107: .br
108: The first letter is the aircraft name,
109: the next letter is
110: .L j
111: for jet or
112: .L p
113: for prop.
114: The next field gives the plane's intentions: this one is
115: entering at (or is now at) fix 7 and leaving at fix 3.
116: The origin character tells where
117: the plane is (or will be when it enters), the destination is a fix
118: it wishes to go to.
119: (It will, however, continue on a straight path unless instructed
120: otherwise.)
121: Next is the altitude, in this case 4000 feet.
122: The bearing is a compass direction:
123: .LR N ,
124: .LR NE ,
125: etc.
126: The final character is the amount of fuel left,
127: .L +
128: for more than 10 minutes, otherwise
129: the number of minutes of fuel remaining.
130: Jets begin with 15 minutes of fuel, props 21.
131: .PP
132: At the top of the flight plans are listed planes that will
133: appear in the next minute, preceded by how many ticks (0-4)
134: they are away.
135: Planes may be
136: cleared for takeoff as soon as they are listed.
137: .PP
138: Commands are terminated by newline.
139: Backspace may be used to correct errors.
140: The following kinds of commands can be issued.
141: .IP $ \n()Mu
142: End the game (game normally ends after 26 planes)
143: .PD0
144: .TP "\w'ALNW 'u"
145: .B W
146: Print flight plan for airplane
147: .B W
148: .TP
149: .B XA3
150: .B X
151: will change altitude to 3000 feet
152: .TP
153: QA0
154: .B Q
155: will land (go to 0 feet altitude)
156: .Tp
157: .B HRE
158: .B H
159: will turn right until it is heading east
160: .TP
161: .B ALNW
162: .B A
163: will turn left until it is heading northwest
164: .TP
165: .B CTS
166: .B C
167: will turn south through the smallest angle
168: .TP
169: .B T*7
170: .B T
171: will take exit bearing for fix 7 at next navaid
172: .TP
173: .B P*%
174: .B P
175: will take landing bearing for
176: .B %
177: at next navaid
178: .TP
179: .B DH
180: .B D
181: will circle (hold) at next navaid
182: .TP
183: .B MR0
184: Abort pending hold, clearance, or turn for plane
185: .B M
186: .TP
187: .B J?
188: Cancel delayed commands for
189: .B J
190: .TP
191: space
192: Speed up the game by advancing 15 seconds
193: .PD
194: .PP
195: .I Climbing/descending.
196: Planes climb or descend 1000 feet per mile.
197: Climbing from 0 is a takeoff; descending to 0 is a landing.
198: The takeoff/landing direction for each airport is given.
199: A landing airplane must reach altitude 0 headed in the right
200: direction 1 mile before the runway.
201: No further commands may be given after a descent to 0,
202: as control then
203: rests with the tower.
204: If a plane lands
205: from the wrong direction, it will climb to 1000 feet
206: and issue a `go around' error.
207: While changing altitude, a flight strip reads like
208: .br
209: .B " Dp :\->2 7v3 S 9"
210: .br
211: which means at 7000 feet descending to 3000.
212: .PP
213: .I Turning.
214: Planes turn 45 degrees per mile.
215: Turns may be left
216: .L L
217: right
218: .L R
219: or to a specified direction
220: .LR T .
221: Thus
222: .L ULNE
223: tells plane
224: .B U
225: to turn to his left until it is heading
226: northeast.
227: Changes of direction are indicated in the flight strip:
228: .br
229: .B " Nj :\->5 5 S r W +"
230: .br
231: indicates that jet
232: .B N
233: is heading south, and will turn 90 degrees to the
234: right.
235: To cancel the remaining part of this turn, give the command
236: N)
237: .LR NR0 .
238: .ig
239: The Ann Arbor keypad used for +/- PAGE, cursor motion, etc., may be used to
240: supply the new bearing. The usual N/S/E/W correspondence is used:
241: ----------------
242: |-PAG|HOME|+PAG|
243: | NW | N | NE |
244: |----+----+----|
245: |-SCH| UP |+SCH|
246: | W |STRT| E |
247: |----+----+----|
248: |LEFT|DOWN|RGHT|
249: | SW | S | SE |
250: ----------------
251: ..
252: .PP
253: .I Navaids.
254: A plane may be directed to turn at a navaid or hold (circle) there,
255: Thus command `AH' holds plane A at the next navaid.
256: The flight strip for a plane that is to hold looks like
257: .br
258: .B " Ap :\->2 5 S * 7"
259: .br
260: During the hold, the
261: .B *
262: will become
263: .LR h .
264: Every incoming plane that will be landing holds at a
265: navaid unless the controller gives it other instructions.
266: .PP
267: The command
268: .B *
269: clears a plane to turn sharply to any known fix
270: at the next navaid.
271: The flight strip for
272: a plane cleared through a navaid (to fix 5, for example) looks like:
273: .br
274: .B " Hj .->2 5 S *5 +"
275: .br
276: A holding aircraft given a clearance will continue around to the
277: navaid, then immediately assume the specified bearing.
278: Turns cancel clearances.
279: .ig
280: 8. Designing new airspaces
281: The system airspaces are stored in /usr/rand/jim/atc/airspaces on the
282: VAX, and /mnt/jim/atc/airspaces on the PDP-11/45. Users may define their
283: own airspaces and use them (Section 2), or have them included at the end of
284: the system airspace file.
285: The coordinate system for an MxN screen is:
286: ---------------------
287: |0,0 M,0|
288: | |
289: | |
290: | |
291: | |
292: | |
293: | |
294: | |
295: | |
296: | |
297: | |
298: |0,N M,N|
299: ---------------------
300: The different objects on the screen are defined as follows:
301: Apple1
302: size: 15x24
303: airway: 1=(0,13) SE 8=(10,23)
304: airway: 0=(4,0) S 9=(4,23)
305: airway: 2=(14,15) NW 7=(0,1)
306: airway: 3=(0,9) NE 6=(9,0)
307: airway: 4=(14,7) SW 5=(0,21)
308: airport: %=(4,11) S
309: airport: #=(10,11) NE
310: navaid: *=(4,5)
311: navaid: *=(4,17)
312: The size field is restricted only by the size of the Ann Arbor screen. The
313: direction on an airway is the entry direction from the first fix; the
314: designer must ensure that each airway connects two entry/exit fixes, and
315: that each entry/exit fix is on an airway. If more than 20 entry/exit
316: fixes, 5 airports, or 5 navaids are desired, the program must be recompiled
317: after the change to EMAX, AMAX, or NMAX respectively in the source file
318: "ahdr.h".
319: 9. Things to come
320: Several additions are planned to the ATC simulation in the near
321: future. The most important is definition of the "Clearance Directive
322: List," a list of absolute locations on the screen and actions to take at
323: the location. The user will use this feature to establish plans for
324: airplanes without having to monitor for completion of each part.
325: Another major modification will enable ATC to be run by another
326: program, using a data transfer protocol designed to minimize the
327: communication requirements.
328: These features will be documented as they are implemented.
329: ..
330: .PP
331: .I Delayed commands.
332: Commands of the form
333: .br
334: .BI " @" location , command [, "command ...\fP]"
335: .br
336: stack up activities.
337: A location may be any fix or
338: a point offset from a fix, e.g.
339: .br
340: .B " @#sw3s2,ARE"
341: .br
342: which means at the point which can be reached by going three
343: miles SW from airport
344: .BR # ,
345: then two miles S, plane
346: .B A
347: should begin
348: a right turn until heading E.
349: The information command shows all delayed commands pending for that plane.
350: Note that delayed commands allow one to specify actions more
351: than one navaid ahead.
352: .ig
353: Flow control:
354: When a game is started, ATC looks for the file <airspace>.flow
355: in the directory /usr/rand/jim/atc to establish a traffic pattern.
356: For example, if the airspace is Apple3, it uses the file
357: /usr/rand/jim/atc/Apple3.flow .
358: The flow file contains one line for each legal path through the
359: airspace. Each line is left-adjusted, and consists of an origin,
360: the symbol "->" (for "goes to"), the destination, a space, and
361: the relative frequency of this path. The expected frequency for
362: this path is its relative frequency divided by the sum of the
363: relative frequencies for all the paths. Some examples are:
364: 1->5 5
365: 1->8 10
366: 2-># 10
367: 2->% 5
368: 2->6 5
369: %->% 5
370: #->% 10
371: Blank lines are ignored (for spacing).
372: Any path with no relative frequency is assumed to have frequency 0.
373: Things to come:
374: (1) There will be a capability for canned procedures.
375: ..
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.