Sky Screen Saver for Windows Version 1.1 Release Notes by John Walker 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.