Yet more history.
[super-star-trek.git] / sst-doc.xml
index fd03ba60b10fd376969cd5fa068d376a33784ec5..fe24ebc74c273f2274b050efb9e8e5688d6c256a 100644 (file)
@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE book PUBLIC 
     "-//OASIS//DTD DocBook XML V4.1.2//EN" 
-    "docbook/docbookxx.dtd">
-
+    "docbook/docbookxx.dtd"[
+<!ENTITY sst-site      "http://sst.berlios.de/">
+<!ENTITY retro         "http://catb.org/~esr/retro/">
+]>
 <book>
 <bookinfo>
 <title>Super Star Trek</title>
@@ -93,7 +95,7 @@ respect the copyrights of the originators of Star Trek.</para>
                          Curses Interface By
                               Stas Sergeev 
 
-                         SST 2K polishing by
+               SST 2K polishing and historical research by
                             Eric S. Raymond
 </literallayout>
 </dedication>
@@ -172,7 +174,7 @@ game.</para>
 
 <para>Space is vast, and it takes precious time to move from one place to
 another.  In comparison, other things happen so quickly that we
-assume the take no time at all. Two ways that time can pass are when
+assume they take no time at all. Two ways that time can pass are when
 you move, or when you issue a command to sit still and rest for a
 period of time.  You will sometimes want to do the latter, since the
 various devices aboard your starship may be damaged and require time
@@ -326,9 +328,9 @@ Full commands:  SRSCAN
 </literallayout>
 
 <!-- This is new in SST 2K -->
-<para>If you are using the screen-oriented interface, it should never
-be necessary to call this command explicitly; a short-range scan will
-always be present on the screen.</para>
+<para>If you are using the screen-oriented interface, this command is
+suppressed; instead, a short-range scan will always be present on the
+screen.</para>
 
 <para>The short-range scan gives you a considerable amount of information
 about the quadrant your starship is in.  A short-range scan is best
@@ -381,6 +383,11 @@ Mnemonic:  STATUS
 Shortest abbreviation: ST
 </literallayout>
 
+<!-- This is new in SST 2K --> 
+<para>If you are using the screen-oriented interface, this command is
+suppressed; instead, a full status report will always be present on the
+screen.</para>
+
 <para>This command gives you information about the current state of your
 starship as follows:</para>
 
@@ -491,10 +498,10 @@ Mnemonic:  LRSCAN
 Shortest abbreviation:  L
 </literallayout>
 
-<!-- This is new in SST 2K -->
-<para>If you are using the screen-oriented interface, it should never
-be necessary to call this command explicitly; a long-range scan will
-always be present on the screen.</para>
+<!-- This is new in SST 2K --> 
+<para>If you are using the screen-oriented interface, this command is
+suppressed; instead, a long-range scan will always be present on the
+screen.</para>
 
 <para>A long-range scan gives you general information about where you are
 and what is around you.  Here is an example output.</para>
@@ -763,18 +770,18 @@ instantaneously, the hits you receive will be intermediate between
 what they would be if the shields were completely up or completely
 down. </para>
 
-<para>You may not fire phasers through your shields.  However you may use
-the <quote>high-speed shield control</quote> to lower shields, fire phasers, and
-raise the shields again before the Klingons can react.  Since rapid
-lowering and raising of the shields requires more energy than normal
-speed operation, it costs you 200 units of energy to activate this
-control.  It is automatically activated when you fire phasers while
-shields are up.  You may fire photon torpedoes, but they may be
-deflected considerably from their intended course as they pass
+<para>You may not fire phasers through your shields.  However you may
+use the <quote>high-speed shield control</quote> to lower shields,
+fire phasers, and raise the shields again before the Klingons can
+react.  Since rapid lowering and raising of the shields requires more
+energy than normal speed operation, it costs you 200 units of energy
+to activate this control.  It is automatically activated when you fire
+phasers while shields are up.  You may fire photon torpedoes, but they
+may be deflected considerably from their intended course as they pass
 through the shields (depending on shield strength).</para>
 
 <para>You may transfer energy beteen the ship's energy (given as
