diff --git a/man/man1/scat.html b/man/man1/scat.html
new file mode 100644
index 0000000..d5cf200
--- /dev/null
+++ b/man/man1/scat.html
@@ -0,0 +1,385 @@
+<head>
+<title>scat(1) - Plan 9 from User Space</title>
+<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
+</head>
+<body bgcolor=#ffffff>
+<table border=0 cellpadding=0 cellspacing=0 width=100%>
+<tr height=10><td>
+<tr><td width=20><td>
+<tr><td width=20><td><b>SCAT(1)</b><td align=right><b>SCAT(1)</b>
+<tr><td width=20><td colspan=2>
+    <br>
+<p><font size=+1><b>NAME     </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+    scat &ndash; sky catalogue and Digitized Sky Survey<br>
+    
+</table>
+<p><font size=+1><b>SYNOPSIS     </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+    <tt><font size=+1>scat<br>
+    </font></tt>
+</table>
+<p><font size=+1><b>DESCRIPTION     </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+    <i>Scat</i> looks up items in catalogues of objects outside the solar
+    system and implements database-like manipulations on sets of such
+    objects. It also provides an interface to <a href="../man1/astro.html"><i>astro</i>(1)</a> to plot the
+    locations of solar system objects. Finally, it displays images
+    from the Space Telescope Science Institute&#8217;s Digitized Sky Survey,
+    keyed to the catalogues. 
+    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+    
+    Items are read, one per line, from the standard input and looked
+    up in the catalogs. Input is case-insensitive. The result of the
+    lookup becomes the set of objects available to the database commands.
+    After each lookup or command, if more than two objects are in
+    the set, <i>scat</i> prints how many objects are in the set;
+    otherwise it prints the objects&#8217; descriptions or cross-index listings
+    (suitable for input to <i>scat</i>). An item is in one of the following
+    formats:<br>
+    <tt><font size=+1>ngc1234<br>
+    </font></tt>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        Number 1234 in the New General Catalogue of Nonstellar Objects,
+        NGC2000.0. The output identifies the type (<tt><font size=+1>Gx</font></tt>=galaxy, <tt><font size=+1>Pl</font></tt>=planetary
+        nebula, <tt><font size=+1>OC</font></tt>=open cluster, <tt><font size=+1>Gb</font></tt>=globular cluster, <tt><font size=+1>Nb</font></tt>=bright nebula,
+        <tt><font size=+1>C+N</font></tt>=cluster associated with nebulosity, <tt><font size=+1>Ast</font></tt>=asterism, <tt><font size=+1>Kt</font></tt>=knot
+        or nebulous region in a galaxy,
+        <tt><font size=+1>***</font></tt>=triple star, <tt><font size=+1>D*</font></tt>=double star, <tt><font size=+1>?</font></tt>=uncertain, <tt><font size=+1>&#8722;</font></tt>=nonexistent, <tt><font size=+1>PD</font></tt>=plate
+        defect, and (blank)=unverified or unknown), its position in 2000.0
+        coordinates, its size in minutes of arc, a brief description,
+        and popular names.<br>
+        
+    </table>
+    <tt><font size=+1>ic1234<br>
+    </font></tt>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        Like NGC references, but from the Index Catalog.<br>
+        
+    </table>
+    <tt><font size=+1>sao12345<br>
+    </font></tt>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        Number 12345 in the Smithsonian Astrophysical Star Catalogue.
+        Output identifies the visual and photographic magnitudes, 2000.0
+        coordinates, proper motion, spectral type, multiplicity and variability
+        class, and HD number.<br>
+        
+    </table>
+    <tt><font size=+1>m4</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Catalog number 4 in Messier&#8217;s catalog. The output is the NGC
+    number.<br>
+    <tt><font size=+1>abell1701<br>
+    </font></tt>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        Catalog number 1701 in the Abell and Zwicky catalog of clusters
+        of galaxies. Output identifies the magnitude of the tenth brightest
+        member of the cluster, radius of the cluster in degrees, its distance
+        in megaparsecs, 2000.0 coordinates, galactic latitude and longitude,
+        magnitude range of the cluster (the
+        &#8216;distance group&#8217;), number of members (the &#8216;richness group&#8217;), population
+        per square degree, and popular names.<br>
+        
+    </table>
+    <tt><font size=+1>planetarynebula<br>
+    </font></tt>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        The set of NGC objects of the specified type. The type may be
+        a compact NGC code or a full name, as above, with no blank.<br>
+        
+    </table>
+    <tt><font size=+1>&quot;&#945; umi&quot;<br>
+    </font></tt>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        Names are provided in double quotes. Known names are the Greek
+        letter designations, proper names such as Betelgeuse, bright variable
+        stars, and some proper names of stars, NGC objects, and Abell
+        clusters. Greek letters may be spelled out, e.g. <tt><font size=+1>alpha</font></tt>. Constellation
+        names must be the three-letter
+        abbreviations. The output is the SAO number. For non-Greek names,
+        catalog numbers and names are listed for all objects with names
+        for which the given name is a prefix.<br>
+        
+    </table>
+    <tt><font size=+1>12h34m &#8722;16<br>
+    </font></tt>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        Coordinates in the sky are translated to the nearest &#8216;patch&#8217;,
+        approximately one square degree of sky. The output is the coordinates
+        identifying the patch, the constellations touching the patch,
+        and the Abell, NGC, and SAO objects in the patch. The program
+        prints sky positions in several formats corresponding to
+        different precisions; any output format is understood as input.<br>
+        
+    </table>
+    <tt><font size=+1>umi</font></tt>&nbsp;&nbsp;&nbsp;All the patches in the named constellation.<br>
+    <tt><font size=+1>mars</font></tt>The planets are identified by their names. The names <tt><font size=+1>shadow</font></tt>
+    and <tt><font size=+1>comet</font></tt> refer to the earth&#8217;s penumbra at lunar distance and
+    the comet installed in the current <a href="../man1/astro.html"><i>astro</i>(1)</a>. The output is the
+    planet&#8217;s name, right ascension and declination, azimuth and altitude,
+    and phase for the moon and sun, as shown by
+    
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        <tt><font size=+1>astro</font></tt>. The positions are current at the start of <i>scat</i>&#8217;s execution;
+        see the <tt><font size=+1>astro</font></tt> command in the next section for more information.
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+        
+        
+    </table>
+    The commands are:<br>
+    <tt><font size=+1>add</font></tt> <i>item</i>Add the named item to the set.<br>
+    <tt><font size=+1>keep</font></tt> <i>class ...<br>
+    </i>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+            Flatten the set and cull it, keeping only the specified classes.
+            The classes may be specific NGC types, all stars (<tt><font size=+1>sao</font></tt>), all NGC
+            objects (<tt><font size=+1>ngc</font></tt>), all M objects (<tt><font size=+1>m</font></tt>), all Abell clusters (<tt><font size=+1>abell</font></tt>),
+            or a specified brightness range. Brightness ranges are specified
+            by a leading <tt><font size=+1>&gt;</font></tt> or <tt><font size=+1>&lt;</font></tt> followed by a magnitude. Remember
+            that brighter objects have lesser magnitudes.<br>
+            
+        </table>
+        
+    </table>
+    <tt><font size=+1>drop</font></tt> <i>class ...<br>
+    </i>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+            Complement to <tt><font size=+1>keep</font></tt>.<br>
+            
+        </table>
+        
+    </table>
+    <tt><font size=+1>flat</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Some items such as patches represents sets of items. <i>Flat</i>
+    flattens the set so <i>scat</i> holds all the information available for
+    the objects in the set.<br>
+    <tt><font size=+1>print</font></tt>&nbsp;&nbsp;&nbsp;Print the contents of the set. If the information seems meager,
+    try flattening the set.<br>
+    <tt><font size=+1>expand</font></tt> <i>n<br>
+    </i>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+            Flatten the set, expand the area of the sky covered by the set
+            to be <i>n</i> degrees wider, and collect all the objects in that area.
+            If <i>n</i> is zero, <i>expand</i> collects all objects in the patches that
+            cover the current set.<br>
+            
+        </table>
+        
+    </table>
+    <tt><font size=+1>astro</font></tt> <i>option<br>
+    </i>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+            Run <a href="../man1/astro.html"><i>astro</i>(1)</a> with the specified <i>options</i> (to which will be appended
+            <tt><font size=+1>&#8722;p</font></tt>), to discover the positions of the planets. <tt><font size=+1>Astro</font></tt>&#8217;s <tt><font size=+1>&#8722;d</font></tt> and
+            <tt><font size=+1>&#8722;l</font></tt> options can be used to set the time and place; by default,
+            it&#8217;s right now at the coordinates in <tt><font size=+1>/lib/sky/here</font></tt>. Running <tt><font size=+1>astro</font></tt>
+            does not change the positions of planets
+            already in the display set, so <tt><font size=+1>astro</font></tt> may be run multiple times,
+            executing e.g. <tt><font size=+1>add mars</font></tt> each time, to plot a series of planetary
+            positions.<br>
+            
+        </table>
+        
+    </table>
+    <tt><font size=+1>plot</font></tt> <i>option<br>
+    </i>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+            Expand and plot the set in a new window on the screen. Symbols
+            for NGC objects are as in Sky Atlas 2000.0, except that open clusters
+            are shown as stippled disks rather than circles. Abell clusters
+            are plotted as a triangle of ellipses. The planets are drawn as
+            disks of representative color with the first letter
+            of the name in the disk (lower case for inferior planets; upper
+            case for superior); the sun, moon, and earth&#8217;s shadow are unlabeled
+            disks. Objects larger than a few pixels are plotted to scale;
+            however, <i>scat</i> does not have the information necessary to show
+            the correct orientation for galaxies.
+            The option <tt><font size=+1>nogrid</font></tt> suppresses the lines of declination and right
+            ascension. By default, <i>scat</i> labels NGC objects, Abell clusters,
+            and bright stars; option <tt><font size=+1>nolabel</font></tt> suppresses these while <tt><font size=+1>alllabel</font></tt>
+            labels stars with their SAO number as well. The default size is
+            512x512; options <tt><font size=+1>dx</font></tt> <i>n</i> and <tt><font size=+1>dy</font></tt> <i>n</i> set the <i>x</i> and
+            <i>y</i> extent. The option <tt><font size=+1>zenithup</font></tt> orients the map so it appears as
+            it would in the sky at the time and location used by the <tt><font size=+1>astro</font></tt>
+            command (<i>q.v.</i>).<br>
+            The output is designed to look best on an LCD display. CRTs have
+            trouble with the thin, grey lines and dim stars. The option <tt><font size=+1>nogrey</font></tt>
+            uses white instead of grey for these details, improving visibility
+            at the cost of legibility when plotting on CRTs.<br>
+            
+        </table>
+        
+    </table>
+    <tt><font size=+1>plate</font></tt> [[<i>ra dec</i>] <i>rasize</i> [<i>decsize</i>]]<br>
+    
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+            Display the section of the Digitized Sky Survey (plate scale approximately
+            1.7 arcseconds per pixel) centered on the given right ascension
+            and declination or, if no position is specified, the current set
+            of objects. The maximum area that will be displayed is one degree
+            on a side. The horizontal and vertical sizes
+            may be specified in the usual notation for angles. If the second
+            size is omitted, a square region is displayed. If no size is specified,
+            the size is sufficient to display the centers of all the objects
+            in the current set. If a single object is in the set, the 500x500
+            pixel block from the survey containing the center of
+            the object is displayed. The survey is stored in the CD-ROM juke
+            box; run <tt><font size=+1>9fs juke</font></tt> before running <i>scat</i>.<br>
+            
+        </table>
+        
+    </table>
+    <tt><font size=+1>gamma</font></tt> <i>value<br>
+    </i>
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+            Set the gamma for converting plates to images. Default is &ndash;1.0.
+            Negative values display white stars, positive black. The images
+            look best on displays with depth 8 or greater. <i>Scat</i> does not change
+            the hardware color map, which should be set externally to a grey
+            scale; try the command <tt><font size=+1>getmap gamma</font></tt> (see
+            <i>getmap</i>(9.1)) on an 8-bit color-mapped display.<br>
+            
+        </table>
+        
+    </table>
+    
+</table>
+<p><font size=+1><b>EXAMPLES     </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+    Plot the Messier objects and naked-eye stars in Orion.<br>
+    
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        <tt><font size=+1>ori<br>
+        keep m &lt;6<br>
+        plot nogrid<br>
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+        </font></tt>
+        
+    </table>
+    Draw a finder chart for Uranus:<br>
+    
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        <tt><font size=+1>uranus<br>
+        expand 5<br>
+        plot<br>
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+        </font></tt>
+        
+    </table>
+    Show a partial lunar eclipse:<br>
+    
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        <tt><font size=+1>astro &#8722;d<br>
+        2000 07 16 12 45<br>
+        moon<br>
+        add shadow<br>
+        expand 2<br>
+        plot<br>
+        
+        <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+        </font></tt>
+        
+    </table>
+    Draw a map of the Pleiades.<br>
+    
+    <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+        <tt><font size=+1>&quot;alcyone&quot;<br>
+        expand 1<br>
+        plot<br>
+        </font></tt>
+    </table>
+    
+</table>
+<p><font size=+1><b>FILES     </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+    <tt><font size=+1>/usr/local/plan9/sky/*.scat<br>
+    </font></tt>
+</table>
+<p><font size=+1><b>SOURCE     </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+    <tt><font size=+1>/usr/local/plan9/src/cmd/scat<br>
+    </font></tt>
+</table>
+<p><font size=+1><b>SEE ALSO    </b></font><br>
+
+<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+
+    <a href="../man1/astro.html"><i>astro</i>(1)</a><br>
+    <tt><font size=+1>/usr/local/plan9/sky/constelnames  </font></tt> the three-letter abbreviations
+    of the constellation names. 
+    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
+    
+    The data was provided by the Astronomical Data Center at the NASA
+    Goddard Space Flight Center, except for NGC2000.0, which is Copyright
+    &copy; 1988, Sky Publishing Corporation, used (but not distributed)
+    by permission. The Digitized Sky Survey, 102 CD-ROMs, is not distributed
+    with the system.
+    
+</table>
+
+<td width=20>
+<tr height=20><td>
+</table>
+<!-- TRAILER -->
+<table border=0 cellpadding=0 cellspacing=0 width=100%>
+<tr height=15><td width=10><td><td width=10>
+<tr><td><td>
+<center>
+<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
+</center>
+</table>
+<!-- TRAILER -->
+</body></html>
