Sky Screen Saver for Windows
Version 1.1 Release Notes
by John Walker -- kelvin@fourmilab.ch
WWW home page: http://www.fourmilab.ch/
INTRODUCTION
============
The Sky Screen Saver shows the sky above any location on Earth,
including stars (from the Yale Bright Star Catalogue of more than 9000
stars to the 7th magnitude), the Moon in its correct phase and
position in the sky, and the position of the Sun and all the planets
in the sky.
Outlines, boundaries, and names of constellations can be displayed, as
well as names and Bayer/Flamsteed designations of stars brighter than
a given threshold. A database of more than 500 deep-sky objects,
including all the Messier objects and bright NGC objects can be
plotted to a given magnitude. The ecliptic and celestial equator can
be plotted, complete with co-ordinates.
To fulfill its mission as a screen saver, the sky map shifts position
on the display every 10 minutes to avoid burning in those few
components of the display which do not move as the Earth revolves.
The Sky Screen Saver is in the public domain. You can do anything you
like with it.
COPROCESSOR OR NOT?
===================
Two versions of the Sky Screen Saver are available. The first,
SKYSCRS.ZIP uses a math coprocessor if one is available,
and emulation software if no coprocessor is installed and should,
in theory, work on any machine. Unfortunately, there appear to
be bugs in the Microsoft coprocessor emulation software (as of
Windows 3.1 and Visual C++ 1.5) which cause various errors in the
complicated calculations of the positions of objects in the sky.
As a work-around, an alternative version, SKYSCRSN.ZIP, is
available. This version never uses a coprocessor, even if one
is present. Instead, it uses the so-called "alternate math package"
which is about twice as slow as the coprocessor but appears to get
the correct answers.
In short, until the bugs in the coprocessor emulation code are
fixed, you should FTP the archive:
SKYSCRS.ZIP if you have a math coprocessor (or a CPU
such as a 486DX which includes an integral
math processor).
SKYSCRSN.ZIP if you do not have a math coprocessor.
The non-coprocessor version will, of course, work on a machine with
a coprocessor, but runs about twice as slowly. If you don't know
whether your machine has a coprocessor and you have Excel 5.0 or
Word 6.0, launch one of those applications, go to the Help/About...
menu item, and click "System info" in the About dialogue box. A
line in the system information will tell you whether a math
coprocessor is installed.
INSTALLATION
============
To install the Sky Screen Saver, obtain the archive SKYSCRS.ZIP (if
you have a math coprocessor) or SKYSCRSN.ZIP (no coprocessor), which
are PKZIP archives. Extract it with PKUNZIP under MS-DOS to obtain
the files:
SKYSCRSV.SCR - Screen saver module
SKYSCRSL.DLL - Astronomical calculation DLL
README.TXT - This document
Copy SKYSCRSV.SCR and SKYSCRSL.DLL to your Windows directory (usually
C:\WINDOWS), then from the Desktop option of the Control Panel, choose
"Sky" as your screen saver and use "Setup" to configure it for your
location and preferences.
CONFIGURATION
=============
In order to correctly display the sky above your location on Earth,
the Sky Screen Saver needs two pieces of information not automatically
available under Windows: the relationship between your local time zone
and Universal Time (Greenwich Mean Time), and the latitude and
longitude of your location. These are specified in the following
ways.
Time Zone
---------
The time zone is specified by a Unix compatible SET TZ= statement
usually placed in your AUTOEXEC.BAT file. Many other applications use
this statement, so it may already be present. If not, you'll have to
add a suitable statement to your AUTOEXEC.BAT (or type it in manually
before launching Windows, but that's a real nuisance).
Use the following syntax to set the TZ environment variable:
set TZ=tzn[+ | -]hh[:mm[:ss] ][dzn]
The tzn must be a three-letter time-zone name, such as PST, followed
by an optionally signed number, +|-hh, giving the difference in hours
between Universal and local time. To specify the exact local time,
the hours can be followed by minutes, :mm; seconds, :ss; and a
three-letter daylight-saving-time zone, dzn, such as PDT. Separate
hours, minutes, and seconds with colons (:). If daylight saving time
is never in effect, as is the case in certain states and localities,
set TZ without a value for dzn.
TZ specifications for the principal North American time zones are:
Eastern EST5EDT
Central CST6CDT
Mountain MST7MDT
Pacific PST8PDT
If no TZ specification is found, the Sky screen saver displays a
warning box for the first two minutes after it is activated which
explains how to set the time zone, then proceeds using the North
American Pacific time zone as the default (that's where Microsoft is
located).
Latitude and Longitude
----------------------
The latitude and longitude are specified in the dialogue which appears
when you click the "Setup" button in the Screen Saver section of the
Desktop control panel option. Enter your latitude and longitude, in
degrees, minutes, and seconds in the boxes, and don't forget to click
the buttons to specify whether your latitude is North or South and
your longitude East or West. When you initially install the Sky
Screen Saver, the latitude and longitude are set to those of Redmond,
Washington in the United States, the location of Microsoft's
headquarters.
Don't worry about getting the longitude and latitude absolutely
precise for your location--a couple of minutes of error don't make
much difference in the appearance of the sky rendered at this scale.
You don't have to enter your own latitude and longitude; you can enter
the co-ordinates of any point on Earth and as long as the TZ
specification properly converts your machine's local time to Universal
time, and see the sky as it appears from that location.
Detailed Configuration
----------------------
The "Detailed Configuration" button displays a dialogue which allows
you to enable or disable the display of various components of the sky
map.
Constellations:
Outlines -- The lines connecting the principal stars
of the constellations.
Boundaries -- The boundaries astronomers have defined
between the constellations.
Names -- Constellation names.
Align -- Rotate constellation names to align
with horizon on the map. This requires
generation of a separate TrueType font
for each constellation name. On a fast
'486 with plenty of memory, it adds only
a few seconds to the generation time,
but on a 20 Mhz '386 with limited
memory, it can take minutes. This mode
is off by default; try it to see how
long it takes and whether you prefer the
names aligned.
Stars:
Magnitude limit -- Stars dimmer than this magnitude will
not be displayed. Set to 6 to show all
naked-eye stars.
Names -- Check box to display names (e.g. "Vega",
"Sirius", "Canopus") of stars brighter
than the given magnitude limit.
Bayer/Flamsteed codes -- Check box to display Bayer greek
letters and Flamsteed numbers for stars
brighter than the given magnitude. These
are the designations of stars within a
constellation such as "Delta Pavonis" or
"61 Cygni".
Deep sky objects -- Check box to plot deep sky objects
(galaxies, gaseous nebulae, star
clusters, etc.) brighter than the
specified magnitude.
Show ecliptic, equator, poles -- If checked, the celestial north
and south poles will be marked with a
cross whose arms point in the
direction of the equinoctial and
solstitial colures, and the ecliptic
(labeled every 15 degrees) and the
celestial equator (labeled in hours of
right ascension) will be plotted.
Show solar system objects -- If checked, the Sun, Moon, and planets
will appear in the sky map.
Show calculation time -- Check box to display the time required
to calculate each update to the sky
map. This is primarily intended for
benchmarking various machines.
DID YOU NOTICE?
===============
The colour of the legends around the map changes based on the Sun's
altitude. When it's nighttime (Sun more than 18 degrees below the
horizon), they're grey. During the day (sunrise to sunset), they're
bright blue. During dawn and sunset (when the Sun is between 1 and 6
degrees below the horizon) the legends are dark red, and during the
balance of twilight (Sun between 6 and 18 degrees below the horizon),
they're dark blue.
For locations in the northern hemisphere the map is plotted with North
at the top, while observers in the southern hemisphere see South at
the top. East and West flop also, following the convention for
printed star maps. Note than since a star map represents the dome of
the heavens and is used, at least mentally, by holding it up over your
head, East and West are reversed with respect to a map of the Earth.
HOME PLANET
===========
The Sky Screen Saver was developed based on Home Planet, a
comprehensive Earth and sky simulator for Windows which displays the
Earth, tracks satellites, asteroids, and comets, includes an
extensible multimedia object catalogue, a simulated telescope for
viewing the sky at any magnification or location, a database of more
than a quarter million stars, and a complete hypertext help file and
introduction to astronomy linked to the components of the program.
Displays include the illuminated portion of the Earth, the Sky, the
Telescope, the Earth as viewed from a satellite, the Moon, or the Sun,
an orrery, panels displaying current information about the Moon and
planets, and more. Real-time astronomical information can be exported
to other applications via DDE. There's even a cuckoo clock (you can
turn it off).
Home Planet is in the public domain; you can do anything you like with
it.
You can obtain Home Planet by anonymous FTP from:
ftp.fourmilab.ch
in the directory:
/pub/kelvin/homeplanet
Visit my home page:
http://www.fourmilab.ch/
for details of other freely-available astronomical software.
NOT TO WORRY -- WINDOWS GROGNARD DETAILS
========================================
Windows developers who run the Debug version of Windows may occasionally
see the warning message:
wn Kernel: LocalReAlloc failed
appear on the debug terminal when the Sky screen saver is running,
especially if you have a high resolution display and many applications
open. In order to precisely clip star and constellation labels and
other objects at the edge of the sky map, the screen saver creates a
circular clipping region with the CreateEllipticRgn API call. Large
non-rectangular regions use large amounts of memory within Windows,
and may fail if the screen is large or other programs have tied up
Windows' resources.
The Sky screen saver detects the failure to create the clipping region
and simply goes ahead and generates the sky map allowing the legends
to "bleed" slightly over the edge of the map, which really doesn't
look all that bad. Thus, there's no reason to be concerned about the
warning message from Windows. The screen saver releases the clipping
region as soon as it's done using it, so as not to tie up resources
that other programs running in the background may require.
UPDATE LOG
==========
Version 1.0 (19 Sep 1994): Initial release.
Version 1.1 (27 Sep 1994): If the allocation of the device dependent
bitmap in which the sky map is drawn failed, several GDI calls were
made with a zero handle. This caused warning messages and resulted in
a blank screen with only the time at the top. I added code to detect
the failed allocation and display an out of memory message which moves
around the screen every 10 seconds. The size of the bitmap depends
upon the size and colour depth of the configured display, so it's hard
to give general guidelines about how much free memory is required. With
a 1024x768x16 display, 2 megabytes free RAM is plenty. A 1024x768 full
colour (24 bit per pixel) display requires about 5 megabytes of free RAM
to allocate the bitmap and other storage.
(17 Sep 1994): Built a version of 1.1 with the "alternate math package"
to work around coprocessor emulation bugs. Tested both on a 486DX50 and
a 386/20 with no coprocessor. It worked fine on both.