-<quote>Energy</quote> in the status) and the shields.  Thee word
+<quote>Energy</quote> in the status) and the shields.  The word
 <quote>TRANSFER</quote> may be abbreviated <quote>T</quote>.  The
 ammount of energy to transfer is the number of units of energy you
 wish to take from the ship's energy and put into the shields.  If you
@@ -1005,15 +1012,15 @@ Klingons.</para>
 <sect1><title>Call Starbase for Help</title>
 
 <literallayout>
-Mnemonic:  CALL
+Mnemonic:  MAYDAY
 (No abbreviation)
 </literallayout>
 
 <para>[Originally, this command was called <quote>HELP</quote>, but
-these days it might be misinterpreted as built-in
-documentation!]</para>
+these days that might be misconstrued as an attempt to browae built-in
+documentation! In some later versions it was CALL.]</para>
 
-<para>When you get into serious trouble, you may call starbase for
+<para>When you get into serious trouble, you may call starbase for
 help.  Starbases have a device called a <quote>long-range transporter
 beam</quote> which they can use to teleport you to base.  This works
 by dematerializing your starship at its current position and
@@ -1257,6 +1264,11 @@ Shortest abbreviation:  REQ
 Full command:  REQUEST &lt;ITEM&gt;
 </literallayout>
 
+<!-- This is new in SST 2K --> 
+<para>If you are using the screen-oriented interface, this command is
+suppressed; instead, a full status report will always be present on the
+screen.</para>
+
 <para>This command allows you to get any single piece of information
 from the &lt;STATUS&gt; command.  &lt;ITEM&gt; specifies which
 information as follows:</para>
@@ -1281,6 +1293,7 @@ information as follows:</para>
 <row><entry>SHIELDS</entry>     <entry>SHIELDS</entry>   <entry>S</entry></row>
 <row><entry>KLINGONS LEFT</entry><entry>KLINGONS</entry> <entry>K</entry></row>
 <row><entry>TIME LEFT</entry>   <entry>TIME</entry>     <entry>TI</entry></row>
+<row><entry>BASES LEFT</entry>   <entry>BASES</entry>   <entry>BA</entry></row>
 </tbody>
 </tgroup>
 </informaltable>
@@ -1389,9 +1402,9 @@ inform you how long the base under attack can last.  Since the
 <quote>Super-Commander</quote> is more powerful than an ordinary
 commander, he can destroy a base more quickly.</para>
 
-<para>The <quote>Super-Commander</quote> travels around the galaxy at a speed of about
-warp 6 or 7.  His movement is strictly time based; the more time
-passes, the further he can go.</para>
+<para>The <quote>Super-Commander</quote> travels around the galaxy at
+a speed of about warp 6 or 7.  His movement is strictly time based;
+the more time passes, the further he can go.</para>
 
 <para>Scattered through the galaxy are certain zones of control,
 collectively designated the <quote>Romulan Neutral Zone</quote>.  Any
@@ -1498,7 +1511,6 @@ The emeritus game is strictly for masochists.</para>
  ------    ------------                           -----------
  ABANDON   ABANDON                                shuttle craft
  C         CHART                                  (none)
- CALL      CALL (for help)                        subspace radio
  CO        COMPUTER                               computer
  CR        CRYSTALS                               (none)
  DA        DAMAGES                                (none)
@@ -1510,6 +1522,7 @@ The emeritus game is strictly for masochists.</para>
  I         IMPULSE &lt;MANUAL&gt; &lt;DISPLACEMENT&gt;        impulse engines
            IMPULSE AUTOMATIC &lt;DESTINATION&gt;        impulse engines and computer
  L         LRSCAN                                 long-range sensors
+ MAYDAY    MAYDAY (for help)                      subspace radio
  MI        MINE                                   (none)
  M         MOVE &lt;MANUAL&gt; &lt;DISPLACEMENT&gt;           warp engines
            MOVE AUTOMATIC &lt;DESTINATION&gt;           warp engines and computer
@@ -1561,6 +1574,86 @@ Impulse engines require 20 units to warm up, plus 100 units per
 </chapter>
 <chapter><title>Game History and Modifications</title>
 
