Information on the SCO port

General Information















                                        FLY8

                                  Flight Simulator

                                  Eyal Lebedinsky

                              eyal@ise.canberra.edu.au


































                                        FLY8

                                  Flight Simulator

                                  Eyal Lebedinsky

                              eyal@ise.canberra.edu.au







            1.  Introduction

            This program is a flight simulator. It puts more emphasis on
            the dynamics than on the cosmetics: just wire-frame. It  can
            run  on many machines as it was written for portability. The
            distribution includes support  for  msdos,  mswin  and  unix
            (used to work on Amiga but I have no access to one anymore).
            Other ports were done but I did received  any  sources  back
            yet.   On Intel based systems a 386DX is the minimum for any
            decent performance. A fast video controller is a boon as the
            program, when running on a 386DX/40Mhz, spends 70-80% of its
            time pushing pixels. On non-intel machines you can  try  and
            see if it is fast enough...

            As  of this release the msdos version requires a 386 or bet-
            ter. If I get enough requests then I will compile it for 286
            but it is too slow on such machines most of the time anyway.

            The program was written  for  fun.  I  borrowed  ideas  from
            everywhere  and  hope to hear some more. The design is based
            on a program I wrote more than 20  years  ago  at  uni  (the
            Technion).  I  had  an  excellent  coach (Danny Cohen) and I
            still have fond memories of those times. But now my computer
            has  more  than  24Kbytes of memory! so Fly8 is written in C
            (Fly8 was the name of the last version of the original  pro-
            gram  dated  12-JAN-1974, it was written in PDP15 assembly -
            macro15 - for a VT15 graphics processor).

            The actual purpose of this program is to give me an opportu-
            nity  to  experiment  with various aspects of flight simula-
            tion, but mostly with (1) the HUD symbology (or, more gener-
            aly,  with  man-machine interaction) and (2) the studying of
            basic aerodynamics (as well as general real time  simulation
            techniques). This explains why there are so many HUD options
            and such a proliferation of flight dynamics models, as  well
            program means that it must be distributed in source form.

            On  the  PC  the  basic  screen  drawing  uses  the standard
            Microsoft graphics library. It is OK but not very fast;  the
            main  advantage is that it will support most video adapters.
            The fast graphics driver was built from  the  routines  from
            DJGPP  with much personal additions. The flight dynamics was
            influenced by an SGI program I saw and ACM. The  timer  rou-
            tines  come from a microsoft journal article, the user-input
            routine (notice how you can use arrow keys etc? use up-arrow
            to retrieve history.. I will document it one day) comes from
            DDJ (or was it CUJ? author name is Bob Bybee). Well, I avoid
            re-inventing  wheels  unless it is fun. The program compiles
            with Microsoft C, Borland C, gcc on a  friend's  Amiga,  Sun
            and Linux and I hope on other platforms; it is written to be
            portable. It runs under MSDOS, MSWindows, Amiga and unix.

            What? what? WHAT? you want to see some action? OK. just skip
            to the next chapter then come back.

            The full set of commands is detailed in the 'commands' chap-
            ter. Here we will look at the program areas in general.

            There are two rather distinct kinds  of  commands  that  one
            uses:  commands  that drive (fly) the game and commands that
            configure, set options and so on (which are used  with  less
            urgency).  It  was  attempted  to get the important commands
            into the keyboard (a one keystroke command) while the others
            go  into  the  main menu system (accessed with the Esc key).
            Some of the urgent commands may bring up a  menu  which  you
            may ignore if you know the keystokes.

            The  urgent commands will control the vehicle flight and the
            other subsystems (radar, HUD, HDD, weapons etc.).  You  will
            notice  early that the program lacks the traditional instru-
            ment panel: it is intended to be driven  from  the  HUD  and
            other digital displays.

            The vehicle is also driven by a pointing device (a mouse or,
            preferably, a joystick). It will run off the keypad when you
            have  no such device.  The pointer is used only for steering
            control although the buttons  can  be  mapped  to  auxiliary
            functions.

            The  display area is typicaly divided into the main view and
            a number of secondary Head Down Displays (HDD).  The  design
            has  a dozen or so on-board instruments that generate visual
            data; you select which ones should  be  displayed  on  which
            HDD.  The main view is what you see through the cockpit. The
            HUD can be overlaid onto this view (as is the  case  with  a
            real  plane).  Other  data may also be shown here for conve-
            nience.
            the  'v'  command to see it). The 'windows' menu handles the
            screen format and configuration.

            The program generates various messages  as  it  goes  along,
            these  will  appear at the bottom of the main view and stack
            up. Each message has a time-out for deletion but you can use
            'c'  to  clear the lot. When the program needs user input it
            will open a prompt line at the very bottom of the main  view
            (in  magenta  color)  where your data will show. You can use
            the normal editing keys while entering data here -  previous
            entries  are  accessible with the up/down arrows. See 'input
            line editing' later.

            You may find some of the commands/options  strange  (if  not
            outright  insane);  this  will  be  related  to  my taste or
            (mostly) to much history and quick fixing that did not  com-
            pletely  settle  yet.  I have looked at other programs (like
            F3, JF2, ACM and SGI f.s.) but this was after the first ver-
            sion of this program was finished, so some good ideas missed
            the bus this time. In the future I hope to polish  the  user
            interface  (especialy  after  other people get to use it and
            express an opinion).

            Being as the program is still evolving you  will  find  some
            areas less complete than others. I hope that there is enough
            of it to make it useful. I expect to see  contributions  (of
            ideas  and  code)  from  other  people;  I  will continue to
            develop the program (at least for a while) and would like to
            see it take it's own path in life [heavy stuff :-)].




            2.  Installation

            On  most  environments all you need to do is unpack the dis-
            tribution archive into your prefered directory and  you  are
            set. Make sure you un-archive the parts such that the direc-
            tory structure is maintained.  Refer to the README file  for
            specific instructions, you will probably want to enable sup-
            port for your graphics card (on MSDOS).

            Another thing you will want to do is  select  your  prefered
            pointing device (the joystick is best). Examine the examples
            in fly.ini and read the later chapter about the options.




            3.  Quick start

            In this chapter the symbol '@' is used to denote  the  Enter
                 fly8 z5

            This starts the program in a demo setting and is  useful  to
            see if all is OK. It is also great as a screen blanker :-)

            If the fly.ini options are correct then your plane will take
            off and start looking for action.  Some  messages  are  dis-
            played  during  startup - these will disappear after a short
            while. The screen will show a simple view of the  runway,  a
            ground grid (in gray) and an overlaid HUD.

            If  there is no picture, try hitting 'Enter'. Then try 'Esc'
            'x' 'y'. If no luck then kill it  (or  reboot  on  msdos,  I
            guess).  Now  check the fly.log file which may have an error
            message in it.

            On msdos it was found that with some accelerator  cards  the
            program  hangs (don't know why, I use the MicroSoft C graph-
            ics library and most advanced cards should emulate VGA). Try
            installing the correct video VESA bios.

            Do  not  run  this  program  in a dos window of MSWindows or
            OS/2, use the MSWindows version for MSWindows  (although  it
            probably  will  work fine, there is a chance of locking your
            machine up by not doing so). In a full window  OS/2  session
            it was reported to work OK.

            The scene will include you and 5 other planes (drones). Your
            auto-pilot will track and shoot the drones. As they are shot
            down,  new  ones  take  off.  To  take control back from the
            autopilot hit Shift-C. Now use  the  joystick  (or  whatever
            input device you choose) to fly the plane. One mouse or joy-
            stick button shoots (same as F1). When the target is in  the
            correct  position  the autopilot will shoot (unless you tell
            it not to with 'k'). The idea is to fly your plane  so  that
            the  target  is inside the aiming reticle (the small circle)
            and then shoot. A SHOOT cue will flash when your aim is cor-
            rect.

            You  may  want  to know the current settings (like throttle,
            flaps   etc.)    Turn   on   the   'panel'   display    (Esc
            hud/options-2/panel).  The 'Esc' key activates the menu sys-
            tem. Most selections can be used as a short sequence of  the
            associated letters; the last sequence can be entered as Esc-
            u-2-p-Esc. The hud menu is also directly  available  as  the
            'u' command.

            This  is how you fly the plane: moving the joystick sideways
            will start the plane rolling. The further you move the stick
            the  faster  the  roll.   Once you center the stick the roll
            will stop. In order to fly level you need to roll the  other
            way until you are level and then center the stick.
            plane DOWN, pulling the stick back will pull  the  nose  up.
            When  the  stick  is  centered  the plane will maintain it's
            climb angle (pitch).

            So far we rolled and pitched but we did  not  yet  turn.  In
            order to turn one needs to use both controls. To turn right,
            first roll to the right, then pull the plane 'up';  at  this
            point  'up'  is actualy 'right'.  Remember that the joystick
            controls the plane relative to  itself  (the  pilot  if  you
            wish)  and  NOT relative to the ground. Once you turn in the
            desired dirction you can roll left to resume level flight in
            the new heading.

            Because  the plane has weight, if you roll and start turning
            the plane will also start falling down (the wings no  longer
            support  the  full  weight of the plane) so a realistic turn
            will call for a moderate roll and not a full 90 degrees. The
            harder you will pull the stick, the faster you will turn and
            the larger roll you should execute to maintain level  during
            the turn.

            You  probably  do  not want more instructions at this 'quick
            start' section, not to mention that I never  flown  a  plane
            and  am not qualified for much in the way of flight instruc-
            tion. Any volunteers for writing a flight manual chapter?

            Knowing how to fly the plane is not enough, you also need to
            know  how  to  participate  in the game (fight). Actualy, in
            order to start winning you will need to be able to fly with-
            out  thinking,  you  will  need your logic powers to control
            your situation and plan your moves.

            Your strategy is to avoid being hit and  try  and  kill  all
            enemy planes. There it is, as simple as can be. I wonder why
            people fill books with chat about Basic Flight and Air  Com-
            bat Maneuvering :-)

            Now  a  quick look at controlling other equipment. For take-
            off, release the wheel brakes ('b') and  set  full  throttle
            ('1')  or  even light the afterburner (a few hits on the '.'
            key). You may want to set the flaps (a few ']',  then  reset
            with  '[')  but  it  is not necessary. At a speed of 150-200
            pull the nose up gently (not more than  10-15  degrees)  and
            wait for takeoff. After you gain some high (but rather soon)
            retract the landing gear ('g'). There you are in the air. Do
            not  try a sharp turn too soon as you may loose altitude and
            hit the ground, unless you are experienced with this sort of
            thing.

            To  land,  reduce  speed and approach the runway at a steady
            descent. Just before touchdown reduce  the  descent  to  the
            bare  minimum  (don't forget to lower the landing gear ('g')
            have -100 power showing; this is not always available). When
            your  speed  is low enough engage the wheel brakes ('b') and
            towards the end idle your  engines  ('0')  and  release  the
            speed  brakes  ('+').  Once you are stationary on the ground
            with the engine idle your fuel will start to be replaced and
            finally your wepons will be replaced and your damage will be
            reset.

            When flying, use 'r' to switch the radar on and off, use 'w'
            to select your weapon and use 'v' to switch to a map view of
            the world (with you at the center) and back to normal  view.

            This should do you for starters.

            While  we  are here, do 'Esc' 'i' 'Enter'. Some numbers will
            show at the top of the screen. The first is the  total  time
            (in  milliseconds)  for  one frame, the second is the video-
            drawing time. If the total time goes over 100 often then you
            should  buy  a faster machine (actually, if it is the second
            numbers that dominates, a faster video card may be a  better
            investment). If it stays under 60-70 then all is fine.

            On  MSDOS, if you have a TsengLab ET4000 based card then try
            running

                 fly8 dvgrfast:et4k Vgret4k m800x600x256 z5

            and if it works you will notice the speedup. Other cards are
            supported,  check  the  readme  for  details.  The  standard
            Microsoft  library  does  not  do  double  buffering   above
            640x350x16  (even  in  C8);  don't  know why - the memory is
            there. You may wish to edit the  file  'fly.ini'  with  your
            preferred  setup  so that you will not need to specify it in
            the future.

            As of this release you can use a VESA mode, as in

                 fly8 dvgrfast:vesa Vgrvesa1p m800x600x256 z5

            it will perform well if it works. If you can load your  VESA
            BIOS into ram then do so, it often is much faster. If you do
            not have a VESA BIOS  supplied  with  your  card  then  look
            around for one. There is at least one package (the universal
            vesa driver UNIVBE) which should work on most cards.

            To exit hit 'Esc' 'x' and 'y'.




            4.  Commands Reference

            menu.

            Some commands are used only when the 'keypad' is selected as
            the  pointing  device for flying. Otherwise the commands are
            grouped here by their physical location and organized alpha-
            betically.

            The  program  usually  runs  with  the NumLock engaged which
            means that the keypad keys duplicate the digits 0 through  9
            and the period '.'.

            There  is  no  current facility to redefine the usage of the
            keys but the keyboard macros can be of use here.  See  under
            F7/F8.

            4.1  Alphabetic Keys

            Most  commands  toggle  their  function  on/off,  some cycle
            through modes.

                 A    select aiming reticle mode.  (cycles)   [obsolete]
                      This  is  used for experimenting with various LCOS
                      formulae and will be gone once it settles down. At
                      this  point  the  calculations are based on linear
                      motions, it should be modified to  follow  an  arc
                      instead.  The  setting  is  shown  as  'Mn' in the
                      'modes' screen in the 'radar' part.

                      0    no acceleration correction

                      1    0.5 second correction

                      2    1.0 second correction

                      3    t/2 seconds  correction  (t=time  to  impact)
                           (default)

                      4    t*t/2 seconds correction

                 b    Wheel  brakes (toggle). Can be applied at any time
                      but only effective when on the ground. In  reality
                      these  should  not  be operated at high speed (use
                      speed brakes and reverse thrust for  initial  slow
                      down).

                 c    Clear text area. By now there is no text area any-
                      more so this is used for the auxiliary function of
                      removing  all outstanding messages. If the windows
                      boundary got dirty then use the Screen.Clear  menu
                      option to completely redraw the screen.

                 C    Chase the locked target (toggle) This is the auto-
                      airport perimeter. If  there  are  ground  targets
                      then  these  will  be  chased  and  the plane will
                      crash! This mode is activated by the command  line
                      option 'z'. If the kill-mode is enabled ('k') then
                      the auto-pilot will fire at the target.

                 D    Descend the parachute. After you eject it may take
                      a  while  to  get  to the ground. You can pass the
                      time by looking around (use the  arrow  and  F5/F6
                      zoom  keys),  or you can jump to the landing phase
                      with this command. If you land before  your  plane
                      crashes  then you will have to wait (a WAIT notice
                      will be shown).

                 d    Declutter the HUD. This will remove some HUD items
                      that  get  in  the way when you are in a dogfight.
                      You can use  the  Hud.Parts  menu  to  selectively
                      remove HUD items.

                 E    Eject.  If  your  plane is not dead, your ejecting
                      will  send  it  crashing.   You  are  then  on   a
                      parachute  descending  slowly. Use 'D' for a quick
                      descent.

                 f    Select radar target-acquisition mode (cycle). Con-
                      trols the manner by which the radar selects a tar-
                      get as explained later in the relevant section.

                 g    Landing gear up/down (toggle). You can't raise the
                      gear while on the ground.

                 h    Help (also '?')

                 i    Intelligence:  identify  all visible targets (tog-
                      gle) This is what makes this program  better  than
                      the real thing... in this mode all visible targets
                      are identified even when outside of the HUD  area.
                      You need to have HUD data mode enabled to get info
                      about the targets. The aiming  reticule  will  not
                      show when in this mode.

                 j    Radar sees only real pilots (ignores drones) (tog-
                      gle). The program can generate drones  for  target
                      practice.  If  you  want the radar to ignore these
                      and only show (and select) real  planes  then  use
                      this  command.   There  are other pilots only when
                      you are networked.

                 k    Kill- auto shoot when ready (toggle). When a  tar-
                      get  is in range and in correct position the auto-
                      pilot will flash a SHOOT cue.  In  this  mode  the
                      selected  weapon  will be fired at this point. The

                 l    Lock  target (toggle) The radar can operate in two
                      modes, either it  continuously  selects  a  target
                      according  to  the  designated  target acquisition
                      mode or it stays locked on the current one. In the
                      locked  mode,  the  first  selected target will be
                      locked on and no more searching will be done. When
                      not  locked the target designator will be shown as
                      a broken box. You  can  use  the  un-lock  command
                      (usually attached to one of the buttons and to the
                      space-bar)  to  release  the  current  target  and
                      acquire a new one.

                 m    Show   general   program   status.  (toggle)  This
                      replaces the numerous mode indicators that  planes
                      have.

                 M    Set  the  virtual buttons shift mode. This command
                      is expected to be  entered  from  a  macro  so  NO
                      prompting  is  done  to  the user, you will be now
                      typing blind. You will enter a list of  characters
                      which  will  change  the  buttons  mode. The first
                      unrecognized character will terminate this command
                      (it is good practice to use the Esc key for that).

                      0    The following commands will enable the desig-
                           nated mode.

                      1    The  following commands will disable the des-
                           ignated mode.

                      2    The following commands will toggle the desig-
                           nated  mode. This is the default at the start
                           of this command.

                      a    Set the Btn-Alt mode.

                      c    Set the Btn-Ctrl mode.

                      p    Set the Btn-Special mode.

                      s    Set the Btn-Shift mode.

                      x    Disable all modes  and  enter  'enable'  mode
                           (same as '1' above).

                      *    Quit without changing the modes.

                 o    Observer   select.  See  the  world  from  another
                      object's point of view. Also  useful  for  just  a
                      list  of  the objects. The list of current objects
                      is presented. Hit Enter  to  abort  or  select  an
                      object.  The selection 'c' will return you to your
                      list, piloted planes have a 'c'  and  your  target
                      has  an 'l'. Note that you cannot use this command
                      if networking is active. Also as objects come  and
                      go,  by  the  time  you  select  an  object  (by a
                      sequence number in the list) it may have moved  up
                      the  list  - you end up with the wrong object. The
                      command is not considered important enough to make
                      it any more robust.

                 O    As 'o' but also shows minor objects.

                 p    Pause.  Will not work when net is active (toggle).
                      The "Pause" message tells you that  you  are.  Use
                      'p'  again  to  resume  (which  should  clear  the
                      "Paused" message).

                 P    Report a button press. The next character must  be
                      a button name.

                 q    Quiet  (sound) mode. (cycle) Sets the sounds level
                      to one of the following. Note that the independent
                      'aural  alarm' option can be used to turn the nag-
                      ging alarms on/off.

                      0    no sound.

                      1    only shoot/hit/alarms sounds (default).

                      2    all sounds and  effects.  For  now  the  only
                           effect is the engine noise.

                 r    Activate radar (toggle)

                 R    Report  a  button release. The next character must
                      be a button name.

                 s    Will show some  stats.  Following  that  list   is
                      given  a summary of objects currently active (does
                      not include the landscape objects).

                 S    Resupply plane: full stores and fuel,  reset  dam-
                      age. This is a cheat!

                 u    Hud configuration. see 'hud commands' later. Iden-
                      tical to the main menu 'hud' function.

                 v    Select normal/alternate view (toggle). Will  bring
                      the  designated alternate instrument into the main
                      view. The alternate view is  defined  through  the
                      window  configuration  menu. Note the view name at
                      the top right corner of the screen.

                 W    Remove all weapon  stores.  The  plane  manoeuvres
                      better  this  way.  You can still use the weapons,
                      the counters will just go negative.

                 x
                      Calibrate pointer. Mainly for joystick. When  Fly8
                      starts  it  sets the joystick to an 'uncalibrated'
                      mode. You now need to play the  stick  to  all  of
                      it's  positions,  which  means move the x and y to
                      the edges, move the throttle to both ends and move
                      the  FCS  hat  to all positions. Finally leave the
                      stick centered, the throttle at the position which
                      you want to be the point where AB starts and leave
                      the hat centered. Now hit 'x' and the program will
                      re-calibrate itself.

                      After  playing  for  a while you can again hit 'x'
                      but you will have to take your hards off the stick
                      and  reposition  the throttle before doing so (and
                      you MUST have played for a while so that the  full
                      extent of the controls was used).

            4.2  Symbol Keys

            These  are  the  rest  of the keys on the main keyboard. For
            clarity each key's name is spelled out. If it  is  allocated
            then the function follows.

                   [back del]

                   [escape]          invoke the menu system

                   [space]           release radar lock

                 ` [grave accent]

                 - [hyphen]          see keypad '-'

                 = [equals sign]

                 \ [back slash]      used to reset the trim to nill.

                 [ [l-bracket]       less flaps

                 ] [r-bracket]       more flaps

                 ; [semicolon]

                 ' [quote]

                 , [comma]

                 / [slash]           see keypad '/'

                 ~ [tilde]

                 ! [bang]            shell  to  system.  May not restore
                                     some  environment  parameters   and
                                     pallette.   Use  'exit'  to resume.
                                     Not implemented on windowed enviro-
                                     ments - just open another window if
                                     you need so...

                 @ [at symbol]

                 # [hash]

                 $ [dollar]

                 % [percent]

                 ^ [caret]

                 & [ampersand]

                 * [asterisk]        see keypad '*'

                 ( [l-paren]         less wheel brakes.

                 ) [r-paren]         more wheel brakes.

                 _ [underdash]

                 + [plus]            see keypad '+'

                 | [pipe]

                 { [l-brace]         less spoilers

                 } [r-brace]         more spoilers

                 : [colon]

                 " [double quote]

                 < [less than]       less speed brakes.

                 > [greater than]    more speed brakes.

                 ? [question mark]   help

            4.3  Keypad

            The keypad is a collection of keys that replicate  the  main
            The following keys surround the numerical keypad and are not
            affected by the Shift key.

                 -              view right (+45 degrees)

                 *              view ahead

                 /              view left (-45 degrees)

                 +              speed  brakes  (toggle).  Note  that the
                                Speed brakes take time to  deploy,  it's
                                status  is shown on the control panel in
                                percent of full extension.

                 (Enter)        unallocated

            The rest of these keys must have NumLock on.

            These first four keys respond only if  the  keypad  is  your
            pointing device.

                 8 (up)         pitch (pull nose) up

                 2 (down)       pitch (push nose) down

                 6 (right)      roll right

                 4 (left)       roll left

            The following commands extend all pointing devices capabili-
            ties:

                 5 (center)     center ailerons and elevetors, like cen-
                                tering the joystick. Useful when using a
                                mouse (or trackball): will move the ref-
                                erence  point  to  where the mouse is at
                                this moment.

                 7 (Home)       stop  rolling.  Levels  the  plane.  For
                                quiche eaters.

                 9 (PdUp)       more (+5%) power

                 3 (PdDn)       less (-5%) power

                 1 (End)        mil (dry) (100%) power

                 0 (Ins)        zero (0%) power

                 . (Del)        after burner up (+1 unit which is 20% of
                                full scale)

            4.4  Special keys

            These keys are a group of six on most keyboard but can  also
            be  duplicated  using  the  Shift key and a numerical keypad
            key.

                 PageUp         level (heading 0, pitch 0, roll 0)

                 PageDn         reset coordinates to zero (back to base)

                 Home           unallocated

                 End            unallocated

                 Insert         unallocated

                 Delete         unallocated

            4.5  Function keys

            The function keys are normally used in plain mode (no Shift,
            Alt or Ctrl). When the menu is on  the  up-front,  the  left
            column  ten  selections are accessible with F1-F10 while the
            right column uses AltF1-AltF10.

                 F1   shoot. Usually also mapped the mouse  left  button
                      and the joystick trigger button.

                 F2   rudder left

                 F3   rudder center

                 F4   rudder right

                 F5   zoom  in  (more detail, narrower view, eye further
                      from window).

                 F6   zoom out (less detail, wider view, eye  closer  to
                      window).

                 F7   Macro/HotKey  definition.  Any key can be used for
                      a macro name (except F7/F8). If you define a macro
                      for a HotKey (Ctrl- and Alt- 'a' thru 'z') then it
                      can be played back with one keystroke. Other  keys
                      are  played  using the F8 key.  If you use a Macro
                      during recording then the Macro will be  recorded.
                      If  you  later  re-define  this Macro then it will
                      affect any other  Macros  that  uses  it.   During
                      macro  expansion  there is a limit of 16 levels of
                      nesting.  There is no capability for Macros  defi-
                      nition editing.

                                          then you are warned of the re-
                                          definition.   You may abort at
                                          any stage (F8F8) and the orig-
                                          inal  definition  will remain.
                                          If you hit F8 during recording
                                          then   you   are  prompted  by
                                          Abort/Cont/Quote? to which you
                                          may  respond  by F8 (abort the
                                          recording), F7 (ignore the  F8
                                          and continue recording) or any
                                          other key  (the  key  will  be
                                          recorded with the F8 expecting
                                          it to be another macro).

                      delete              F7<macro-key>F7
                                          It is not possible to record a
                                          null macro.

                 F8   F8<macro-key>

                      HotKey play         <HotKey>
                                          Hot  keys  are  Ctrl-a through
                                          Ctrl-z and Alt-a through  Alt-
                                          z.

                 F9   zoom  in  (more detail, narrower view, eye further
                      from window) in the external view window  (default
                      is the radar map).

                 F10  zoom  out  (less detail, wider view, eye closer to
                      window) in the external view  window  (default  is
                      the radar map).

                 F11  unallocated

                 F12  unallocated

            4.6  Alt keys

            Alt-Arrows: see below.

            Alt-a thru Alt-z are reserved for user defined HotKeys.

            The other keys are unallocated.

            4.7  Ctrl keys

            Ctrl-Arrows: see below.

            Ctrl-a thru Ctrl-z are reserved for user defined HotKeys.

            The other keys are unallocated.
            4.8  Arrow keys

                 up             turn gaze (head) down
                                All turns by 5 degrees

                 down           turn gaze (head) up

                 left           turn gaze (head) left

                 right          turn gaze (head) right
                                use '*' to restore normal front view.

                 CTLup          trim nose down.

                 CTLdown        trim nose up.

                 CTLright       trim rudder right.

                 CTLleft        trim rudder left.

                 ALTup          debug (varies).

                 ALTdown        debug (varies).

                 ALTright       debug (varies).

                 ALTleft        debug (varies).




            5.  Menus

            A menu has a list of options, each associated with a key and
            a function.  To select a function use the  Up/Dn  arrows  to
            highlight  it  and  then Enter, or directly press the corre-
            sponding key. When on the up-front, the  associated  letters
            are  NOT  shown  but  are  recognized; use the CtrlF-keys to
            select left column functions and  AltF-keys  for  the  right
            column. See under HDD later.

            Menus  can  be nested, in which case the previous selections
            are listed first (in a  staggered  fasion  and  highlighted)
            followed  by  the current menu. The selected option is high-
            lighted (white) while the others are displayed in gray.

            The Esc key brings up the top menu  but  later  is  used  to
            abort a menu.  During menu navigation use these keys:

                 Esc
                      aborts the menu

                 UpArrow
                      select previous option

                 DnArrow
                      select next option

                 other
                      select the corresponding option

            If  a  command  is  invalid (top/bottom of list or undefined
            option) then a beep is emited and the keystroke is  ignored.

            The  menu system is changing rapidly so the following may be
            incomplete.

            Some other commands may pop up a  menu,  in  which  case  it
            behaves in a similar way.

            If  you  have  the up-front instrument active then the menus
            will appear on it rather than on the main menu.  This  is  a
            stupid attempt to make your interaction look similar to what
            happens in a modern fighter. It is often the case  that  the
            pilot  has  a panel which can display about 10 alpha-numeric
            words in bright white (daylight readable). These  will  usu-
            ally  use  special  LEDs  and a more elaborate font than the
            7-seg digits (9  segment?).  There  are  pushbuttons  beside
            these  words.  The  words  are arranged in two columns, each
            with 10 words, with 10 buttons on the right and  10  on  the
            left.  As  you  press a button new information is displayed.
            Other planes use a real  CRT  but  still  have  a  5-buttons
            arrangement (mostly on all four sides, totaling 20).

            In  Fly8  the up-front device has two columns of words, each
            column can show 10 words, each word  can  be  10  characters
            long.  There  are  10  buttons  on the left (Ctrl-F1 through
            Ctrl-F10) and 10 on the right (Alt-F1 through Alt-F10).  Use
            these  keys to make selections. You can still use the normal
            command letters (if you know them, as they are not displayed
            here)  as  well as move about with the Up/Down keys: a small
            dash between the key number and the text identifies the cur-
            rently selected option.

            5.1  Top Menu

                 Exit      quit the program
                           confirm with 'y' on subsequent menu

                 Help      toggles the help screen on/off

                 Pointer   select pointing device

                 Screen    screen options.
                 Windows   set windows configuration

                 Info      select stats info level

                 Emit      create some random objects or remove them

                 Hud       configure HUD

                 Net       networking commands

                 Options   set global program options

                 Auto      selects some autopilot options

                 Debug     set debug options

                 Buttons   Allows  to  control  the functionality of the
                           pointer  buttons.  Usuaslly  you  set   these
                           options at startup time. The 'B' command will
                           too bring this menu up. To actually report  a
                           button press/release you use the 'P', 'R' and
                           'M' commands.

                 Command   Allows to control the behaviour os the simple
                           keystroke  commands  which  by default have a
                           'Toggle' action (like 'w', 'g' etc.).

            5.2  Pointer Menu

            A list of all available pointing devices is offered.  Select
            one. All systems have a keypad device, most have a mouse and
            the PC has a joystick.  You will be asked to specify pointer
            options  -  read  about it later in the command line options
            section.

            5.3  Screen Menu

                 Screen.Palette
                      program the palette

                 Screen.Colors
                      assign colors to visual elements

                 Screen.Stereo
                      select a stereo mode

                 Screen.Dbl Buff
                      set buffering mode to double/single. A message  is
                      posted  on  the new mode.  Double buffering is not
                      supported in all environments and  in  all  modes,
                      and  in  some cases it may be significantly slower
                      than single buffering.

                 Screen.Blanker
                      toggle screen blanker mode. Borders and some fixed
                      data are not shown in blanker mode.

                 Screen.HUD pos
                      select it the HUD is focused at infinity (default)
                      or on the HUD face.  Only used for  experimenting,
                      rather useless to change the default.

            5.3.1  Screen.Palette Menu
            A  set of colors is listed. Select one for modification. You
            will then be presented with a number of adjustment options:

                 Brighter  intensify the color

                 Darker    reduce color intensity

                 New       set color to a desired RBG value

                 Restore   restore color to original value

            5.3.2  Screen.Colors Menu
            A list of visual componnents is listed. Select one and  then
            the  color  palette  menu  will  show  - choose the color to
            assign for this element.

            5.3.3  Screen.Stereo Menu
            select a mono/stereo mode:

                 Screen.Stereo.Mono
                      standard mono mode

                 Screen.Stereo.S'Scopic
                      side  by  side  stereoscopic   images.   Use   the
                      'recerse'  option  if  you  prefer  the  cross-eye
                      stereoscipic view.

                 Screen.Stereo.RedBlue
                      red/blue composite (needs colored glasses)

                 Screen.Stereo.Alternate
                      alternating  left/right  images   (needs   shutter
                      glasses and '-s' command line option)

                 Screen.Reverse
                      toggle  reverse-stereo  mode  (swap Left and Right
                      images)

                 Screen.Paralax
                      set stereo inter-occular distance. Initialy set to
                      12 units. Each unit is 1meter/256 (about 4mm).

            5.4  Windows Menu

            A  number of window configurations are offered. This defines
            how the screen is split  into  main  and  auxiliary  display
            areas. After the selection the screen remains active so that
            you can select the 'configure' option immediately.

                 Windows.configure
                      This will call up the windows layout setup menu.

                 Windows.bg color
                      Set the foreground color for one window. You  will
                      be  prompted to select a window and then to select
                      a color.

                 Windows.fg color
                      Set the border color for one window. You  will  be
                      prompted  to  select a window and then to select a
                      color.

                 Windows.bo color
                      Set the background color for one window. You  will
                      be  prompted to select a window and then to select
                      a color.

                 Windows.full
                      the whole screen is one window

                 Windows.landscape
                      a wide main view with three windows below:  stores
                      on  the  left,  radar  map on the right and a rear
                      vision mirror in the middle.

                 Windows.portrait
                      a square main view with a column of two windows on
                      the right

                 Windows.square
                      a  square  main view with a column of three square
                      windows on the right

                 Windows.wide
                      a wide main view with four square windows below

                 Windows.panorama
                      An experimental format where the  center  view  is
                      accompanied  by  a left and right views which meet
                      on the edges.

                 Windows.ether
                      a new window configuration that is being developed
                      at the moment.

            5.4.1  Windows.Configure Menu
            The plane has a number of on-board instruments, each one has
            a visual representation that can be  shown  on  one  of  the
            active  displays.  This  menu  is  used  for  defining which
            instrument is to be shown on each of the displays. Configur-
            ing  the  main  display  (usually  numbered 0) defines which
            instrument will be used as the alternate view.

                 front     this is a forward looking camera.

                 none      designates the HDD as unassigned

                 rear      a rear viewing camera

                 map       a map of the area from above with you at  the
                           center and north is up.

                 radar     as  'map' above but the plane's current head-
                           ing is the 'up' direction. Gives better situ-
                           ation awareness.

                 target    a target following camera.

                 pan       another  target following camera that is less
                           stable (more real?)

                 gaze      a view of my  plane  from  a  fixed  relative
                           point

                 chase     a  view  of my plane from a point that chases
                           my path.

                 follow    as 'chase'  but  the  view  is  always  level
                           (never rolls).

                 hud       this is the raw HUD display

                 up-front  an alphanumeric display used for pilot inter-
                           action

                 panel     a digital data and warning display panel.

                 right     the right view of the  'panorama'  configura-
                           tion.

                 left      the  left  view  of the 'panorama' configura-
                           tion.

                 stores    This is a summary  of  the  vehicle's  status
                           showing weapon selection, throttle and engine
                           state, fuel and other engaged features (gear,
                           brakes etc.).

                 lamps     a  digital board of lamps that can be on, off
                           or blinking in red or green with a legend  on
                           each. It is used by default by the Ether con-
                           figuration.

                 mirror    Like a rear view but through a mirror. It  is
                           by default set up as a wide angle mirror.

            5.5  Info Menu

            Select  the  stats info level. This info is shown on the up-
            front HDD but can (optionally) be overlaid on the main view.

                 Info.off
                      do not overlay 'info' on the main view

                 Info.on
                      do overlay 'info' on the main view

                 Info.none
                      no info

                 Info.timing
                      only basic timing will be shown.

                 Info.stats
                      timing and internal stats are shown, used for pro-
                      gram testing.

                 Info.game
                      timing and basic info for a game are shown.

                      The second line will show (in  order):

                        -- time from start of game (in seconds).

                        -- number of targets present (both standard tar-
                           gets and ground targets)

                        -- number of weapons used in total

                        -- number of hits scored

                      The third line will show:

                        -- score (counting down!)

                        -- plane speed (meters/sec).

            The  basic 'timing' data, which is always the first line, is
            a list of millisecond durations for:

              -- graphics drawing (display list -> screen)

              -- 3D transformations (world -> display list)

              -- objects simulation (old world -> new world)

              -- other visual calculation (hud, text, sky etc.)

              -- vertical sync wait (if double buffering)

              -- total minus the rest; will include the  auxiliary  win-
                 dows time and network disturbance.

            5.6  Emit Menu

            Various objects can be created with this menu. These objects
            are used as targets.

                 Emit.target
                      create one random target

                 del  delete all targets

                 Emit.gtarget
                      create one random ground target

                 del  delete all ground targets

                 Emit.box
                      create one random box. Boxes are  cubes  that  hop
                      around which can be shot down.

                 del  delete all boxes

                 Emit.del tgts
                      delete all targets, ground targets and boxes.

                 Emit.drone
                      create one random plane (drone)

                 del  delete  all  drones. This will also set the number
                      of automatic drones to zero.

                 Emit.drones
                      specify how many drones  should  be  automatically
                      maintained  in  the  air.   Whenever  one  is lost
                      another one takes off.

                 Emit.killers
                      specify how many of the drones should be  killers.
                      These will be set to Chase and Kill mode.

            5.7  HUD Menu

            Various aspects of the HUD can be set. Each option is either
            set, reset or toggled. The default is to toggle  the  option
            but  the  first  three menu items can be used to change this
            mode. This menu can be accessed from the main menu  as  well
            as  directly  with the 'u' command. The following selections
            appear on many of the sub-menus:

                 0 turn off     turn option off

                 1 turn on      turn option  on

                 2 toggle       toggle option on/off

            This top level menu will bring  up  a  number  of  sub-menus
            which are described further down this doco.

                 HUD.off
                      turn  the HUD off. When turned off, the radar sym-
                      bols will still show.  This is a  feature  of  the
                      game  which  is not like the real thing; it allows
                      you to play with a very clean view. Not only  will
                      the  radar  stuff still show, but the symbols will
                      now move freely across the full screen rather than
                      being  confined to the HUD area. To get rid of the
                      reticle/TDB use the 'parts' menu.

                 HUD.on
                      turn the HUD on

                 HUD.type
                      Select HUD style. Although the  styles  are  named
                      after  planes,  each  plane  actualy displays many
                      styles depending on the mode of operation.

                 HUD.parts
                      The HUD has many components. This sub-menu  allows
                      you  to  choose which are included in the HUD dis-
                      play. Selecting  a  HUD  type  will  automatically
                      adjust  these  to  what  is  appropriate  for that
                      style.

                 HUD.options1
                      This (and the next) selection allows  you  to  set
                      some parameters which modify the appearance of the
                      HUD. The most often used ones are in this sub-menu
                      and the rest are in the next.

                 HUD.options2
                      See description of "options 1" above.

                      HUD.

                 HUD.ils
                      Will let you select the ILS beacon. In the  future
                      there  should  be  a  more  elaborate NAV facility
                      instead.

                 HUD.hdd
                      This menu is now changing as a new hdd (head  down
                      display) system is being implemented.

                 HUD.help
                      Display the full hud setup options list.

            5.7.1  HUD.type Menu
            Fly8  supports  a  number of HUD styles. The name of the hud
            does not necessarily correspond with the plane type but this
            is what I found on the various videos that I saw. If anybody
            has more knowledge or can provide other detail  PLEASE  feel
            free to advice me.

                 HUD.type.Classic
                      This one I made up before seeing any real HUD. The
                      basic data is laid close to the  edge  and  leaved
                      most  of the area free from obstruction. My origi-
                      nal aiming reticule was 8 dots in a circle  but  I
                      discontinued it in favour or the more common piper
                      style. The numerals on the  pitch  ladder  do  not
                      rotate  and  the  fast  font  is  used.  On a slow
                      machine this hud (especially in low  detail)  will
                      perform much faster that any other.

                 HUD.type.FA18
                      This  HUD  does not use tapes for the altitude and
                      speed. The pitch ladder is narrower than usual and
                      slanted  toward the horizon. A good feature is the
                      fact that the pitch ladder stays always  in  view:
                      if the velocity vector goes off the screen (easily
                      done on the FA-18 which has no trouble  flying  at
                      high  AOAs)  the pitch ladder adopts (temporarily)
                      the waterline mark. Another feature is the closure
                      speed  which  is shown under the piper rather than
                      on a radar ranging scale. Optionally,  a  pendulum
                      (or  what  do you call it?) can be displayed which
                      shows you your roll angle with good resolution  up
                      to 45 Degrees either way. This is a wide angle hud
                      - 20 degrees side to side.

                 HUD.type.F16
                      This HUD uses simple  scales  (no  baseline).  The
                      heading  scale can be at the top or at the bottom.

                      planes.  The speed scale is upside-down. The head-
                      ing scale can be set to two  different  positioned
                      at the top.

                 HUD.type.Ether
                      A new HUD type now being developed.

            5.7.2  HUD.parts Menu
            The  various  HUD  symbols  can be individually selected for
            display.

                 HUD.parts.ladder
                      Select pitch ladder (and related) options.

                 HUD.parts.altitude
                      Show altitude scale (or box).

                 HUD.parts.speed
                      Show speed scale (or box).

                 HUD.parts.heading
                      Show heading scale.

                 HUD.parts.border
                      Show the HUD border (in gray color).

                 HUD.parts.vv
                      Show the plane's velocity vector. A must for accu-
                      rate flying.

                 HUD.parts.vw
                      This activates a mode that the FA18 uses: when the
                      vv goes off screen, a waterline mark  will  appear
                      and  the  pitch  ladder  will  be drawn around it.
                      This way the  ladder  never  goes  completely  off
                      screen (which can often happen when flying at high
                      AOAs).

                 HUD.parts.plus
                      Show a 'plus' sign at the center of the screen.

                 HUD.parts.pointer
                      Show a small (red) mark that tracks  the  joystick
                      (or mouse or whatever pointing device you  use).

                 HUD.parts.beta
                      Show the sideslip angle (beta) on FA18 style.

                 HUD.parts.ground
                      Brings  up  a  menu  of  ground  proximity related
                      options.

                      ether HUD still under development.

                 HUD.parts.waypoint
                      Will  show  the  target  as a diamond along with a
                      small pointer near the FPM pointing  at  it.  This
                      small  pointer  represents  a  top  view where the
                      small circle is the pointer base and the line from
                      it  marks the direction of the target. When ILS is
                      active it is that point that will  be  tracked  by
                      these symbols.

                 HUD.parts.tracers
                      This  shows a 'string' hanginf off your boresight,
                      which represents the bullets position if you  were
                      firing. Horizontal marks indicate interval of 1500
                      feet, and a small bead marks the target  distance.
                      This  tool  is useful for gun shots when the radar
                      is shut down.

                 HUD.parts.ghost
                      The Flight Path Marker is caged. A  ghost  FPM  is
                      shown  if the caging shifts the FPM by more than 1
                      degree. It looks like the FPM but without the cen-
                      tral circle.

                 HUD.parts.truehead
                      The  Heading  scale is normally calibrated to show
                      about 30 degrees.  However, you may prefer  it  to
                      span directly correspond to the world view through
                      the HUD. In this way, an object that is 10 degrees
                      left  of  the  HUD center will really be indicated
                      with a 10 degrees offset  on  the  heading  scale.
                      This option is the default for the Ether HUD.

            5.7.3  HUD.parts.ladder menu
            These  options  modify  some  aspects  of the HUD appearance
            regarding the pitch ladder and associated symbols.

                 HUD.parts.ladder.ladder
                      Enables the display of the pitch ladder.

                 HUD.parts.ladder.pinned
                      In this mode the ladder it always attached to  the
                      HUD center (waterline mark).

                 HUD.parts.ladder.right
                      The numbers on the ladder steps are displayed only
                      on the right wing.

                 HUD.parts.ladder.erect
                      The numbers are  displayed  erected.  The  default
                      will rotate the numbers with the ladder.

                 HUD.parts.ladder.color
                      In  this  mode the positive steps are blue and the
                      negative are red.

                 HUD.parts.ladder.funnel
                      The step tips are  displayed  in  the  middle  gap
                      instead, which gives it a funnel shape.

                 HUD.parts.ladder.slant
                      The  steps are slanted rather than flat. The slant
                      increases with the pitch angle, reaching to  about
                      45 degrees.

                 HUD.parts.ladder.zenith
                      Will  display a zenith/nadir marker. It is a small
                      circle for the zenith and a similar circle with  a
                      cross inside for the nadir.

                 HUD.parts.ladder.under
                      The  numerals  are displayed under the step rather
                      than beside it.

                 HUD.parts.ladder.tip0
                      Specifies that you want a tip to be  displayed  on
                      the zero pitch (horizon) ladder step.

                 HUD.parts.ladder.hold
                      This  is  a  temporary  option  that  controls the
                      behaviour of the program when the  pitch  is  very
                      high  such  that some standard calculations cannot
                      be carried out. By default it freezes the  heading
                      and allows the roll angle to vary.

                 HUD.parts.ladder.h
                      This  controls  another aspect of the behaviour as
                      described in the previous option.  It  causes  the
                      roll  angle  to freeze while the heading will con-
                      tinue to reflect your attitude.

                 HUD.parts.ladder.sun
                      Shows a sun symbol, a  small  white  circle  which
                      stays  on  the  HUD  edge  when  the sun is out of
                      sight. It actually follows the zenith rather  that
                      the real sun and is intended as an aid in recover-
                      ing your situational awareness.

                 HUD.parts.ladder.negtip
                      This indicates that  the  step  tips  will  always
                      point  toward  the nadir.  The default is to point
                      toward the horizon.

                 HUD.parts.ladder.sizes

            5.7.4  HUD.parts.ladder.sizes menu
            These  options  specify the sizes of the pitch ladder parts.
            The size is a relative number with  a  value  from  0  (size
            zero)  to 16384 (full HUD width). A resize menu will come up
            which will allow you to modify the size using the '+' or '-'
            options (increase/decrease) or using the '=' option (you can
            then enter a new value). Use the '*' option to  restore  the
            value  to  what  it was at the start (but when you exit this
            menu the new value is final).

                 HUD.parts.ladder.sizes.gap
                      The width of the gap in the middle of each step.

                 HUD.parts.ladder.sizes.step
                      The width of each ladder step.

                 HUD.parts.ladder.sizes.horizon
                      The size of the horizon step in flight.

                 HUD.parts.ladder.sizes.land
                      The size of the horizon step when the landing gear
                      is lowered.

                 HUD.parts.ladder.sizes.tip
                      The size of the step tip.

                 HUD.parts.ladder.sizes.ndash
                      The  number of dashes that make a single step (one
                      side of it).

            5.7.5  HUD.parts.ground menu
            These options modify some  aspects  of  the  HUD  appearance
            regarding ground proximity.

                 HUD.parts.ground.gnd ptr
                      The  ground  pointer  is  a marker that shows your
                      bank (roll) angle. It is represented by an  arrow-
                      head which slides along a set of angle marks.  The
                      highest angle marked is 45 degrees.

                 HUD.parts.ground.Xbreak
                      Show the X-break symbol if at risk of hitting  the
                      ground. This symbol is a large, blinking, X symbol
                      in the center of the HUD. If you get  even  closer
                      to  impact  then a PULL UP message will be flashed
                      and a high pitch warning will sound.

                 HUD.parts.ground.Xvar
                      In this mode the X-break symbol  starts  with  two
                      angle-brackets (like '> <' that get closer towards
                      the HUD center as the impact gets nearer.  It then
                      merges into a single X shaped symbol.
                      regardless of the time to impact.

                 HUD.parts.ground.Xgrid
                      Show the warning grid if at risk  of  hitting  the
                      ground.  This is a red grid which will overlay the
                      ground if you fly too low. This experimental  mode
                      is attempting to assist you in regaining awareness
                      of your situation when there are not enough groung
                      features in view.

                 HUD.parts.ground.pullup
                      A  pullup  cue will be displayed. It indicated the
                      dive angle at which you will hit the ground  in  5
                      seconds.  When  a bomb weapon is selected a safety
                      distance of 200 meters is set to protect you  from
                      the explosion.

                      The  pullup  cue  looks like an extra pitch ladder
                      step  (usually  narrower),  with  upwards  slanted
                      tips.

            5.7.6  HUD.options1 Menu
            These options modify some aspects of the HUD appearance.

                 HUD.options1.heading
                      The  heading  scale  shows the planes heading. The
                      numbers displayed are  in  the  range  000-350  in
                      increments  of  10.  This  option  selects between
                      showing the full 3 digits or using an  abbreviated
                      form.  The abbreviated form will only show the top
                      two digits (09 for 90 and 27 for 270). The Classic
                      HUD  style  will  show the full number but without
                      the leading zeros.

                 HUD.options1.knots
                      Internally all data  is  stored  in  meters.  This
                      option  requests  that  all numbers use knots/feet
                      (as appropriate) instead. It is  the  default  for
                      the standard HUDs.

                 HUD.options1.top
                      This  will  further  modify the heading scale. The
                      scale will show  at  the  top  or  at  the  bottom
                      depending  on this option. For the FA18 HUD style,
                      this option will cause a  base-line  to  be  drawn
                      under  the  scale  (the scale will stay at the top
                      regardless).

                 HUD.options1.fine
                      For some of the scales this option will show  more
                      detail.  The  standard  detail  is  to show a tick
                      every 5 units. The fine detail will  show  a  tick

                 HUD.options1.xfine
                      This  is  a further refinement of the above 'fine'
                      level and will show a tick for each scale unit.

                 HUD.options1.big
                      [obsolete]The  name  is  completely  wrong.   This
                      option  defines  the  style  of  the  ticks on the
                      scales (for some of the HUDs only). The usual  way
                      is  to have the ticks go from the base-line to the
                      outside. In the 'big'  style  the  scale  will  be
                      along  the edge with the ticks towards the inside.

                 HUD.options1.scale
                      This defines the number of units along the  scale.
                      This affects only the Classic HUD. The more units,
                      the longer the scales.

                 HUD.options1.area
                      The HUD has a fixed area  (measured  in  field-of-
                      view  degrees). You can alter this size. Note that
                      although  the  HUD  size  changes  when  you  zoom
                      in/out,  it  still keeps the same FOV. This option
                      defines how many degrees are from  the  center  to
                      the edge of the HUD (all HUDs are square).

                 HUD.options1.cas
                      The  speed  show will be the 'calibrated airspeed'
                      rather than the 'true airspeed'. A  snall  'T'  or
                      'C' will mark the type of speed shown.

            5.7.7  HUD.options2 Menu
            These  options  modify  some  aspects of the HUD appearance.
            These are the less used options.

                 HUD.options2.a alarm
                      Enable aural alarms. If you hate the GLIMIT  beeps
                      etc.  then  use  this  option to turn these alarms
                      off.

                 HUD.options2.v alarm
                      This will Enable/disable the  visual  alarms  that
                      show on the HUD.

                 HUD.options2.panel
                      Request  to show the panel HDD on the main window.
                      This will show at the bottom right side as digital
                      flight data.

                 HUD.options2.font
                      Select  the font for the stroke characters used on
                      the screen

                      'use the default' and all other sizes are relative
                      to 8. The default is calculated  from  the  screen
                      resolution.

            5.7.8  HUD.radar Menu
            The  radar  symbology  on  the  HUD is controlled with these
            options.

                 HUD.radar.corner
                      Radar target data can be at the bottom-left corner
                      of the HUD or can follow the target designator.

                 HUD.radar.data
                      Request to show target data.

                 HUD.radar.distance
                      Request  to  show  target  distance  in intel mode
                      (mainly used in the radar/map modes).

                 HUD.radar.name
                      Request to show target type in intel mode  (mainly
                      used in the radar/map modes).

                 HUD.radar.accvect
                      Show  target  acceleration vector as a hand inside
                      the reticle piper.

                 HUD.radar.reticle
                      Show aiming reticle piper.

                 HUD.radar.target
                      Show the target designator.

                 HUD.radar.ross
                      Use Ross's method for  the  aiming  reticle.  This
                      mode  will show a small box in front of the target
                      where it is expected to be when a bullet hits  it.
                      If  you aim the reticle at this box and shoot then
                      you should hit the target.

                 HUD.radar.limit
                      Unlike real HUDs, the radar symbols  can  be  dis-
                      played all over the screen rather that just inside
                      the HUD area. 'limit' will specify  which  way  it
                      should be.

                 HUD.radar.thick
                      This  is  an experimental option to draw the radar
                      reticle thicker.

                 HUD.radar.hidetgt
                      When active, if the TD box is  under  the  reticle

                 HUD.radar.tpointer
                      If the target is off the HUD then a line is  drawn
                      from  the boresightpoint (the '+' at the view cen-
                      ter) towards the target. The distance to the  tar-
                      get  is  shown digitally: this is the angle of the
                      target relative to the  boresight  direction:  180
                      means  it is exactly behind you, 90 means it is on
                      your side (ANY side, right, left, above or below).
                      It  should be read as: if you turn so many degrees
                      in the direction of the pointer then you will have
                      the target straight in front.

                 HUD.radar.vpointer
                      This  will  modify  the  'tpointer'  such that the
                      length of the pointer will vary  with  the  target
                      relative angle.

            5.7.9  HUD.hdd Menu
            Fly8  supports a number of HDD devices. This menu allows you
            to set these up with various options. It is still under con-
            struction.

                 HUD.HDD.instruments
                      Show  the  instruments panel. This is a very basic
                      (and rather useless by now) instruments  depiction
                      that  will be overlayed at the bottom right of the
                      main window.

                 HUD.HDD.nav
                      Request to display navogation info  in  the  panel
                      display.

                 HUD.HDD.compass
                      A  compass will be added to the radar map display.
                      See next options too.

                 HUD.HDD.square
                      Selects a square or round compass

                 HUD.HDD.ortho
                      Selects angled or orthogonal ticks around a square
                      compass.

            5.8  Net Menu

            For full details please refer to the networking chapter.

                 Net.ping
                      find  out who else is playing. A message is broad-
                      casted and for each responding player a message is
                      displayed.

                 Net.quit
                      stop playing with a player. If there are more than
                      one players then you will be asked to choose.

                 Net.message
                      send a message to a  player  (or  all).  You  will
                      later  be notified how long it took the message to
                      reach each player and return a notification.

                 Net.accept
                      accept a player's request to play with  you.  Used
                      in response to the Requesting message.

                 Net.decline
                      decline  a player's request to play with you. Used
                      in response to the Requesting message.

                 Net.always accept
                      automatically accept any requests to play.

                 Net.always decline
                      automatically decline any requests to play.

                 Net.manual reply
                      do not automatically respond to  any  requests  to
                      play.

            5.9  Options Menu

                 Options.Version
                      show program version and compile date/time.

                 Options.Smoke
                      set/clear  smoke  generation.  Damaged  planes and
                      craters will smoke if the option is enabled.

                 Options.Font
                      show current stroke font. It is displayed if large
                      on the center of the screen.

                 Options.Colors
                      Show the current palette setup.

                 Options.Modes
                      show  current  program  modes setting (same as 'm'
                      command)

                 Options.Sky
                      paint blue sky in views.

                 Options.Gravity
                      enable  gravity  (default).  Will  affect  bullets

                 Options.Play Blues
                      [sound debug] No simulator is complete without it.
                      Actually used to test the sound  generation  logic
                      which for now is operational only on the PC.

                 Options.Verbose
                      Toggle  verbose  mode.  Off by default. When using
                      the menu system you will not be shown the standard
                      'help'  screens.  Use the 'm' and 'uh' commands to
                      see the 'modes' and 'hud' help screens.  The  com-
                      mand line 'v' controls this option as well.

                 Options.Net Stats
                      display  network statistics (same as 'n' command).

                 Options.Limited
                      Will limit the ammunition to the takeoff quantity.
                      Normally you have limitless ammo.

                 Options.No stall
                      This  option reduced the effectiveness of a stall.
                      Good for early practice.

                 Options.Paused Msg
                      This option is ON by default. If set to  OFF  then
                      the  'paused'  message  (when issuing the 'p' com-
                      mand) will not display. This  is  nice  for  clean
                      screen captures.

                 Options.win ident
                      This option is OFF by default. If set to ON then a
                      window name is displayed at the top  right  corner
                      of each.

            5.10  Auto Menu

            These  options enable some augmentation systems which modify
            the behaviour of some controls.

                 Auto.Flaps
                      Enables  the  flaps  Control  Augmentation  System
                      (CAS).  This will give you better turn performance
                      by adding  flaps  (or  leading  edge  flaps)  when
                      needed).

                 Auto.Elevators
                      This  will  enable the CAS which limits the Eleva-
                      tors sensitivity at high speed to avoid  excessive
                      load.  A  Stability  Augmentation  System (SAS) is
                      being added which will improve dynamic pitch  sta-
                      bility  by  taking  some authority over the eleva-
                      tors.

                 Auto.Rudder
                      Enable the rudder SAS  and  CAS.  It  is  not  yet
                      implemented.

            5.11  Debug Menu

                 Debug.debug
                      Enable  the general debug mode. Some programs will
                      display internal data  when  in  this  mode.  This
                      changes a lot and cannot be documented.

                 Debug.gp w
                      General  purpose  debug  option W is controlled by
                      this option. It is used for debugging  and  cannot
                      be  documented  here,  see if there is anything in
                      the readme.

                 Debug.gp x
                      As above for option X.

                 Debug.gp y
                      As above for option Y.

                 Debug.gp z
                      As above for option Z.

            5.12  Buttons Menu

            The Buttons on your pointer (mouse, joystick etc.) are  rec-
            ognized  by the pointer driver and reported back to Fly8. It
            is now up to the program to react to the button status. If a
            button  press  command is associated with a key then it will
            be issued when the button press status  is  recognized.   If
            the button was set to release mode then when you release the
            button a command may be sent too.

            You use this menu to define the modes that a button responds
            to.   The   actual   command   associated   with   a  button
            press/release is defined by including, in  fly.max,  a  line
            like:

                 Def Btn 0 F1

            This  will cause button 0 (the first button) to issue the F1
            (weapon fire) command. Another example:

                 Def Btn 1 +
                 Def Brl 1 +

            This will cause a '+' (speed brake on/off) to be issued when
            you  press  button  1, then another '+' when it is released.
            This way the speed brake is active while you hold button  1.
            depending of your game mode then you  can  use  the  virtual
            'button  shift  modes' provided.  The buttons are considered
            to be sensitive to the status of the Alt,  Ctrl,  Shift  and
            Special  buttons  (which  do not exist on any input). If the
            Btn-Alt is set then pressing button 1 will be recognized  as
            Btn-Alt-1 and will respond to a line in fly.max like:

                 Def Btn Alt 1 r

            to  turn  the radar on/off. The only way to set these button
            modes is through this buttons menu. However, you can program
            any  hot  key  to  do this for you. You can program Alt-S as
            your button Shift key in fly.max:

                 Def Alt S M s       # Now Alt-S toggles Btn-Shift mode

            This allows the buttons to have 16  diffrerent  modes  which
            should  be  enough,  however, by default, the buttons do NOT
            respond to the mode state. To make a  button  sensitive  you
            use this menu.

            All  joysticks  have  2  buttons, Thrustmaster FCS and CHPro
            have 4 (use the ":four" option in this case)  and  also  the
            hat is decoded as four more buttons. Mice may have more but-
            tons and some drivers will recognize the common three.  When
            using  a  Thrustmaster  WCS  of FLCS you may program all the
            buttons to be handled through the keyboard,  in  which  case
            there  are  NO  buttons  directly  visible  (use the ":zero"
            pointer option in this case).

            The first thing you will see is a request to name the button
            to  be  customized.  The  buttons  are  named  with a single
            alphanumeric character (so a maximum of 36  buttons  can  be
            handled  by  Fly8). Then you will be presented with the fol-
            lowing menu.

                 Buttons.Alt
                      Will set  the  Button  Alt  mode  sensitivity.  By
                      default  all buttons ignore this mode, the pointer
                      option a=... can nominate buttons that  should  be
                      sesitive to this mode.

                 Buttons.Ctrl
                      Will  set  the  Button  Ctrl  mode sensitivity. By
                      default all buttons ignore this mode, the  pointer
                      option  c=...  can nominate buttons that should be
                      sesitive to this mode.

                 Buttons.Shift
                      Will set the Button  Shift  mode  sensitivity.  By
                      default  all buttons ignore this mode, the pointer
                      option s=... can nominate buttons that  should  be

                 Buttons.sPecial
                      Will  set  the Button Special mode sensitivity. By
                      default all buttons ignore this mode, the  pointer
                      option  p=...  can nominate buttons that should be
                      sesitive to this mode.

                 Buttons.Debounce
                      Set the debounce mode. When  ON,  a  button  press
                      will  activate  a command once, until released and
                      pressed again.  When  OFF,  the  command  will  be
                      repeatedly issued as long as the button is pressed
                      (once per frame).

                      By default all buttons are debounced. The  pointer
                      option  d=... can nominate buttons that should NOT
                      be debounced.

                 Buttons.Release
                      When ON, this option will  enable  issuing  button
                      release commands. When OFF the button release will
                      not issue a command.

                      By default all buttons recognize  release  events.
                      The pointer option r=... can nominate buttons that
                      should NOT recognize release. [but I am  not  sure
                      what it is useful for].

                 Buttons.Clear
                      Will  clear  all modes sensitivity for the button.
                      Note that  this  will  include  the  Debounce  and
                      Release  modes  which are normally ON. You use the
                      Clear option when you wish to directly set a  but-
                      ton  to  a  known  state, like: "x d r s" will set
                      this button for Debounce, Release and Shift sensi-
                      tivity.

                 Buttons.Cancel
                      Will  exit without changing the button definition.

            5.13  Commands Menu

            Some simple commands toggle between options. This  makes  it
            impossible  to  use  a macro for setting these commands to a
            pre-determined state. The commands menu  allows  you  to  do
            just so. Select 'On', Off' or 'Toggle' then hit another com-
            mand. Now it will follow the earlier setting rather than the
            default 'Toggle' behaviour.




            6.  Command Line Editing
            than one keystroke it uses a line input facility. It  allows
            you  to  use history and editing. You can use the arrow keys
            and insert/delete keys to move about and edit your response.
            The  up/down  keys  will retrieve history.  Finally you will
            need to press Enter for the program to accept the input.  If
            you  key the start of a line and hit PgUp then a search will
            be done for a previous entry with the same beginning.

            The history queue has 20 entries, all input  requests  share
            this same queue.




            7.  Aural Indicators

            Sound  is  used to inform and warn. The sounds at the moment
            are simple tones or tone sequences.

            A short beep will sound when:

              -- you fire a weapon

              -- you hit a target, or a plane crashes

              -- the radar locks onto a (new) target

              -- a menu selection is invalid

            A low beep will sound when:

              -- landing

              -- taking off

              -- landing gear status is changed

            Two repeating tones for:

              -- Emergency alarm (pull-up, eject etc.)

              -- Warning alarm (stall, g-limit etc.)

            Repeating scales when:

              -- target practice has ended




            8.  Visual Indicators

                 WAIT      You ejected and landed but your plane did not
                           yet crash. This one does not  relate  to  the
                           HUD, all the others only show when the HUD is
                           on.

                 STALL     You are flying the plane too slow to maintain
                           lift  or you are turning too sharply at a too
                           high angle of attack.

                 GLIMIT    You exceeded the maximum acceptable  G  force
                           of  your  body  (+9G to -3G), or you exceeded
                           the 10G plane structure limit.

                 FUEL      You have less than 10% fuel  left.  The  less
                           fuel  you have the faster the message blinks,
                           then it finally stays on.

                 PULL UP   You are about to hit the  ground  unless  you
                           pull  the plane up immediately. If the danger
                           is higher then a red ground grid  is  flashed
                           to  give  the pilot better orientation (there
                           is not enough scenery to build proper  visual
                           awareness).

                 EJECT     The  plane is damaged beyond control. Shift-E
                           to eject.




            9.  The Plane

            This chapter explains in detail how planes  are  handled  in
            this program.

            The  plane is controlled by your pointing device, preferably
            a joystick.  The basic  controls  will  have  the  following
            effect:

            Left/right  controls  will cause the plane to roll. The roll
            will continue while the controls are engaged. When the  joy-
            stick  is  centered the rolling will stop and the plane will
            stay in the current situation. If  you  want  to  fly  level
            after rolling to the right then you will have to do the fol-
            lowing:

              -- roll right (the horizon will roll left).

              -- stop rolling (the horizon will stay at a fixed  angle).

              -- roll left (horizon rolling back to the right).

            As the plane has momentum, the response is not immediate and
            you will have to get a feel for it.

            To start climbing you will pull the stick toward  you  until
            the climb angle is what you want and then release the stick.
            The plane will continue climbing until  you  push  the  nose
            down  for  level  flight. If you are rolled over to one side
            then the pulling will cause the  plane  to  turn  into  that
            side. If you are upside-down and you pull the stick then you
            will start descending towards the ground.  In  other  words:
            the  up/down controls (elevators) are used for any change of
            direction, both left/right and up/down.

            To turn right, first roll right, then pull the  stick  until
            the  desired  heading is reached, then release the elevators
            and roll back to level flight. Of course, due to gravity and
            plane  dynamics  any change in situation will probably cause
            the plane to move in a direction slighly different from what
            the  controls  suggest  - you should learn to compensate for
            this. The flight-path-marker (the little circle  with  three
            wings)  tells  you  where  the  plane is heading and this is
            hardly ever the direction where your plane is pointed at.

            To control your engine you set the  throttle  with  the  9/3
            keys.  The  throttle  can  be set to between -100% and 100%.
            Reverse setting only works on the ground. Each keystroke  is
            5% change. The 1 key will set the throttle to 100% and the 0
            key to 0%. The planes speed will pick up slowly (depends  on
            the planes weight and the engines power). You can engage the
            after-burner with the '.' key. To slow down you may use  the
            speed brakes ('+' key).

            About  the  AfterBurner:  light  it  with '.' (will also set
            throttle to 100%). Then each '.' or '3' (power-up) will  add
            a  notch.  Each  '9' (power-down) will take it down a notch.
            There are five steps (say 20% each).  The  throttle  display
            will show '103' for '100% + AB3', 105 is full AB. The engine
            display will show thrust in % of  mil  thrust  (full  AB  is
            about 150%-160%). If you use '1' (max throttle) or '0' (idle
            engine) the ab is turned off. NOTE that  AB5  uses  about  6
            times as much fuel as MIL for 60% extra power!

            Note  that with the PC keyboard and the NumLock engaged, the
            above keys appear in a logical order.

            The Classic plane is an over-simplified vehicle. It  has  no
            momentum  and no aerodynamics characteristics, it goes where
            you point it and is a good way to get the hang of  the  con-
            trols.  It  will never crash either (you can fly underground
            of course). But don't get too used to it, real planes handle
            very  differently  (the  Classic  is  more like a weightless
            spaceship of an arcade-game).

            10.  The Head Up Display

            The program displays a number of HUD styles. These are named
            according  to  a plane type but this is just because I first
            saw this HUD on a video tape dedicated  to  that  plane.  In
            reality each plane has a number of HUD modes. You can change
            the HUD style through the hud menu regardless of  the  plane
            type.

            The  HUD  is a piece of glass that is positioned at an angle
            in front of the pilot. The pilot looks through it to see the
            front  view  from the cockpit and at the same time a reflec-
            tion of a video screen is seen (this CRT is  in  the  'dash-
            board'  facing  up).  The  dual-image is similar to when one
            looks outside through a window at night and sees  a  reflec-
            tion  of  some  part of the room as well as the outside. The
            HUD can be displayed by itself on one of the auxiliary  HDDs
            (sometimes  refered to as the 'HUD repeater'), which is use-
            ful when the HUD optics is not operational (damaged).

            In practice, the HUD is a flat  image  superimposed  on  the
            front view, and it uses a special (usually green but you can
            change this) color. It does not  cover  the  full  field-of-
            view.

            The  image  projected  onto  the  HUD  contains two kinds of
            information. One type is data that the pilot will  otherwise
            have  to  look  for in some cockpit instruments (thus taking
            his eye off the outside scene); this  is  simply  a  way  of
            putting  the  most  important  information  if  front of the
            pilot. An example is the display of plane speed.  The  other
            kind  is  information  directly related to the outside image
            and meaningfull only in  relation  to  it,  for  example:  a
            bounding box is displayed such that it coincides with a vis-
            ible target that the radar is locked on.

            The prominent features on the HUD are  a  number  of  scales
            which  are  usually  diaplayed along the edge. Sometimes the
            detail of the scales  can  be  controlled  in  three  levels
            through the Hud menu (see there).

            The  HUD  symbols will relate to flight data or to auxiliary
            systems (weapons, radar, fuel etc.). The data related to the
            flying of the plane is described first.

            10.1  Heading

            Your  compass.  It  will be shown as a horizontal ruler that
            moves as you turn. The current  heading  is  marked  with  a
            'tick'  or  a  'V'. It can be at the top or at the bottom of
            the HUD (Top option in Hud menu). North  is  360,  South  is
            support for radians or other units...

            10.2  Altitude

            Your  height  above sea level, a vertical ruler at the right
            edge of the HUD. It may  be  accompanied  by  a  second  bar
            (immediately  to  its left) that shows your climb/fall rate.
            This ruler moves up and down as the plane moves, the current
            altitude  is  to  be  read at the 'tick' in its middle. High
            altitudes show in thousands (with a possible decimal  point)
            while  low  ones  will show exact. The FA-18 style HUD shows
            the altitude in a box at the right side of the HUD with  the
            climb rate above it. Some HUDs will show a radar-range scale
            adjacent to (and to the left of) the  altitude  scale.  This
            will  indicate  the  distance  to the target (the full scale
            range is shown just above this  scale)  as  a  sliding  tick
            while the target closure speed is shown inside the tick.

            Climb rate is in meters (or feet) per minute!

            10.3  Speed

            Your  speed is shown as a ruler at the left edge of the HUD,
            a tick marks the current value. The FA-18 style HUD shows it
            in  the  left  box.  Some HUDs do not show the trailing zero
            while others show have the scale run from top to bottom.

            This information may be in meters/kmh of feet/knots (use the
            Hud  Knots  command  to  toggle).  The  F16/FA18  default to
            feet/knots.

            10.4  Pitch ladder

            The orientation of the plane is displayed as a ladder,  each
            step relates to a different pitch. The steps are always par-
            allel to the horizon. Each step  is  marked  with  a  number
            which is your pitch angle (90 degrees is straight up, -90 is
            down and zero is level).  The  step's  angle  represent  the
            planes  roll. When you are upside-down the steps are too, as
            you roll the steps turn in the opposite way  to  follow  the
            horizon.  The negative-pitch steps (when you are going down)
            are dashed while the positive ones are solid. Small winglets
            at  the tips of the steps point toward the ground. The zero-
            pitch step is larger and is your artifical  horizon  if  you
            cannot  see  the  real  one. The FA-18 style HUD tries a bit
            harder by bending the steps toward the  ground:  the  higher
            your  pitch the larger the slant. It also shows a small cir-
            cle at the straight up/down directions (the down one  has  a
            cross through it).

            Although  the  pitch ladder follows the horizon (meaning the
            zero-step is on the horizon) there is some freedom in  where
            centered  on  it.  This means that at a high angle of attack
            the pitch ladder may be out of view (as will the vv).

            In the case of the FA18, if the vv goes out of view  then  a
            waterline marker will appear at the center of the HUD (it is
            a W marker in a fixed position) and the  ladder  will  shift
            (smoothly) toward it. Once the vv is back in view the ladder
            will return to it and the waterline mark will disappear (the
            transitions take about two seconds maximum). The FA18 ladder
            shows an extra-long zero-step  while  the  landing  gear  is
            down.

            10.5  Velocity Vector

            A plane rarely moves straight ahead due to gravity and aero-
            dynamic forces. This marker  (sometimes  called  the  'plane
            symbol')  is  a tiny circle with wings on either side and at
            the top (it is a stylized shape of a plane from behind).  At
            any  time, this marker shows you where the plane is heading.
            You will most of the time use this marker as a reference for
            flying  the  plane. The center of the view is rather useless
            for flying (you can bring up a cross-hair with the 'u+' com-
            mand)  but  can  be  helpful  in  aiming  the cannon (in the
            absence of the aiming reticle).

            The Classic plane always goes ahead, so the vv will be fixed
            at  the  center  of the HUD. By default it will not be shown
            for this plane.

            10.6  Waterline mark

            This is a 'W' that shows in the straight ahead point on  the
            front  view  (this  is not always the physical center of the
            HUD). It comes on whenever the landing gear is lowered.  The
            FA-18  HUD  shows it whenever the Velocity Vector is outside
            the HUD.

            10.7  Radar Symbology

            When the radar is active, some symbols related to its opera-
            tion  are displayed. The main features are the target desig-
            nator box and the aiming reticle (the Piper).

            10.7.1  Target designator
            This is a square that is centered on the target. If the tar-
            get  is  not locked then the box will have only corners. The
            target should be visible inside the box, unless  it  is  off
            screen. When off screen, the box has a '+' through it and it
            crawls along the HUD edge showing you  the  direction  where
            the  target is. If the target is actualy behind you then the
            '+' is replaced with an 'X'.

            aiming  reticle  appears.   The  reticle is a circle with 12
            ticks. Each tick represent a distance of 1000 to the  target
            and  the  range  is  marked with a tick that moves along the
            inside edge of the reticle. A tick at  11  o'clock  means  a
            distance of 11,000 etc. You should fly the plane so that the
            center of the reticle (has a dot) is on the target and  then
            shoot  (actually,  the  cannon/radar  computer  will display
            'shoot' above the reticle when you have a good aim). If this
            sounds  simple  it  is because it is a simple procedure; the
            problem is that in order to get the target  in  the  reticle
            you  will  NOT  be  flying  the plane directly toward it. In
            practice you forget about where the plane should go and play
            a  game  of follow-the-target with the reticle (just try and
            not hit the ground).

            The F16 will also show a  'hand'  inside  the  circle  which
            indicates the direction and magnitude of the target acceler-
            ation (this one is very jiterry at times). You can turn this
            hand on/off with the Hud menu "acc vect" command.

            The FA18 HUD shows the closure speed outside the lower right
            side of the reticle. The F15/F16 shows the same  information
            on the radar range scale (beside the altitude) marked with a
            large '>' symbol. The closure speed measures  how  fast  you
            are catching up (positive) with the target.

            However,  in  order to complicate the situation we have some
            variations possible:

            There is an alternate piper: Ross's reticle. This is a  dif-
            ferent  aiming  method altogether. A square reticle is shown
            with only the corners visible. It is ahead of your target at
            all  times  on  its  projected position. You have to aim the
            piper at the box and then shoot. With this one  you  do  not
            care  where  the  real  target  is  because  the  aiming box
            replaces it. The piper will be fixed at the  center  of  the
            HUD.   You  may  want to turn off the target designator with
            'ut'.

            The target designator and aiming reticle are part of the HUD
            display,  however  you may choose to ignore this and request
            that these use the full screen.  Use  the  'uL'  command  to
            limit  these to inside the hud area or use the whole screen.

            10.7.3  Radar Range
            The radar measures the distance and relative (closure) speed
            of  the  target. The range is shown as an extra scale on the
            right side on the HUD  while  the  closure  speed  is  shown
            beside  the  '>' mark on it. The FA18 HUD does not show this
            scale but shows the closure speed under  the  piper  with  a
            'Vc' mark.

            displayed (it can be disabled by the hud/radar  menu).  This
            data  shows at the left bottom corner of the HUD and has the
            following items:

              -- distance to target (units or k's with one decimal)

              -- closure speed (meters/knots)

              -- time to meet (seconds with one decimal).

              -- target type or pilot name

            When the target is in range the time shown is  bullet  time-
            to-impact rather than plane flight time.

            If  the  Corner  option  is not selected (uC) then this data
            will show under the target designator box. If the target  is
            too close to the bottom then the data may show above it.

            If  you activate the Intel mode (i) then all visible targets
            get a box with the following data (the MAP and RADAR diplays
            always have this mode):

              -- distance to target (units or k's with one decimal)

              -- target type or pilot name

            You  can use 'un' to disable the display of the second line.

            10.8  Other Features

            In addition to the above features, the HUD may show the fol-
            lowing:

            The  FA18  type HUD shows as standard, on the left low edge,
            the angle of attack (aoa), the mach number and  the  pilot's
            vertical  Gs.  The  selected weapon (and available units) is
            displayed at the low center of the HUD.

            The F15/F16 HUD shows the aoa at the  top  right  above  the
            altitude  scale.  The weapon selected is shown at the top of
            the data list ('XXX' means none selected)




            11.  The ILS

            The Instrument Landing System (ILS) is a  system  that  pro-
            vides enough information about your approach to guide you to
            the touchdown point with great  accuracy.  The  system  com-
            prises  two  separate  facilities:  the Localizer beam which
            components measure your approach error and display it as two
            bars.

            The  Localizer  deviation  bar is a vertical line that moves
            accross the HUD and indicates which way of the correct  line
            you  are.  If the bar is left of center then this means that
            you are to the right of the Localizer beam,  so  you  should
            correct  your approach to the left. When the bar is right of
            center you will need to move to the right too. You are  cor-
            rectly  aligned when the bar is at the center. You can judge
            the bar's position by noting the number of ticks  along  the
            horizontal  bar.  The larger middle one is where you want to
            be. The bar is at full deflection when  your  error  is  2.5
            degrees.

            The Glide Path deviation bar is a horizontal line that indi-
            cates where the correct descent line  is.  If  the  line  is
            above  center  then  the  you  should be flying higher (your
            descent is too rapid or you are descending toward a point on
            the  ground  too  short of the runway); you should gain some
            height or reduce your descent angle. In the same  way,  when
            the line is below HUD center you are above the correct path.
            The bar is at  full  deflection  when  your  error  is  0.75
            degrees.

            Note  that  the ILS system does not know where you are head-
            ing, it just tells you how close  you  are  to  the  correct
            approach path. The system does not even know if you are com-
            ing or going! So make sure that you approach the runway from
            the correct end or the ILS Localizer deviation bar will show
            reverse reading and the Glide Path will direct you  to  land
            at the far end of the runway.

            Real  ILS systems have very narrow beams and will only oper-
            ate when you are reasonably aligned. These systems will tell
            you  when  you  are  out of range. The one in Fly8 is active
            within a radius of about 25 kilometers around the runway.

            When the ILS is operating a marker along the  heading  scale
            will  direct  you  to  the  airport;  use it for the general
            approach but then identify the correct runway carefully.

            To select the desired runway use the  ILS  menu  and  choose
            from  the list.  There are now two airports (A is home and B
            is for the drones) and each has two runways: 18 (approach at
            heading 180) and 27 (approach at 270).  You can turn the ILS
            off and it will still remember the last active runway  which
            will  be  offered  when you use the command again. These ILS
            aids are defined in fly.nav and you can  change  these.  The
            'H'  command  option  is used to designate your home runway,
            otherwise it is the first one defined (the  drones  use  the
            last one in the list).

            12.  Radar and targets

            The  radar  in  this program does NOT try to simulate a real
            radar. The real thing has many types and modes of operation.
            This one just cheats to get its data.

            When  enabled  ('r')  the radar measures distance, direction
            and speed of possible targets.

            In the basic mode, the radar constantly selects the  closest
            target.  This may cause it to 'jump' between targets as they
            change distance. You can put  the  radar  in  'locked'  mode
            ('l')  which  will  make it stick to the selected target. In
            this mode, when a target is destroyed,  the  nearest  target
            will  be  selected  and  stay locked. Use 'l' to release the
            lock (or you can turn the radar off/on with 'rr').

            There are 3 other acquisition modes controlled  by  the  'f'
            command.

                 0    pick closest target (old way, as described above).

                 1    3.3deg circle: boresight. Only targets inside  the
                      small circle are detected.

                 2    20deg  circle:  HUD.  Any  target inside the large
                      circle (which covers most  of  the  HUD  area)  is
                      detected.

                 3    5.3deg  wide  by  60deg  high:  vertical.  Targets
                      inside the narrow band (+-5.3 degrees wide but  60
                      degrees tall) are detected.

            In  modes 1-3, a target is highlighted when it is within the
            designated area. The limits of the modes 1-3  are  drawn  on
            the HUD.

            If  you  are  in  locked mode then the first detected target
            will immediately be locked, otherwise you will have  to  hit
            'l'  to  lock  the highlighted target. Only when a target is
            locked you get the aiming reticle (if it is close enough).

            It should be made clear that the 'locked' mode is  set/reset
            by  you with the 'l' command. Once engaged, there is no need
            to lock on targets because the first  one  to  qualify  will
            immediately be locked on. If you want then to select another
            target then use 'l' to release the target and then later 'l'
            to lock on the new one.

            Once  a  target  is locked, the selection markings disappear
            and the piper shows (or if it is still  far  then  only  the
            A target is identified with a box around it (the target des-
            ignator).  When the target is out of  view  the  box  has  a
            large  '+' crossing it which changes to a large 'X' when the
            target is actually behind you.

            If you issue Shift-C then the plane will chase  the  current
            target  (there  must  be  one  or the plane will just patrol
            round the runway). Use the 'k' command  to  allow  automatic
            firing ('k' works even when not in Chase mode, and is useful
            if you want to practice the chase and let the auto-pilot  do
            the shooting).

            When the reticle goes off-screen it gets a '+' inside it.

            You  can  shoot  at  various objects. Use the 'emit' menu to
            create these objects.

            When you hit something it gets damaged  and  fragments  fall
            off.  When  enough  damage  is done the object is officially
            HIT. It blinks  red/white  and  starts  falling  toward  the
            ground.  Practice  targets  are destroyed immediately. These
            fragments are lethal and can hit any other object!  Normally
            you  can  fly  through any object EXCEPT a bullet - so don't
            stay behind a broken plane or you may be hit by the  falling
            fragments.




            13.  Networking

            As  others  said before, playing with oneself is fun but you
            don't make as many friends (they said you'll go blind  too).

            The program will let you play with others using a variety of
            communication media.  Once  networked,  objects  are  shared
            between  the  players. The number of players is only limited
            by the capability of the network medium.

            Below here, numeric parameter values can be given in C  for-
            mat,  i.e.  if it starts with 0x it is hex, starts with 0 is
            octal, else it is decimal.

            13.1  msdos

            13.1.1  serial
            At the bottom of the pile is the PC to PC serial connection.
            Only two players can combine in this way. You can choose two
            drivers for this:

                 dncom.N:baud:parity:bits:stop:xmode:inbuf:outbuf

            Slow machines should NOT use output buffering.

            Positional parameters:

                 N         com port number: 1...4

                 baud      the line speed, up to 115200.

                 parity    e, o or n

                 bits      8

                 stop      1

                 xmode     xon or xoff; do not specify!

                 inbuf     4000 is enough. experiment.

                 outbuf    very little  needed  if  at  all.  Very  fast
                           machines  will benefit from output buffering,
                           slow ones will choke unless the baud rate  is
                           low. At 115200 most machines cannot cope with
                           output buffering.  My  486/66  gets  a  major
                           speedup with output buffering at 38400.

            Other  parameters  can  follow,  the  parameter name MUST BE
            GIVEN:

                 irqN      irq number (use 4/3 as usual)

                 baseNNN   port hardware  address  (use  0x3f8/0x2f8  as
                           usual)

            Example:

                 dncom.2:115200:n:8:1::4000::irq3:base0x2f8

            Note that no 'xmode' was given and no 'output buffering'.

            If you prefer, you can use SLIP when you have SLIP8250:

                 slip8250 0x65 -h SLIP 3 0x02f8 38400 10000
                 fly8 r dnslip.1:int=0x65

            This is the same as

                 fly8 r dnslip.1

            because the driver will then be searched for.

            Slip  is not too fast, you need both machines to be at least
            386DX for full speed and even then it is touch  and  go.  It
            13.1.2  network-based
            If  you  have  a  'real' network then install your favourite
            packet driver and do

                 fly8 r dnpkt.1:pack=1408

            In this mode you can have as many players as you  wish.  The
            program  talks  packet level. You can also use the EtherSlip
            driver to play head to head with this driver, however direct
            com access is more efficient.

            If you are runnning a unix system with the fly8udp server on
            it then you can use the msdos udp over packet  driver.  This
            will  allow  you  to  join  the other unix players. The unix
            server MUST be on the smae subnet for this driver to work.
                 fly8 r dnpcudp.1:pack=1408:ip=0xc0000203:sip=0xc0000204

            Note  how  you must give your own ip (ip=) and the server ip
            (sip=). Your own ip can be anything but your  sysadmin  must
            allocate  it,  while  the server ip is the actual ip for the
            host that is running the fly8udp server.

            13.2  unix

            13.2.1  FIFO
            The FIFO driver will allow communication using FIFOs as well
            as a tty serial line.

            This driver provides a head-to-head capability through FIFOs
            or other similar  steam oriented facility. For one, it  will
            allow  connecting through a serial port (or other '/dev/tty'
            type connections).

            Basically, you nominate an input file (if=)  and  an  output
            file (of=) and Fly8 will use these. For example, this is how
            you start a two player head-to-head on a pair of FIFOs:

                 fly8 r N1 Tone dnfifo.1:if=ff81:of=ff82:pack L1.log
                 fly8 r N2 Tone dnfifo.1:if=ff82:of=ff81:pack L2.log

            The two fifos can be created as

                 mkfifo ff81

            or as

                 /usr/etc/mknod ff81 p

            Note that the two programs run  with  different  user  names
            (N*) but share the same team (T*). This means that they can-
            not fight each other. Use a different team name for dueling.

            To play accross a serial line, simply  start  this  on  both
            machines

                 fly8 r N1 Tone dnfifo.1:if=/dev/ttyS1:of=/dev/ttyS1

            /dev/ttyS1  is  the serial line connection name on this end.
            You will use a different user name (and maybe team name)  on
            the two ends too.

            You will first need to set the serial line up, for example:

                 stty speed 38400 raw crtscts </dev/ttyS1

            This  setup can connect to the msdos serial driver. On msdos
            use these parameters:

                 fly8 r N2 Tone dncom.2:38400:n:8:1::4000:4000

            This will use com2 (use 'com.1' for com1).

            13.2.2  UDP-level
            This driver is based on a server (fly8udp) program to  which
            each player connects. The server will re-distribute all mes-
            sages as necessary.

            The order of events is as follows:

            Start the server:

                 fly8udp &

            Put the host name where  the  server  runs  in  the  fly.ini
            parameter. Here is an example for when the server is running
            on the local host:

                 r
                 dnudp.1:localhost:pack=1408

            The 'r' will enable the Fly8 networking in general.

            The ':pack' option tells Fly8 to  collect  multiple  logical
            packets  into one physical packet, please always use it with
            this driver.

            The above option can be put on the command line too, have  a
            look at the sample script 'flyudp'.

            Now  start Fly8 as usuall. Once running, check to see who is
            attached to the server with the ping request 'Esc n p'  com-
            mand.  If someone replies then you can connect with the play
            request 'Esc n y'; answer '*' (all) to the prompt or  select
            a specific user.
            you will be purged from it's table. This means that  if  you
            are  the  first  user then you will not be able to keep your
            registration, the first two players need to  connect  (both)
            within this 10 seconds time window.

            To control the server use the 'udpmgr' program. Start it as

                 udpmgr localhost

            where  'localhost'  is  the default host where the server is
            running, subtitute the correct name otherwise. Use this com-
            mand to shut the server down:

                 shutdown

            and use this to stop the manager itself (if it does not drop
            out by itself at this point)

                 end

            You can request the server to print it's stats with

                 stats

            13.3  usage

            OK, you started  the  program  with  networking.  It  really
            enjoys  it  but  then it is a computer. You want to enjoy it
            too. Here is how. The Net menu has a  set  of  commands  for
            managing your connections with other players.

            Some  of the requests in this menu will need you to identify
            a player. A list of players  is  displayed  and  you  should
            select one by entering their name. If you Enter '*' then you
            will select all of them. If you  Enter  '+'  then  you  will
            select  all  of  your team members. If your response is null
            then you select none. If there is only one  player  then  it
            wil  be selected automatically. Otherwise, you can enter the
            start of the name and team so that the first  partial  match
            will be selected.

            A  message 'no net' means that the program was started with-
            out the net option (or  possibly  all  net  connections  are
            inaccessible).

            A  message  'no  player'  may  be displayed which means that
            there are no players in the needed status (eg.  you  try  to
            'quit' but you are not currently playing with anyone).

                 ping
                      This is a broadcast ping to all players. All other
                      programs will respond with  their  identification.
                      handle  (nickname,  etc.) and you will be known by
                      it in this game.

                 play
                      Request to play with another player. If  there  is
                      only one then the program will go ahead and estab-
                      lish connection. Otherwise you will be prompted to
                      select  a  player from a list. To have the program
                      know who is playing you should  have  used  the  P
                      command first.

                 quit
                      Quit  playing.  If there are more players then you
                      will get a list to choose from. An empty  response
                      will assume you want to quit all players.

                 message
                      Send  a  message  to  a player. Right now, an echo
                      message will also be sent and the turnaround  trip
                      time (in milliseconds) will be shown. This time is
                      end-to-end including program delay.

            In addition to the above commands which you  will  use  from
            time  to  time,  there  are a number of options on this menu
            which you may want to set at program  startup  (or  wish  to
            continue to handle manually).

                 accept
                      If  you  are  in 'manual reply' mode then you will
                      get messages about players who want to  play  with
                      you. Use this option to accept them.

                 decline
                      If  you  are  in 'manual reply' mode then you will
                      get messages about players who want to  play  with
                      you. Use this option to decline their request.

                 auto accept
                      Set the game to always accepy playing requests.

                 auto delcine
                      Set the game to always decline playing requests.

                 manual reply
                      Set the program to ask you to accept/decline play-
                      ing requests.

                 auto connect
                      This option will attempt to  connect  to  all  net
                      players continuously. It will also accept all play
                      requests automatically. If you  plan  to  use  any
                      communication  then  it  is  a good idea to always

            When  you  exit  the  program it will automatically quit all
            players and notify the net of your exit.

            If long delays are observed then a player may  be  automati-
            cally  timed  out.  You  will  see  messages about this. Use
            'play' to re-establish contact. Proper  use  of  'quit'  and
            'play'  will  let you pop out of sight in danger and re-join
            in a more favourable position :-)

                 IMPORTANT NOTE: the comms at this point is one-on-
                 one.  If  you  connect to three other players then
                 they all show in your world and you show in  their
                 but  they  do  not  know of each other unless they
                 establish connections too. If a  group  plays  and
                 each  one joins with a global 'play' then everyone
                 will know about everyone else.

            There  is  a  need  for  proper   'game'   management   (co-
            ordination), now completely lacking.




            14.  Files

            14.1  fly.ini

            This  file  serves  as  an  extension  to  the  command line
            options.   The  command-line  option  'I'  can  set  a  user
            selected file name, this option MUST be on the command line.

            Fly8 acquires parameters from three sources:

                 The ini file
                      One  parameter  per  line.  Leading   blanks   are
                      skipped,  then  first blank terminates the parame-
                      ter. '#' denotes a comment line.

                      The file is searched for in the current directory,
                      then  in your home directory (using the HOME vari-
                      able) then in each directory along your PATH.

                 The environment variable FLY8
                      Parameters are separated by a semicolon.

                 The command line options
                      The usual rules apply, but the traditional '-'  is
                      NOT required.
            These  sources  are  processed  in the above order and later
            parameters override earlier ones. The parameters consist  of
            one  letter  followed  by a value. Some options are grouped,
            and then two letters identify the parameter.
            decimal (otherwise).

                 FFilesPath
                      Path  where  all  files are to be found. Should be
                      used only on the command line.

                 IIniFile
                      Specified the name of an init file.   The  default
                      is 'fly.ini'. The file is searched for in the cur-
                      rent directory, then in the home  dir  (uses  HOME
                      env.  var.) then the PATH directories are checked.
                      Only the first file found is used.  Should be used
                      onlye on the command line.

                 MMacroFile
                      Name of keyboard macros file. [default is 'fly']

                 XNavFile
                      Name of nav data file. [default is 'fly']

                 YLandFile
                      Name of landscape file. [default is 'fly']

                 dpPointerDriver
                      The  pointing device can be one of: keypad, mouse,
                      astick, bstick. But each version of fly8 has  dif-
                      ferent ones.

                      All  pointers  MUST  have  as the first option the
                      following 4 characters:

                      1 [+-] set 1st channel direction

                      2 [xy] set 1st channel function (see below)

                      3 [+-] set 2nd channel direction

                      4 [xy] set 2nd channel function (see below)

                      Example of pointer parameters:

                      dpMouse:+y-x:

                      This means "the first mouse axis should be  inter-
                      preted  as the fly8 Y axis while the second should
                      be treated as the X  axis  and  is  inverted  (the
                      '-').   This  unusual  setting may be used if your
                      mouse is actually a trackball which you are  using
                      sideways (axes reversed).

                      The  Fly8  X  axis  controlls the roll while the Y
                      axis controls the pitch. The  standard  option  is
                      Each  pointing  device  can  have more parameters.
                      When a list of buttons is expected you can  use  a
                      simple   list   or  include  ranges,  for  example
                      ":a=1-4" will make buttons 1, 2, 3 and 4 sensitive
                      to  the  Btn-Alt mode.  If the '-' is at the start
                      then a '0' is assumes before it while at the end a
                      'z'  is  assumed.  This means that ":a=-" will set
                      all of the buttons.

                           common options

                                d=
                                     Do not  debounce  these  buttons  -
                                     make  them repeating. Example 'd=0'
                                     will cause button 0 to  repeat  its
                                     associated command while pressed.

                                r=
                                     Do  NOT  issue  key release command
                                     for these buttons.  Example  'r=13'
                                     will disable issuing key-release on
                                     buttons 1 and 3.

                                a=

                                c=

                                p=

                                s=
                                     Set the buttons to  respondto  Alt,
                                     Ctrl,   Special   and  SHift  modes
                                     respectively.

                                linear
                                     The 'x'  and  'y'  inputs  will  be
                                     interpreted  as a linear scale. The
                                     default is to  apply  a  log  scale
                                     such  that  the  sensitivity of the
                                     stick increases as  you  move  away
                                     from  the reference point (center).

                           keypad
                                (No optional parameters are defined)

                           mouse

                                sx=
                                     Sets the sensitivity of the mouse x
                                     axis.

                                sy=

                           stick

                                ian=
                                     The size (in % of active range)  of
                                     the region where the reading may be
                                     unstable.  This  'idle'   parameter
                                     nominates  the area around the cen-
                                     ter of the joystick and  the  edges
                                     of  it  (and of the throttle) where
                                     the reading will be treated  as  it
                                     is  was still at the center (or the
                                     edge).

                                     The 'an' above  nominate  the  axis
                                     and  stick  number  as:  ix1=  main
                                     stick x, iy1= main  stick  y,  ix2=
                                     2nd  stick  x, iy2= 2nd stick y. y2
                                     is used for throttle (CH,  WCS)  or
                                     hat (FCS in analog hat mode).

                                hat
                                     Use  y2  as  the FCS hat. The posi-
                                     tions are called  buttons  4  (up),
                                     5(right), 6(down) & 7(left). Do not
                                     use this option for the CHPro,  see
                                     the special 'chpro' option later.

                                ttl
                                     Use  y2  as  throttle.  if  you use
                                     ":ttl-" then the throttle  will  be
                                     read  such that full-range is zero-
                                     throttle and  zero-range  is  full-
                                     throttle  (which  is how the CH and
                                     WCS do it).

                                zero
                                     Read no buttons. This is used  when
                                     the  buttons  are delivered through
                                     the keyboard using a WCS or FLCS.

                                four
                                     Read  all  4  buttons.  These   are
                                     called  0,1,2  & 3. Do not use this
                                     option for the CHPro, see the  spe-
                                     cial 'chpro' option later.

                                chpro
                                     Used to indicate that you are using
                                     a CH Pro Flightstick which has four
                                     buttons and a hat and has a differ-
                                     ent encoding  scheme  than  the  TM
                                     FCS.

                                rd=
                                     Read  the  joystick this many times
                                     instead  of  once.  See  also  next
                                     option.

                                dly=
                                     Wait  some  time  between  multiple
                                     reads. The  last  two  options  are
                                     usefull if there is a lot of inter-
                                     ruptions (network, multiuser system
                                     etc.).  The  delay may be necessary
                                     if doing multiple reads since  some
                                     joystick ports are slow to reset.

                                count
                                     Do  not  use the timer when reading
                                     the stick, just run a loop counter.
                                     Usefull  if  your machine/joystick-
                                     card combination is  so  fast  that
                                     the timer does not have enough res-
                                     olution.  This  method  is  however
                                     more  sensitive  to  interruptions,
                                     use 'rd=' and  'dly='  to  overcome
                                     these.  Also, under mswin the timer
                                     may not function properly.

                 dvVideoDriver
                      The software  video  driver.  These  vary  between
                      machines.

                         o MSDOS:    grQc  (default),  grFast  or grVESA
                           (VESA/VBE). There may be a grbgi if  compiled
                           with borland but it is too slow.

                         o DjGpp:    grAsm  (using  fast  assembly level
                           graphics),  grDJ  (using  distribution  DjGpp
                           graphics library).

                         o MSWIN:    grGDI, grBitBlt, grWinG

                         o UNIX:     grx   (PixMap  based),  gri  (Image
                           based) or grSVGA (svgalib).

                         o AMIGA:    gramiga [amiga port not available!]

                 dnNetDriver
                      Network  access  through  driver  'NetPort'.  Only
                      msdos/unix have network  drivers  at  the  moment.
                      Look earlier at the networking section.

                 dkKeyboardDriver
                      Keyboard  device  name.  Usually there is only one

                 dsSoundDriver
                      Sound device  name.  Usually  there  is  only  one
                      defined so leave this parameter out.

                 PPlaneType

                 DDroneType
                      The  plane  and  drone  type. If absent then drone
                      type defaults to plane type.  Current  types  are:
                      classic, basic, f16.

                 VVideoModesFile
                      The  video modes file to use, e.g. 'Vgrvesa' means
                      to  use  the  file   'grvesa.vmd'.   [default   is
                      'fly.vmd']

                 mVideoMode
                      The  video  mode. This is one of the modes defined
                      in the .vmd file you use.

                 iString
                      Initialization keystrokes. The string is a list of
                      macros to execute at startup. The default is Ctrl-
                      A. The string 'iCaezAb' will  execute,  in  order:
                      Ctrl-a  Ctrl-e  Ctrl-z  Alt-b. Only Ctrl- and Alt-
                      type macros can be used here. Macros  are  defined
                      in the *.max file.

                 bn
                      Windows  configuration. The 'n' is the same letter
                      as used on the 'Windows' menu.

                 r
                      Activate network  playing  (used  to  be  'support
                      Remote players').

                 NHandle
                      You will be known as 'Handle'.

                 TTeam
                      Your team's name.

                 HHome
                      Your  home  runway  name  (selected  from  fly.nav
                      file).

                 o
                      This is used to prefix a list  of  options  (sepa-
                      rately  described  as  'oq'  etc.  later). You can
                      embed '-', '+' and '^' to set, clear or toggle  an
                      option  respectively.  For  example  "o-qv+l" will
                      turn off sound and verbose, and turn on landscape.

                 oq
                      No sound

                 ol
                      Add some landscaping (very rudimentary).

                 ov
                      See Options.Verbose in the menus chapter.

                 zNDrones
                      Screen-blanker  mode  (with 'NDRONES' drones). You
                      are put insto auto-pilot  auto-kill  mode,  window
                      borders are not shown.

                 ntTimeLimit
                      Time limit in seconds (use in batch demos).

                 nbLineBufferSize
                      Max  num  of segments in the display list. Default
                      5000. Used to reduce  memory  shortage  on  msdos.
                      Should  be set to higher in environments that have
                      no stupid memory limitations.

                 niMilliSecs
                      Max time for single step plane dynamics.  Used  to
                      reduce  simulation errors by breaking long periods
                      into a sequence of shorter ones.

                 nmMacros
                      Max number of keyboard macros

                 cColor
                      Sets any one of the color  definition.  The  color
                      name  is  the  same as used on the color menu. The
                      value is as RGB, each componnent is 8 bits.  Exam-
                      ple:  ch0x60c060  set hud-low ('h') color to light
                      green (R=60, G=c0 B=60, all in hex).

            14.2  fly.log

            This file logs the activity of the program, problem messages
            and  final  stats. The command-line option -L can set a user
            selected file name.

            14.3  fly.mac

            This file is read at program startup and written at  program
            shutdown.   It  is  the  list  of  keyboard  macros. Use the
            'mac2max' program to list the contents of this file. At  the
            moment  there is no macro editor so you should use the rede-
            fine-macro for updating. The command-line option -M can  set
            a  user  selected  file  name.  It is easier to maintain the
            14.4  fly.max

            This  file  is  read on program startup and defined keyboard
            macros. If it does not exist then fly.mac is read, if  there
            is  none  then no macros are defined (at this point). During
            shutdown all keyboard macros are written  to  fly.mac  (will
            OVERWRITE the original!).

            fly.max is a text file while fly.mac is a binary format.

            It  used to be that you could only define macros at run time
            using the F7 facility. However, now you will  probably  edit
            fly.max  instead. However, if you do add new macros interac-
            tively then you can use:
                 mac2max fly.mac >new.max

            and now with an editor copy from new.max what you want  into
            fly.max.  If  you run the program again then fly.mac will be
            overwritten with the content of fly.max.

            If you find yourself running fly8 and  forgot  to  save  the
            fly.mac  (into  fly.max) then shell out (with the ! command)
            and make a copy of fly.mac.  The shell  only  works  if  you
            have  enough  memory. If the screen goes blank on shell then
            assume that it worked and type (blind) something like:
                 copy fly.mac xxx
                 exit

            and the program will resume. Good luck.

            fly.max is a list of key definitions. Each definition starts
            with  the  Def  keyword  and  is  followed  by the key being
            defined and a list of keystrokes (the macro itself).

            Things can continue on multiple lines. A #  will  cause  the
            rest of a line to be ignored.

            A  key  name is a list of shifts followed by a key name. The
            recognized shifts are:

                 Shift

                 Ctrl

                 Alt

                 Btn
                      Button press. This is the usual button definition.

                 Brl
                      Button release. Will only be effective if the but-
                      ton  was  defined  to  report  key  releases  (the

            A  key  name  is either a single character (which represents
            itself and IS CASE SENSITIVE) or one of  the  special  names
            (not case sensitive):

                 F1

                 F2

                 F3

                 F4

                 F5

                 F6

                 F7

                 F8

                 F9

                 F10

                 F11

                 F12

                 Left

                 Right

                 Up

                 Dn
                      alias Down

                 PgUp
                      alias PageUp

                 PgDn
                      alias PageDown

                 Home

                 End

                 Ins
                      alias Insert

                 Ctr
                      alias Center. Unshifted numeric keypad 5 key.

                 Del
                      alias Delete

                 Sp
                      alias Space

                 Bell
                      alias \a

                 Bs
                      alias Ro, Rubout, \b

                 Esc
                      alias \e

                 Ff
                      alias \f

                 Enter
                      alias Ent, Cr, Ret, \n

                 Nl
                      alias \r

                 Tab
                      alias \t

                 Vt
                      alias \v

                 \\
                      A single '\'

            Note  that  some  keys have both a long and a short name and
            some have an escape form too.

            You can use string notation:

                 Def Alt g "\esph=\e40c080\n\e\e" # set HUD to green
                 Def Alt y "\esph=\e808000\n\e\e" # set HUD to yellow

            strings can continue on the next line.

            Buttons are named 0-9 and a-z. The usual drivers will assign
            them  in  the  following manner (use wcs.adv and flcs.b50 to
            configue these devices).

                 0
                      trigger, mouse right button (FLCS TG2).

                 1
                      other button on a two button pointer (FLCS S2).

                 2,3
                      rest of buttons on a 4 button  joystick  (FLCS  S1
                      and S3).

                 4,5,6,7
                      main hat positions: up, right, down, left.

                 8
                      FLCS TG1 (partial trigger) button.

                 9
                      FLCS red paddle (S4) button.

                 a,b,c,d,e,f
                      WCS bottons 1, 2, 3, 4, 5 and 6.

                 g,h
                      WCS rocker up and rocker down.

                 i,j,k,l
                      FLCS hat 2 up, right, down, left,

                 m,n,o,p
                      FLCS hat 3 up, right, down, left,

                 q,r,s,t
                      FLCS hat 4 up, right, down, left,

            Note  that these names depend on the pointer driver that you
            use. The mouse uses only 0 (left) and 1(right).

            14.5  fly.nav

            Lists the  navigation  waypoints  which  have  ILS  beacons.
            Should  really  be merged with the landscape file. Maybe one
            day. It is created from the fly.nac file using an awk script
            (in the 'parms' directory).

            This  is  a  very  basic  file that nominates the navigation
            points. Fly8 is not strong in this  area,  however  you  can
            activate the ILS system which will use one of these beacons.

            The file structure is as follows:

            First you nominate the number of points you are defining  (I
            know, I am lazy).

            Next come the beacon information:

                "A18",
                  V(0), V(0), V(0),   /* [x,y,z] meters */
                  149*60+10,  -(35*60+20),  /*  longitude, latitude min-
                  0, 1500,       /* glide-path relative [x,y] meters */
                  0,             /* heading of forward beam angle */
                  D(3),               /* pitch of beam angle */

            The name is whatever you call it (not case  sensitive).  The
            position is like in the object positioning in the .lnc file.
            The long/lat data allows the program to track your position,
            it is NOT checked against the previous line!

            The  next  line specifies the localizer position (assumed to
            be level with the object) as [east, north] and then the same
            for the glide slope origin point. These points are where the
            transmitting antenna is located.

            The next line gives the heading of  the  localizer  beam  (0
            means north), and the next is the glide slope angle (3 means
            3 degrees slope).

            An empty name must close the list.

            14.6  fly.lnd

            Defines the contents of the landscape. It  is  created  from
            the  fly.lnc  file  using  the  C  pre-processor  and an awk
            script.

            It is mechanically built from fly.lnc. It describes the con-
            tents of the landscape.

            This  file is a list of objects and their placement. You can
            place the standard objects (defined in separate .vxx  files)
            as  well  as define new objects. The new objects will not be
            animated are are used for the fixed landscape.

            And object placement has the following format:

                O_RUNWAY, CC_DEFAULT,    /* runway A */
                  V(0), V(0), V(0),   /* position x, y, z */
                  D(0), D(0), D(0),   /* heading, roll, pitch */

            The first  line  names  the  object  and  assigns  a  color.
            CC_DEFAULT will let the object keep it's standard color.

            The  second  line  gives  the objects position as x (east) y
            (north) and z (up) in meters (you can use fractions).

            The third line gives the objects  orientation  in  terms  of
            heading  (north  is zero) roll (zero means level, 90 means a
            quarter turn right and  180  means  upside-down)  and  pitch
            (zero means level, 90 mens straight up while -90 is straight
            down).

                O_DEFINE+1, V_METERS,    /* river */
                  6,
                  V(-4000), V(-2000), V(0), V_MOVE,
                   ...

            The first line is the object name (each  object  is  defined
            once and is assigned a number, this one is '1') and the data
            resolution: V_METERS means that the data is to  be  kept  in
            meters  (no fractions) while V_FINE means that internal data
            representation is in 1/16 of a meter.

            Next you nominate the number of vertices  (must  me  right!)
            and  following  are  the vertices. Each is an (x, y, z) trio
            and an indication as to the visibility of that vertex.

            To place a local object use a name of the  format  O_LOCAL+1
            (for the object in the above example).

            14.7  *.vxx

            This  file  can mechanically built from *.vx. It defines the
            shape of an object.

            The .vxx file is a simple list of numbers.  The  first  line
            gives the number of vertices in the object and nominates the
            resolution of the following data: 2 means 1=1meter while '1'
            means 1=1/16meter.

            The  data  is a list of (x, y, z) points followed by 1 (line
            not visible) or 2 (line visible).

            No punctuation marks are used on this file and  data  cannot
            be  moved  from  the nominated lines (2 numbers of the first
            line and 4 on the rest).

            This file can be built from a more  flexible  file  (usually
            stored  as a .vx) which is then processd by the C preproces-
            sor an an expression evaluator which builds the .vxx file.

            Some of the .vx files look line C  initializers  -  this  is
            because objects used to be internal definitions. There is no
            point in making this any nicer since the whole object repre-
            sentation  will  at  some  stage be completely upgraded to a
            full polygon based structure.

            14.8  *.prm

            These files define the various aircraft parameters.  Differ-
            ent  parameters  are used by different flight models, but if
            you modify a parameter file it is best to set ALL parameters
            so that all model will work.

            fly8 options 'P' and 'D' select which parameter file will be
            read (so 'fly8 Pf16' will read the 'f16.prm' file).

            The *.prc file has short comments against  each  line  which
            should  give  some idea about each value. Note that the data
            is explicily integer.  This means that fractions are kept as
            fixed point. Also, other data (line angles and lengths) have
            a fraction part; however, you should not worry  about  this,
            just  make  sure that you specify the data using the correct
            format. If you see a drag coefficient specified  as  F(0.02)
            then keep using the F() format - this will convert the frac-
            tion to the fly8 representation.  Following  are  the  types
            recognized  (look  at  'parms.h'  for the definitions if you
            wish):

                 F(x)
                      Stores x as a fraction. x should be  kept  in  the
                      range -1.0 to 1.0.

                 F10(x)
                      Stores x as a scaled fraction. x should be kept in
                      the range -10.0 to 10.0.

                 V(x)
                      Length representation. Will be  stores  as  meters
                      with four binary fraction bits (just over 6cm).

                 VV(x)
                      Special  format  for  high  resolution  lengths. x
                      should be kept to a reasonably small value (-128.0
                      to  128.0)  but the resolution is to 8 bits (about
                      4mm). This is used in giving delicate landing gear
                      dimentions.

                 G
                      Constant  of  gravity (9.810). Useful for defining
                      forces.

                 D(x)
                      Stores x degrees in fly8 format.

                 DV(x)
                      Stores x degrees/sec in fly8 format.

                 I10(x)
                      Stores a large integer with -1 decimal point (that
                      means that a weight of 12876 is stores as '1287').
            In all of the above 'x' can be any number (integer or float-
            ing point) or any expression of these. The expression evalu-
            ator understand most of the standard C operators. Also,  you
            can  use  the C preprocessor syntax in this file since it is
            being run through it anyway.
            so  never change the format notation in the *.prc file, just
            change the values.

            The most important parameter is the first item  in  the  '10
            options' list (towards the end), it selects the flight model
            program.

                           [much more stuff needed here]

            14.9  fly.vmd

            This file defines the parameters  for  the  available  video
            modes. In windowed environments this is the startup mode and
            you can then resize the window.  The command-line  option  V
            can set a user selected file name. The readme should itemize
            the available mode files for the different environments.

            The file is a list of mode lines. Each line has the  follow-
            ing format:

                 name
                      The  name of mode, any string (should be unique in
                      this file).

                 int10 value
                      For pc/grfast: the supplied text files should have
                      enough  info  to  set  these  up for the supported
                      cards.

                      For pc/grqc: this number is the c library  id  for
                      the mode.

                      Not used on other platforms.

                 number of colors
                      Must be 256 on pc/vga.

                 min x
                      The  physical  offset  of  the left margine of the
                      screen. 0 on pc/vga.

                 min y
                      The physical offset of  the  top  margine  of  the
                      screen. 0 on pc/vga.

                 size x
                      Screen width in pixels

                 size y
                      Screen height in pixels

                 number of pages
                 physical screen width
                      Actual screen measurment  (e.g.  millimeters)  for
                      aspect ratio adjustment.

                 physical screen height
                      Actual  screen  measurment  (e.g. millimeters) for
                      aspect ratio adjustment.

                 font width
                      8 (obsolete)

                 font height
                      8 (obsolete)

                 flags
                      This is a general purpose flags word used  differ-
                      ently   by   each   video   driver.  For  example,
                      msdos/grfast (and many others) uses the '1' bit to
                      indicate  a  need  to wait for vsync on page flip-
                      ping.

            14.10  data directory

            This directory is where one build the *.lnd, *.prm and *.nav
            files  from the free form input. The 'data' directory can be
            located anywhere but I find is easy to keep is as  a  subdi-
            rectory of the Fly8 game directory.

            The files here are:

                 *.lnd
                      built  from  *.lnc,  this is the landscape descip-
                      tion.

                 *.prm
                      built from *.prc, this  is  the  plane  parameters
                      file.

                 *.nav
                      built  from *.nav, this file gives some navigation
                      data.

            The steps to follow in  building  the  files  are  described
            below.  The  'build' batch file is available for msdos but a
            similar one should be done for unix etc. It simple automates
            a rather simple process.

                 1
                      Edit  the  source file (lnc/prc/nac). Use whatever
                      editor you prefer, these are plain text files.

                 2
                      lnd/prm/nav as appropriate.  This script will  run
                      your  file  through  the  C pre-processor and then
                      through an awk script (expr.awk).

                 3
                      Copy the  new  file  (lnd/prm/nav)  to  your  game
                      directory.  Or  you  can give the directory on the
                      build 'build File Type CopyToDirectory'.

                 4
                      Change to the game directory  and  play.  The  new
                      file will now be used.




            15.  Acknowledgements

                 Ross Johnson (rpj@ise.canberra.edu.au)
                      Ideas,  testing,  networking  know-how,  X11 help.
                      Doco typesetting and review.

                 Mike Taylor (miket@canb.auug.org.au)
                      Amiga and Windows ports.

                 Paul Thomas (paul.thomas@uk.ac.ox.eng)
                      Contributed a number of plane shapes.




            16.  Misc Notes

            When you eject ('E') you will find yourself on a  parachute.
            When  you land, you will move to a new plane. You can accel-
            erate the descent with 'D' but if  the  plane  did  not  yet
            crash  then  you  will (have to) wait on the ground until it
            crashes and a new one is provided.

            The IBMPC uses a timer chip with three counters. Fly8  reads
            counter  0 to get high resolution interval timing and writes
            counter 2 to generate speaker sound. Counter 0 is often  set
            to  the wrong mode by various programs (some examples: Land-
            mark 1.14 sets the mode to 3 while version 2.00 sets  it  to
            2)  .  The standard is mode 3, but it is sometimes set to 2.
            Fly8 needs to have the timer in the mode 2 or 3 or it  reads
            bad timing information.

            The  program  'gettimer' will report the current mode. If it
            is 36/34 or  b6/b4  then  the  mode  is  correct.  Fly8  was
            upgraded  to support the most common two modes and can actu-
            ally operate with non-standard timer settings (I should doc-
            The program settimer will set the timer to mode 3.




            17.  Known Problems

               o On  a  486DX50 the serial driver fails at 115200 but is
                 ok at 57600.  Output buffering at high speed looses the
                 comms.  It  is  now  fixed  with  a kludge in the comms
                 driver.

               o On fast machines attempting to read the joystick  twice
                 in  a  row produces unexpected results. A special delay
                 option was introduced to get around this problem.

               o The stroke character generator will not  handle  stroke
                 sizes  above  128  pixels.  May be a problem if you try
                 running at very high resolutions (say 1600x1200).

               o On slow machines the program may  fail  with  a  divide
                 overflow. It also may happen (rarely) on fast machines.
                 This will be fixed gradually as sensitive areas of  the
                 program get cleaned.




























                                 Table of Contents



            1.  Introduction ......................................... 2

            2.  Installation ......................................... 4

            3.  Quick start .......................................... 4

            4.  Commands Reference ................................... 7
                4.1   Alphabetic Keys ................................ 8
                4.2   Symbol Keys ................................... 12
                4.3   Keypad ........................................ 13
                4.4   Special keys .................................. 15
                4.5   Function keys ................................. 15
                4.6   Alt keys ...................................... 16
                4.7   Ctrl keys ..................................... 16
                4.8   Arrow keys .................................... 17

            5.  Menus ............................................... 17
                5.1   Top Menu ...................................... 18
                5.2   Pointer Menu .................................. 19
                5.3   Screen Menu ................................... 19
                      5.3.1  Screen.Palette Menu   20
                      5.3.2  Screen.Colors Menu   20
                      5.3.3  Screen.Stereo Menu   20
                5.4   Windows Menu .................................. 21
                      5.4.1  Windows.Configure Menu   22
                5.5   Info Menu ..................................... 23
                5.6   Emit Menu ..................................... 24
                5.7   HUD Menu ...................................... 25
                      5.7.1  HUD.type Menu   26
                      5.7.2  HUD.parts Menu   27
                      5.7.3  HUD.parts.ladder menu   28
                      5.7.4  HUD.parts.ladder.sizes menu   30
                      5.7.5  HUD.parts.ground menu   30
                      5.7.6  HUD.options1 Menu   31
                      5.7.7  HUD.options2 Menu   32
                      5.7.8  HUD.radar Menu   33
                      5.7.9  HUD.hdd Menu   34
                5.8   Net Menu ...................................... 34
                5.9   Options Menu .................................. 35
                5.10  Auto Menu ..................................... 36
                5.11  Debug Menu .................................... 37
                5.12  Buttons Menu .................................. 37
                5.13  Commands Menu ................................. 39

            6.  Command Line Editing ................................ 39

            7.  Aural Indicators .................................... 40

            9.  The Plane ........................................... 41

            10. The Head Up Display ................................. 43
                10.1  Heading ....................................... 43
                10.2  Altitude ...................................... 44
                10.3  Speed ......................................... 44
                10.4  Pitch ladder .................................. 44
                10.5  Velocity Vector ............................... 45
                10.6  Waterline mark ................................ 45
                10.7  Radar Symbology ............................... 45
                      10.7.1 Target designator   45
                      10.7.2 Aiming Reticle   45
                      10.7.3 Radar Range   46
                      10.7.4 Digital data   46
                10.8  Other Features ................................ 47

            11. The ILS ............................................. 47

            12. Radar and targets ................................... 49

            13. Networking .......................................... 50
                13.1  msdos ......................................... 50
                      13.1.1 serial   50
                      13.1.2 network-based   52
                13.2  unix .......................................... 52
                      13.2.1 FIFO   52
                      13.2.2 UDP-level   53
                13.3  usage ......................................... 54

            14. Files ............................................... 56
                14.1  fly.ini ....................................... 56
                14.2  fly.log ....................................... 62
                14.3  fly.mac ....................................... 62
                14.4  fly.max ....................................... 63
                14.5  fly.nav ....................................... 66
                14.6  fly.lnd ....................................... 67
                14.7  *.vxx ......................................... 68
                14.8  *.prm ......................................... 68
                14.9  fly.vmd ....................................... 70
                14.10 data directory ................................ 71

            15. Acknowledgements .................................... 72

            16. Misc Notes .......................................... 72

            17. Known Problems ...................................... 73