Space Flight Simulator (version 0.01)
This demo is provided principally as a means of interesting
persons in the Space Flight Simulator. The program at
this point simply depicts the earth as seen from a wide
elliptical orbit. The program should work with CGA (very
poorly), Hercules (tm), EGA, or VGA graphics.
Running the Program:
To run the program on computers with CGA, EGA, and VGA
graphics, simply type
followed by a carriage return. To run the program on a
computer with Hercules graphics, you must first run the
program "msherc." The following commands will run the
program with Hercules graphics:
The initial trajectory calculations will take several minutes,
depending on the speed of your CPU. The program works
optimally on faster CPUs with a math coprocessor attached.
For a 4.77-megahertz PC with no math coprocessor, the
initial calculations can take ten to twenty minutes.
The program is a good deal more interesting when you have
enough video RAM to support multiple-paged memory.
Otherwise, you're going to have to watch it redraw the
screen every few minutes.
On slower computers, you may find the version "sfsv" more
interesting. This is a more "verbose" version that includes
some debugging information at the bottom of the screen.
To exit at any point, hit "ESC".
The Space Flight Simulator can depict an orbital view of
other orbital foci than the earth. There are supplied
with the program three or four files with the extension
".fd". These are "focal data" files. If, for instance,
you'd rather orbit mercury, enter
where "mercury" indicates that you want the program
to use the "mercury.fd" focal data file. You'll find
other planets than earth really very boring, because
I don't have surface data on them, and so they are
depicted simply as a latitude-longitude grid with a
solid line indicating the central meridian.
The default orbit:
In this version of the Space Flight Simulator, a
default orbit is calculated based on the size of
the orbital focus (the planet or the moon). For
earth (the default), this orbit comes to about
700 kilometers altitude at perigee and runs out to
about 24,000 kilometers at perigee. The orbital
inclination is 45 degrees, and the ascending node
is at the equator.
This is a rather impractical orbit, but is great
for "sightseeing." As set up, the Simulator
represents the spacecraft as constantly altering its
attitude to keep the orbital focus in view.
You might think of it as a kind of sightseeing
Earth surface data (file earth.sd) is drawn from a large
database called the Micro World Database. I have converted
these data into ASCII file format, so that they are
transportable between DOS and Unix machines.
The program calculates two sets of data, then inter-
polates between the calculations to draw the image.
Most of the time in calculation is taken with trigono-
metric functions, and this is why a math coprocessor
will significantly speed up the program.
The image is not supposed to look like the earth from
space--if it were, it wouldn't have a coordinate grid.
It is supposed to look like a computer representation
of the orbital focus, hence the grid, the lack of clouds,
and so forth.
The control panel:
The control panel has three panels. The top is concerned
with the orbital focus and has the following three fields:
(a) "Fo:" is simply the name of the orbital focus; (b) "La:"
is the latitude of the subsatellite point, i.e., the point
on the earth's surface (or the surface of the orbital focus)
directly under the spacecraft); and (c) "Lo:" is the longi-
tude of the subsatellite point.
The second panel is concerned with the relationship between
the spacecraft and the focus. Its two fields are "Or:", the
number of the current orbit, and "Al:", the spacecraft's
altitude above the surface of the orbital focus.
The lower panel is concerned with the spacecraft itself.
"Ti:" gives the spacecraft time in UTC (or GMT). Note that
this time is calculated as a function of the orbital move-
ment, i.e., it is not "real time." "Da:" gives the number
of days elapsed in the flight, and "El:" would give the
elapsed time into the flight in hours, minutes, and seconds,
if Microsoft had not added a new "feature" to their time
routines which prevent them from working in this case.
The Space Flight Simulator represents an idea I have
been thinking about for quite some time. I hope
I'll have time and resources to develop it further
in the future. I'm not sure if I will.
I'd like to add (a) the ability to select orbital
parameters, (b) the ability to calculate transfer
orbits to new orbits, and of course eventually
(c) the ability to deal with multiple orbital foci
and thus to represent travel from one focus to another.
Then, I suppose, we'd have a real Space Flight Simulator
(maybe version 1.00).
The Space Flight Simulator is based on my own implemen-
tation of the ANSI VDI (Virtual Device Interface) standard.
Use of the program:
I'm releasing version 0.01 of the Space Flight Simulator
as "freeware," that is, it bears my copyright, but you
are welcome to copy it freely and use it as you please,
as long as you don't use it commercially and don't
remove the copyright notices from it.
I'm not sure what I'm going to do with the program at
this point. I'm inclined to think that releasing
the source code (it is written in C) would lead to
a free-for-all. On the other hand, I really would
like to see the program developed, and I'm not sure
I have the expertise or the time to do that.
"I am no prophet, nor a prophet's son; but I am a
herdsman, and a dresser of sycamore trees..." (Amos 7:14).
Your suggestions, technical advice, etc., will be
appreciated; but flames will be sent to the
/dev/null device on my Unix box.
Ted A. Campbell
15 May 1989
Mail:Ted A. Campbell
Durham, NC 27706