Lift the manual page to DocBook so we can generate HTML from it.
authorEric S. Raymond <esr@thyrsus.com>
Thu, 21 Oct 2010 11:20:04 +0000 (07:20 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Thu, 21 Oct 2010 11:20:04 +0000 (07:20 -0400)
Alas, this forces borders on all table cells. The original table
did not have interior horixontal ones except between the header
and body.

Makefile
vms-empire.6 [deleted file]
vms-empire.xml [new file with mode: 0644]

index 2b85a5c..b1c799a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -62,6 +62,12 @@ all: vms-empire
 vms-empire: $(OFILES)
        $(CC) $(PROFILE) -o vms-empire $(OFILES) $(LIBS)
 
+empire.6: vms-empire.xml
+       xmlto man vms-empire.xml
+
+vms-empire.html: vms-empire.xml
+       xmlto html-nochunks vms-empire.xml
+
 TAGS: $(HEADERS) $(FILES)
        etags $(HEADERS) $(FILES)
 
@@ -76,7 +82,7 @@ clobber: clean
 
 SOURCES = README NEWS vms-empire.6 COPYING Makefile BUGS AUTHORS $(FILES) $(HEADERS) MANIFEST vms-empire.spec
 
-vms-empire-$(VERS).tar.gz: $(SOURCES) vms-empire.6
+vms-empire-$(VERS).tar.gz: $(SOURCES) empire.6
        @ls $(SOURCES) | sed s:^:vms-empire-$(VERS)/: >MANIFEST
        @(cd ..; ln -s vms-empire vms-empire-$(VERS))
        (cd ..; tar -czvf vms-empire/vms-empire-$(VERS).tar.gz `cat vms-empire/MANIFEST`)
diff --git a/vms-empire.6 b/vms-empire.6
deleted file mode 100644 (file)
index 2aa6da5..0000000
+++ /dev/null
@@ -1,688 +0,0 @@
-.\" $Id: vms-empire.6,v 1.5 2006/07/25 15:21:01 esr Exp esr $  - (c) Copyright 1987, 1988 Chuck Simmons */
-.\"
-.\"   Copyright (C) 1987, 1988 Chuck Simmons
-.\"
-.\" See the file COPYING, distributed with empire, for restriction
-.\" and warranty information.
-.\"
-.TH Empire 6
-.SH NAME
-empire -- the wargame of the century
-.SH SYNOPSIS
-empire [-w water] [-s smooth] [-d delay] [ -S save-interval ] [ -f savefile ]
-.SH DESCRIPTION
-Empire is a simulation of a full-scale war between two
-emperors, the computer and you.  Naturally, there is only
-room for one, so the object of the game is to destroy
-the other.  The computer plays by the same rules that you
-do.
-.TP 10
-.BI \-w water\^
-This option controls the amount of water on the map.
-This is given as the percentage of the map which should
-be water.  The default is 70% water.  \f2water\fP
-must be an integer in the between 10 and 90 inclusive.
-.TP
-.BI \-s smooth\^
-This controls the smoothness of the map.  A low value
-will produce a highly chaotic map with lots of small
-islands or lakes.  A high value will produce a map
-with a few scattered continents.  Be forewarned that
-a high value will cause the program to take a long
-time to start up.  The default value is 5.
-.TP
-.BI \-d delay\^
-This option controls the length of time the computer will
-delay after printing informational messages at the top of
-the screen.  \f2delay\fP is specified in milliseconds.  The
-default value is 2000 which allows the user two seconds to
-read a message.
-.SH EXAMPLES
-empire -w90 -s2
-.P
-This produces a map with many islands.
-.P
-empire -w50 -s0
-.P
-This produces a really strange map.  These values
-are not recommended for the faint at heart.
-.P
-empire -w10
-.P
-This produces a map with lots of land and a few lakes.
-The computer will have a hard time on this sort of map
-as it will try and produce lots of troop transports,
-which are fairly useless.
-.P
-There are two other option.
-.TP
-.BI \-S interval\^
-sets the \fIsave interval\fR for the game (default is 10). Once per
-\fIinterval\fR turns the game state will be automatically saved after
-your move. It will be saved in any case when you change modes or
-do various special things from command mode, such as `M' or `N'.
-.TP
-.BI \-f savefile
-Set the save file name (normally empsave.dat).
-.SH INTRODUCTION
-Empire is a war game played between you and the user.  The world
-on which the game takes place is a square rectangle containing cities,
-land, and water.  Cities are used to build armies, planes, and ships
-which can move across the world destroying enemy pieces, exploring,
-and capturing more cities.  The objective of the game is to destroy
-all the enemy pieces, and capture all the cities.
-.P
-The world is a rectangle 60 by 100 squares on a side.  The world
-consists of sea (.), land (+), uncontrolled
-cities (*), computer-controlled cities (X), and cities that you
-control (O).
-.P
-The world is displayed on the player's screen during
-movement.  (On terminals with small screens, only a portion of
-the world is shown at any one time.)
-Each piece is represented by a unique
-character on the map.  With a few exceptions, you can
-only have one piece on a given location.  On the map, you
-are shown only the 8 squares adjacent to your units.
-This information is updated before and during each of your moves.
-The map displays the most recent information known.
-.P
-The game starts by assigning you one city and the
-computer one city.  Cities can produce new pieces.  Every
-city that you own produces more pieces for you according
-to the cost of the desired piece.  The typical play of the
-game is to issue the Automove command until you decide
-to do something special.  During movement in each round,
-the player is prompted to move each piece that does not
-otherwise have an assigned function.
-.P
-Map coordinates are 4-digit numbers.  The first two
-digits are the row, the second two digits are the
-column.
-.SH PIECES
-The pieces are as follows:
-.P
-.TS
-center box tab(;);
-l | c | c | r | r | r | c.
-Piece;You;Enemy;Moves;Hits;Str;Cost
-_
-Army;A;a;1;1;1;5(6)
-Fighter;F;f;8;1;1;10(12)
-Patrol Boat;P;p;4;1;1;15(18)
-Destroyer;D;d;2;3;1;20(24)
-Submarine;S;s;2;2;3;20(24)
-Troop Transport;T;t;2;1;1;30(36)
-Aircraft Carrier;C;c;2;8;1;30(36)
-Battleship;B;b;2;10;2;40(48)
-Satellite;Z;z;10;--;--;50(60)
-.TE
-.P
-The second column shows the map representation for your
-units.
-.P
-The third shows the representations of enemy units.
-.P
-Moves is the number of squares that the unit can move in a
-single round.
-.P
-Hits is the amount of damage a unit can take before it
-is destroyed.
-.P
-Strength is the amount of damage a unit can inflict upon an
-enemy during each round of an attack.
-.P
-Cost is the number of rounds needed for a city to produce
-the piece.
-.P
-The number in parenthesis is the cost for a city to
-produce the first unit.
-.P
-Each piece has certain advantages associated with it that
-can make it useful.  One of the primary strategic aspects
-of this game is deciding which pieces will be produced
-and in what quantities.
-.P
-\f3Armies\f1 can only move on land, and are the only piece that can
-move on land.  Only armies can capture cities.
-This means that you must produce armies in order to win the
-game.  Armies have a 50% chance of capturing a city when they
-attack.  (Attacking one's own city results in the army's
-destruction.  Armies that move onto the sea will drown.
-Armies can attack objects at sea, but even if they win, they
-will drown.)  Armies can be carried by troop transports.
-If an army is moved onto a troop transport, then whenever
-the transport is moved, the army will be moved with the
-transport.  You cannot attack any piece at sea while on a
-transport.
-.P
-\f3Fighters\f1 move over both land and sea, and they move 8 squares
-per round.  Their high speed and great mobility make fighters
-ideal for exploring.  However, fighters must periodically land
-at user-owned cities for refueling.  A fighter can travel 32
-squares without refeuling.  Fighters are also shot down if they
-attempt to fly over a city which is not owned by the user.
-.P
-\f3Patrol boats\f1 are fast but lightly armored.  Therefore
-they are useful for patrolling ocean waters and exploring.
-In an attack against a stronger boat, however, patrol boats
-will suffer heavy casulties.
-.P
-\f3Destroyers\f1 are fairly heavily armored and reasonably quick
-to produce.  Thus they are useful for destroying enemy transports
-which may be trying to spread the enemy across the face of the
-world.
-.P
-When a \f3submarine\f1 scores a hit, 3 hits are exacted instead of 1.
-Thus submarines can inflict heavy damage in a fight against
-heavily armored boats.  Notice that healthy submarines will
-typically defeat healthy destroyers two-thirds of the time.
-However, a submarine will defeat a fighter about two-thirds
-of the time, while a destroyer will defeat a fighter three-fourths
-of the time.
-.P
-\f3Troop transports\f1 are the only pieces that can carry armies.
-A maximum of six armies can be carried by a transport.
-On any world containing a reasonable amount of water,
-transports will be a critical resource in winning the game.
-Notice that the weakness of transports implies they need
-protection from stronger ships.
-.P
-\f3Aircraft carriers\f1 are the only ships that can
-carry fighters.  Carriers carry a maximum of the number
-of hits left of fighters.  Fighters are refueled when they
-land on a carrier.
-.P
-\f3Battleships\f1 are similar to destroyers except that they are
-much stronger.
-.P
-\f3Satellites\f1 are only useful for reconaissance.  They can not
-be attacked.  They are launched in a random diagonal orbit, and
-stay up for 50 turns.  They can see one square farther than other
-objects.
-.P
-All ships can move only on sea.  Ships can also dock in a
-user-owned city.  Docked ships have damage repaired at the
-rate of 1 hit per turn.  Ships which have suffered a lot
-of damage will move more slowly.
-.P
-Because of their ability
-to be repaired, ships with lots of hits such as Carriers and
-Battleships have an additional advantage.
-After suffering minor damage while destroying enemy shipping,
-these ships can sail back to port and be quickly repaired before
-the enemy has time to replenish her destroyed shipping.
-.P
-The following table gives the probability that the piece listed
-on the side will defeat the piece listed at the top in a battle.
-(The table assumes that both pieces are undamaged.)
-.P
-.TS
-center box tab(;);
-l | c | c | c | c | c.
-AFPT;D;S;C;B
-_
-AFPT;50.0%;12.5%;25.0%;00.391%;00.0977%
-D;87.5%;50.0%;25.0%;05.47%;00.537%
-S;75.0%;75.0%;50.0%;31.3%;06.25%
-C;99.6%;94.5%;68.7%;50.0%;04.61%
-B;99.9%;99.5%;93.8%;95.4%;50.0%
-.TE
-.P
-Notice, however, that when a ship has been damaged, the odds of
-being defeated can go up quite a bit.  For example, a healthy
-submarine has a 25% chance of defeating a battleship that has
-had one hit of damage done to it, and a healthy submarine has
-a 50% chance of defeating a carrier which has suffered two hits
-of damage.
-.SH "MOVEMENT FUNCTIONS"
-There are a variety of movement functions.  The movement functions
-of pieces can be specified in user mode and edit mode.
-Cities can have movement functions set for each type of piece.
-When a movement function for a type of pieces is set for a city,
-then every time that type of piece appears in the city, the piece
-will acquire that movement function.  Be forewarned that moving
-loaded transports or loaded carriers into a city can have undesirable
-side effects.
-.P
-Normally, when a movement
-function has been specified, the piece will continue moving according to
-that function until one of the following happen:
-.TP 5
-.B *
-An enemy piece or unowned city appears next to the piece.  In this case
-the piece will be completely awoken, unless its movement function has
-been set to a specific destination.
-Armies on ships and pieces inside
-cities will not be awoken if the enemy piece is gone by the time it is
-their turn to move.
-.TP
-.B *
-You explicitly awaken the piece.
-.TP
-.B *
-The piece can no longer move in accordance with its programmed function.
-In this case, the piece will awaken \f2temporarily\fP.  You will be asked
-to move the piece at which time you may awaken it.
-.TP
-.B *
-The piece is a fighter which has just enough fuel (plus a small reserve)
-to get to the nearest city.
-In this case,
-the piece will awaken completely, unless its movement function has
-been set to a specific destination, or its movement function has been
-set to \f2land\fP.
-.P
-The rationale behind this complexity is that fighters must be awoken
-completely before they are out of range of a city
-to prevent one from accidentally forgetting to waken the
-fighter and then watching it fly off to its doom.  However, it is presumed
-that when a path is set for the fighter, the fighter is not in danger of
-running out of fuel.
-.P
-Pieces do not completely awaken when their function has been set to a
-destination because it is slightly time consuming to reset the destination,
-but very simple (one keystroke) to wake the piece.
-.P
-The movement functions are:
-.TP 10
-.B Attack
-This function applies only to armies.  When this function is set,
-the army will move toward the nearest enemy city, unowned city, or
-enemy army.  This is useful when fighting off an invading enemy or
-taking over a new continent.  When an army is set to this mode,
-it will also explore nearby territory.  This tends to make
-the "grope" movement mode pretty useless.
-.TP
-.B Awake
-When pieces are awake, you will be asked for the direction in which
-the piece should move on each turn.
-.TP
-.B Fill
-This function applies to carriers and transports.  When this function is
-specified, these ships sleep until they have been filled with fighters or
-armies respectively.
-.TP
-.B Grope
-This function causes a piece to explore.  The piece heads toward the nearest
-unseen square of the map on each of its moves.  Some attempt is made to 
-explore in an optimal fashion.
-.TP
-.B Land
-This function applies to fighters and causes the fighter to head toward
-the nearest transport or carrier.
-.TP
-.B Random
-This movement function causes a piece to move at random to an adjacent
-empty square.
-.TP
-.B Sentry
-This movement function puts a piece to sleep.
-The function of a city cannot be set to 'sleep'.
-.TP
-.B Transport
-This movement function only works on armies.  The army sleeps until
-an unfull transport passes by, at which point the army wakes up and
-boards the transport.
-.TP
-.B Upgrade
-This movement function only works with ships.  The ship will move
-to the nearest owned city and remain there until it is repaired.
-.TP
-.B <dir>
-Pieces can be set to move in a specified direction.
-.TP
-.B <dest>
-Pieces can be set to move toward a specified square.  In this movement
-mode, pieces take a shortest path toward the destination.  Pieces moving
-in accordance with this function prefer diagonal moves that explore
-territory.  Because of this, the movement of the piece may be
-non-intuitive.
-.P
-As examples of how to use these movement functions, typically
-when I have a new city on a continent, I set the Army function of the
-city to \f2attack\f1.  Whenever an army is produced, it merrily goes off
-on its way exploring the continent and moving towards unowned cities
-or enemy armies or cities.
-.P
-I frequently set the ship functions for cities that are far from the
-front to automatically move ships towards the front.
-.P
-When I have armies on a continent, but there is nothing to explore
-or attack, I move the army to the shore and use the \f2transport\f1
-function to have that army hop aboard the first passing transport.
-.SH COMMANDS
-There are three command modes.  The first of these is "command mode".
-In this mode, you give commands that affect the game as a whole.
-In the second mode, "move mode", you give commands to move your
-pieces.  The third mode is "edit mode", and in this mode you can
-edit the functions of your pieces and examine various portions of
-the map.
-.P
-All commands are one character long.  The full mnemonic names are
-listed below as a memorization aid.
-The mnemonics are somewhat contrived because there are so few
-characters in the English language.  Too bad this program isn't
-written in Japanese, neh?
-.P
-In all command modes, typing "H" will print out a screen of help
-information, and typing <ctrl-L> will redraw the screen.
-.P
-.SH COMMAND MODE
-In command mode, the computer will prompt you for your orders.
-The following commands can be given at this time:
-.TP 10
-.B Automove
-Enter automove mode.  This command begins a new round of movement.
-You will remain in move mode after each of the computer's turns.
-(In move mode, the "O" command will return you to command mode
-after the computer finishes its next turn.
-.TP
-.B City
-Give the computer a random unowned city.  This command is useful if you
-find that the computer is getting too easy to beat.
-.TP
-.B Date
-The current round is displayed.
-.TP
-.B Examine
-Examine the enemy's map.  This command is only valid after the computer
-has resigned.
-.TP
-.B File
-Print a copy of the map to the specified file.
-.TP
-.B Give
-This command gives the computer a free move.
-.TP
-.B J
-Enter edit mode where you can examine and change the functions
-associated with your pieces and cities.
-.TP
-.B Move
-Enter move mode for a single round.
-.TP
-.B N
-Give the computer the number of free moves you specify.
-.TP
-.B Print
-Display a sector on the screen.
-.TP
-.B Quit
-Quit the game.
-.TP
-.B Restore
-Restore the game from empsave.dat.
-.TP
-.B Save
-Save the game in empsave.dat.
-.TP
-.B Trace
-This command toggles a flag.  When the flag is set,
-after each move, either yours or the computer's,
-a picture of the world is written out to the file
-'empmovie.dat'.  \f3Watch out!  This command produces lots of
-output.\f1
-.TP
-.B Watch
-This command allows you to watch a saved movie.
-The movie is displayed in a condensed version so that
-it will fit on a single screen, so the output may be
-a little confusing.  This command is only legal if the
-computer resigns.  If you lose the game, you cannot replay
-a movie to learn the secrets of how the computer beat you.
-Nor can you replay a movie to find out the current positions
-of the computer's pieces.  When replaying a movie, it is
-recommended that you use the \f2-d\f1 option to set the delay
-to around 2000 milliseconds or so.  Otherwise the screen will be
-updated too quickly for you to really grasp what is going on.
-.TP
-.B Zoom
-Display a condensed version of the map on the screen.  The user map is
-divided into small rectangles.  Each rectangle is displayed as one square
-on the screen.  If there is a city in a rectangle, then it
-is displayed.  Otherwise enemy pieces are displayed, then user pieces,
-then land, then water, and then unexplored territory.  When pieces are
-displayed, ships are preferred to fighters and armies.
-.SH MOVE MODE
-In move mode, the cursor will appear on the screen at the position
-of each piece that needs to be moved.  You can then give commands
-to move the piece.  Directions to move are specified by the
-following keys:
-.P
-.fp 5 TT
-.ft 5
-.nf
-        QWE
-        A D
-        ZXC
-.fi
-.ft 1
-.P
-The arrow and keypad keys on your terminal, if any, should also work.
-.P
-These keys move in the direction of the key from S.  The
-characters are not echoed and only 1 character is
-accepted, so there is no need for a <Return>.  Hit the <Space>
-bar if you want the piece to stay put.
-.P
-Other commands are:
-.TP 10
-.B Build
-Change the production of a city.
-.TP
-.B Fill
-Set the function of a troop transport or aircraft carrier to
-\f2fill\f1.
-.TP
-.B Grope
-Set the function of a piece to \f2grope\f1.
-.TP
-.BI I dir
-Set the direction for a piece to move.
-.TP
-.B J
-Enter edit mode.
-.TP
-.B Kill
-Wake up the piece.  If the piece is a transport or carrier,
-pieces on board will not be awoken.
-.TP
-.B Land
-Set a fighter's function to \f2land\f1.
-.TP
-.B Out
-Cancel automove mode.  At the end of the round, you will
-be placed in command mode.
-.TP
-.B Print
-Redraw the screen.
-.TP
-.B Random
-Set a piece's function to \f2random\f1.
-.TP
-.B Sentry
-Set a piece's function to \f2sentry\f1.
-.TP
-.B Transport
-Set an army's function to \f2transport\f1.
-.TP
-.B Upgrade
-Set a ship's function to \f2upgrade\f1.
-.TP
-.BI V "piece func"
-Set the city movement function for the specified piece
-to the specified function.  For example, typing "VAY" would
-set the city movement function for armies to \f2attack\f1.  Whenever
-an army is produced in the city (or whenever a loaded transport
-enters the city), the army's movement function
-would be set to \f2attack\f1.
-.TP
-.B Y
-Set an army's function to \f2attack\f1.
-.TP
-.B ?
-Display information about the piece.  The
-function, hits left, range, and number of items on board are
-displayed.
-.P
-Attacking something is accomplished by  moving  onto  the
-square of the unit you wish to attack.  Hits are traded
-off at 50% probability of a hit landing on one or the
-other units until one unit is totally destroyed.  There
-is only 1 possible winner.
-.P
-You are "allowed" to do \f3fatal\f1 things like attack your
-own cities or other pieces.  If you try to make a fatal
-move, the computer will warn you and give you a chance to
-change your mind.
-.P
-You cannot move onto the edge of the world.
-.SH EDIT MODE
-In edit mode, you can move around the world and examine pieces
-or assign them new functions.
-To move the cursor around, use the standard direction
-keys.
-Other commands are:
-.TP 10
-.B Build
-Change the production of the city under the cursor.
-The program will prompt for the new production, and you
-should respond with the key corresponding to the letter of the piece
-that you want produced.
-.TP
-.B Fill
-Set a transport's or carrier's function to \f2fill\f1.
-.TP
-.B Grope
-Set a piece's function to \f2grope\f1.
-.TP
-.BI I dir
-Set the function of a piece (or city) to the specified direction.
-.TP
-.B Kill
-Wake all pieces at the current location.  If the location is a city,
-the fighter path will also be canceled.
-.TP
-.B Mark
-Select the piece or city at the current location.  This command
-is used with the "N" command.
-.TP
-.B N
-Set the destination of the piece previously selected with the "M"
-command to the current square.
-.TP
-.B Out
-Exit edit mode.
-.TP
-.BI Print sector
-Display a new sector of the map.  The map is divided into
-ten sectors of size 20 by 70.  Sector zero is in the upper-left
-corner of the map.  Sector four is in the lower-left corner of
-the map.  Sector five is in the upper-right corner, and sector
-nine is in the lower-right corner.
-.TP
-.B Random
-Set a piece to move randomly.
-.TP
-.B Sentry
-Put a piece to sleep.
-.TP
-.B Transport
-Set an army's function to \f2transport\f1.
-.TP
-.B Upgrade
-Set a ship's function to \f2upgrade\f1.
-.TP
-.BI V "piece func"
-Set the city movement function for a piece.
-.TP
-.B Y
-Set an army's function to \f2attack\f1.
-.TP
-.B ?
-Display information about a piece or city.
-For a city, the production, time of completion of
-the next piece, movement functions, and the number of fighters and ships
-in the city are displayed.
-.P
-Note that you cannot directly affect anything inside a city with
-the editor.
-.SH HINTS
-After you have played this game for a while, you will probably
-find that the computer is immensely easy to beat.  Here are some
-ideas you can try that may make the game more interesting.
-.TP 5
-.B *
-Give the computer one or more extra cities before starting the game.
-.TP
-.B *
-Try playing the game with a low smoothness value (try using the
--s2 or even -s0 option).
-.TP
-.B *
-When starting the game, the program will ask you what difficulty
-level you want.  Here "difficulty level" is a misnomer.  To compute
-a difficulty level, the program looks at each continent and counts
-the number of cities on the continents.  A high "difficulty level"
-gives the computer a large continent with many cities, while the
-user gets a small continent with few cities.  A low "difficulty level"
-has the opposite effect.  It may be the case that the computer will
-play better when the "difficulty level" is low.  The reason for this
-is that the computer is forced to move armies to multiple continents
-early in the game.
-.SH HISTORY
-According to 
-.UR http://www.classicempire.com/history.html
-A Brief History of Empire
-.UE
-This game was written by Walter Bright sometime in the early 1970s
-while he was a student at Caltech.  A copy leaked out of Caltech and
-was ported to DEC's VAX/VMS from the TOPS-10/20 FORTRAN sources
-available around fall 1979.  Support for different terminal types 
-was added by Craig Leres.
-.P
-Ed James got hold of the sources at Berkeley and converted
-portions of the code to C, mostly to use curses for the screen
-handling.  He published his modified sources on the net in
-December 1986.  Because this game ran on VMS machines for so
-long, it has been known as VMS Empire.
-.P
-In 1987 Chuck Simmons at Amdahl
-reverse engineered the program and wrote a
-version completely written in C.  In doing so, he completely
-modified the computer strategy, the commands, the piece types,
-many of the piece attributes, and the algorithm for creating maps.
-.P
-In 1994 Eric Raymond colorized the game.
-.SH FILES
-.TP 10
-\f2empsave.dat\f1
-holds a backup of the game.  Whenever empire is run,
-it will reload any game in this file.
-.TP
-\f2empmovie.dat\f1
-holds a history of the game so that the game can be replayed as
-a "movie".
-.SH BUGS
-No doubt numerous.
-.P
-Satellites are not completely implemented.  You should be able to
-move to a square that contains a satellite, but the program won't
-let you.  Enemy satellites should not cause your pieces to awaken.
-.SH AUTHORS
-.nf
-Original game by Walter Bright.
-Support for different terminal types added by Craig Leres.
-Curses support added by Ed James.
-C/Unix version written by Chuck Simmons
-Colorization by Eric S. Raymond.
-Probability table corrected by Michael Self.
-.fi
-.SH COPYLEFT
-.fn
-Copyright (C) 1987, 1988 Chuck Simmons
-
-See the file COPYING, distributed with empire, for restriction
-and warranty information.
-.fi
diff --git a/vms-empire.xml b/vms-empire.xml
new file mode 100644 (file)
index 0000000..7342f9b
--- /dev/null
@@ -0,0 +1,1053 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+                   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
+<refentry id='vmsempire6'>
+<!--  See the file COPYING, distributed with empire, for restriction
+ and warranty information. -->
+
+<refmeta>
+<refentrytitle>Empire</refentrytitle>
+<manvolnum>6</manvolnum>
+</refmeta>
+<refnamediv>
+<refname>empire</refname>
+<refpurpose>the wargame of the century</refpurpose>
+</refnamediv>
+<refsynopsisdiv id='synopsis'>
+<cmdsynopsis>
+  <command>empire</command>
+    <arg choice='opt'>-w <replaceable>water</replaceable></arg>
+    <arg choice='opt'>-s <replaceable>smooth</replaceable></arg>
+    <arg choice='opt'>-d <replaceable>delay</replaceable></arg>
+    <arg choice='opt'>-S <replaceable>save-interval</replaceable></arg>
+    <arg choice='opt'>-f <replaceable>savefile</replaceable></arg>
+</cmdsynopsis>
+</refsynopsisdiv>
+
+
+<refsect1 id='description'><title>DESCRIPTION</title>
+<para>Empire is a simulation of a full-scale war between two
+emperors, the computer and you.  Naturally, there is only
+room for one, so the object of the game is to destroy
+the other.  The computer plays by the same rules that you
+do.</para>
+<variablelist>
+  <varlistentry>
+  <term><option>-w</option><replaceable>water</replaceable></term>
+  <listitem>
+<para>This option controls the amount of water on the map.
+This is given as the percentage of the map which should
+be water.  The default is 70% water.  <emphasis remap='I'>water</emphasis>
+must be an integer in the between 10 and 90 inclusive.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><option>-s</option><replaceable>smooth</replaceable></term>
+  <listitem>
+<para>This controls the smoothness of the map.  A low value
+will produce a highly chaotic map with lots of small
+islands or lakes.  A high value will produce a map
+with a few scattered continents.  Be forewarned that
+a high value will cause the program to take a long
+time to start up.  The default value is 5.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><option>-d</option><replaceable>delay</replaceable></term>
+  <listitem>
+<para>This option controls the length of time the computer will
+delay after printing informational messages at the top of
+the screen.  <emphasis remap='I'>delay</emphasis> is specified in milliseconds.  The
+default value is 2000 which allows the user two seconds to
+read a message.</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+</refsect1>
+
+<refsect1 id='examples'><title>EXAMPLES</title>
+<para>empire -w90 -s2</para>
+<para>This produces a map with many islands.</para>
+<para>empire -w50 -s0</para>
+<para>This produces a really strange map.  These values
+are not recommended for the faint at heart.</para>
+<para>empire -w10</para>
+<para>This produces a map with lots of land and a few lakes.
+The computer will have a hard time on this sort of map
+as it will try and produce lots of troop transports,
+which are fairly useless.</para>
+<para>There are two other option.</para>
+<variablelist>
+  <varlistentry>
+  <term><option>-S</option><replaceable>interval</replaceable></term>
+  <listitem>
+<para>sets the <emphasis remap='I'>save interval</emphasis> for the game (default is 10). Once per
+<emphasis remap='I'>interval</emphasis> turns the game state will be automatically saved after
+your move. It will be saved in any case when you change modes or
+do various special things from command mode, such as `M' or `N'.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><option>-f</option><replaceable>savefile</replaceable></term>
+  <listitem>
+<para>Set the save file name (normally empsave.dat).</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+</refsect1>
+
+<refsect1 id='introduction'><title>INTRODUCTION</title>
+<para>Empire is a war game played between you and the user.  The world
+on which the game takes place is a square rectangle containing cities,
+land, and water.  Cities are used to build armies, planes, and ships
+which can move across the world destroying enemy pieces, exploring,
+and capturing more cities.  The objective of the game is to destroy
+all the enemy pieces, and capture all the cities.</para>
+<para>The world is a rectangle 60 by 100 squares on a side.  The world
+consists of sea (.), land (+), uncontrolled
+cities (*), computer-controlled cities (X), and cities that you
+control (O).</para>
+<para>The world is displayed on the player's screen during
+movement.  (On terminals with small screens, only a portion of
+the world is shown at any one time.)
+Each piece is represented by a unique
+character on the map.  With a few exceptions, you can
+only have one piece on a given location.  On the map, you
+are shown only the 8 squares adjacent to your units.
+This information is updated before and during each of your moves.
+The map displays the most recent information known.</para>
+<para>The game starts by assigning you one city and the
+computer one city.  Cities can produce new pieces.  Every
+city that you own produces more pieces for you according
+to the cost of the desired piece.  The typical play of the
+game is to issue the Automove command until you decide
+to do something special.  During movement in each round,
+the player is prompted to move each piece that does not
+otherwise have an assigned function.</para>
+<para>Map coordinates are 4-digit numbers.  The first two
+digits are the row, the second two digits are the
+column.</para>
+</refsect1>
+
+<refsect1 id='pieces'><title>PIECES</title>
+<para>The pieces are as follows:</para>
+
+<informaltable pgwide='0' frame='all'>
+  <tgroup cols='7' align='center'>
+    <colspec colname='c1'/>
+    <colspec colname='c2'/>
+    <colspec colname='c3'/>
+    <colspec colname='c4'/>
+    <colspec colname='c5'/>
+    <colspec colname='c6'/>
+    <colspec colname='c7'/>
+    <tbody>
+      <row rowsep='1'>
+        <entry align='left' colsep='1'>Piece</entry>
+        <entry align='center' colsep='1'>You</entry>
+        <entry align='center' colsep='1'>Enemy</entry>
+        <entry align='right' colsep='1'>Moves</entry>
+        <entry align='right' colsep='1'>Hits</entry>
+        <entry align='right' colsep='1'>Str</entry>
+        <entry align='center'>Cost</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Army</entry>
+        <entry align='center' colsep='1'>A</entry>
+        <entry align='center' colsep='1'>a</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='center'>5(6)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Fighter</entry>
+        <entry align='center' colsep='1'>F</entry>
+        <entry align='center' colsep='1'>f</entry>
+        <entry align='right' colsep='1'>8</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='center'>10(12)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Patrol Boat</entry>
+        <entry align='center' colsep='1'>P</entry>
+        <entry align='center' colsep='1'>p</entry>
+        <entry align='right' colsep='1'>4</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='center'>15(18)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Destroyer</entry>
+        <entry align='center' colsep='1'>D</entry>
+        <entry align='center' colsep='1'>d</entry>
+        <entry align='right' colsep='1'>2</entry>
+        <entry align='right' colsep='1'>3</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='center'>20(24)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Submarine</entry>
+        <entry align='center' colsep='1'>S</entry>
+        <entry align='center' colsep='1'>s</entry>
+        <entry align='right' colsep='1'>2</entry>
+        <entry align='right' colsep='1'>2</entry>
+        <entry align='right' colsep='1'>3</entry>
+        <entry align='center'>20(24)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Troop Transport</entry>
+        <entry align='center' colsep='1'>T</entry>
+        <entry align='center' colsep='1'>t</entry>
+        <entry align='right' colsep='1'>2</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='center'>30(36)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Aircraft Carrier</entry>
+        <entry align='center' colsep='1'>C</entry>
+        <entry align='center' colsep='1'>c</entry>
+        <entry align='right' colsep='1'>2</entry>
+        <entry align='right' colsep='1'>8</entry>
+        <entry align='right' colsep='1'>1</entry>
+        <entry align='center'>30(36)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Battleship</entry>
+        <entry align='center' colsep='1'>B</entry>
+        <entry align='center' colsep='1'>b</entry>
+        <entry align='right' colsep='1'>2</entry>
+        <entry align='right' colsep='1'>10</entry>
+        <entry align='right' colsep='1'>2</entry>
+        <entry align='center'>40(48)</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>Satellite</entry>
+        <entry align='center' colsep='1'>Z</entry>
+        <entry align='center' colsep='1'>z</entry>
+        <entry align='right' colsep='1'>10</entry>
+        <entry align='right' colsep='1'>--</entry>
+        <entry align='right' colsep='1'>--</entry>
+        <entry align='center'>50(60)</entry>
+      </row>
+    </tbody>
+  </tgroup>
+</informaltable>
+
+<para>The second column shows the map representation for your
+units.</para>
+<para>The third shows the representations of enemy units.</para>
+<para>Moves is the number of squares that the unit can move in a
+single round.</para>
+<para>Hits is the amount of damage a unit can take before it
+is destroyed.</para>
+<para>Strength is the amount of damage a unit can inflict upon an
+enemy during each round of an attack.</para>
+<para>Cost is the number of rounds needed for a city to produce
+the piece.</para>
+<para>The number in parenthesis is the cost for a city to
+produce the first unit.</para>
+<para>Each piece has certain advantages associated with it that
+can make it useful.  One of the primary strategic aspects
+of this game is deciding which pieces will be produced
+and in what quantities.</para>
+<para><emphasis remap='B'>Armies</emphasis> can only move on land, and are the only piece that can
+move on land.  Only armies can capture cities.
+This means that you must produce armies in order to win the
+game.  Armies have a 50% chance of capturing a city when they
+attack.  (Attacking one's own city results in the army's
+destruction.  Armies that move onto the sea will drown.
+Armies can attack objects at sea, but even if they win, they
+will drown.)  Armies can be carried by troop transports.
+If an army is moved onto a troop transport, then whenever
+the transport is moved, the army will be moved with the
+transport.  You cannot attack any piece at sea while on a
+transport.</para>
+<para><emphasis remap='B'>Fighters</emphasis> move over both land and sea, and they move 8 squares
+per round.  Their high speed and great mobility make fighters
+ideal for exploring.  However, fighters must periodically land
+at user-owned cities for refueling.  A fighter can travel 32
+squares without refeuling.  Fighters are also shot down if they
+attempt to fly over a city which is not owned by the user.</para>
+<para><emphasis remap='B'>Patrol boats</emphasis> are fast but lightly armored.  Therefore
+they are useful for patrolling ocean waters and exploring.
+In an attack against a stronger boat, however, patrol boats
+will suffer heavy casulties.</para>
+<para><emphasis remap='B'>Destroyers</emphasis> are fairly heavily armored and reasonably quick
+to produce.  Thus they are useful for destroying enemy transports
+which may be trying to spread the enemy across the face of the
+world.</para>
+<para>When a <emphasis remap='B'>submarine</emphasis> scores a hit, 3 hits are exacted instead of 1.
+Thus submarines can inflict heavy damage in a fight against
+heavily armored boats.  Notice that healthy submarines will
+typically defeat healthy destroyers two-thirds of the time.
+However, a submarine will defeat a fighter about two-thirds
+of the time, while a destroyer will defeat a fighter three-fourths
+of the time.</para>
+<para><emphasis remap='B'>Troop transports</emphasis> are the only pieces that can carry armies.
+A maximum of six armies can be carried by a transport.
+On any world containing a reasonable amount of water,
+transports will be a critical resource in winning the game.
+Notice that the weakness of transports implies they need
+protection from stronger ships.</para>
+<para><emphasis remap='B'>Aircraft carriers</emphasis> are the only ships that can
+carry fighters.  Carriers carry a maximum of the number
+of hits left of fighters.  Fighters are refueled when they
+land on a carrier.</para>
+<para><emphasis remap='B'>Battleships</emphasis> are similar to destroyers except that they are
+much stronger.</para>
+<para><emphasis remap='B'>Satellites</emphasis> are only useful for reconaissance.  They can not
+be attacked.  They are launched in a random diagonal orbit, and
+stay up for 50 turns.  They can see one square farther than other
+objects.</para>
+<para>All ships can move only on sea.  Ships can also dock in a
+user-owned city.  Docked ships have damage repaired at the
+rate of 1 hit per turn.  Ships which have suffered a lot
+of damage will move more slowly.</para>
+<para>Because of their ability
+to be repaired, ships with lots of hits such as Carriers and
+Battleships have an additional advantage.
+After suffering minor damage while destroying enemy shipping,
+these ships can sail back to port and be quickly repaired before
+the enemy has time to replenish her destroyed shipping.</para>
+<para>The following table gives the probability that the piece listed
+on the side will defeat the piece listed at the top in a battle.
+(The table assumes that both pieces are undamaged.)</para>
+
+<informaltable pgwide='0' frame='all'>
+  <tgroup cols='6' align='center'>
+    <colspec colname='c1'/>
+    <colspec colname='c2'/>
+    <colspec colname='c3'/>
+    <colspec colname='c4'/>
+    <colspec colname='c5'/>
+    <colspec colname='c6'/>
+    <tbody>
+      <row rowsep='1'>
+        <entry align='left' colsep='1'>AFPT</entry>
+        <entry align='center' colsep='1'>D</entry>
+        <entry align='center' colsep='1'>S</entry>
+        <entry align='center' colsep='1'>C</entry>
+        <entry align='center' colsep='1'>B</entry>
+        <entry align='center'></entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>AFPT</entry>
+        <entry align='center' colsep='1'>50.0%</entry>
+        <entry align='center' colsep='1'>12.5%</entry>
+        <entry align='center' colsep='1'>25.0%</entry>
+        <entry align='center' colsep='1'>00.391%</entry>
+        <entry align='center'>00.0977%</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>D</entry>
+        <entry align='center' colsep='1'>87.5%</entry>
+        <entry align='center' colsep='1'>50.0%</entry>
+        <entry align='center' colsep='1'>25.0%</entry>
+        <entry align='center' colsep='1'>05.47%</entry>
+        <entry align='center'>00.537%</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>S</entry>
+        <entry align='center' colsep='1'>75.0%</entry>
+        <entry align='center' colsep='1'>75.0%</entry>
+        <entry align='center' colsep='1'>50.0%</entry>
+        <entry align='center' colsep='1'>31.3%</entry>
+        <entry align='center'>06.25%</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>C</entry>
+        <entry align='center' colsep='1'>99.6%</entry>
+        <entry align='center' colsep='1'>94.5%</entry>
+        <entry align='center' colsep='1'>68.7%</entry>
+        <entry align='center' colsep='1'>50.0%</entry>
+        <entry align='center'>04.61%</entry>
+      </row>
+      <row>
+        <entry align='left' colsep='1'>B</entry>
+        <entry align='center' colsep='1'>99.9%</entry>
+        <entry align='center' colsep='1'>99.5%</entry>
+        <entry align='center' colsep='1'>93.8%</entry>
+        <entry align='center' colsep='1'>95.4%</entry>
+        <entry align='center'>50.0%</entry>
+      </row>
+    </tbody>
+  </tgroup>
+</informaltable>
+
+<para>Notice, however, that when a ship has been damaged, the odds of
+being defeated can go up quite a bit.  For example, a healthy
+submarine has a 25% chance of defeating a battleship that has
+had one hit of damage done to it, and a healthy submarine has
+a 50% chance of defeating a carrier which has suffered two hits
+of damage.</para>
+</refsect1>
+
+<refsect1 id='movement_functions'><title>MOVEMENT FUNCTIONS</title>
+<para>There are a variety of movement functions.  The movement functions
+of pieces can be specified in user mode and edit mode.
+Cities can have movement functions set for each type of piece.
+When a movement function for a type of pieces is set for a city,
+then every time that type of piece appears in the city, the piece
+will acquire that movement function.  Be forewarned that moving
+loaded transports or loaded carriers into a city can have undesirable
+side effects.</para>
+<para>Normally, when a movement
+function has been specified, the piece will continue moving according to
+that function until one of the following happen:</para>
+<variablelist>
+  <varlistentry>
+  <term><emphasis remap='B'>*</emphasis></term>
+  <listitem>
+<para>An enemy piece or unowned city appears next to the piece.  In this case
+the piece will be completely awoken, unless its movement function has
+been set to a specific destination.
+Armies on ships and pieces inside
+cities will not be awoken if the enemy piece is gone by the time it is
+their turn to move.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>*</emphasis></term>
+  <listitem>
+<para>You explicitly awaken the piece.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>*</emphasis></term>
+  <listitem>
+<para>The piece can no longer move in accordance with its programmed function.
+In this case, the piece will awaken <emphasis remap='I'>temporarily</emphasis>.  You will be asked
+to move the piece at which time you may awaken it.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>*</emphasis></term>
+  <listitem>
+<para>The piece is a fighter which has just enough fuel (plus a small reserve)
+to get to the nearest city.
+In this case,
+the piece will awaken completely, unless its movement function has
+been set to a specific destination, or its movement function has been
+set to <emphasis remap='I'>land</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+<para>The rationale behind this complexity is that fighters must be awoken
+completely before they are out of range of a city
+to prevent one from accidentally forgetting to waken the
+fighter and then watching it fly off to its doom.  However, it is presumed
+that when a path is set for the fighter, the fighter is not in danger of
+running out of fuel.</para>
+<para>Pieces do not completely awaken when their function has been set to a
+destination because it is slightly time consuming to reset the destination,
+but very simple (one keystroke) to wake the piece.</para>
+<para>The movement functions are:</para>
+<variablelist>
+  <varlistentry>
+  <term><emphasis remap='B'>Attack</emphasis></term>
+  <listitem>
+<para>This function applies only to armies.  When this function is set,
+the army will move toward the nearest enemy city, unowned city, or
+enemy army.  This is useful when fighting off an invading enemy or
+taking over a new continent.  When an army is set to this mode,
+it will also explore nearby territory.  This tends to make
+the "grope" movement mode pretty useless.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Awake</emphasis></term>
+  <listitem>
+<para>When pieces are awake, you will be asked for the direction in which
+the piece should move on each turn.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Fill</emphasis></term>
+  <listitem>
+<para>This function applies to carriers and transports.  When this function is
+specified, these ships sleep until they have been filled with fighters or
+armies respectively.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Grope</emphasis></term>
+  <listitem>
+<para>This function causes a piece to explore.  The piece heads toward the nearest
+unseen square of the map on each of its moves.  Some attempt is made to 
+explore in an optimal fashion.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Land</emphasis></term>
+  <listitem>
+<para>This function applies to fighters and causes the fighter to head toward
+the nearest transport or carrier.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Random</emphasis></term>
+  <listitem>
+<para>This movement function causes a piece to move at random to an adjacent
+empty square.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Sentry</emphasis></term>
+  <listitem>
+<para>This movement function puts a piece to sleep.
+The function of a city cannot be set to 'sleep'.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Transport</emphasis></term>
+  <listitem>
+<para>This movement function only works on armies.  The army sleeps until
+an unfull transport passes by, at which point the army wakes up and
+boards the transport.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Upgrade</emphasis></term>
+  <listitem>
+<para>This movement function only works with ships.  The ship will move
+to the nearest owned city and remain there until it is repaired.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>&lt;dir&gt;</emphasis></term>
+  <listitem>
+<para>Pieces can be set to move in a specified direction.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>&lt;dest&gt;</emphasis></term>
+  <listitem>
+<para>Pieces can be set to move toward a specified square.  In this movement
+mode, pieces take a shortest path toward the destination.  Pieces moving
+in accordance with this function prefer diagonal moves that explore
+territory.  Because of this, the movement of the piece may be
+non-intuitive.</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+<para>As examples of how to use these movement functions, typically
+when I have a new city on a continent, I set the Army function of the
+city to <emphasis remap='I'>attack</emphasis>.  Whenever an army is produced, it merrily goes off
+on its way exploring the continent and moving towards unowned cities
+or enemy armies or cities.</para>
+<para>I frequently set the ship functions for cities that are far from the
+front to automatically move ships towards the front.</para>
+<para>When I have armies on a continent, but there is nothing to explore
+or attack, I move the army to the shore and use the <emphasis remap='I'>transport</emphasis>
+function to have that army hop aboard the first passing transport.</para>
+</refsect1>
+
+<refsect1 id='commands'><title>COMMANDS</title>
+<para>There are three command modes.  The first of these is "command mode".
+In this mode, you give commands that affect the game as a whole.
+In the second mode, "move mode", you give commands to move your
+pieces.  The third mode is "edit mode", and in this mode you can
+edit the functions of your pieces and examine various portions of
+the map.</para>
+<para>All commands are one character long.  The full mnemonic names are
+listed below as a memorization aid.
+The mnemonics are somewhat contrived because there are so few
+characters in the English language.  Too bad this program isn't
+written in Japanese, neh?</para>
+<para>In all command modes, typing "H" will print out a screen of help
+information, and typing &lt;ctrl-L&gt; will redraw the screen.</para>
+</refsect1>
+
+<refsect1 id='command_mode'><title>COMMAND MODE</title>
+<para>In command mode, the computer will prompt you for your orders.
+The following commands can be given at this time:</para>
+<variablelist>
+  <varlistentry>
+  <term><emphasis remap='B'>Automove</emphasis></term>
+  <listitem>
+<para>Enter automove mode.  This command begins a new round of movement.
+You will remain in move mode after each of the computer's turns.
+(In move mode, the "O" command will return you to command mode
+after the computer finishes its next turn.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>City</emphasis></term>
+  <listitem>
+<para>Give the computer a random unowned city.  This command is useful if you
+find that the computer is getting too easy to beat.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Date</emphasis></term>
+  <listitem>
+<para>The current round is displayed.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Examine</emphasis></term>
+  <listitem>
+<para>Examine the enemy's map.  This command is only valid after the computer
+has resigned.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>File</emphasis></term>
+  <listitem>
+<para>Print a copy of the map to the specified file.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Give</emphasis></term>
+  <listitem>
+<para>This command gives the computer a free move.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>J</emphasis></term>
+  <listitem>
+<para>Enter edit mode where you can examine and change the functions
+associated with your pieces and cities.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Move</emphasis></term>
+  <listitem>
+<para>Enter move mode for a single round.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>N</emphasis></term>
+  <listitem>
+<para>Give the computer the number of free moves you specify.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Print</emphasis></term>
+  <listitem>
+<para>Display a sector on the screen.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Quit</emphasis></term>
+  <listitem>
+<para>Quit the game.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Restore</emphasis></term>
+  <listitem>
+<para>Restore the game from empsave.dat.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Save</emphasis></term>
+  <listitem>
+<para>Save the game in empsave.dat.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Trace</emphasis></term>
+  <listitem>
+<para>This command toggles a flag.  When the flag is set,
+after each move, either yours or the computer's,
+a picture of the world is written out to the file
+'empmovie.dat'.  <emphasis remap='B'>Watch out!  This command produces lots of
+output.</emphasis></para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Watch</emphasis></term>
+  <listitem>
+<para>This command allows you to watch a saved movie.
+The movie is displayed in a condensed version so that
+it will fit on a single screen, so the output may be
+a little confusing.  This command is only legal if the
+computer resigns.  If you lose the game, you cannot replay
+a movie to learn the secrets of how the computer beat you.
+Nor can you replay a movie to find out the current positions
+of the computer's pieces.  When replaying a movie, it is
+recommended that you use the <option>-d</option> option to set the delay
+to around 2000 milliseconds or so.  Otherwise the screen will be
+updated too quickly for you to really grasp what is going on.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Zoom</emphasis></term>
+  <listitem>
+<para>Display a condensed version of the map on the screen.  The user map is
+divided into small rectangles.  Each rectangle is displayed as one square
+on the screen.  If there is a city in a rectangle, then it
+is displayed.  Otherwise enemy pieces are displayed, then user pieces,
+then land, then water, and then unexplored territory.  When pieces are
+displayed, ships are preferred to fighters and armies.</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+</refsect1>
+
+<refsect1 id='move_mode'><title>MOVE MODE</title>
+<para>In move mode, the cursor will appear on the screen at the position
+of each piece that needs to be moved.  You can then give commands
+to move the piece.  Directions to move are specified by the
+following keys:</para>
+<literallayout>
+<emphasis remap='5'>
+        QWE
+        A D
+        ZXC
+</emphasis>
+</literallayout>
+<para>The arrow and keypad keys on your terminal, if any, should also work.</para>
+<para>These keys move in the direction of the key from S.  The
+characters are not echoed and only 1 character is
+accepted, so there is no need for a &lt;Return&gt;.  Hit the &lt;Space&gt;
+bar if you want the piece to stay put.</para>
+<para>Other commands are:</para>
+<variablelist>
+  <varlistentry>
+  <term><emphasis remap='B'>Build</emphasis></term>
+  <listitem>
+<para>Change the production of a city.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Fill</emphasis></term>
+  <listitem>
+<para>Set the function of a troop transport or aircraft carrier to
+<emphasis remap='I'>fill</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Grope</emphasis></term>
+  <listitem>
+<para>Set the function of a piece to <emphasis remap='I'>grope</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>I</emphasis><emphasis remap='I'>dir</emphasis></term>
+  <listitem>
+<para>Set the direction for a piece to move.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>J</emphasis></term>
+  <listitem>
+<para>Enter edit mode.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Kill</emphasis></term>
+  <listitem>
+<para>Wake up the piece.  If the piece is a transport or carrier,
+pieces on board will not be awoken.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Land</emphasis></term>
+  <listitem>
+<para>Set a fighter's function to <emphasis remap='I'>land</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Out</emphasis></term>
+  <listitem>
+<para>Cancel automove mode.  At the end of the round, you will
+be placed in command mode.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Print</emphasis></term>
+  <listitem>
+<para>Redraw the screen.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Random</emphasis></term>
+  <listitem>
+<para>Set a piece's function to <emphasis remap='I'>random</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Sentry</emphasis></term>
+  <listitem>
+<para>Set a piece's function to <emphasis remap='I'>sentry</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Transport</emphasis></term>
+  <listitem>
+<para>Set an army's function to <emphasis remap='I'>transport</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Upgrade</emphasis></term>
+  <listitem>
+<para>Set a ship's function to <emphasis remap='I'>upgrade</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>V</emphasis><emphasis remap='I'>piece func</emphasis></term>
+  <listitem>
+<para>Set the city movement function for the specified piece
+to the specified function.  For example, typing "VAY" would
+set the city movement function for armies to <emphasis remap='I'>attack</emphasis>.  Whenever
+an army is produced in the city (or whenever a loaded transport
+enters the city), the army's movement function
+would be set to <emphasis remap='I'>attack</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Y</emphasis></term>
+  <listitem>
+<para>Set an army's function to <emphasis remap='I'>attack</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>?</emphasis></term>
+  <listitem>
+<para>Display information about the piece.  The
+function, hits left, range, and number of items on board are
+displayed.</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+<para>Attacking something is accomplished by  moving  onto  the
+square of the unit you wish to attack.  Hits are traded
+off at 50% probability of a hit landing on one or the
+other units until one unit is totally destroyed.  There
+is only 1 possible winner.</para>
+<para>You are "allowed" to do <emphasis remap='B'>fatal</emphasis> things like attack your
+own cities or other pieces.  If you try to make a fatal
+move, the computer will warn you and give you a chance to
+change your mind.</para>
+<para>You cannot move onto the edge of the world.</para>
+</refsect1>
+
+<refsect1 id='edit_mode'><title>EDIT MODE</title>
+<para>In edit mode, you can move around the world and examine pieces
+or assign them new functions.
+To move the cursor around, use the standard direction
+keys.
+Other commands are:</para>
+<variablelist>
+  <varlistentry>
+  <term><emphasis remap='B'>Build</emphasis></term>
+  <listitem>
+<para>Change the production of the city under the cursor.
+The program will prompt for the new production, and you
+should respond with the key corresponding to the letter of the piece
+that you want produced.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Fill</emphasis></term>
+  <listitem>
+<para>Set a transport's or carrier's function to <emphasis remap='I'>fill</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Grope</emphasis></term>
+  <listitem>
+<para>Set a piece's function to <emphasis remap='I'>grope</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>I</emphasis><emphasis remap='I'>dir</emphasis></term>
+  <listitem>
+<para>Set the function of a piece (or city) to the specified direction.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Kill</emphasis></term>
+  <listitem>
+<para>Wake all pieces at the current location.  If the location is a city,
+the fighter path will also be canceled.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Mark</emphasis></term>
+  <listitem>
+<para>Select the piece or city at the current location.  This command
+is used with the "N" command.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>N</emphasis></term>
+  <listitem>
+<para>Set the destination of the piece previously selected with the "M"
+command to the current square.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Out</emphasis></term>
+  <listitem>
+<para>Exit edit mode.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Print</emphasis><emphasis remap='I'>sector</emphasis></term>
+  <listitem>
+<para>Display a new sector of the map.  The map is divided into
+ten sectors of size 20 by 70.  Sector zero is in the upper-left
+corner of the map.  Sector four is in the lower-left corner of
+the map.  Sector five is in the upper-right corner, and sector
+nine is in the lower-right corner.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Random</emphasis></term>
+  <listitem>
+<para>Set a piece to move randomly.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Sentry</emphasis></term>
+  <listitem>
+<para>Put a piece to sleep.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Transport</emphasis></term>
+  <listitem>
+<para>Set an army's function to <emphasis remap='I'>transport</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Upgrade</emphasis></term>
+  <listitem>
+<para>Set a ship's function to <emphasis remap='I'>upgrade</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>V</emphasis><emphasis remap='I'>piece func</emphasis></term>
+  <listitem>
+<para>Set the city movement function for a piece.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>Y</emphasis></term>
+  <listitem>
+<para>Set an army's function to <emphasis remap='I'>attack</emphasis>.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>?</emphasis></term>
+  <listitem>
+<para>Display information about a piece or city.
+For a city, the production, time of completion of
+the next piece, movement functions, and the number of fighters and ships
+in the city are displayed.</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+<para>Note that you cannot directly affect anything inside a city with
+the editor.</para>
+</refsect1>
+
+<refsect1 id='hints'><title>HINTS</title>
+<para>After you have played this game for a while, you will probably
+find that the computer is immensely easy to beat.  Here are some
+ideas you can try that may make the game more interesting.</para>
+<variablelist>
+  <varlistentry>
+  <term><emphasis remap='B'>*</emphasis></term>
+  <listitem>
+<para>Give the computer one or more extra cities before starting the game.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>*</emphasis></term>
+  <listitem>
+<para>Try playing the game with a low smoothness value (try using the
+-s2 or even -s0 option).</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='B'>*</emphasis></term>
+  <listitem>
+<para>When starting the game, the program will ask you what difficulty
+level you want.  Here "difficulty level" is a misnomer.  To compute
+a difficulty level, the program looks at each continent and counts
+the number of cities on the continents.  A high "difficulty level"
+gives the computer a large continent with many cities, while the
+user gets a small continent with few cities.  A low "difficulty level"
+has the opposite effect.  It may be the case that the computer will
+play better when the "difficulty level" is low.  The reason for this
+is that the computer is forced to move armies to multiple continents
+early in the game.</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+</refsect1>
+
+<refsect1 id='history'><title>HISTORY</title>
+<para>According to 
+<ulink url='http://www.classicempire.com/history.html'>
+A Brief History of Empire
+</ulink>
+This game was written by Walter Bright sometime in the early 1970s
+while he was a student at Caltech.  A copy leaked out of Caltech and
+was ported to DEC's VAX/VMS from the TOPS-10/20 FORTRAN sources
+available around fall 1979.  Support for different terminal types 
+was added by Craig Leres.</para>
+<para>Ed James got hold of the sources at Berkeley and converted
+portions of the code to C, mostly to use curses for the screen
+handling.  He published his modified sources on the net in
+December 1986.  Because this game ran on VMS machines for so
+long, it has been known as VMS Empire.</para>
+<para>In 1987 Chuck Simmons at Amdahl
+reverse engineered the program and wrote a
+version completely written in C.  In doing so, he completely
+modified the computer strategy, the commands, the piece types,
+many of the piece attributes, and the algorithm for creating maps.</para>
+<para>In 1994 Eric Raymond colorized the game.</para>
+</refsect1>
+
+<refsect1 id='files'><title>FILES</title>
+<variablelist>
+  <varlistentry>
+  <term><emphasis remap='I'>empsave.dat</emphasis></term>
+  <listitem>
+<para>holds a backup of the game.  Whenever empire is run,
+it will reload any game in this file.</para>
+  </listitem>
+  </varlistentry>
+  <varlistentry>
+  <term><emphasis remap='I'>empmovie.dat</emphasis></term>
+  <listitem>
+<para>holds a history of the game so that the game can be replayed as
+a "movie".</para>
+  </listitem>
+  </varlistentry>
+</variablelist>
+</refsect1>
+
+<refsect1 id='bugs'><title>BUGS</title>
+<para>No doubt numerous.</para>
+<para>Satellites are not completely implemented.  You should be able to
+move to a square that contains a satellite, but the program won't
+let you.  Enemy satellites should not cause your pieces to awaken.</para>
+</refsect1>
+
+<refsect1 id='authors'><title>AUTHORS</title>
+<literallayout remap='.nf'>
+Original game by Walter Bright.
+Support for different terminal types added by Craig Leres.
+Curses support added by Ed James.
+C/Unix version written by Chuck Simmons
+Colorization by Eric S. Raymond.
+Probability table corrected by Michael Self.
+</literallayout>
+</refsect1>
+
+<refsect1 id='copyleft'><title>COPYLEFT</title>
+<para>Copyright (C) 1987, 1988 Chuck Simmons</para>
+<para>See the file COPYING, distributed with empire, for restriction
+and warranty information.</para>
+</refsect1>
+</refentry>
+