+<sect1><title>Origins</title>
+
+<para>The original Star Trek seems to have been written by Mike
+Mayfield at the beginning of the 1970s.  His first version was in
+BASIC for a Sigma 7 in 1971; in 1972 he rewrote it in Hewlett Packard
+BASIC. The source is <ulink
+url="&sst-site;www/historic/mayfield.basic">available</ulink> on the
+SST2K website. In January 1975 it became part of the DECUS library
+under the name <ulink
+url='http://www.trailing-edge.com/~shoppa/decus/110174.html'>SPACWR</ulink>.</para>
+
+<para>While some people claim to have recollections of playing Trek
+games in the late 1960s, the earlier ones seem actually to have been
+variants of
+<ulink url='http://en.wikipedia.org/wiki/Spacewar!'>
+SPACEWAR</ulink>, the earlier space-combat game on the
+PDP-1. Mayfield <ulink
+url='http://www3.sympatico.ca/maury/games/space/star_trek.html'>wrote
+in 2000</ulink> that he invented the Trek-style galactic grid, and the
+evidence seems to back that up.  Some of the confusion probably stems 
+from the fact that Mayfield's original and several early descendants 
+were distributed under the name SPACWR.</para>
+
+<para>Many different versions radiated from Mayfield's original; most
+og the ones in BASIC are descended from a SPACWR version that David
+Ahl published in <citetitle>101 BASIC Computer Games</citetitle>,
+July 1973. This was a port of Mayfield's version obtained from the HP
+Contributed Programs library.  </para>
+
+<para>Our SST2K is descended from a Taurus BASIC program by Grady
+Hicks dated 5 April 1973. This does not appear to have been derived
+from Ahl's SPACWR. The header says "GENERAL IDEA STOLEN FROM
+PENN. U.", and the game has several features not present in SPACEWR:
+notably, the Death Ray, ramming, and the Klingon summons to surrender.
+And, of course, it predates Ahl's book.  The source is <ulink
+url="&sst-site;www/historic/UT-Trek.basic">available</ulink> on the
+SST2K website.</para>
+
+<para>Dave Matuszek, Paul Reynolds et. al. at UT Austin played the
+Hicks version on a CDC6600, but disliked the long load time and
+extreme slowness of the BASIC program. (David Matuszek notes that the
+Hicks version he played had a habit of throwing long
+quotes from Marcus Aurelius at the users, a feature he found
+intolerable on a TTY at 110 baud.  It must, therefore, have been
+rather longer than  the one we have.)  The Austin crew proceeded to
+write their own Trek game, loosely based on the Hicks version, in
+CDC6600 FORTRAN.  At that time, it was just called "Star Trek"; the
+"Super" was added by later developers.</para>
+
+<para>At the time the UT FORTRAN source was translated to C it emitted
+the message "Latest update-21 Sept 78".  Thus, it actually predated
+(and may have influenced) the best-known BASIC version, the "Super
+Star Trek" published by David Ahl in his November 1978 sequel
+<citetitle>BASIC Computer Games</citetitle>.</para>
+
+<para>This 1978 "Super Star Trek" had been reworked by Robert Leedom and
+friends from (according to Leedom) Mayfield's HP port. There is
+internal evidence to suggest that at least some features of Leedom's
+SST may have derived from the UT FORTRAN version.  In particular, Dave
+Matuszek recalls implementing command words to replace the original
+numeric command codes, a feature Leedom's SST also had but the
+1973 and 1975 SPACWRs did not.</para>
+
+<para>One signature trait of the UT FORTRAN game and its descendants
+is that the sectors are 10x10 (rather than the 8x8 in Mike Mayfield's
+1972 original and its BASIC descendants).  The UT FORTRAN version also
+preserves the original numbered quadrants rather than the
+astronomically-named quadrants introduced in Ahl's SST and its
+descendants.</para>
+
+<!-- Dave thinks his Fortran Star Trek used the clockface for quadrant -->
+<!-- navigation. -->
+
+<para>Eric Allman's BSD Trek game is one of these, also descended from
+FORTRAN Star Trek via translation to C.  However, the mainline version
+(now SST2K) has had a lot more stuff folded into it over the years
+&mdash; deep space probes, dilithium mining, the Tholian Web, and so
+forth.</para>
+</sect1>
+
 <sect1><title>Tom Almy's story</title>
 
 <para>Back in (about) 1977 I got a copy of this Super Star Trek game for
