|
|
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.