
  This file has basic information about how to use the editor, plus
  some definitions of unique P-Robots PASCAL language usage.

  First, here are the editor commands:

  ══ Editor Commands (WordStar plus Cursor Keys ═══════════════════════════

  Quit editing                 <ESC>

  Cursor up                    <Up>           <^E>
  Cursor down                  <Down>         <^X>
  Cursor left                  <Left>         <^S>
  Cursor right                 <Right>        <^D>
  Cursor to start of line      <Home>         <^Q><^S>
  Cursor to end of line        <End>          <^Q><^D>
  Cursor left one word         <^Left>        <^A>
  Cursor right one word        <^Right>       <^F>
  ─────────────────────────────────────────────────────────────────────────
  Scroll up one page           <PgUp>         <^R>
  Scroll down one page         <PgDn>         <^C>
  Scroll window up             <^W>
  Scroll window down           <^Z>
  Top of file                  <^PgUp>        <^Q><^R>
  End of file                  <^PgDn>        <^Q><^C>
  Top of screen                <^Home>        <^Q><^E>
  Bottom of screen             <^End>         <^Q><^X>
  Cursor to prev position      <^Q><^P>
  Jump to line                 <^J><^L>
  ─────────────────────────────────────────────────────────────────────────
  New line                     <Enter>
  Insert line                  <^N>
  Toggle insert mode           <Ins>          <^V>
  Insert control character     <^P>
  Insert tab                   <Tab>
  Restore line                 <^Q><^L>
  ─────────────────────────────────────────────────────────────────────────
  Delete char at cursor        <Del>          <^G>
  Delete previous char         <BkSp>         <^BkSp>
  Delete word                  <^T>
  Delete line                  <^Y>
  Delete to end of line        <^Q><^Y>
  ─────────────────────────────────────────────────────────────────────────
  Mouse select                 <ClkLeft>
  Request help                 <F1>           <ClkBoth>
  ─────────────────────────────────────────────────────────────────────────
  Save file                    <F2>           <^K><^S>
  Read new file                <F3>
  Save file under new name     <^K><^N>
  Save file and exit           <^K><^X>
  Abandon file                 <^K><^Q>
  Save and switch files        <^K><^D>
  ─────────────────────────────────────────────────────────────────────────
  Search                       <^Q><^F>
  Search and replace           <^Q><^A>
  Search again                 <^L>
  ─────────────────────────────────────────────────────────────────────────
  Mark start of block          <F7>           <^K><^B>
  Mark end of block            <F8>           <^K><^K>
  Mark current word as block   <^K><^T>
  Toggle block display         <^K><^H>
  Jump to block begin          <^Q><^B>
  Jump to block end            <^Q><^K>
  Copy block                   <^K><^C>
  Delete block                 <^K><^Y>
  Move block                   <^K><^V>
  ─────────────────────────────────────────────────────────────────────────
  Read block                   <^K><^R>
  Write block                  <^K><^W>
  Print block                  <^K><^P>
  Change block to upper case   <^O><^U>
  Change block to lower case   <^O><^V>
  Toggle case of block         <^O><^O>
  Indent marked block          <^K><^I>
  Unindent marked block        <^K><^U>
  Set level for block indent   <^O><^B>
  ─────────────────────────────────────────────────────────────────────────
  Set marker 0                 <^K><0>
  Set marker 1                 <^K><1>
  Set marker 2                 <^K><2>
  Set marker 3                 <^K><3>
  Jump to marker 0             <^Q><0>
  Jump to marker 1             <^Q><1>
  Jump to marker 2             <^Q><2>
  Jump to marker 3             <^Q><3>
  Toggle marker display        <^K><^M>
  ─────────────────────────────────────────────────────────────────────────
  Reformat paragraph           <^B>
  Global reformat              <^K><^G>
  Center line                  <^O><^C>
  ─────────────────────────────────────────────────────────────────────────
  Toggle smart/fixed tabs      <^O><^F>
  Set size of fixed tabs       <^O><^T>
  Set right margin             <^O><^R>
  Toggle indent mode           <^O><^I>
  Toggle word wrap             <^O><^W>


  ══ Unique P-ROBOTS Procedures and Functions ══════════════════════════════

  Alive -- returns a TRUE or FALSE depending upon whether your robot is
           alive or not.

  Ally -- a pre-defined P-ROBOTS "constant" which is one of the values
          returned by the "ObjectScanned" function.

  AllyAlive -- returns TRUE or FALSE depending upon whether your Ally is
               Alive or not.

  AllyDamage -- returns your Ally's current Damage level.

  AllyDead -- returns TRUE or FALSE depending upon whether your Ally is Dead
              or not.

  AllyFuel -- returns your Ally's current Fuel level.

  AllyHeading -- returns your Ally's current Heading.

  AllyLoc_X -- returns the current X coordinate of your Ally.

  AllyLoc_Y -- returns the current Y coordinate of your Ally.

  AllyMeters -- returns your Ally's current Meters.

  AllyShieldRaised -- returns TRUE or FALSE depending upon whether your
                      Ally's shield is raised or not.

  AllySpeed -- returns your Ally's current Speed.

  Angle_To(X, Y) -- returns angle in degrees form your robot's current
                    position to the point X, Y on the battlefield.

  Armor -- returns the type of armor with which your robot is equipped.  The
           result returned can have the "constant" values: Light, Medium or
           Heavy.

  BombsLeft -- returns the number of bombs that your robot currently has.
               If your robot do not select the electronic bombs option, the
               returned value will be zero (obviously).

  Compact -- a pre-defined P-ROBOTS "constant" which is one of the values
             returned by the "Engine" function.

  Cannon(degree, range); -- fires a missile at an angle of "degree" and for
                            a distance of "range".

  Damage -- returns the value of your robot's current damage level.

  Dead -- returns a TRUE or FALSE depending upon whether your robot is dead
          or not.

  Detonate; -- causes the bomb your robot had previous "dropped" or placed
               (using the PlaceBomb procedure) to explode.

  Distance(X1, Y1, X2, Y2) -- returns the distance in meters from the point
                              X1, Y1 on the battle field to the point X2,
                              Y2.

  Drive(degree, speed); -- causes your robot to move in the direction given
                           by "degree" at a specified "speed".

  Economy -- a pre-defined P-ROBOTS "constant" which is one of the values
             returned by the "Engine" function.

  Enemy -- a pre-defined P-ROBOTS "constant" which is one of the values
           returned by the "ObjectScanned" function.

  Engine -- returns the type of engine that your robot is equipped with.
            The result returned can have the "constant" values: Economy,
            Compact, Standard, Large, or ExtraLarge.

  ExtraLarge -- a pre-defined P-ROBOTS "constant" which is one of the values
                returned by the "Engine" function.

  Fuel -- returns the current value of your robot's fuel level in "jiggers".

  HaveCloak -- returns TRUE or FALSE depending upon whether your robot is
               equipped with a cloak.

  HaveRepairKit -- returns TRUE or FALSE depending upon whether your robot
                   is equipped with a repair kit.

  HaveShield -- returns TRUE or FALSE depending upon whether your robot is
                equipped with a shield.

  Heavy -- a pre-defined P-ROBOTS "constant" which is one of the values
           returned by the "Armor" function.

  Large -- a pre-defined P-ROBOTS "constant" which is one of the values
           returned by the "Engine" function.

  Light -- a pre-defined P-ROBOTS "constant" which is one of the values
           returned by the "Armor" function.

  LimitedFuel -- returns TRUE or FALSE depending upon whether your current
                 battle has fuel constraints or not.

  LowerCloak; -- causes your robot's cloak to be lowered.

  LowerShield; -- causes your robot's shield to be lowered.

  MakeRepairs; -- causes your robot to begin repairing itself.

  MaxRadarRange -- returns the maximum range (in meters) for your robot's
                   radar.

  MaxSpeed -- returns the maximum speed for your robot.

  Medium -- a pre-defined P-ROBOTS "constant" which is one of the values
            returned by the "Armor" function.

  Meters -- returns the cumulative number of meters that your robot has
            traveled during the current battle.

  Normal -- a pre-defined P-ROBOTS "constant" which is one of the values
            returned by the "Warheads" function.

  Nothing -- a pre-defined P-ROBOTS "constant" which is one of the values
             returned by the "ObjectScanned" function.

  ObjectScanned -- returns the type of object that was found by the most
                   recent "Scan" call (if any).  The result returned can
                   have the "constant" values: Nothing, Ally, Enemy or
                   Obstruction.

  Obstruction -- a pre-defined P-ROBOTS "constant" which is one of the
                 values returned by the "ObjectScanned" function.

  PlaceBomb; -- causes your robot to "drop" or place an electronic bomb at
                the current location.

  Premium -- a pre-defined P-ROBOTS "constant" which is one of the values
             returned by the "Warheads" function.

  RaiseCloak; -- causes your robot's cloak to be raised.

  RaiseShield; -- causes your robot's shield to be raised.

  Random(limit) -- returns a random integer in the range of zero to "limit".

  Scan(degree, resolution) -- returns the distance in meters to any other
                              robot or obstruction that is within the
                              "viewing" arc/angle of "degree" +/-
                              "resolution".  If nothing is scanned then the
                              function "Scan" returns a value of zero.

  ShieldRaised -- returns TRUE or FALSE depending upon whether your robot's
                  shield is up or down.

  Standard -- a pre-defined P-ROBOTS "constant" which is one of the values
              returned by the "Engine" function.

  StopRepairs; -- causes your robot to stop repairing itself.

  Time -- returns the current CPU cycle count.  This function can be used to
          time various events, speeds, etc., within your robot program.

  Warheads -- returns the type of warheads with which your robot is equipped.
              The result returned can have the "constant" values: Wimp,
              Normal, or Premium.

  Wimp -- a pre-defined P-ROBOTS "constant" which is one of the values
          returned by the "Warheads" function.

  Winner -- returns TRUE or FALSE depending upon your robot winning the
            battle.