@@ -1653,7 +1746,7 @@ fired upon.</para>
 </listitem>
 <listitem>
 <para>Probe target you enter is now the destination quadrant. Before I don't 
-      remember what it was, but it was something I had difficulty using)</para>
+      remember what it was, but it was something I had difficulty using.</para>
 </listitem>
 <listitem>
 <para>Secret password is now autogenerated.</para>
@@ -1687,41 +1780,31 @@ better anyway.</para>
 </listitem>
 </itemizedlist>
 
+<para>My changes got merged into SST2K in 2005, and I work on it now.</para>
+
 </sect1>
 <sect1><title>Eric Raymond's story</title>
 
-<para>I played the FORTRAN version of this game in the mid-1970s on a
+<para>I played the FORTRAN version of this game in the late 1970s on a
 DEC minicomputer.  In the late 1980s Dave Matuszek and I became
 friends; I was vaguely aware that he had had something to do with the
 original Star Trek game.  In October 2004, sitting in Dave's living
 room, we got to talking about the game and I realized it would make a
 great exhibit for the <ulink
-url='http://www.catb.org/retro/'>Retrocomputing Museum</ulink>.</para>
+url='&retro;'>Retrocomputing Museum</ulink>.</para>
 
 <para>A few quick web searches later we found Tom Almy's page.  We
 downloaded his code and Dave verified that that it was a direct
 descendent of UT Super Star Trek &mdash; even though it had been translated
 to C, he was able to recognize names and techniques from the FORTRAN
-version.</para>
+version he co-wrote.</para>
 
-<para>Thus, this game is a cousin of Eric Allman's BSD Trek game, which is
-also derived from UT Super Star Trek.  However, this one has had a lot
-more stuff folded into it over the years &mdash; deep space probes,
-dilithium mining, the Tholian Web, and so forth.</para>
-
-<para>One signature trait of this group of variants is that the sectors are
-10x10 rather than the 8x8 in Mike Mayfield's 1972 original and its
-BASIC descendants) Also, you set courses and firing directions with
-rectangular rather than polar coordinates.  It also preserves the
-original numbered quadrants rather than the astronomically-named 
-quadrants introduced into many BASIC versions.</para>
-
-<para>This game is now an open-source project; see the <ulink
+<para>This game became an open-source project; see the <ulink
 url='http://developer.berlios.de/projects/sst/'>project
 site</ulink>.</para>
 
-<para>After I launched the Berlios project, Stas Sergeev contacted me
-me.  We worked together to merge in his changes.</para>
+<para>After I launched the Berlios project, Stas Sergeev contacted me.
+We worked together to merge in his changes.</para>
 
 <para>Modifications I've made:</para>
 
@@ -1751,14 +1834,21 @@ written to and read from disk as one blob.  The write gives it an
 an identifiable magic number and the thaw logic checks for same. 
 </para></listitem>
 <listitem><para>
-I made the internal pager work, nd in the process got rid of a number
+I made the internal pager work, and in the process got rid of a number
 of platform dependencies in the code.
 </para></listitem>
 <listitem><para>
-The HELP/CALL/SOS command is now MAYDAY.  SOS and CALL are still accepted.
+The HELP/CALL/SOS command is now MAYDAY.
+</para></listitem>
+<listitem><para>
+Status report now indicates if dilithium crystals are on board.
+</para></listitem>
+<listitem><para>
+At Dave's prompting, restored the Space Thingy's original elusive behavior.
 </para></listitem>
 <listitem><para>
-Status report now indicates if dilithium crystals arre on board.
+Clean separation of game engine from the UI code, improving Stas
+Sergeev's excellent work on the curses interface.
 </para></listitem>
 </itemizedlist>