Contents of the SATTRAK.DOC file
Satellite Tracking Program
Preliminary Release 0.0a
by TS Kelso
18 April 1989
NOTE: This documentation supports the preliminary release of the SAT TRAK
satellite tracking package. This release contains only the CONTROL and LOOK
modules of the overall package. Due to the nature of this release, no source
code will be provided; the package is supplied as compiled with Quick BASIC
Version 4.5 (Copyright Microsoft Corporation). When the package is
complete, all modules and their source code will be released into the public
domain. This preliminary release will work on IBM PCs and compatibles only.
SAT TRAK may be initiated by typing 'CONTROL'. The CONTROL module passes
the user between modules (by typing the numbers 1 through 4) or allows the
user to exit SAT TRAK (by typing 'X'). Currently, the only module which may
be selected is LOOK.
The LOOK module generates look angles, using the NORAD SGP model
described in the Project Spacetrack Report Number 3, as well as Right
Ascension and Declination, for any satellite from a specified observer's
location. It also allows the user to specify whether all passes should be
generated or only visible passes. These features permit users interested in
visually tracking satellites to spot them more easily.
The LOOK module requires two data files. The data file OBS.DTA contains
the defaults for the observer's location: Time Zone difference from UTC,
Latitude, Longitude, and Altitude above Mean Sea Level.
It now also includes the decimal printer code which indicates whether
your printer is ready. This information is at address 0040:0008 (for LPT1:
which is what SAT TRAK assumes; if not, redirect the output to print later:
see below). To find out what the code is for your printer, make sure it is
ready to print and take the value from address 0040:0009 times 256 plus the
value from address 0040:0008 plus one. That is:
[0040:0009]*256 + [0040:0008] + 1
The following BASIC code segment may be used to determine this value:
10 DEF SEG = &H40
20 PR = INP(256 * PEEK(9) + PEEK(8) + 1)
30 PRINT PR
40 GOTO 20
Running this code segment while changing your printer status should change the
number printed on your screen.
The format for OBS.DTA is:
Time Zone: N (integer)
Latitude: DD MM SS D (Degrees, minutes, seconds, orth or
Longitude: DDD MM SS D (Degrees, minutes, seconds, ast or est)
Altitude: NNNN (real, meters)
Printer Status: NNN (integer)
See the accompanying OBS.DTA file for an example.
If you modify the file for your location, then responding to the
questions regarding observer's location with carriage returns will select
these default values and they will be echoed to the screen.
The second data file is WKFILE.DTA. It is a working file containing the
satellites of interest. This file may contain AT MOST 17 satellites (this
limitation will be increased in the official release) and is now generated
directly from the current NASA-PB.xxx file found on the Celestial RCP/M,
(513) 427-0674. Simply take that file and copy up to 17 satellite elements to
the file WKFILE.DTA. If there are more than 17 satellites in your WKFILE.DTA,
only the first 17 will be selected. See the accompanying WKFILE.DTA file for
Now you are ready to run SAT TRAK. Type 'CONTROL' to begin and '1' to
select LOOK. Respond to the observer location questions in the format
specified above the cursor (you must use the exact format or the program will
not perform properly) or select the default value by entering a carriage
Next you will select a satellite from the list provided by typing the
number corresponding to the satellite followed by a carriage return. The
remaining information specifies the conditions for observing the satellite.
All of these questions have defaults, so you may simply hit RETURN for each of
First, you will be shown the satellite selected and asked for the maximum
range (in kilometers) for the satellite passes; the default is infinity.
Then you will be asked if you want only visible passes or all passes.
The default is visible passes only. You may type 'All', 'ALL', or 'all' to
select all passes.
Next, you are asked the minimum elevation (in degrees) for the satellite
passes; the default is 10 degrees.
Finally, you must specify the range of times for the satellite passes.
There are two options here. You may simply hit RETURN at the start time to
select the current date and time (as set in your PC). This time is truncated
to the beginning of the current hour. Then you will be asked how many days
you want to forecast. Just enter an integer number of days greater than or
equal to one. Otherwise, you may enter the start and stop time in the format
specified above the cursor. Again, the format must match exactly. The format
DD/HHMM Mon YYYY
where DD is the two-digit day of the month (00-31), HH is the two-digit hour
(00-23), MM is the two-digit minute (00-59), Mon is the three-character month
with only the first letter capitalized (e.g., Jan, Aug), and YYYY is the four-
digit year. If you manually enter the start date you must manually enter the
stop date as well. And now, enter the time interval (in minutes) at which you
wish the data to be output.
Now, your inputs will be echoed to the screen in a header with the
current element set, followed by the calculated satellite passes. Note that
all dates are now given as calendar date rather than day of the year. After
each pass is completed, a line will be drawn to separate passes. All output
at this stage will be echoed to the printer if it is on and ready. Otherwise,
it will only be printed to the screen.
When all passes are complete, you will be asked to select new times for
the specified satellite, select a new satellite, or change observer location.
You need only respond with a single letter ('Y', 'y', 'N', or 'n'; all others
are ignored) to each question. If you answer 'No' to all questions, you are
returned to CONTROL.
It is now possible to fully redirect the program output to a separate
file so that you may edit and/or print the file after your session. Simply
type 'CONTROL >filename.ext'. All the prompts will still appear on your CRT
but the actual output will (the satellite look angles) will go directly to the
file you have specified.
That's about it. Remember, this is a preliminary release and, therefore,
some of the features may seem somewhat awkward to work with. The program does
work, but, since the official release is still some time off and the Celestial
RCP/M does not have any other way of satisfying this demand at present, this
preliminary release was decided upon. The official release will include a
full-screen tracking program displaying satellite ground tracks on a world map
along with 3-D projections and a fully integrated data base maintenance
program. I hope you find this program useful in the interim. If you have any
questions or uncover any bugs, please leave me a message on the Celestial
SYSOP, Celestial RCP/M
300/1200/2400 Baud, 24 Hours/Day, 8/N/1