--

This is a comprehensive History list of the eleven versions of Astrolog
that have been released to the net over the past eighteen months. This
file is mainly for those who have the most recent version (3.00) but
yet aren't familiar with the earlier versions in which many of the
other (not just added) features were described and documented. Below
is a listing of all versions of Astrolog that have been posted, after
which for each version, is listed the description of the new changes
added to that version. Taken together, all the update descriptions add
up to a comprehensive list of Astrolog's features and command switches.

                                            [Features added to version:]
1) v1.00 posted Wed, 11 Sep 91 00:00:38 GMT (Initial planet calculations)
2) v1.10 posted Sat, 14 Sep 91 00:02:16 GMT (Aspects; different house systems)
3) v1.20 posted Fri, 20 Sep 91 23:56:55 GMT (File input; wheels; relationships)
4) v1.30 posted Wed,  9 Oct 91 03:17:04 GMT (Transits; searches; astro-graphy)
5) v1.40 posted Tue, 12 Nov 91 01:18:13 GMT (Restrictions; other conveniences)
6) v2.00 posted Wed, 11 Dec 91 07:11:25 GMT (X charts; split files)
7) v2.10 posted Tue, 18 Feb 92 07:59:03 GMT (Color; more X charts; local space;
                                             more progression and file support)
8) v2.20 posted Wed,  3 Jun 92 00:25:40 GMT (Stars; space charts; influences,
                                             astrolog.dat; more relationships)
9) v2.25 posted Thu, 18 Jun 92 18:54:43 GMT (Bug fixes over v2.20)
10)v2.30 posted Fri, 12 Sep 92 01:20:42 GMT (Interpretations; comments, etc.)
11)v2.40 posted Wed, 20 Jan 93 03:23:16 GMT (Ansi text color; midpoint lists)

All of the above versions of Astrolog except v2.25 were posted in
direct source file form to the newsgroup alt.astrology. Versions 2.10
and 2.25 were submitted in shell archive format to comp.sources.misc.
In addition, version 1.30 was posted to talk.religion.newage, as well.

************************************************
Astrolog 1.00 posted Wed, 11 Sep 91 00:00:38 GMT
************************************************

There seems to have been zillions of requests for unix system programs
which can calculate planetary positions, or a birthchart in general.
I had been looking all over the place for one for a long while without
success, until someone posted the fact that Matrix software produces a
book called 'Manual of Computer Programming for Astrologers' which
contains all kinds of useful formulas. Anyway, since there doesn't
seem to be an astrology program in existance anywhere, I decided to
make one myself and got the book and converted the routines to C and
made a chart casting program around them. At last here is a program
which can do your chart for you! Cut out the portion of this article
between the "cut here"'s, and compile the program with "cc -O
astrolog.c -lm". Execute it simply by entering "astrolog" (assuming
that's the name of the executable), and the program will ask you for
all the birth info and will give the planet/house positions. (e.g.
for here in Seattle right now for the seven prompts I would enter: 9;
10; 1991; 16.05 [for 5:05pm, with daylight time in effect]; 122.20;
47.36) The program calculates the positions of all planets, chiron,
the four main asteroids, as well as stuff like the part of fortune and
vertex. There are option switches (do astrolog -H to see them) which
allow siderial and heliocentric based charts to be done as well. Enjoy
the program, but remember the copyright message. Yes, I know the code
is currently very messy, but I wanted to get this posted as fast as
possible so we can start calculating stuff right away. I'm currently
adding other features, like aspects, other house systems besides
placidus, an option to generate the chart for this exact moment, etc,
to the program, so expect future enhancements. There's also another
program I have at home which generates nice graphic wheel charts (for
a different computer system) given the birth data (makes nice X11
bitmaps) which I hope to be able to convert soon also. Anyway:

************************************************
Astrolog 1.10 posted Sat, 14 Sep 91 00:02:16 GMT
************************************************

Several changes and fixes have been made to the astrolog.c birthchart
calculator since the first posting four days ago:

Some problems that people had with compiling it have been corrected:
  * The value PI is now explicitly defined, instead of depending on the math
    library which may or may not have defined it already.
  * All line lengths are less than 80 characters, to help prevent line
    splitting or cutting from those whose news servers puke on too long lines.

The minor bug in which the moon's north node was *not* displayed as being
retrograde has been fixed, as well as a rare display alignment glitch.

New features have been added to the program (which may be combined):
  * Aspects and midpoint display is now supported: Invoke as astrolog -g and
    a 20x20 grid showing the midpoint locations for each planet, and showing
    if any aspects are present and how accurate they are, is displayed.
  * A couple of different house systems are now supported: Invoke as
    astrolog -c <number> to change the system from the default Placidus.
    (See astrolog -H for help on what each number refers to.)
  * Additional information is displayed when the chart is cast:
    (1) Whether or not each planet is in it's ruling sign, or fall, as well
        as displaying the same information for ruling or debilitating houses.
    (2) The sum of the signs in each element and mode and their totals is
        displayed in a grid form.
  * For those with unix systems who can handle the time calls (If your
    system pukes on trying to compile this, simply comment out the
    #define TIME line at the beginning), the program now supports displaying
    the chart for the time at the current moment! In other words, invoke as
    astrolog -n and see where the planets are right now. (This is fun - the
    house cusps change 1' about every 4 seconds!) You will need to
    change the #defines for the default longitude and latitude in the code
    though, or else specify where you are explicitly by using the -l switch
    to change the default location.
  * Although minor, some more helpful info is displayed when entering the
    chart data, as well as a header for the columns when the chart info is
    displayed.

Again future enhancements will include: supporting yet more house
systems, and allowing the chart to be displayed in a wheel format on
the text screen (not too difficult) or graphically in an X11 window or
bitmap (will take a lot longer to do, although I've done one already
for a different system), allowing saving charts to files and comparing
them with each other or the current status (transits), allowing
progressions to be specified, and maybe a few other things.

I probably could have done this as a patch, but I don't know how to
pack or even unpack patch files, so I guess that's out of the
question. After a few more versions, I might get this in
comp.sources.whatever, but for now I'm just posting it here because
the program is still relatively new. Anyway, sorry if this is a long
article, but anyway, here is the updated version of astrolog.c (can be
compiled, extracted, as before):

************************************************
Astrolog 1.20 posted Fri, 20 Sep 91 23:56:55 GMT
************************************************

Ok, astrology lovers, here is the new and improved version 1.2 (Third
posting) of the Astrolog birthchart calculator, complete with all
kinds of new features, like allowing computation of transits,
progressions, relationships between charts, printing of house wheel
charts, etc:

First a list of bug fixes over version 1.1:
 1) The glaring bug in which, if you said you wanted the Campanus system of
    houses, you would in fact always get Placidus, is fixed.
 2) The program processed dates during the Gregorian calendar incorrectly, and
    this has been fixed.
 3) The default longitude and latitude were truncated to integers, causing
    loss of a few minutes accuracy in the house cusps when using the -n
    option, which has been fixed.
 4) The program now no longer core dumps if you include too few parameters with
    the command switches.
 5) [I thought I corrected this for the previous version, but there was one
    place where I forgot it] The variable M_PI has been replaced with explicit
    definitions of pi for those compilers that don't understand what M_PI is.
 6) The type 'time_t' has been replaced with just an int, since that all it is
    anyway, and since some compilers don't know the type 'time_t'.

Several people have told me that the north node always seem to be off by about
half a degree. I've been looking into this but haven't found the problem yet.
(I've tried using the 'true' north node, the 'mean' north node, etc.) (Wait for
next version.)

Now a list of all the new neat features Astrolog now provides:
(Remember, do 'astrolog -H' to see a brief list of the command switches.)

 * Seven new aspects have been included, for those who like obscure aspects!
   (Thanks to Mark Martin for giving me the list of their angles and orbs.)
 * The '-A' command switch gives a list of all the aspects, their abbreviations
   as used in the aspect grids, their angles, and their orbs.
 * For those who don't like all these aspects, specifying -A <number> will
   limit the number of aspects (e.g. -A 5 will make charts with only the five
   major aspects listed in them).
 * The aspect orbs have been narrowed for certain bodies like the north node
   for which they are expected to be more narrow.
 * There's been a very minor change to the aspect grids, which will indicate
   whether an aspect is slightly short of exact or slight long of exact.
   If the difference is displayed as "3.5" it means the aspect is 3.5 degrees
   long of exact; if it's displayed as "3,5", the aspect is 3.5 degrees short.
   (i.e. with a comma instead of a period; Yeah, I know that's a hack, but it's
   useful in determining whether the exact aspect just happened or is about to
   happen. (Note that conjuncts are always '.', and oppositions always ','.)
 * Five new house systems have been included which can be specified using the
   -c switch. Astrolog now supports 9 different systems total.
 * The program now supports directing output to, and reading output from,
   data files. The '-o' option will dump all the birth data (the date and
   stuff, not the planet positions) to the specified file. The '-i' option will
   cast the chart based on the info in the file. (This allows you to put your
   birth data into a specific file, and cast your chart whenever you want to
   after that without having to reenter your birth data all the time.)
 * Display of the chart in a nice wheel format is now supported using the '-w'
   switch. (Special error case: If one of the houses gets too 'full' of
   planets, the planet will be put at the beginning of the next house.)
 * There are now three different formats of chart display available: The
   standard listing of planet positions, which you get without any switches;
   the aspect/midpoint grid you get with '-g', and the house wheel you get with
   '-w'. The -e "everything" option will display the chart in all three of
   these formats (Of course the screen will scroll because of all the output).
 * Harmonic charts (i.e. where all the planet positions are multiplied by a
   factor and the chart recast) are now supported via the '-x' option. (e.g.
   -x 3 will make all trines conjunct in the chart displayed.)
 * A secondary progression chart for a particular date can be cast using the
   '-p <month> <date> <year>' command switch. (Note, I'm not sure if the house
   cusps are progressed correctly, but they're reasonably close to what is
   properly expected.)
 * Computing the relationship between two charts is now supported. Invoke the
   program as 'astrolog -r <file_of_person1> <file_of_person2>' and the program
   will give you the relationship between the two charts. Normally, and with
   the -w switch, the program will display person2's planets in person1's
   houses (synastry). With the -g switch, a full grid listing the aspects
   between all the planets of the two charts (with person1's planets on the
   vertical axis and person2's on the horizontal) is displayed (minus the
   vertex, because the screen is too narrow to include it unfortunately.)
   Note that transits can be computed with this by comparing your chart with
   the positions of the planets at the current moment (-n switch). To make
   this easier, you may specify the filename "now" for any file and the
   computer will use the current planet positions instead of looking for a like
   named file. (e.g. 'astrolog -r me now' will compute transits for file 'me'.)
 * The command switch '-t <file>' can be used as a shortcut way to compute
   the current transits for the chart in <file>. (Saves you from having to
   mention the 'now' in the '-r' option.)

Anyway, some new features that we might find in the *next* version
are: Adding the calculation of aspects occurring within a day and at
what times they are exact (like in Jim Maynard's Celestial Guides),
and some Astro-graph routines (i.e. like Jim Lewis' astro*carto*graphy
charts which list where in the world the planets were angular at the
time of birth.), as well as finally cleaning up the messy code. I hope
to make some more clear documentation on how to use the program
(remember, most command switches can be combined!) I've got many of
the major features one might want in an astrology program down now,
but there's still room for expansion: There's still the X windows
chart bitmaps (Andy Gray has shown me a nice Postscript program to
print charts graphically that he's working on.) Anyway, enjoy the new
version of Astrolog (Compile as before)!

************************************************
Astrolog 1.30 posted Wed,  9 Oct 91 03:17:04 GMT
************************************************

Once again, we have a new version (1.30, i.e. the Fourth posting) of
the Astrolog birthchart calculator ready to be used. The main
highlights are some more minor (and not so minor) bug fixes, as well
as some great new features, like the ability to display the exact
times of aspects in a day or month, astro*carto*graphy, etc.

(Note, I've sent this to talk.religion.newage in addition to just
alt.astrology this time, since not everyone gets the alt.* groups,
even though I'm increasing my chances of getting flamed for posting 2K
line articles... I'm really going to have to start posting this in
segments soon, or figure out how to post to comp.sources.whatever;
however, the file is still under the magic 64K bytes in length.)

First, the bug fixes over version 1.2:
 1) The north node is *finally* being computed correctly now. Before it would
    always seem to be off by about 1/2 a degree or so.
 2) The Part of fortune was calculated 180 degrees off about half the time
    before, and this major bug has been fixed.
 3) If Daylight Saving time is in affect, the user must subtract 1 from the
    time value entered. If the person happened to be born from midnight - 1am,
    a negative value would have to be entered. Before it wasn't clear what
    value should be entered. In fact now, one should subtract 1 from the
    integer of the value, and not the decimal value itself. In other words,
    things are processed clearer now in that if the person was born at 12:15am
    with DST in affect, they would enter -1.15 (one less than 0.15) instead of
    having to subtract from the whole value and enter something like -0.45.
 4) (This is more of a new feature than a bug) the program now supports
    multiple display switches at once. In other words, the user can invoke with
    '-g -w' and get the aspect grid and the wheel chart, while before the
    program would only allow one of these to be printed at a time (or else the
    user would have to print *everything* using the '-e' switch.)
 5) Oh, and some of the code has been cleaned up, although not much. Slowly but
    surely, this will become an elegant program :)

A couple of people have emailed me saying that their computer (for
example, Mac's) won't accept command switches on the command line
(like they boot Astrolog from a menu for instance.) Therefore, they
weren't able to access all the features of the program. If this is the
case with your system (or if you just don't like command line
options), then comment out the '#define SWITCHES' line at the
beginning of the code. If you do this, then the program will ignore
any switches and prompt you to enter them manually at the very
beginning of program execution.

Now a list of the new neat features Astrolog provides:
(Remember, it's still 'astrolog -H' to see a list of the command switches.)

 * The '-d' option will take the standard chart information, and for the day in
   question, display the exact times of all aspects that occur. This is just
   like the aspects-per-day as displayed in Jim Maynard's Celestial Guide
   books. (Displayed in local time as defined by the specified zone, with
   general accuracy of a few minutes.) This will tell the times all planets
   make aspects with each other, or change their sign; retrogradation during
   the day will be indicated, but the exact time of it won't be listed.
 * The '-r' option can now be used to generate composite relationship charts.
   Simply invoke it as '-rc <person1> <person2>' instead of just -r and a
   composite chart (i.e. composed of the midpoints of the planets, etc of the
   two charts in question) will be generated.
 * The '-L' option will take the standard chart information and generate the
   astrograph positions of the planets. In other words, this does the exact
   same thing that Jim Lewis' Astro*Carto*Graphy maps do. It will display the
   longitude of where on the Earth at the time in question each object was on
   the midheaven and on the nadir, and the latitude of where the planets
   actually appeared at zenith. Also, for latitude increments of 5 degrees, the
   longitude of where the objects appeared on the ascendant and descendant is
   displayed.
 * The '-E <month> <year>' option will generate a quick ephemeris for the ten
   main bodies for the month in question, useful if you just want to see what's
   happening this month in the sky. It generally is used by itself and not with
   any other options. (Displayed daily for midnight, GMT time.) Any dots after
   a planet location in the list indicate the planet was retrograde at the
   time.
 * The '-T <file> <month> <year>' option will scan the entire month specified,
   and print out any transits that happen, in that month, to the planets as
   listed in the specified <file>. (There will be quite a few, even though
   fast moving objects like the moon aren't looked at, so you might want to use
   this option with the '-A 5' option to limit this to just the major aspects.)
   Again, this option is generally is used by itself and not with many others.
   (The times are in GMT time, and generally accurate to within a half hour or
   so; Try doing it for your birth month and your own chart - All planets
   should conjunct their natal positions at about the time of your birth.)
 * There are a few other minor things that might affect the program, such as
   the fact that by default now, only the major and the 6 main minor aspects
   are taken into account, and that one must '-A 18' if they want to get them
   all, as well as a few minor display changes, etc.

Anyway, I've got many of the more advanced features in the program
now, so the next version (might) start to have X windows support in
it. (And of course I mentioned that I was working on a more
comprehensive help file, part of which I posted, but alas, I was more
attracted to adding new features!) I've obtained access to a nice
world map which could be included to enchance the astro*graph -L
option to make *real* astro-graph maps! And of course, I still want to
eventually have the option to have nicely drawn X birthcharts appear
on the screen. I've run Andy Gray's postscript version, and although
it's still not finished, it does make good printouts. Anyway, enjoy
this new version 1.30 of Astrolog, which you can compile as before
after removing before and after the "cut here's" with
'cc -O -o astrolog astrolog.c -lm'!

************************************************
Astrolog 1.40 posted Tue, 12 Nov 91 01:18:13 GMT
************************************************

This being the 11th day of the 11th month, I figured that this would
be a good time to post the new updated version (1.40) of our Astrolog
birthchart calculator plus a whole lot more program! There aren't
really any new fundamental features, but there are over a dozen
enhancements (many suggested by its users) which make it's operation
easier and more powerful. (Plus of course we have a chance to
eliminate a couple of pesky bugs.)

The actual code is in a separate article, which should be right after
or nearby this one.

A list of the new features and enhancements Astrolog version 1.40 provides:
 1) The ability to restrict the transit (-T) and daily aspect (-d) scans
    to just certain bodies has been implemented with the -R switch. Using
    -R by itself will prevent the asteroids, Chiron, the Part of Fortune
    and the Vertex from being in any of the lists. One may also give a
    list of one or more numbers representing planets to be ignored (e.g. 1
    = Sun, 2 = Moon, 3 = Mercury, etc) so that a complete custom setup can
    be obtained (e.g. -R 1 2 3 4 5 will cause all of the inner planets to
    be ignored). More than one -R switch can be combined (e.g. -R -R 16
    will cause the asteroids, etc, and the North Node to be ignored; the
    first -R gets rid of the asteroids, etc, and the second one deletes
    the North Node.) Also, specifying the same particular body more than
    once will cause it to be included again, or in other words, -R
    <objectnum> complements the status of whether it is to be ignored or
    not (e.g. -R -R 15 will cause all of the asteroids, etc, excluding
    Vesta, to be ignored; the first -R makes causes the asteroids to be
    ignored, and specifying Vesta in the second -R makes it reappear.)
    The -R0 option will cause ALL of the bodies to be ignored, which is
    useful if you are looking for just the transits/aspects of a few
    planets (e.g. -R0 6 7 will cause everything but Juptier and Saturn to
    be ignored.) Combining all these methods can cause whatever you are
    looking for in transits and aspects to be quickly found without having
    to wade through lots of stuff you aren't interested in. (Note: -R will
    also affect what bodies appear in the -w wheel chart, too.)
 2) The -T <file> <month> <year> transits option has been expanded. Putting
    a zero in place of the month will cause the entire year to be scanned,
    which prevents one from having to search each month in turn if they are
    looking for something in particular. (Useful in combination with -R.)
 3) The -T option now includes ALL of one's natal house cusps in the transit
    scans instead of just the Asc and MC. The 11th, 12th, 2nd, and 3rd cusps
    have been added (and oppositions to these and the Asc/MC can be used to
    to determine aspects to the other six cusps.)
 4) Normally the -T option always ignores the moon and does not include the
    transiting moon in the lists because it moves so fast and would cause an
    enormous amount of info. Still, if you are looking for lunar transits,
    specifying the option as -T0 instead of just -T will include the moon.
 5) The -d option can now search the entire month for aspects between planets
    if one so desires. Specifying it as -d0 instead of just -d will go through
    the entire month instead of just the current day. (Combining this one with
    -R allows searching for important aspects, sign changes, etc.)
 6) Both the -T and -d option will display the signs that any planets aspecting
    each other are in, in addition to the aspect itself (e.g. instead of just
    "Jupiter Tri Uranus", we have "Jupiter (Vir) Tri (Cap) Uranus". If a
    particular object is going retrograde, then its sign will be displayed in
    brackets instead of parentheses, and if a particular object is about to or
    has just gone retrograde or direct, then its sign will be in <>'s.
 7) The -E <month> <year> ephemeris option can now be used to display the
    ephemeris for the entire year instead of just for one month. Like the -T
    option, putting a '0' for the month will give the entire year's ephemeris.
 8) The -E option can also display the Asteroids, Chiron, and the Node in the
    ephemeris listing if one invokes it as -E0 instead of just -E. Note however
    that this will make each line more than 80 columns, so this is mainly just
    for printing purposes.
 9) The aspects as listed with the -A option are in a more logical order, from
    the most major to the least. This makes the -A <num> aspect restriction
    switch more useful. (e.g. before -A 2 would restrict analysis to
    conjunctions and sextiles, which isn't all that useful; now the same
    command will restrict to conjunctions and oppositions.)
 A) Note also now that by default only the 5 major aspects are used. If
    one wants the minors, they have to do -A 9, and if one want's ALL the
    aspects, they must do -A 18.
 B) Some header info is printed for the standard chart listing, which includes
    the date, time, and location of the chart being displayed, which of course
    keeps one from getting a whole bunch of printouts confused with each other.
 C) The -f option can be used to "flip" the signs and houses, i.e. display the
    house as a sign position and vice versa. For example having the Sun at
    26 degrees Scorpio, 2/3 way though the 10th house, will cause the resulting
    Sun under the -f option to be at 20 degrees Capricorn, 26/30th the way
    through the 8th house. This can be used to determine how far a planet is
    through a particular house, as well as for Domal chart analysis that
    Mark Kenski has informed me about. Domal analysis is based on the fact that
    for synastry comparisons, for example, a planet in Gemini and one in the
    3rd house can be considered related in a way similar to a conjunction.
 D) The -1 <obj> option can be used to change the houses to force a particular
    object to be on the ascendant. This is useful in casting Solar charts or
    for when the time of birth is not exactly known. For example -1 2 will
    case a normal chart, but the house cusps will be rotated so that the moon
    is on the ascendant.
 E) The -+ <#ofdays> option will cast a normal chart, but one for #ofdays in
    the future (or past if a negative value is given). One use for this is in
    combination with the -n and -d options. For instance, I often invoke the
    program as "astrolog -n -d" to see the exact times of today's aspects.
    However, just before midnight I might want to see what's going to happen
    in the following day, so I would do "astrolog -n -d -+ 1" to see the exact
    times for tomorrow's aspects.
 F) Finally the -q <month> <day> <year> option can be used to cast a quick
    chart for 12 noon on a particular date, using the default longitude and
    latitude. if TIME is defined the current time zone will be determined and
    used, otherwise GMT will be used. Again, one example where this is useful
    is with the -d option, e.g. to see the times of exact aspects on a
    particular date, like your next birthday, your finals, etc.

Now, a list of bug fixes over version 1.30:
 * The midpoint grid displayed in the -g option would cause a coredump if any
   of the midpoints lie between 29.5 deg Pisces and 0 deg Aries, and this has
   been fixed.
 * The -d print aspects in day routine would incorrectly sometimes label a
   planet just going direct as just going retrograde, and vice versa. This
   has been corrected.
 * Attempting to enter a non numeric string when prompted for a numeric value
   in the program will cause a bunch of trash to be displayed on the screen.
   The program now properly tells you that that's an improper input. (Also,
   hitting Ctrl-d at an input will gracefully terminate the program.)
 * Although very minor, before there was one place where a function did not
   return a value. Although it didn't cause any bugs, some compilers would
   complain about this.
 * There were a couple of non-computational related typos in the code and the
   comments that have been corrected (e.g. before at the beginning, the comment
   would tell you to enter the "Longitude N" of your current location before
   compiling. This should of course read "Longitude W".)
 * Finally, those trying to compile Astrolog on PC's and other smaller
   computers said that many of the expressions were too long for their
   compiler to handle. Therefore I have cut down some of the longer expressions
   into multiple lines and have replaced a few of the macros with actual
   function calls.

Expect the X routines to be included in the next version, which will
be split into several program parts, as well as some decent
documentation soon, or at least comprehensive list of all the features.

************************************************
Astrolog 2.00 posted Wed, 11 Dec 91 07:11:25 GMT
************************************************

Tomorrow Uranus transits my Ascendant at 12 degrees 29' Capricorn.
Combine this with my Saturn trining its natal position yesterday, a
nice Aquarius Moon and a Moon Mercury Sextile this evening, and what
would it be a great time to do?

Behold: here is our next version of our Astrolog astrology program!
The main new things this version 2.00 contains are our long awaited
X11 graphics features and the source code now in multiple files.

The program is divided up into 6 source files: astrolog.h, data.c,
formulas.c, options.c, graphics.c, and driver.c. Each of these files
lies in a separate posting of straight source code which should be
after or nearby this one in the list of articles. There is also a
small unix Makefile for the code at the end of this update article. I
chose to post each file separately in this manner, rather than tar
them, uuencode them, zip them, or make a shell archive from them,
because we always have the issue of non-unix people not having access
to or not knowing how how to extract the program.

The main (but not only) thing added to version 2.00 are the X windows
features, which are generally accessed via the new -X switch and
derivatives of it on the command line. There are two different types
of displays: A standard graphic display of a wheel chart in a window
(with glyphs, aspects in the center, etc) and graphic displays of the
Astro-graph charts (which look almost identical to the
astro*carto*graphy maps from Jim Lewis), complete with all the
labeled lines drawn on a map of the world. There are also other
commands that can be given to the window once it is up and running,
which can do other things, such as continually update the window every
few seconds to the current status (i.e. an extended version of the -n
option) as well as other forms of animation. Note that the program is
still text based, and one can easily turn off all the X features by
commenting out the #define X11 in astrolog.h if they don't have X
windows.

A listing and brief description of the command switches for X windows follow:
 -X:  This is the general switch, which means display a chart in an X
      window instead of on the screen in some form. For example, the command
      'astrolog -i mychart -X' will open a new window and display the chart
      in question in it. (Of course, all the other switches, e.g. -R, -c,
      -1, etc, can be used to change what info is actually displayed.)
      If you use the -L astro-graph switch in addition to this, the
      appropriate astro*carto*graphy map will come up in a window instead
      of the earlier boring list of longitudes. (e.g. astrolog -i me -X -L)
 -Xb: This switch will cause a standard X11 bitmap file to be produced
      instead of putting the graphics in an actual window. This is useful if
      you want to convert the graphics to different formats, e.g. so they
      can be displayed on PC's, etc. Note that -Xb (or any other -X<letter>
      switch) automatically assumes the -X switch above, so 'astrolog -i
      file -Xb' is sufficient (and you don't also have to include the -X).
 -Xo <file>: Normally, for -Xb above, the program will prompt you for the
      name to write the bitmap info to; however, you can explicitly specify
      this filename in with the -Xo switch if you don't want to be prompted.
 -XB: This switch will cause the chart graphics to be displayed directly on
      the root window. This action occurs very quickly since the program
      does not have to write a separate bitmap file and call xsetroot -bitmap
      on it (although one could easily do this if they want to). For example,
      one could put the line 'astrolog -n -XB' in their .xsession file
      and whenever they log in, their background will be set to a chart of
      the current state of the planets!
 -Xr: Normally the charts comes up white on a black background (except on
      some workstations in which this seems to be reversed.) Either way, to
      get the chart or bitmap displayed in reverse video (black on white),
      use the -Xr switch.
 -Xw <size> [<size>]: The default window size is 600x600. This can be changed
      with the -Xw switch. -Xw with one argument n will make an n by n
      window; -Xw with two arguments x and y will make an x by y window with
      the chart centered in the middle. Note that this switch will not affect
      astro-graph windows; to change the size of these use -Xs below.
 -Xs <percentage>: Note that the size of the planet and sign glyphs don't
      change when you change the size of the window. This can cause problems
      for very small windows where the glyphs overlap the rest of the chart
      and for very large windows where there is lots of excess space. The
      -Xs switch can be used to change the size of all glyphs. The valid
      values that can be passed to it are 100, 200, and 300, where 200 is
      the default. Note that this switch is used to change the size of the
      astro-graph windows (because the world map is considered to be one
      giant glyph by the program.)
 -XW: Believe it or not, I painstakingly entered the data for the world map
      used by the program by hand using an Atlas during a long week. If you
      just want to see the map of the world by itself without any
      astro-graph lines on it, use the -XW switch.
 -XG [degree]: Once we have the data for the map of the world, there are
      several neat things we can do with it; for instance, with a little
      trigonometry and clipping, we can bring up a view of a globe, which
      is what the -XG switch does. An optional argument will specify a
      rotation value in degrees to display different parts of the globe.
      (The globe seems to look best for a -Xw window size of around 350.)

The X wheel charts have their graphic information organized as
follows: There's an outer circle showing the signs and sign glyphs,
inside of which is a smaller circle divided up into 5 degree
increments to make determining exact degrees easier. Inside of this is
a circle divided up into the 12 houses labeled with numbers. The
entire chart is divided by two dashed lines through the Ascendant/
Descendant (which is always horizontal of course) and the
Midheaven/Nadir. Inside the house circle are the planet glyphs in
their appropriate positions. Small pointer lines run from each glyph
to just before single dots. These dots indicate the precise locations
in the zodiac of each object. The pointer lines (which are dashed if
the object is retrograde and solid otherwise) are necessary so as not
to have to draw planet glyphs on top of one another when planets are
conjunct. Inside the ring of the single dots, are the aspect lines
connecting these positions. Since the default number of aspects to use
is just the 5 majors, one can determine which aspect is in place just
by looking at the aspect line. The accuracy of the aspect is
determined by the dashedness of the line: A solid line means the orb
is < 2 degrees; a dashed line means the orb is < 4 degrees; a really
dashed line mean the orb is < 6 degrees, etc.

The X astro-graph charts are organized as follows: A map of the world
is shown. The edges of the map are labeled with ruler lines that are 5
degrees apart (with longer ruler lines for more important longitudes
and latitudes, like those that are multiples of 10, 30, etc.) The
equator is labeled with a dashed line. The polar regions of the world
aren't shown; the map shown ranges from 60 degrees S latitude to 75
degrees N latitude. Note that each pixel on the screen represents
exactly one half a degree on the world. (For -Xs 100 the ratio is one
pixel to one degree, and for -Xs 300 the ratio is one pixel to 1/3
degree.) On this map are drawn the lines indicating where on the world
the various planets are angular at the time in question. (Note: you
might want to -R restrict some objects because otherwise the map tends
to get pretty cluttered with lines.) As expected, Midheaven and Nadir
lines are vertical, and the Ascendant and Descendant lines are curved.
Little square boxes on the Midheaven lines indicate the exact zenith
latitude location. Each line is labeled at the top or the bottom of
the screen, showing what planet is in question and (sometimes) what
angle is in question. All Ascendant and Midheaven lines are labeled
at the bottom of the screen, and all Descendant and Nadir lines are
labeled at the top. Each line goes a bit beyond to the top or bottom
of the world map, and then another pointer segment (which is again
dashed of the object in question is retrograde) goes and points to the
planet glyph. There is a capital "A" or "M" under each of the glyphs
at the bottom of the screen, explicitly indicating whether the line is
an Ascendant or Midheaven line. At the top of the screen, however,
there are only the glyphs, but one can still determine whether these
lines are Descendant or Nadir lines based on whether they are curved
or not. Note that not all the Descendant lines are labeled; this is
because some of the Ascendant/Descendant lines actually connect near
the top of the screen and don't actually cross it.

Once the X window in question actually comes up, one can press certain
keys within the window to do certain actions. A list of these follows:
 'H': The most important key. Pressing this will display a help list of
      all the key presses available in the text screen from which
      the window was invoked from.
 'q': Pressing this key will terminate the window (and the Astrolog
      program itself.)
 'p': Press this to pause all updates to the window. This is mainly used
      to freeze any animation (see below) but also has an effect even
      on 'still' windows. In pause mode, the window won't be updated at
      all, e.g. moving another window on top of the Astrolog window and
      then off again or iconifying will leave the Astrolog one blank. Key
      presses will still be accepted in pause mode but their effects won't
      be apparent until one presses 'p' again to continue. The fewer X
      windows calls in pause mode will make Astrolog use less CPU time.
 'x': Pressing this will invert the colors in the window, or in other
      words will do the same thing as the -Xr switch on the command line.
 'T': Normally, there is no actual text printed in the windows. However,
      one can bring up header information listing the date, time, and
      location of the chart in question. Pressing the 'T' key will toggle
      the display of the header text at the bottom of the chart on and off.
 'S': One can manually resize the Astrolog windows using a window
      manager (except when a world map is displayed, in which case resizing
      will have no effect). Pressing the 'S' key will resize any (non-world
      map) window to be a square. This is useful, after resizing charts
      to approximately the size you want, to make them precise squares.
 '<' and '>': This two keys will respectively decrease and increase the
      size of the sign and planet glyphs (as well as resize the astro-graph
      charts) through the three scale factors available. After resizing
      the window you will probably want to use these keys if the glyphs are
      now too big or small for the new chart.
 'C', 'L', 'W', 'G': There are basically four main modes in which a window
      can be in: There are the main charts (wheel and astro-graph) as well
      as the two world displays (the simple map by itself and the globe
      view). These four keys can be used to switch between these four
      modes in the middle of program execution. For example, you can bring
      up your own chart in a window, then press 'L' to see the astro-graph
      chart for the same birth data. Then you can press 'W' to just see the
      world map by itself, and 'G' to see the globe view, after which you
      can press 'C' to return to your original wheel chart.

 'N': Animation! This key will toggle in and out of a mode where the chart
      is continually updated in the window. Entering the animation mode
      will cause the chart being currently displayed to be replaced by the
      chart for the exact moment at the time you are running the program.
      Every second or two, the chart will be updated to reflect the new
      current state of the planets and houses. For large window sizes, one
      can actually see very minor changes in the chart every few seconds.
      With the text 'T' mode in effect, the chart is basically an advanced
      version of xclock, and makes a good window to be left running on
      your display. If you are in the -XG globe display mode, pressing
      the 'N' key will cause the globe to rotate for an impressive display!
 '!', '@', '#', '$', '%', '^', '&', '*', and '(': These nine keys (i.e.
      shift plus the number keys from 1..9) enter into a different form
      of chart animation. Pressing them will cause the current chart
      being displayed (i.e. it will not revert to the current planet
      positions) to continually have a delta time added to it and be
      recast and shown. Pressing '!' will have one second added to
      the chart for every update (slow action unless you have a very
      fast system - the animation will be even slower than for the 'N'
      key). Pressing '@' will have one minute added to the chart each
      time, which makes for a nice display (note that you will definitely
      want to be in the text 'T' mode for these animations so you can see
      what times in the future these charts are being cast for. Pressing
      '#" will have one hour added each time (note that now the house
      cusps are starting to move quickly, so you may want to switch to
      a different system of houses (such as the Equal to keep the
      Midheaven from flopping back and forth) and/or use -1 to put an
      object like the sun on the Ascendant.) Pressing '$' will have one
      day added each time (now you will probably want to start using
      -R to remove fast moving objects like the moon), and pressing
      '%' will have one month added for each update of the window.
      The final keys, shift 6..9 cause years, decades, centuries, and
      millenia to be added each time, and tend to only be used to
      look for long range actions (when will Neptune next enter Pisces,
      etc.) To exit this animation mode, press the 'N' key.
 'r': Press this to reverse the direction of any animation taking
      place. For the '!'..'(' animation keys above, this will cause
      negative times to be added to the chart, e.g. pressing '#'
      then 'r' on a chart cast for noon will cause the next chart to
      be displayed for 11am, then 10am, etc. For the Globe animation,
      this will cause the rotation to reverse direction.
 '1'..'9': The nine number keys are used to set the relative "rate" of
      animation to "n" whatevers. For example, normally the "@" key means
      add one minute to the chart for each update, but press "5" and now
      we are adding 5 minutes each time. For the Globe animation,
      by default the Earth rotates one degree each time; however, the
      number keys can speed this up to nine degrees for each update.

There have been a couple of changes made to the program, i.e. not just
new features but some things in version 1.40 are no longer valid:
 * Before, the program tried to actually use internal system calls in the
   time library to determine whether DST was in effect or not. Since this
   didn't seem to be accurate at all times, and also many people's systems
   didn't have the needed gm_tmoff field, I have done away with it and
   have replaced it with a DEFAULT_ZONE constant set at compile time.
 * Now that we have a particular default time zone assumed, the transit (-T)
   times are displayed in the local zone instead of in GMT, the ephemeris
   (-E) list is displayed daily at midnight local time instead of GMT, and
   the quick (-q) chart is always displayed for noon default time, too.
 * The -T transits and -d aspects in day are now displayed in am/pm
   time instead of the 24 hour cloak. There have also been a few
   spacing and alignment changes to make these times easier to read.

In addition to the X enhancements, there have been a few more features added:
 1) I often use Astrolog to look at and compare files containing charts of
    various people. I have many chart files, so I keep them in a separate
    directory. Since it was always a pain to have to cd into this special
    directory all the time, I have added a DEFAULT_DIR string to be set at
    compile time. Now, whenever the program reads in a chart file with the
    -i option, it will first look in the current directory for it. If it's
    not found there, Astrolog will then look for a file of the same name in
    the special default directory.
 2) Additional information has been added to the standard list of the planet
    positions displayed. Planets in their exalted and debilitated signs
    are noted. In addition to the (R) indicating a planet in it's ruling sign,
    and an (F) for a planet in it's fall, we have (e) if a planet is in its
    exalting sign, and a (d) for a planet in its debilitating sign (which is
    always opposite the exaltation, as how the fall is opposite the ruler).
 3) In addition, the total number of planets in each of the hemispheres
    of the wheel, as well the number of objects in positive/masculine and
    negative/feminine quality signs, are counted. To the right of the element
    table, we have a column of six numbers labeled as follows: "+" is the
    number of "positive" objects (i.e. in Fire or Air signs); "-" is the number
    of "negative" objects (i.e. in Water or Earth signs); "M" is the number
    of objects above the horizon (i.e. in the hemisphere of the Midheaven);
    "N" is the number of objects below the horizon (in the hemisphere of the
    Nadir); "A" is the number of objects in the Eastern half of the sky
    (in the hemisphere of the Ascendant); and "D" is the number of objects in
    the Western half of the sky (in the hemisphere of the Descendant).
 4) The -A option when used by itself will now list the number of each aspect
    in addition to all the other info already there (e.g. conjunct = 1,
    opposite = 2, etc.) This is so one can easily figure out what exact
    number to pass to the -A option when changing the number of aspects used.
 5) Similar to the -A option, the new -O option will list all the planets
    and other celestial objects used by the program, and their numbers as
    recognized by the -R restrictions. This list will also show the zodiac
    signs that planets rule, fall in, are exalted in, and debilitated in.
 6) The -z <value> option can be used to change the default time zone to
    the value in question. For example, you can force the -E ephemeris and
    -T transits to be displayed at midnight GMT time instead of the local
    time with -z 0; or, for the East coast where by default the time zone
    is "5", you can do -z 4 during DST to properly display transits,
    aspects in day, and other lists in the local DST zone.
 7) A "new" system of houses has been added: No houses at all, or in other
    words the Ascendant will always be 0 degrees Aries, the Nadir 0 degrees
    Cancer, etc. Access this by passing the value 9 to the -c option.
    This system is useful for the extended chart animations as described
    above where having houses at all can tend to get in the way, and one can
    even observe the precession of the equinoxes with this system if used
    in conjunction with the -s siderial chart option.

Now, a list of bug fixes over version 1.40:
 * A major bug would cause the input from any eastern longitude (or time
   zone) or southern latitude to produce results slightly off the
   expected values. Fixes on how to correct this were posted soon after
   the release of version 1.40, and they are now included in the code, so
   there should be no more problems. The reason why such a large bug got
   in there in the first place (which *wasn't* in versions 1.00-1.20) was
   that I inadvertently introduced it when I was correcting the earlier
   (now fixed) bug which would produce incorrect results whenever the user
   had to enter negative values for the time, e.g. DST was in effect and
   they were born between midnight and 1am (meaning they enter 0.xx -
   1.00 for DST = -1.xx). Both bugs are fixed now and my apologies for
   the hasty debugging which got it in there in the first place.
 * The moon and north node would always produce zodiac positions for the
   standard zodiac, even if the user specified the -s option. The -s
   option will now yield the proper siderial positions for these two
   objects.
 * Some have commented that there are time zones 13 hours before or after
   GMT, and that the old version would only accept values from -12 to +12.
   The legal time zone offsets accepted by the program have been expanded
   to include these areas.
 * Too much round off in the chart headers displayed for a chart would
   force all time zones offsets to be integers, and this has been fixed to
   properly display non-integer zones. Also, another display glitch would
   occasionally display the person as being born one hour after their true
   birth time. Both of these were only display errors and didn't affect
   the actual results computed.
 * A couple of array sizes in the code have been increased to account for
   the fact that some compilers will only reserve n elements for the array
   type name[n], i.e. space is *not* reserved for the index name[n], which
   would introduce glitches in results for some systems before.
 * The -q "quick" chart option wasn't mentioned in the -H help list of all
   the options before, and it is now.
 * Not really a bug, but I neglected to mention in the list of new features
   for version 1.40 that the -1 "put on Ascendant option", if not given any
   object number after it, will by default assume you mean the sun, and will
   cast a normal chart except that the house cusps will be rotated in order
   to put the sun on the Ascendant.

Anyway, that about sums up Astrolog version 2.00. I confess that this
is my first major X window programming job, and that combined with
splitting the code could produce problems on other systems, so there
might be some needed changes to be made in the code soon. Still,
hopefully each code segment is small enough to be compilable on small
systems. Anyway, there probably will be a version 2.10 in the future:
I would like to include some new features like list the latitude
crossings for the astro-graph maps, and I've only really begun to
explore the graphics possibilities with the charts (like I could print
out the aspects grid and locations with the charts, etc). There are
also a couple of other programmers who have expressed interest in
merging their own creations with Astrolog: for example, Postscript
routines (BTW, you can use the xdpr(1) command on certain systems to
print out the contents of an X window), interpretation databases, etc.
As far as Astrolog and computers go, the future in our own minds has
as many possibilities as the future in the stars! :)

To compile version 2.00, first edit the top of the file astrolog.h,
putting in your own appropriate values for the default longitude,
latitude, time zone, and default directory. Also comment out any of
the #defines which set various features that aren't valid on your
system, such as the X11, TIME, and SWITCHES variables. Then, for unix
systems, run the command 'make' on the Makefile (or you can always
compile by hand: "cc -O -c *.c; cc -o astrolog *.o -lm -lX11" will do
it; just make sure to compile each source file and link them together
at the end with the math and X11 libraries.)

************************************************
Astrolog 2.10 posted Tue, 18 Feb 92 07:59:03 GMT
************************************************

As I post this, we are having the Full Moon in Leo/Aquarius. Identity,
represented by the Sun, is in the sign of computers, unconventional
science, and contribution to humanity; opposite the Moon in the sign
of self-expression. The opposition is occurring in the last degree of
these two signs, building up to the entry into the signs of analysis
and self-transcendence. Therefore, guess what it's a good time for?

Behold: the next version (2.10) of our Astrolog astrology program! It
has been over two months since the last version, however some of the
many new features should make it worth the wait. Some of these
included are: X windows in Color, several new X window chart displays,
lots more progression and aspect support, ability to do transits to
composite and other charts, latitude crossings for astro-carto-
graphy, and other things, along with our standard batch of bug fixes.

As before, there are 6 source files: astrolog.h, data.c, formulas.c,
options.c, graphics.c, and driver.c. Each of these files should be in
a separate posting of straight C source code after or nearby this one
in the list of articles. There a small unix Makefile for the program
at the end of this update article. Again, I am posting each file
separately in this manner, rather than using shar, tar, zip, etc,
because we always have the issue of non-unix people not having access
to or not knowing how how to extract the program. Note however, that
very soon I am going to finally post Astrolog to a formal source group
(comp.sources.misc) as a standard shell archive for us unix junkies,
so it should be available at a 24 hour ftp site soon.

--

Here is a complete list of new features now in Astrolog over version 2.00,
listed in rough order from the most significant to least significant:

A) Color X windows is probably the main new feature added to Astrolog
   2.10. The charts displayed in color are *much* more eye catching than
   the old B/W ones, IMHO. Here is how the colors have been assigned for
   the normal wheel and astro-graph charts: Four colors have been
   allocated for the four elements - Fire = Red, Earth = Brown, Air =
   Green, Water = Blue. The various sign glyphs (and the corresponding
   house labels) are in the color of their element. Planets are in the
   color of the sign of their main ruler. Chiron and the four asteroids
   are Gold, while the north node, and other non-physical objects like
   the fortune and vertex are Violet. Representations of the Ascendant/
   Descendant/ Midheaven/ Nadir (in the astro-graph map lines and
   elsewhere) are in the element color of the corresponding sign/house
   that the angular lines refer to, i.e. Ascendant = Red, Midheaven =
   Brown, Descendant = Green, Nadir = Blue. A few extra things have been
   added for color wheel charts only: dark gray lines marking off each
   house (in addition to the main lines on the horizon and meridian), and
   each degree instead of every 5th degree being marked in dark gray on
   the outer circle (every 5th degree being white). Aspects lines are
   colored too, as follows: Conjunctions = Yellow, Sextiles = Light Blue,
   Squares = Red, Trines = Green, Oppositions = Dark Blue. For the minor
   aspects we have: Inconjuncts/Semisextiles = Brown, Semisquares/
   Sesquiquadratures = Orange, (Bi/Semi)Quintiles = Violet,
   (Bi/Tri)Septiles = Gold, (Bi/Quatro)Noviles = Pink.

B) For color X systems, the new -Xm switch will create all windows in
   monochrome B/W mode, as they were in 2.00. In addition, pressing the
   'm' key within a window will toggle in and out of monochrone mode on
   color systems.

C) Aspect grid windows with the appropriate aspect glyphs can be
   displayed by combining the -g option with the -X option (astrolog -g
   -X). Both the split aspect/midpoint grids labeled down the diagonal,
   as well as the relationship aspect grids between two charts (astrolog
   -r <file1> <file2> -g) are supported. The aspects glyphs, objects, and
   the signs in the grids are in their colors as defined earlier. Like
   the astro-graph windows, these charts can't be resized in the normal
   way unless one uses the '>' and '<' keys. For anything less than the
   largest scale size (achieved with the switch -Xs 300, or by pressing
   '>' within a window) all that will be displayed in each aspect grid
   cell is the glyphs of the aspect in effect, the planet being aspected,
   or the sign of the midpoint. However, once the largest scale size is
   reached, there is room in each cell to display the aspect orb to the
   nearest minute off of exact (with a plus or minus sign indicating
   whether the actual angle is slightly greater than or less than exact);
   the degree and minute in addition to the sign for midpoints; and the
   degree and sign location for each planet that's in the grid.
   Remember, the ASCII aspect grids in earlier versions were rather
   limited, only displaying orbs to the nearest 0.1 degree, midpoints to
   the nearest degree, as well as the confusing '.' vs. ',' for angles
   slightly greater or less than exact (not to mention leaving the vertex
   out for the relationship grids between two charts). Well no longer: we
   can now see *real* aspect grids with Astrolog!

D) The -A display aspects option has been extended to display a brief
   verbal description of what each aspect glyph look like. This is in
   case one doesn't know what aspects the weird symbols in the -g -X
   displays are referring to.

E) A new text display switch has been included, -Z, which prints out
   where each object is on the local horizon in terms of altitude and
   azimuth. For each object, the following is displayed: Its altitude on
   the local horizon from +90 degrees (straight up) to -90 degrees
   (straight down), and its azimuth from 0..360 degrees, where 0 = due
   east, 90 = north, 180 = west, 270 = south. To make visualizing the
   azimuth easier, an "azimuth vector" with a N/S component and a W/E
   component is displayed, e.g. (1.00s 0.33w) means that the object is
   mainly south, with its true angle being formed by an vector component
   west that's 1/3 the strength of the south component, i.e. the object
   is about 18 degrees west of south. This along with the altitude should
   make it easy to physically point to where any planet is at any moment,
   making it easy to locate planets in the night sky. This feature can
   also be used to determine the times that a planet rises and sets.
   Also displayed are altitude and azimuth differences between each
   object and the Sun and Moon, first showing the number of degrees that
   the Sun/Moon is "ahead" (or farther east in the zodiac) of the object
   in question, and then the number of degrees that the Sun/Moon is above
   the object in question. This feature can be used to roughly predict
   eclipses! Both the Sun and Moon span about 0.5 degrees in the sky,
   therefore if both the azimuth and altitude differences are < 0.5 (or
   1.0 if the difference is between the Sun and Moon themselves) then the
   object in question is probably being occulted somewhat by the
   Sun/Moon. Note that there are three types of planetary position
   displays: Right ascension and declination showing the object's
   position with respect to the stars, longitude and latitude showing
   where on the Earth the object is straight up (as in the astro-graph
   zenith locations), and finally azimuth and altitude showing the
   positions of the object relative to the local horizon.

F) This new -Z local horizon feature can be displayed in an X window
   as well (e.g. astrolog -Z -X), in which all the planets will be
   displayed in a window depicting the sky. The small dot above or below
   each glyph indicates exactly where each planet is. (Some of the glyphs
   may be overlapping, although the program tries to cut down on this.)
   There is a horizontal line dividing the window representing the local
   horizon; planets above this line are visible, while planets below it
   are set. There are three vertical lines dividing the window as well:
   The middle line represents the due south direction, the one to the
   left is due east, the one to the right is due west, and the edges of
   the window are due north. Like the standard chart display, this window
   may be resized to any proportion. One can press the 'Z' key in any
   window to enter this display type in that window at any time.

G) Ability to write the actual sign and house positions of a chart to
   a file (instead of just the time and place) has been implemented via
   the -o0 <file> option. This option can be used interchangeably with
   the old -o output to file switch. The information written includes the
   zodiac position of the 20 main objects, their retrograde status and
   declination, as well as the positions of the (first six) house cusps.
   This file information can easily be passed into another program, and
   can be read back into Astrolog with the -i option. The -i option will
   automatically determine which type the file is, and will either use
   the given positions, or else calculate them as needed (note that some
   switches, such as the -c house system selection, will have no effect
   for this new file type.) Check an example of one of these files to see
   the precise format (a zodiac position is recorded as three numbers:
   degree in sign, sign as 1..12, and floating point minute within
   degree.) When the files are read back in, they will be flagged as
   "having no space or time" like the composite charts in the chart
   header displays.

H) The new file format can allow one to do things such as transits to
   composite charts (send the composite chart to file with -o0 option and
   then use that file as the first parameter to the -T option) composites
   between two composite charts (use -rc between two composite charts
   sent to a file) and even, if one is willing to do a small amount of
   editing, to do transits to midpoints or the 0 degrees Aries point.
   Note that one can easily edit the positions in the -o0 position file
   to be whatever they like, so one could replace some unimportant object
   (like the vertex) with 0 degrees Aries or an important midpoint value.
   Note that trying to still use the -o time and space output with an
   output chart that doesn't have space/time will confuse the program; it
   will either say it can't make the file or else will output the
   time/space of the most recent parameter file it read in.

I) Another file output feature, the ability to concatenate "comment
   lines" at the end of a data file, been been added to both the -o and
   -o0 options. (Some people have complained that the info in the
   Astrolog chart files are too cryptic.) After scanning the filename,
   the -o[0] option will then write any parameter that follows it at the
   end of the file, until a parameter beginning with a '-' (the next
   switch) is reached. For example: -o 'file' "Walter D. Pullen" Seattle
   will add my name and my birth city in two separate lines at the end of
   'file'. (In unix, quotes can be used to allow spaces within one
   parameter.)

J) Determining dates of transits of progressed planets to natal
   planets can be done with the new -Tp <file> <month> <year> option.
   This is just like the -T option, except that the exact aspects of
   progressed planets (rather than transiting planets) to the planets in
   'file' are displayed. Again, one can substitute '0' for the month to
   scan the entire year.

K) Another added progression feature allows determining aspect times
   of progressed planets among themselves. The -i <file> -dp <month>
   <year> switch will, like the -d option, display times of aspects and
   sign changes, except that they will be for the chart in file,
   progressed throughout the month specified. Progressed planets move
   very slowly ("year for a day") so therefore there will usually be, if
   any, only a couple of aspects in a given month; again, one might want
   to substitute '0' for the month to scan the whole year. Also, since
   they move so slow, the accuracy is cut down, do the dates given are
   probably only accurate to the nearest day, in spite of the times given
   to the minute. Note that Astrolog can now scan for aspects of:
   transiting planets among themselves (-d switch), transiting planets to
   natal planets (-T switch), progressed planets to natal planets (-Tp),
   and progressed planets among themselves (-dp). Only thing Astrolog
   can't do is do progressed planets to transiting planets, although that
   may change in the next version :)

L) The new -pn switch is like the -p <month> <date> <year> switch
   except that (like the -n switch) it assumes the current moment now to
   cast the progressed chart to. This is just another shorthand
   convenience to see what ones progressed chart is like presently; just
   do: astrolog -i file -pn.

M) Determination of latitude crossing points has been added to the
   astro-graph routines! The new -L0 option will do the same thing as the
   -L option, except that after displaying the longitude and latitude
   locations of the Asc/Desc/MC/IC lines, it will then search among the
   lines and display (in order from farthest North to farthest South) the
   latitude of any points where lines cross each other. This includes the
   curvy Asc/Desc lines crossing the straight MC/IC lines as well as
   cases where different Asc/Desc lines cross themselves. And unlike Jim
   Lewis' astro*carto*graphy, Astrolog will also display the longitude of
   the crossing (useful for Asc/Desc crossings) in addition to the
   latitude (as well allowing more planetary bodies to be included in the
   scan, and going farther North and South than Jim Lewis' printouts go.)
   Note however, that there is presently a small (very rare) minor
   omission glitch in the code, where if a crossing is within a couple of
   degrees of 180 deg W/E, it may not be displayed.

N) Change the default orbs of the various aspects with the -Ao <orb1>
   <orb2>... <orbn> switch. Do you not like the 7 degree orbs for
   conjunctions that are in there by default? One can change the first n
   aspect orbs (i.e. as many orb values that one puts after the -Ao)
   anywhere from just the conjunction to all 18 aspects. Non-integer
   values are allowed of course. Use negative orb values to completely
   eliminate an aspect from ever appearing. For example: astrolog -A 6
   -Ao 5 5 -1 10 narrows the orbs for Conjunction and Opposition,
   completely eliminates the Square, widens the orb for Trines, and
   leaves the Sextiles and Inconjuncts in the default values. Note that
   for very wide orbs more than one aspect may apply for a particular
   angle, in which case the more fundamental aspect is chosen. Also for
   wide aspects the decimal value of the orb may be lost in the -g text
   grid (due to too many characters) and their might be some slight
   overlap in the X window -g cells.

O) Note that Astrolog imposes restrictions on the max orb that any
   particular aspect can have to certain particular objects, namely the
   node, fortune, and vertex, which can't have aspects to them in excess
   of 2 degrees. One can suspend these restrictions by replacing the -Ao
   <orbs> option above, invoking it as -AO <orbs> instead. For a fun (and
   perhaps useful) display, try: astrolog -A 1 -AO 180 -g [-X], and see
   everything conjunct everything else.

P) Search through the aspect grid for major aspect configurations,
   including Grand Trines, T-Squares, Grand Crosses, Yod's, and Cradles
   with the -g0 option. This option will produce the same aspect grid
   that -g displays, but afterwards will go through the grid and list any
   of these aspect configurations and what objects are forming them. Of
   course, to see any Yod's, one has to -A 6 or more so that Inconjuncts
   will be included in the aspect grid.
   
Q) Display the locations of the "Uranian" planets with the -u switch.
   Transneptunian or Uranian planets are an interesting subset of
   astrology which includes various objects alleged to be beyond Pluto
   (or something like that, I'm just the programmer). Anyway, Astrolog
   can display the zodiac positions of these bodies as well, and will do
   this by taking the eight Uranian bodies and literally replacing
   Mercury..Pluto with them. (Do: astrolog -u -O to list them.) This
   replacement will allow the Uranians to be included in Astrolog's
   various options, although of course this means that they can't
   interact with Mercury..Pluto in any way. (Note, I didn't bother to
   change the X glyphs or sign rulerships since I don't know what they
   are for the Uranians.)

R) Decan displays are now supported in Astrolog, and one can display a
   decan influenced chart with the -3 switch. The decan theory is that
   each sign in the zodiac can be divided into three parts: The first 10
   degrees (i.e. the first decan) is mainly influenced by the sign in
   question, the second 10 degrees (second decan) although still
   influenced by the sign in question is also somewhat influenced by the
   next sign of the same element, while the last decan is influenced by
   the third sign of the same element. The -3 switch applied to a chart
   will move each object into the sign of its decan. For example, if the
   Sun is at 29 degrees Aquarius and the Moon at 5 degrees Virgo, in the
   resulting chart, the Sun will go to Libra (26 degrees) and the Moon
   will remain in Virgo (although be at 15 degrees now since it was
   previously in the middle of the first decan of Virgo.)

S) In the -w text wheel option, the objects in each house are printed
   from top to bottom in order from earliest in the house to latest. This
   looks good except for in houses 5..8 where this appears backwards
   (i.e. a planet having just entered the 6th house from the 5th is
   displayed right under the Descendant.) Replace -w with the -w0 switch
   and the objects from houses 4 through 9 will be reversed and printed
   in order from bottom to top, making a more flowing looking chart.

T) The new -q0 <month> <date> <year> <time> option takes the four
   parameters and casts a chart for the time in question. The time zone
   and location are taken from the default compiled values. This is just
   yet another useful shorthand way to quickly make a chart. Note that
   this is just like the -q <month> <date> <year> option except that -q
   always casts it for noon in the default zone. Also note that the -a
   option which takes all seven chart parameters can be duplicated with
   -q0 along with the -z <zone> and -l <long> <lat> options.

U) A couple of new compile time option variables have been added to
   the include file astrolog.h. For those people who don't like Placidus,
   a new default house system can be set to the value from 0..9
   indicating what system to use if the user doesn't explicitly specify
   it with -c, Another thing: It must be mentioned that although the
   accuracy of Sun..Pluto and Chiron are to the nearest minute for years
   1900-2000, the four asteroids are relatively inaccurate and can even
   be a couple of degrees off in the worse case. Also, some people just
   don't like or care about the minor bodies. If you don't want these
   values to appear by default, there is a new #define that can be
   commented out so that it will be as if -R is always included when the
   program is run. (Simply do -R to get them back if you compile it this
   way.) There is a new feature added to all the X window displays which
   can toggle the restriction status of the asteroids and other minors.
   Press the 'R' (restrict) key in the window and the screen will be
   redrawn with the restriction status of these toggled.

V) The -Xn [<value>] option can be used to start up an X window in
   animation mode. Before, one would have to explicitly press 'N' or a
   shift+number key to start the window animation. Without a parameter
   after -Xn, the option will start it up in continuous update to "now"
   mode (which is like pressing 'N' in that any chart will be erased with
   the current chart now.) The switch can accept parameters from 1..9,
   corresponding to the animation rates obtained by pressing shift 1..9
   in the window, i.e. update whatever chart is passed to it seconds,
   minutes, hours, days, months, years, etc. later each time.

W) Familiar with ley lines? They are energy lines crossing the Earth.
   I was experimenting earlier with the master ley line grids on the
   Earth (in the pattern of an overlapped 20 sided Icosahedron and 12
   sided Dodecahedron) and I figured Astrolog with it's world map would
   be an interesting program to explore this with. The -XW world map
   display option is always still, and can never be animated. If however
   one tries to animate it, either by the -Xn switch or pressing 'N' in
   the window, a new display showing the ley lines will be shown.
   Actually this is mainly a hack, but I figured I would leave it in
   there for amusement and inspiration. Hackers note: there is an
   interesting "bug" that can arise with the -XW as well as the -XG (and
   -XP, described below) switches: These displays can be brought up
   without having to specify an actual chart. Now suppose one presses
   'C', 'W', etc. to bring up a chart - what will be displayed? The
   answer will be whatever default values were already there, and if
   you're curious, I set to be the time of the New Moon on 1-4-1992 at
   11:11pm GMT at Greenwich England. (i.e. one week before the 11:11)

X) The -XP option will generate a polar view of the Earth as a globe.
   This is like the -XG globe option except that the view is from the top
   (or bottom) and therefore doesn't rotate. By default, the view is
   looking down on the north pole with 0 deg W/E toward the bottom of the
   screen. To see a (fixed) view of the south pole hemisphere, go into
   animation mode. Again, like with all the other X window display
   options, one can enter this display with a keystroke: press 'P' in any
   Astrolog window and it will revert to this display.

Y) A couple of conveniences for the X window features have been added.
   Note that the -Xo <bitmapfilename> option is only used in conjunction
   with the -Xb write output to bitmap switch. Therefore, I have -Xo
   automatically assume -Xb is set. (Invoking -Xb itself without -Xo will
   have the program prompt the user for the bitmap filename.) In other
   words, astrolog -Xb -Xo 'file' is the same as just astrolog -Xo
   'file'. (This may change if I add other file types, but for now none
   are planned.) Also, I should mention that Astrolog includes it's own
   appropriate bitmap if one iconifies the window, instead of reverting
   to the braindead UnknownIcon as it did before.

Z) A few other minor things have been done to the program, such as the
   -H help switch displays more information (e.g. what the difference
   between -T and -T0 is) as well as mentioning for X that you can press
   the 'H' key while within the X window to get a list of all the neat
   things you can do in window once it's already been created.


I could have added a bunch of other features to this version, but as
you can see, I ran out of letters :) Oh well, wait for version 2.20!
Remember now that the -e everything switch includes a lot more chart
information in it since there are more features now.


Here is the list of bug fixes over version 2.00,
listed in rough order from the most major to the least major:

1) I inadvertently disabled the -p progression option while updating
   the program from version 1.40 to 2.00, so that it would produce
   progressed charts way off. This has been fixed and the program
   produces those charts as well as it did in version 1.40 and before.
2) There was a bug in the midpoint routine which would yield results
   180 degrees off occasionally when the two points being passed to the
   routine were themselves almost 180 degrees apart. This would mainly
   affect composite charts and the midpoint grid. This has been fixed for
   all cases now.
3) Some composite charts where the house cusps in the two charts are
   almost 180 degrees apart would have the composite cusps in
   non-sequential order, 180 degrees apart from where they should be,
   e.g. two opposing cusps could be interchanged. The program now makes
   sure this won't happen, and takes corrective measures if necessary.
   Also, composite charts are no longer displayed in the chart headers
   with a bunch of 0's for the date, time, etc. Composite charts are
   properly labeled as being such, while only charts that exists in
   space/time will have their coordinates printed.
4) Some of the values in the header displays, such as time, long/lat,
   etc, would occasionally be displayed one number higher than they
   should be, due to improperly rounding up. This has been fixed. A few
   other minor display areas have been fixed, e.g. in the heliocentric
   planet list -h -O, Earth was abbreviated as "Eart" before.
5) In the -w text wheel option, the objects in each house are supposed
   to be printed from top to bottom in order from earliest in the house
   to latest. The program did this correctly except for cases in which a
   house spanned 0 degrees Aries, in which case the Aries planets would
   be printed before the Pisces planets. This should be the other way
   around, as it is now.
6) I probably should have made the -g text aspect grid and the -E
   ephemeris display be able to be affected by the -R restrictions. They
   weren't before and they are now.
7) Some of my very bad X windows programming in version 2.00 has been
   cleaned up, as least slightly. The program no longer core dumps if the
   DISPLAY environment variable isn't set properly. Before, the windows
   would come up white on black on some machines, and yet black on white
   on others; now as expected everything will come up white on black
   unless one specifies otherwise with the -Xr switch. Finally, a couple
   of people have mentioned that version 2.00 would eat up *lots* of cpu
   even while doing nothing (unless in 'p'ause mode). Also while in pause
   mode, uncovering part of the Astrolog window would leave that part
   blank until pause mode was left. Now, Astrolog doesn't eat cpu unless
   it's doing something useful, and it will always redraw its windows if
   unmapped.
8) Some things that caused problems for PC users have been corrected;
   Astrolog now is explicitly declaring 32 bit longs in places where the
   PC assuming 16 bit ints would cause problems, as well as eliminating a
   couple of unnecessary declarations and adding some more declarations
   which aren't necessary for unix but would confuse a PC.

Note for PC users: I have tried to make this program as much
executable on personal computers and other non-unix systems as
possible. Although this version should be easier to compile than
previous ones were, still there are probably some things I've
forgotten/left out. For instance, for as least one person the
options.c and formulas.c files were too long in version 2.00 and had
to be split again, so one should be aware of these possible factors.

Unfortunately, I am graduating in a little over a month from now, and
therefore probably won't be able to work on or support Astrolog much
unless I can get another account somewhere. Still, I hope to release
an Astrolog 2.20 in another month, perhaps including features like
fixed star tracking. (Have you Sun conjunct the Pleiades? Find out!)

I wish to express thanks to the many people who have pointed out the
bugs (and have made suggestions for new features) in this (as well as
previous) versions so that they could be corrected. You know who you
are! :) As the Sun leaves Aquarius after the Full Moon let's remember
the power of unified effort; and of course the Sun will soon be back
in Aquarius, perhaps next time in the Age of Aquarius!


************************************************
Astrolog 2.20 posted Wed,  3 Jun 92 00:25:40 GMT
************************************************

This file describes the new features, changes, and bug fixes in
version 2.20 of Astrolog (over the previous version, 2.10, posted 3.5
months ago). Although this new version is a stand alone program, this
Update file requires knowledge of the features of version 2.10 in
order to make sense. If you aren't familiar with version 2.10, get and
read the version 2.10 Helpfile which describes all its features from
the alt.astrology ftp site at hilbert.maths.utas.edu.au, or from any
comp.sources.misc archive.

Just some of the new things contained in Astrolog 2.20 are: Fixed star
positions, spatial astronomical charts of the solar system, and a
couple of other things non-astrologer astronomers would like. Also
added are new kinds of and more support for relationship charts, and
the nascent beginnings of an interpretation feature, along with other
things non-astronomer astrologers would like. Ability to scan a data
file for program defaults has been added, allowing changes to be made
to the program without recompiling, along with a bunch of funky
additions to the X graphics features.

----

Important: A few changes have been made to the program, i.e. not just
new features but some things that were true for version 2.10 are no
longer valid. A list of these changes follows:

1) First of all, every object (planets, minor house cusps, uranians,
   and stars) has its own "number", displayable in the -O list. No more
   ugly hacks of overwriting some planets with the uranian positions in
   the -u option. There is virtually no difference between a planet and a
   house cusp. The default is still the first 20 objects to keep the
   charts looking the same as before, although one can have a chart with
   all 78 objects (one for each tarot card ;) if they like. For example,
   the -u uranian switch will now display the uranian locations after
   everything else in the standard chart display. You get what you ask
   for, and what you don't want must be explicitly -R restricted.

2) As a result of the above, the minor house cusps (11th, 12th, 2nd,
   3rd) are no longer included in the -T transit list by default. If you
   want them, you must explicitly specify you want them (with the -C cusp
   option described later). Also, the relationship chart aspect grid now
   includes the vertex (before it only included the first 19 objects) and
   as a result the display will unfortunately exceed 80 columns, unless
   you explicitly restrict one of them with the -R option.

3) The program now makes a distinction between synastry charts, and
   the actual comparison between two charts. Before the -r option would
   combine the two charts in synastry, unless it was the -g option, in
   which case the contents of both charts would be compared in an aspect
   grid. Now -r is only for synastry, and combinations such as "-r chart1
   chart2 -g" or "-r chart1 chart2 -g -X" will display the aspects within
   the synastry chart itself. To actually have two charts side by side,
   use the -r0 option described later, instead of -r.

4) To display the ley lines in the -XW world map window, or to see the
   southern hemisphere in the -XP polar chart, one had to enter animation
   mode before, a hack which of course had nothing to do with animation.
   This "bonus information" is now in a separate feature, accessed with
   the -Xi switch described later.

5) In an X window, pressing the 'S' key would resize the window to be
   a square, and the 'C' key would revert the mode back to the standard
   wheel chart. These two keys presently do other operations described
   later, and the above functions are now accessed by the 'Q' and 'V'
   keys respectively.

6) The chart information at the bottom of the window is now included
   by default, while before it wasn't. To remove it, press the 'T' key in
   the window or use the -XT switch described later.

7) The -w and -w0 switches both display the same text wheel chart, but
   in slightly different ways. They have been reversed in function, since
   the -w0 chart looked better.

8) The "default" chart, i.e. the initial values in the chart
   parameters that are used if one forces a chart to be used when one is
   not expected, e.g. combining the -XW and -o switches, has been
   changed. Before, I had put in the data for the 11:11pm GMT New Moon on
   1-4-1992, but now I have changed it to the chart for this version of
   Astrolog itself: 5-31-1992 9pm PDT Seattle, WA.

9) Finally, concerning the source code itself, there are two new
   files: options.c has been split into the new file charts.c, and
   graphics.c has been split into the new file xcharts.c.

----

Now, a comprehensive list of the features and extensions added to this
version of Astrolog follows:

A) -S switch: A new chart type is available - solar system space
   charts, which give the astronomical positions of each planet in terms
   of x, y, and z coordinates. Although not directly useful
   astrologically, it does give one a good view of how the planets
   actually were positioned at the time in question. For example, normal
   astrology doesn't make the distinction between the four different
   "forms" of say, a Mercury Venus Conjunction, i.e. they can either be
   Conjunct on the near side of the Sun, Conjunct on the far side of the
   Sun, or one can be on one side and the other on the other side. When
   the chart is actually displayed, for each body the following
   information is printed: The relative angle of the planet with respect
   to the central body, i.e. its zodiac position converted to the
   appropriate number from 0..360. This is followed by the x, y, and z
   coordinate positions of the object, in astronomical units from the
   central body. The x-axis increases in the direction of 0 degrees Aries
   (tropical zodiac), the y-axis increases in the direction of 0 degrees
   Cancer, and the z-axis is with respect to the Earth's orbit (meaning
   that the Sun and Earth always have a z-axis value of 0.0). Finally the
   overall length from the central body in AU is printed, which is just
   the diagonal as indicated by the x, y, z vectors. (The Earth and Sun
   are of course always about 1.0 AU from each other.) The Moon circles
   the Earth and isn't a part of the solar system proper; therefore, it
   is never in these charts. The -e everything option will include this
   chart in it's listing of all the chart displays.

   The -S switch can be combined with -X to give an X window chart of the
   solar system. This will be displayed as an aerial view of the entire
   solar system, with 0 degrees Aries to the left of the screen, and 0
   degrees Cancer to the bottom. Note that this chart includes all
   possible planets, including the Earth (whose glyph is a cross inside a
   circle). Whatever object is chosen to be the central body is at the
   center of the screen, with all the others around it. This is a fun
   chart to animate - watch the planets go around the Sun, and *see* how
   they turn retrograde with respect to the Earth. In addition to the
   bodies themselves, twelve spokes are drawn from the center body to the
   edge of the screen, which delineate the zodiac with respect to it.
   Note that the scale of the solar system is large; attempting to fit
   all the planets out to Pluto on the screen at once will cause all the
   inner planets to be crammed together near the middle of the screen. To
   deal with this, the scale size as indicated with the -Xs switch and
   the '<' and '>' keys will affect how much of the solar system is
   viewed at once (in addition to the glyph sizes). For a scale size of
   300, the viewport will have a radius of 6 AU (about out to the orbit
   of Jupiter; useful for viewing the inner planets). For a scale size of
   200 (default), it will have a radius of 30 AU (enough to include
   Neptune, and Pluto most of the time). Finally, a scale size of 100
   will result in a radius of 90 AU, enough to easily include the entire
   solar system, as well as the orbits of the alleged Uranian bodies
   beyond Pluto.

B) -I switch: Another new chart type is available - interpretation of
   influences. This is the beginning of a general interpretation ability
   for the program, although all it does now is calculate the relative
   "power" of each planet's placement, giving a general idea of the
   prominent areas of a chart. When such a chart is printed, each planet
   is given a point value, larger numbers indicating more strength. Each
   planet's strength is divided between two fields: the positioning in
   and of itself, and the power of the aspects it makes with the other
   planets. In addition to each field, the total of these two areas is
   printed, as well as the relative percentage of the planet in question
   with respect to all the planets combined. Each planet gets a ranking
   for its positioning, aspects, and total power as well, with the
   strongest getting #1, the next strongest #2, etc. The -e option will
   include this chart as well in it's listing of all the chart displays.

   To determine the strength of the positioning of a planet, various
   things are taken into account: 1) The power of a planet in and of
   itself, e.g. the Sun and Moon are more powerful then the other
   planets. 2) The house placement of a planet, e.g. a planet in the 1st
   house is more powerful than one in the 2nd. 3) Whether a planet is in
   the sign it rules or is exalted in, e.g. Jupiter in Sag results in
   more power to Jupiter. 4) Whether a planet is in the house
   corresponding to the sign it rules or is exalted in, e.g. Jupiter in
   the 9th house. 5) Planets get more power if the signs they rule are
   occupied, e.g. a bunch of stuff in Aquarius gives more power to
   Uranus. 6) Planets get more power if the houses they rule are
   occupied, e.g. a bunch of stuff in the 11th house gives power to
   Uranus. 7) Finally, planets get power according to what houses the
   cusps of which fall in the signs they rule, i.e. the ruler of the
   Ascendant (and to less extent the Midheaven, and so on) gets lots of
   influence. Determining the strength of a planet's aspects is much
   easier, and is basically composed of the sum of the strength of each
   aspect the planet makes. Taken into account are: 1) The inherent
   influence of the planet being aspected to, e.g. Sun conjunct Jupiter
   gives more influence to Jupiter than Mercury conjunct Jupiter would.
   2) The influence of the aspect itself, e.g. Oppositions are more
   powerful then Sextiles. 3) Finally the orb of the aspect, i.e. exact
   aspects are more powerful than wide ones. (The influence of the orb
   varies linearly from max power at exact to zero power at the limit of
   the orb - sorry Maggie M. and Mark K. - no complex aspect wave
   functions, at least for this version :)

   Special thanks goes to Mark K. who initially presented this idea of
   interpreting overall influences to me. I basically just took his
   ideas, polished them a bit, and put it into the code. Interestingly,
   while programming this feature, I had a dream about him, in which he
   elaborated upon some of the ideas and even gave me suggestions for
   some of the planets' default power values (astral visitation?) And,
   while on the subject, I've had a couple of other Astrolog dreams; I
   had one neat one while working on the -h extension (described later)
   about a far distant future version of Astrolog that could actually
   teleport one to the places which they cast charts for :)

C) -v switch: This isn't really a new feature, but rather a formal
   specification for the standard chart listing of the planetary
   positions. Before, one would get this chart by default if they didn't
   specify any other chart types, and they would get it along with
   everything else in the -e option, but there was never any formal
   switch for it. In other words, before there was no way to, for
   example, display the standard chart, followed by an aspect grid, since
   there was no switch to choose the standard chart. Now, one can specify
   "-v -g" and get the above mentioned combination.

D) -v addition: The standard chart listing of the planetary positions
   has been expanded to include an extra field for the "velocity" of each
   planet. This velocity value approximates how fast the planet is moving
   through the zodiac with respect to the Earth (or whatever the central
   body is set to) in degrees per day. This value of course, goes
   negative when a planet goes retrograde. This is useful not only to get
   a feel for how fast each planet moves through the zodiac, but to
   determine when a planet is about to go retrograde or direct - the
   value approaches zero when the planet changes direction.

E) -v0 switch: This switch is just like -v except that it modifies the
   planet velocities slightly. Normally, it isn't a trivial task to
   determine precisely when a planet is going to change direction. This
   is because, for example, although a velocity of 0.010 degrees/day for
   fast moving Mercury means it's about to turn retrograde, the same
   velocity value is normal for slow moving Pluto. The -v0 switch divides
   the normal velocity values by how fast each planet moves with respect
   to the Sun, meaning that all planets will now have an average
   *relative* velocity value of 1.000, and in all cases, a velocity of
   2.000 means the planet is moving twice as fast as normal, and one of
   0.010 means the planet is about to turn retrograde.

F) -d addition: The -d aspect search routine has been expanded to
   calculate and display the times when a planet changes direction.
   Before, in such a listing, it would be shown whenever a planet changed
   direction during a day, but the exact time of the station wouldn't be
   printed for it.

G) -U switch: Astrolog 2.20 has the ability to display the positions
   of 46 of the brightest and most important stars in the sky. To include
   these stars in a chart, use the -U "universe" option. The 43 brightest
   stars, i.e. all those with apparent magnitude values < 2.0 are
   included, in addition to three dimmer stars which are considered
   significant, i.e.: Polaris the North star, the Pleiades star cluster
   (home of our extraterrestrial cousins), and Zeta Reticuli (home of the
   Grey aliens.) One bright star is called "Orion", which is formally
   Alnilam, the middle star of Orion's belt. Since stars are fixed in
   the sky, they will never change position in the -s siderial zodiac,
   although they will slowly precess forward in the normal tropical
   zodiac. The -R restriction option can be used to determine which stars
   are actually included, although the -U option needs to be included to
   get any stars at all. In X windows, the stars are denoted by three
   letter abbreviations (as are the uranians and minor house cusps), and
   are colored according to their brightness: yellow for stars brighter
   than (less than) magnitude 0.0, gold for dimmer ones from 0.0 to 1.0,
   orange for those from 1.0 to 2.0, and finally the dimmest special
   stars with a magnitude greater than 2.0 are red.

   In the -v standard chart, -Z horizon chart, and in the -O object list,
   where all the stars are printed sequentially, it can sometimes be
   confusing to locate the star you want among 42 others. The -U option
   can be modified to sort the stars in various ways. If one uses -Ub
   instead of just -U, the stars will be listed in order from brightest
   to dimmest. Doing -Un instead of -U will alphabetize the stars by
   name. -Ul will sort them by their altitude from highest in the sky to
   lowest, while -Uz will sort them by their zodiac position. Note that
   any star ordering will have no visible effect in X windows, and one
   must still use the default ordering when passing numbers to the -R
   option to restrict various stars.

H) -C switch: This new option must be indicated to include the four
   minor house cusps (i.e. 11th, 12th, 2nd, 3rd) in the various chart
   options, such as the -g aspect grids, -T transit searches, the X wheel
   chart, etc. This option of course won't have any effect on certain
   charts where only physical bodies are shown (e.g. -Z, -S, -L) or where
   all house cusps are already indicated in the chart (e.g. -v, -w).

I) -O0 switch: The old -O switch simply displays a list of all the
   objects, cusps, uranians, and stars, along with their index numbers.
   This list can be affected by the -R restrictions, and the -C, -u, and
   -U switches must be included in order for all of Astrolog's objects to
   get listed. In order to make it easier to simply display a list of all
   78 objects Astrolog recognizes, the new -O0 option is just like -O
   (and is equivalent to "-C -u -U -O") except that it will ignore all
   restrictions and always list every object. Stars are printed in the
   list along with their azimuth, altitude, and brightness values.
   (Remember that when -O is encountered, it immediately executes and
   terminates the program, so any modifying switches must be before it.)

J) -RC, -Ru, -RU switches: These three switches are similar to the -R0
   option in that they initially restrict objects, i.e. all the minor
   cusps, Uranians, and stars, respectively from appearing. For example,
   if you want to include only the star Sirius in an X window chart
   without having to also include all the other stars (or having to enter
   a very long restriction list), do: "astrolog -U -RU 48 -X", which will
   include the stars, and then restrict them all except Sirius, before
   making the chart.

K) -h <arg> expansion: The -h switch which allowed heliocentric charts
   to be computed has been expanded to allow charts to be cast with any
   planet as the center. The option takes a parameter to indicate which
   object to center the chart on, e.g. do -h 5 to cast a Mars centered
   chart. (Moon centered charts are not allowed.) As before, -h by itself
   means to do a heliocentric chart.

L) -rm <file1> <file2> switch: Time-space midpoint relationship charts
   are now supported. Doing "-rm chart1 chart2" will calculate the time
   and location exactly half way between the times and locations as
   indicated in the two files. Unlike all other types of relationship
   charts, this one actually exists in space and time, and therefore can
   be treated like a single chart and can be output with the -o option.

M) -r0 <file1> <file2> switch: A distinction has now been made between
   synastry relationship charts and the actual comparison between two
   separate charts. The -r0 option must be used to generate these
   comparison charts, e.g. the aspect grid between the planets of two
   charts (and the new X chart described later). The -r0 option will act
   like the -r synastry option in certain displays that can't compare two
   charts; for example, "-r chart1 chart2 -g" and "-r0 chart1 chart2 -g"
   are different, because one generates the aspect grid within a synastry
   chart, and the other an aspect grid between all the planets in the two
   charts, but "-r chart1 chart2 -v" and "-r0 chart1 chart2 -v" will do
   the same thing. (Note: the "-t file" current transit option is
   basically a shorthand way of doing "-r0 file now".)

N) -G switch: This switch generates a special type of locational
   analysis chart, called a geodetic chart, in which the house cusps are
   computed from a different source, i.e. as a function of only the
   longitude and latitude. This basically gives every spot on the planet
   a different unique set of house cusps, and can be used to analyze the
   characteristics of different areas, and their influence on you if you
   insert your own planets in the houses. This type of chart was
   described in the January 1992 issue of Dell Horoscope magazine, from
   which I learned how to generate these charts. Basically, the Midheaven
   is approximately the longitude value converted from degrees into the
   appropriate zodiac sign; for example 0 degrees E goes to 0 degrees
   Aries, 30 degrees E goes to 0 degrees Taurus, etc.

O) -L <arg> addition: For text screens, one can pass an optional
   parameter to the -L or -L0 astro-graph option to give the latitude
   step rate at which the Ascendant and Descendant lines are computed.
   This value is by default 5 degrees, although one can may increase or
   decrease it to any integer (subject to the restriction that the number
   160 is divisible by it.)

P) -g0 addition: A new planetary configuration has been added to this
   option. In addition to flagging the Grand Trines, T-Squares, and so
   on, any chart Stellium's are located. In a Stellium, three objects
   must all be conjunct with each other.

Q) -ga switch: Ability to determine whether an aspect is applying or
   separating (is about to happen or just happened) has been added to the
   -g option. Normally the aspect orbs are flagged as being + or - based
   on whether they are greater or less than the proper amount (e.g. a 91
   degree Square has a +1 degree orb while a 89 degree one a -1 orb.) If
   one, however, invokes the -g option as -ga instead, a negative orb
   will indicate an applying aspect while a positive orb a separating
   one. (To estimate applying vs. separating, the program examines the
   planetary positions and their velocities at the time in question.)

R) -g0 expansion: For relationship aspect grids, the -g0 option will
   display a midpoint grid instead of an aspect grid between the planets
   in the two charts e.g. "-r0 chart1 chart2 -g0". Before, the -g0 switch
   with comparison charts wouldn't behave any different from just -g.

S) -s0 switch: For astronomers out there, the new -s0 option will
   print all planetary positions in the right ascension hours/minutes
   format instead of the sign/degrees/minutes astrologers are accustomed
   to. This will affect how the objects are listed in the -v display, and
   how the star azimuths are displayed in the -O list. For example, 0
   degrees Aries is represented as 0 hr, 0 min; 0 Cancer goes to 6 hr, 0
   min, and so on through the 24 hour clock.

T) -p0 <arg> switch: User definable progression rates can be specified
   with this new option. When using the -p progression option, Astrolog
   assumes you want the standard "year for a day" rate of secondary
   progressions. By passing different values to the -p0 switch, one can
   change the default "365.25 days for a day" to any value they want for
   some less often used method of progression. For example, one can do
   "-p0 7 -pn" to do a week for a day, "-p0 -365.25 -pn" to get negative
   year for day progressions, and so on. (Note that "-p0 1" would be the
   same as if no progression were done at all.)

U) -z expansion: Normally the -z option takes an argument which will
   then become the default time zone. If one, however, invokes it by
   itself, it will subtract one hour from whatever the default time zone
   presently is. This is useful since it is equivalent to adjusting any
   times printed to Daylight time, i.e. it will add one hour to any times
   displayed. (When entering the birth time for charts, one is supposed
   to subtract one hour if Daylight time was in effect; note that
   subtracting one hour from the time zone will do the same thing.) For
   example, over here on the West Coast, I have my default time zone
   compiled to be "8"; now that Daylight time is in effect here, I can do
   -z 7 or just -z to decrease the default time zone when I make a -T
   transit list, which will in effect add one hour to the local times
   displayed, or in effect "Spring ahead" the clock for me. (For a better
   way of adjusting Astrolog for Daylight time without having to specify
   -z all the time, recompile the program, or add one hour to the times
   in your head, use the "defaults" file described later to change the
   time zone.) Remember that the -z (and -l) switches must be before any
   other switches they modify (such as -n) in order for the new default
   to take effect.

V) -- <arg> switch: This new "dash minus" option is just like the old
   "dash plus" (-+) option that's already in place, except it subtracts
   instead of adds the specified number of days from any chart cast. This
   is only for convenience, in that "-- 1" is the same as "-+ -1".

W) -w expansion: Chart header information has been added to the -w
   text wheel chart option. Before, the space in the middle of the chart
   was left blank, but now displayed in it is the same header info as is
   at the top of the standard -v chart.

X) There are now wider orbs allowed for the Sun and Moon in the aspect
   grids. Normally, only the aspect in question determines the allowed
   orb, but the Sun and Moon will now each add 1 degree to whatever the
   orb would have been. (This excludes minor objects such as the North
   Node, Part of Fortune, Vertex, and all the stars, for which the orbs
   are not allowed to ever exceed two degrees.)

Y) When specifying command switches, the leading dashes are optional,
   and aren't necessary any more. For example, the command "astrolog -i
   chartfile -R -u -U -Z -Xs 300 -Xi -XB" can be abbreviated as "astrolog
   i chartfile R u U Z Xs 300 Xi XB". (This is subject to a couple of
   minor limitations, in that one can't have the -1 or -3 option follow a
   -R restriction list of numbers, for obvious reasons.)

----

Astrolog 2.20 includes the ability to search an input file for various
default parameters to use in the program. This allows one to easily
change major defaults without having to recompile the program, which
is useful if, say, one receives a compiled executable from a friend
who had a different configuration. The program looks for the file
"astrolog.dat" in the current directory, and if not there, looks for
it in the default directory. Parameters in this file will override any
defaults compiled into the program, although the highest priority is
still given to the command line options. Note one doesn't *have* to
have this file in order to run the program - if not found Astrolog
will still run as before. Presently, the parameters one can change in
this file are: default time zone (as indicated with -z option),
default longitude and latitude (as in -l option), number of aspects
(-A option), default house system to use (values as in -c option).
Then come default restriction values (as with -R option) for the first
20 objects (0 = active, 1 = restricted). Next are the orbs (as with
-Ao option) for the 18 aspects. Finally, comes a long list of the
influence values used by the -I option, i.e. the power values of each
of the first 20 planet objects, of the 12 houses, and of the 18
aspects. The only major thing that one *can't* change in the file is
the default directory path in which the program looks in for input
files if not in the current directory, since Astrolog needs the
default directory in order to be able to locate the file in the first
place! The "astrolog.dat" file included with this version of the
program has some "comment lines" describing what is contained in each
line. One can chance or delete comments as long as they make sure that
an equals sign ('=') immediately proceeds any value or list of values,
since the program uses this character to determine where comments end.

----

Additional new features and extensions follow below; however, these
only affect the graphics portions of the program, and therefore only
come into play if the X11 compile time option is set.

A) True relationship wheel charts can now be displayed in a window,
   i.e. where the planets of both charts are displayed in separate rings
   of the same wheel. Use the -r0 option to display this comparison type.
   For example, for the command "astrolog -r0 person1 person2 -X", the
   following is displayed: The signs and houses as in person1's chart are
   drawn in the outermost part of the wheel. Inside this is a ring of
   person2's planets as displayed in person1's houses, and inside of this
   are person1's own planets. Finally at the very middle is an aspect
   grid, which shows those aspects that are occurring between the objects
   in the two charts. Basically this is just the standard wheel chart for
   person1, except that person2's planets are in an outer ring of objects
   and the aspect grid shows the aspects of the relationship. Putting
   such a chart in animation mode only affects person2's planets, so this
   is a great way to analyze transits: Doing "astrolog -t yourchartfile
   -X" will show all your current transits, and allow you to easily
   animate the transiting planets through your natal signs and houses.

B) More color: For color X terminals, the -XG globe display and -XW
   world map display are now done with the continents in different
   colors! This makes them look much better than before. Each of the
   seven continents is in a different color of the rainbow, and the
   colors are chosen to correspond to the appropriate chakra (etheric
   energy vortex along the human spine) that goes with each land mass.
   They are: Africa - red - Root chakra, Australia - orange - Navel
   chakra, South America - yellow - Solar plexus chakra, North America -
   green - Heart chakra, Europe - blue - Throat chakra, Asia - indigo -
   Third Eye chakra, Antarctica - violet - Crown chakra. Major lakes are,
   of course, colored navy blue.

C) Mouse buttons: Pressing the mouse buttons in the X windows will now
   do various functions. The left mouse button acts as a pen that allows
   one to actually draw on the chart: press it and drag the pointer to
   draw a line on the window - good for aiding in analysis or in
   presentations. (Any scribbles one makes will disappear the next time
   the chart window is updated, therefore drawing will have little effect
   when in animation mode.) The middle mouse button will only work when
   the world map is shown, i.e. in the -L astrograph or -XW world map
   displays: press it and get the approximate longitude and latitude of
   the place on the map where the pointer is. For the three scale sizes
   of 100, 200, and 300 percent, the accuracy is to the nearest degree,
   30', and 20', respectively. So, if you want to cast a chart for
   southern Madagascar, Africa, but don't know the coordinates, click the
   middle button on the map for a good approximation! Finally, the right
   button acts just like the 'q' key, and will terminate the window.

D) '[', ']' keys: Not only can the globe display be rotated, but the
   poles can be now tilted down at various angles! (This basically makes
   the -XP polar globe view option obsolete; it's still in there only for
   backwards compatibility.) Press the '[' and ']' keys when the globe is
   being displayed to respectively "pull down" and "push back up" the
   angle of the polar axis from which the globe is viewed.  Combining
   this with the globe rotation allows one to move any point of the globe
   to the center of the screen.

E) 'l' key: Press the 'l' key in a window to inhibit the labeling of
   all planets in the various charts. Instead of drawing the little point
   and then the glyph near it, just the point is displayed. This mode is
   mainly useful for the -Z horizon and -S space charts (and has little
   use for anything else) when in cramped quarters or to get a more
   realistic view of how the sky actually looks.

F) -XT switch: In addition to the 'T' key which will toggle off or on
   whether the chart parameters are displayed at the bottom of the
   window, the new -XT option will do the same thing, giving control of
   the feature when a formal window isn't actually opened, e.g. when
   displaying to the root.

G) 'O', 'o' keys: Have you ever animated your natal or some other
   chart to some far distant future or past time, only then to wish you
   could somehow easily get back to the original chart? You can now, by
   pressing the 'O' key in a window, which will recall to the screen
   previously "saved" chart parameters (which are by default set to
   whatever you started the window with.) Press the 'o' key to change
   this default stored chart to be the chart that is presently in the
   window.

H) 'B' key: Press the 'B' key in an X window to dump whatever is
   currently being displayed to the background root window. This is
   basically the corresponding keypress to the old -XB option.

I) 'C', 'u', 'U' keys: Pressing the 'C', 'u', and 'U' keys in the
   window will toggle the restriction status of the four minor house
   cusps, the uranian planets, and the fixed stars, respectively. These
   keys compliment the old 'R' key option already in place, and are the
   counterparts to the -C, -u, -U, and -RC, -Ru, -RU options.

J) 's', 'h' keys: Press the 's' key in the window to toggle whether or
   not the siderial vs. tropical zodiac is used. Press the 'h' key to
   toggle to a heliocentric based chart or back again to a geocentric
   one. These of course correspond the the -s and -h options.

K) 'v' key: Press this key to dump back to the text screen the list of
   where all the planets currently being displayed in the window are.
   This display is the same as produced with the -v switch, and is useful
   if one wants text to indicate where everything in the chart is.

L) -Xi switch, 'i' key: Certain people have asked that some of the X
   charts be modified in various minor ways, i.e. in either adding or
   removing certain information. Rather than add a new hard to remember
   minor option for each change, I have added one major new switch which
   covers all the charts. The new -Xi switch will invoke this
   "induce/inhibit information" option, and pressing the 'i' key in a
   window will accomplish the same thing by toggling the mode's status.
   By default, all the charts are as before, but when this bonus option
   is set, it affects each X window chart in a different way, as follows:

 o For the standard -v and relationship -r0 -v wheel charts, it will
   inhibit the display of the aspect grid in the center - useful for
   speed or when doing large time lapse animations when it would get in
   the way.

 o For the -g aspect grid, it will flip the aspects and midpoints across
   the center diagonal, i.e. the midpoints will be below it and the
   aspects above it, instead of the other way around. For the -r0 -g
   relationship aspect grid, the entire grid will be replaced with one
   showing all midpoints between all the objects in the two charts.

 o For the -Z horizon chart and -S space chart, it will, for the major
   planets, increase the size of the "points" showing where each object
   actually is, making a brighter "spot", for easier viewing; combine
   this in the horizon chart with the 'l' key label inhibitor and get a
   very realistic view of the night sky, with planets brighter and all.

 o For the -L astro-graph chart, this will eliminate the display of the
   Ascendant, Descendant, and Nadir lines, leaving just the vertical
   Midheaven lines and zenith points, for a remarkable increase in speed
   and much less clutter when including many objects.

 o For the -XW world map display, this will show the Earth's ley line
   locations; and for the -XP polar globe view, it will show the southern
   hemisphere instead of the northern.

 o For the -XG globe display, it will display the zenith locations of all
   planets (and stars if -U in effect) on the globe, i.e. where on the
   Earth each object could be viewed by looking straight up. This on the
   globe display is almost identical to the astro-graph chart without its
   various lines, except of course that the projection of the world map
   is different. It's also similar to the -Z horizon display, except that
   it's free from the distortion of projecting the celestial sphere upon
   a plane, so it has use to star gazers. However, animation mode here
   will still only affect what part of the Earth is viewable, and won't
   update the chart from which the zenith locations were obtained.

----

Here is a list of bug fixes over version 2.10:

1) There was a major glitch in the uranian overwrite routine which
   would not only display the uranian positions a degree or two off from
   where they should be, but would also garble the positions of all the
   other objects, too! Since the uranians are now displayed separately,
   this is no longer a problem.

2) The display of midpoints was always 0.5 degree ahead of where they
   should be. For example, the midpoint of planets at 0Gem and 0Can would
   have been 15Gem30 instead of 15Gem0. Believe it or not, this bug has
   been in Astrolog since version 1.1, and I'm glad to say that it's
   *not* in version 2.2!

3) If one switched X window modes from a wheel chart to the
   relationship aspect grid, extra junk would be displayed in some cells.
   The aspect grid routine has been fixed now to make sure that those
   cells that don't have aspects in them stay blank.

4) Attempting to display a chart with no time or space (i.e. a chart
   generated with the -o0 option) in an X window would dump core if the
   chart information was also to be printed at the bottom of the window.
   Now, these charts are no longer a problem, and as with the standard
   listing, these charts are flagged as existing outside the space time
   continuum.

5) The -Z local horizon chart when displayed in an X window would fail
   to recognize the -R restrictions before, and they properly do now.

6) Certain VMS X window systems didn't like the procedure I named
   "box" in the graphics portion (was already defined). This has been
   renamed to eliminate the problem.

7) When downloading the Astrolog source code, certain systems didn't
   correctly transfer lines that began with a decimal point (e.g. the
   numbers in the planetary data area). These have been prefixed with 0's
   to fix the problem.

8) Even when compiling for non X window systems, the previous version
   would still compile in the graphics draw tables and world map data.
   Although this wouldn't affect the running any, it would needlessly
   make the executable larger. Now, trust that the only data compiled
   into the program will be what the user wants as expressed in the
   compile time options.

9) The X window response time was very slow if the world map was ever
   displayed in the lowest scale size, due to continuous error processing
   since the vertical axis of these maps were smaller than the
   established minimum window size. The minimum window size allowed has
   been adjusted to accomodate all scale sizes. Also, on a related note,
   Astrolog windows behave better when one resizes them: instead of
   immediately resizing the window to within bounds if one makes the
   window too big or small, it now won't allow windows to be stretched
   beyond the established limits.

0) Finally a warning for PC users: You will probably want to change
   the value of DIVISIONS in astrolog.h from its current value of 24 to a
   lower value like 6 or so. Leaving it as is invoked complaints of
   extreme slowness and occasional multiple hits in the -d aspect search
   routine, where the same aspect would get listed more than once. Also
   for PC users, I eliminated the problem of the 16 bit PC ints not
   having enough precision to compare with the 32 bit Unix ints, in that
   everything is done using longs now.

************************************************
Astrolog 2.25 posted Thu, 18 Jun 92 18:54:43 GMT
************************************************

After posting version 2.20 to alt.astrology, I found one small bug and
a few omissions, so I simply made those changes before posting
Astrolog 2.25 to comp.sources.misc. To be honest, I did add one small
feature or two, but nothing major.

Anyway, here is a list of the changes I made in version 2.25:

1) Bug fix: Version 2.20 has a bug which I accidentally introduced, in
which the planet declination values in the standard -v chart listing
would always be positive. Version 2.25 fixes this. (This is basically
the only change that will affect non X windows users.)

2) Omission: When pressing the 'H' key in an X window to get a list of
valid keypresses, version 2.20 wouldn't display all the keys
available, since I forgot to include some of them in that help list.
The key press features that I forgot to include, which are now
properly listed in 2.25, were: The 'h' heliocentric toggle, the 's'
siderial zodiac toggle, the 'B' dump window to root background key,
and the 'v' dump chart positions to text screen key.

3) Omission: Related to the above, I forgot to include the new -ga
applying vs. separating aspect grid switch in the -H help list. (It
would still work correctly, it just wasn't listed.)

4) New features: In X windows, press the 'f' key to toggle the status
of whether or not the chart should be modified to correspond to the
appropriate domal chart (where the house positions are represented as
zodiac positions and vice versa). Press the 'F' key to toggle the
status of whether or not the chart should be modified to correspond to
a decan chart (where each sign is divided in thirds representing the
two other signs in its element). These keys of course correspond the
-f, and -3 options, respectively.

5) Enhancement: The -XP polar globe view feature can now be animated.
Before, entering animation mode with such a view in place would yield
no visible effect. Now, such a chart will rotate about pole in the
center of the screen.

6) I probably should have made this more clear in the version 2.20
"Update" file before, but when compiling, be sure to change the values
in the "astrolog.dat" file, in addition to the "astrolog.h" file, to
correspond to your present location. The documentation now makes this
more clear, and includes one large "Helpfile" listing all of the
features and documentation in this version of Astrolog. (Remember when
posting version 2.20 here, I just included a list of changes added to
version 2.10; the new Helpfile is a large stand alone documentation.)

7) Finally, I should mention that my e-mail address has changed. It is
no longer pullen@lynx.cs.washington.edu, and this change has been made
to the code and documentation of version 2.25.

************************************************
Astrolog 2.30 posted Fri, 12 Sep 92 01:20:42 GMT
************************************************

Precisely one year ago today I posted the very first version of our
Astrolog astrology program to this newsgroup! Today, being the first
anniversary of that version 1.00, is an appropriate time to release
the newest version of Astrolog: 2.30. Today is also a nice day
astrologically for such an activity: We have an energetic Moon Uranus
Sextile, a Mercury Neptune Trine enhancing mystical thinking, Mars is
in the last degree of mental Gemini, and of course, we have the
technical yet spiritual Virgo/Pisces Full Moon!

This file describes the new features, changes, and bug fixes in
version 2.30 of Astrolog (over the most recent previous version, 2.25,
posted ~3 months ago). Although this new version is a stand alone
program, this Update file requires knowledge of the features of
version 2.20 or 2.25 in order to make sense. If you aren't familiar
with version 2.20 or 2.25, get and read the version 2.25 Helpfile that
was posted earlier, or get it from any comp.sources.misc archive. (I
ask the maintainer of the hilbert.maths.utas.edu.au alt.astrology ftp
site to please add the code for this version to the /pub/astrology
directory along with previous versions. I'm not presently planning on
posting this version to comp.sources.misc right away, since I just
posted version 2.25, but a future version 2.40 will certainly be.)

Some of the things added to version 2.30 are general interpretations
of planet positions and aspects, more support for aspects and making
the charts look better, and several new functions not directly related
to astrology but still very useful, and of course a few important bug
fixes. Although most of the changes were for the text displays,
nevertheless X window users should like the new local space star chart
display. Ability to have some graphics even on a non-X window system
is supported, and I finally got around to commenting all the code!

This post of Astrolog consists of 12 articles. They are: this Update
file, the 8 source files, the standard astrolog.dat defaults file, the
Unix Makefile, and a version History file, all the rest of which
should be near this one in the article list. (I'm working on updating
the comprehensive feature list to reflect version 2.30, and hopefully
even a user friendly Astrolog FAQ file, but for now we'll have to do
with the version 2.25 one and this Update list.) To make extracting
the files easy for all users, I've posted the files straight in ascii
form to the net with no .sig files or "cut-here" prompts; in rn, one
can extract the article with the "w" command and not have to use an
editor on the file afterward.

--

As with previous versions, a few changes have been made to this
version, i.e. not just new features, but some things valid before are
no longer so. A list of these follows:

1) The -AO switch allowing one to specify maximum orbs for aspects,
but which as a side effect suspended maximum orbs that particular
planets imposed, was a limited and unintuitive way to deal with
aspects. This switch has been completely eliminated. Now, one uses
just the -Ao switch to give orbs for aspects. To deal with orbs that
planets themselves impose, use the new -Am switch described later. In
addition, one no longer uses -Ao by passing in a list of orbs for the
aspects. Now, the -Ao switch works clearer: it takes two parameters,
the index of the aspect, and then what that aspect's orb should be.

2) Astrolog.dat files for versions 2.25 and before won't work with
version 2.30, because now there are additional definable parameters
inserted in this file. For the -I influence interpretation chart, the
power given to planets in ruling sign, planets exalted in sign,
planets in ruling house, and planets exalted in house, may now be
specified. In addition, there are some additional lists in the file
dealing with aspects that will be described later.

3) This is minor, but the calculation of the powers of aspects in the
-I influence chart has been changed. Now, the power of an aspect is
more accurately based on the total power of the planet in its
placement, as opposed to just based on the inherent planet itself. In
other words, for example, a Conjunction between, say Venus and the
Sun, now gives more power to Venus if the Sun is in its ruling sign
Leo than if it is in Aquarius. This will of course tend to make all
the aspect power quantities in the -I list a bit higher.

4) As with other versions, the true default chart in the program, i.e.
the chart the program displays if one forces it to output chart
information even when a chart isn't being dealt with, e.g. displaying
a non-chart related X window -XG globe display, and then reverting to
a wheel chart, has been changed. Now it is set to the chart for the
posting of this program itself, i.e. the time of the Full Moon here in
Seattle: Sep 11, 1992 7:18pm (-7:00 GMT) 122W20 47W36.

5) Finally, unrelated to the program itself, I was just thinking about
how we deal with Daylight Saving Time. Now, I've always said that one
should subtract one hour from the time in question if Daylight time
was in effect. This will generate the chart properly. However, I was
thinking that what really happens when Daylight Time arrives is that
the whole time zone shifts forward one hour, in that the local time is
still correct, it's just that the relation to GMT has changed an hour.
In other words, when casting charts for Daylight Time, one should
subtract one hour from the time zone entered, and not the local time
itself. Now, the chart will be displayed properly either way, but it
seems that the one with the shifted time zone is clearer. I wanted to
bring up the subject so each can choose what they prefer.

--

Now, a comprehensive list of the features and extensions added to this
version of Astrolog follows:

A) A brief interpretation of the meaning of the positioning of each
planet in its sign and house is supported with the -vI switch. If one
includes the -vI switch, then instead of the standard -v listing of
planet positions, the planet positions will be listed with a brief
interpretation of what they mean. Again, I have to say that this is a
pretty limited version of interpretation, being nothing more than a
combining of phrases representing the planet, sign, and house in
question; nevertheless, people who don't know how to interpret charts
might find this to be of use (or at least amusing. :)

B) Similar to the above, ability to give a brief interpretation of
each aspect in the aspect grid is supported with the -gI switch. When
the -gI switch is included, the standard -g aspect grid will be
replaced with a list of each aspect occurring and a brief listing of
what it means. Again, this is mainly just a lookup of the general
meanings of each planet and the aspect in question, but still might be
found of interest by some. (Note: only the first 11 aspects, out to
the Bi-Quintile, can be considered.)

C) Related to the above, the -I0 switch, invoked by itself, will
display the general meanings of each sign, each house, each planet,
and each aspect, on the screen. This is more or less the database the
program uses to base the above interpretations on.

D) The -g text aspect grid now displays orbs to the nearest minute
instead of only to the tenth of degree as before. Also, midpoints are
displayed to the nearest minute instead of just to the degree. And,
on the main diagonal (or edges if a relationship aspect grid) is
displayed the sign of the planet in question in addition to the planet
name itself. This extra accuracy comes from my making each cell in the
grid 3x3 characters instead of just 3x2 as before, which gives more
room to print information. This change should make the aspect part of
the program much more useful and easy to read for text users. There's
been one more nice change: the unintuitive '.' for positive orbs and
',' for negative orbs has been replaced with a logical '+' for
positive and '-' for negative; for the -ga aspect grids we have a 'a'
for applying aspects and 's' for separating. (Satisfied yet Maggie? ;)

E) Ability to explicitly specify maximum orbs that any aspect can make
to a particular planet is supported with the -Am switch. This is used
for objects like the North Node which require narrower orbs than what
the aspects themselves normally allow. The -Am switch takes two
parameters: the first to indicate the index of the object, and the
second to indicate what the maximum orb allowed to it will be. By
default, the only objects with restriction are the Node, Part of
Fortune, Vertex, and stars, which allow a 2 degree max orb to them.
With this option, one can change these limits or impose restrictions
for other planets too. (Before, these particular values were forced.)
The astrolog.dat file has been expanded to read in the default planet
orbs for the first 20 objects.

F) Ability to widen an aspect orb for any planet is supported with the
-Ad switch. This is used for objects like the Sun and Moon which allow
wider orbs to them then what the aspects themselves allow. Like the
-Am switch, this -Ad switch takes two parameters: the first to
indicate the object, and the second to indicate how much wider orbs
allowed to it will be. By default, the only objects which have orbs
widened for them are the Sun and Moon, each of which adds one degree
to the orb of any aspect to it, and these particular values were
forced. With this option, one can change these additions or allow
other objects to have them, too. The astrolog.dat file has been
expanded to read in these orb additions for the first 20 planets.

G) Biorythm charts are now supported by Astrolog with the -rb switch!
Although not directly related to Astrology, the concepts are similar,
and adding this didn't require much extra code, and since some are
interested in this, I felt I'd add it in. The biorythm theory says
that we have have three main types of energy: Physical, Emotional, and
Intellectual. These three run in continuous wave cycles from high to
low, each of which repeats about every 30 days or so. Therefore, a
biorythm chart for a particular day should describe how much energy
one has or how they are feeling in this area. Now, Astrolog considers
biorythm charts as a type of relationship chart, because in order to
generate one, two dates or charts are needed: the birth date of the
person, and the date to cast their chart for. Technically the program
will replace the standard -v listing of planet positions with the
biorythm chart when -rb is in effect. As an example, "-rb file1 file2"
will cast the chart for the birthday signified by chart1 or chart2
(whichever is older) for the date in the other file. Remember that one
can substitude the pseudo filename 'tty' to mean get the chart info
from the terminal instead.

The actual biorythm chart itself will display, for the day in
question, what the percentages of the physical, emotional, and
intellectual cycles are, as numbers from -100% (low ebb) to +100%
(happy and full of energy). In addition, the biorythm percentages for
the seven days before (T-7 days) and the seven days after (T+7 days)
the date in question will be listed, too, so one can see if the cycles
are rising or falling. Finally, as a cute way to help in
interpretation, the program prints the appropriate smiley, medium, or
sad face after each percentage. (BTW, it takes over 58 years for all
three cycles together to synchronize and repeat themselves.)

H) Another useful non-astrological function added is the ability to
determine how many days have passed between two dates, with the -rd
switch. As with the -rb option, this is considered a relationship
"chart" because it requires the input of two different dates, and when
-rd is in effect, again the standard -v planet position listing will
be replaced by a line telling how many days are in the interval. For
example, "-rd person1 person2", will display how many days person1 is
older than person2 (or the other day around). Want to find out how
many days old you will be on Jan. 1, 2000? Do "-rd yourchart tty", and
type in the first date of the next millenium, and see what you get!

I) The -t option has been enhanced based on the above two new
features. Remember, the -t option is a shorthand for specifying a
relationship comparision chart where one of the charts is that for the
current moment now (assuming you have TIME compiled in.) The -tb
<file> switch will display the person indicated in file's biorythm for
today. The -td <file> switch will display how many days old the person
in the file is today.

J) Just as the -1 option is use to cast a chart with an object on the
Ascendant, the new -2 <object> switch will cast a chart with the
specified object on the Midheaven. The house cusps will be rotated so
that the object in question is conjunct the 10th house cusp. If
<object> is not specified, the Sun will be assumed by default.

K) The new -F option is used to force a particular object's position
to always be a particular location in the zodiac. This feature can be
used as an easy way to manually include things Astrolog normally
doesn't in various charts. For example, this can be used to force the
position of some minor thing, like the Vertex, to always be the
location of whatever you prefer, like the 0 degrees Aries point, or an
important midpoint. Then you can do an aspect grid, transit search, or
whatever, and calculate aspects to midpoints or transits over
midpoints. The -F switch takes three arguments: first is the index of
the object to replace, next is the sign from 1..12 to force it to be,
and third is the degree within the sign. For example, if I want to see
if anything is making an exact aspect today with my Sun Moon midpoint
at 6Sag28, I could do "astrolog -n -d -F 16 9 6.28", which would
replace the North Node with my Sun Moon midpoint in the aspect search.

L) The -+ add number of days to chart before casting it option has
been changed to make the chart header show the date of the actual new
chart, instead of the original one. For example, today (9-11), if I do
"astrolog -n -+ 2" I will get the chart for two days from now, and the
chart header will display 9-13. (Before, the proper chart for 9-13
would get displayed, but the chart header would still say the date of
the original 9-11 chart.) This change is more intuitive, and even has
some special uses. For example, if you want to know what the date
was/will be when you are 10000 days old, do "astrolog -i yourchart -+
10000" and see what the date in the resulting chart header is.

M) The -w text chart wheel display has a small addition to the chart
header information displayed in the middle of the wheel: the day of
the week that the date falls on. This may seem minor, but this is a
way to calculate the day of the week for any date. If you forgot what
day of the week you were born on, display your chart with the -w
switch, and ignore the chart and just check the day of the week in the
header information. Similarly, one could use this to make a calendar
for any particular month by casting a -w chart for the 1st of the
month in question, and building the calendar from that starting point.

N) The -H0 switch will display a list of the 12 signs of the zodiac,
and the 12 houses, listing their standard and traditional names. This
is similar to switches like -O or -A, in that it displays lists of
things (objects, aspects, or in this case the signs) that Astrolog
uses in its charts.

O) One more summation field has been added in the -v planet position
list chart to the right of the element table. (Presently we have the
number of objects in positive and negative polarity signs, in the
upper and lower halves in the chart, and in the Eastern and Western
halves of the chart.) The new field is a division of objects into the
first six and second six signs of the zodiac. The number of objects in
the first six signs of the zodiac will be printed, labeled by the
character '<'. (The number in the second half isn't printed; just
subtract from the total if you want to know.) According to a book on
the Kaballah, the emphasis of the first six signs on the zodiac is on
"what's to learn", and the emphasis on the second six signs is on
"what's to share". Use or interpret this as you wish.

P) I have taken the liberty to define ruling and exalting signs for
the asteroids (and the rest of the first twenty objects that don't
already have them.) This won't affect much other than whether a 'R',
'F', 'e', or 'd' is displayed in the -v charts, but it will slightly
affect the powers given to these objects in the -I influence chart
since they now can be in their ruling sign. The -O object list will
display the list of ruling and exalting signs (and the fall and
debilitating signs which are just opposite the above) for all these
objects in addition to the planets; however, I have listed them below:

Chiron, the compassionate, experienced healer, is most similar in
function to Pisces, hence Chiron rules here. Chrion expresses well in
caring, feeling, Cancer, hence Chiron exalts here. Ceres, goddess of
agriculture and representing the mothering, reproductive instinct, is
similar in function to Taurus, hence Ceres rules here. Ceres expresses
well in the nurturing, caring, sign of Cancer, hence Ceres exalts
here. Pallas Athena, mentally acute and unemotional, is most similar
in function to Virgo, hence Pallas rules here. Pallas expresses well
in practical, disciplined, introverted Capricorn, hence Pallas exalts
here. Juno, ability to sacrifice self-interests to maintain a
relationship, is most similar in function to relationship oriented
Libra, hence Juno rules here. Juno expresses well in sociable, crowd
pleasing Leo, hence Juno exalts here. Vesta, with its orientation to
directing hidden creative or sexual energy without fear, is most
similar in function to Scorpio, hence Vesta rules here. Vesta
expresses well in individualistic, quirky Aquarius, hence Vesta exalts
here. The North Node, with its emphasis on being able to break from
the past routine and pursue the unfamiliar and personal growth, is
most similar in function to soceity questioning independent Aquarius,
hence it rules here. The Node expresses well in growth and sacrifice
oriented Virgo, hence the Node exalts here. The Part of Fortune is
calculated based on the positions of the Sun, Moon, and Ascendant; if
these three objects are in their ruling signs, then the Fortune will
fall in Pisces, hence the Fortune should rule here. Similarly, if the
Sun, Moon, and Ascendant are all in their exalting signs, then the
Fortune will fall in Aquarius, hence the Fortune should exalt here.
The Midheaven, being the 10th house cusp, corresponds to Capricorn,
ruled by Saturn. Hence the Midheaven's ruling and exalting signs are
the same as Saturn's: Capricorn and Libra. The Ascendant corresponds
similarly to Mars, hence its ruling and exalting signs are the same:
Aries and Capricorn. The Vertex, being always near the Descendant,
corresponds to Libra, and hence has the same rulership and exaltation
as Venus: Libra and Pisces.

Q) The user interface where one manually inputs the chart information
has been enhanced in a few ways. First, the true names of months or
their abbreviations may be entered (in upper or lower case) instead of
the corresponding number if you prefer. At most the first three
letters of the month are needed; some months (like February which is
the only month starting with "F") may be abbreviated all the way up to
their first letter. The second enhancement is that the time value may
be entered with a "pm" or "am" (or just "p" and "a") suffix in
addition to the standard 24 hour clock always used up to now. For
example, instead of entering "18.30" for "6:30pm", you can enter
"6.30pm" or even "6.3p" and the program will process it the same.
Similarly, "12.30am" can be used instead of "0.30", and so on. The
final enhancement is that colons may be used instead of decimal points
for the time and location values. For example "6.30" may be entered as
"6:30" intead, and longitude values like "122.20" may be entered
"122:20", which is more intuitive than those earlier decimal points.

R) One more object, another star, has been added to the program.
Actually, this isn't really a star, but the Andromeda (M31) Galaxy.
This is the closest galaxy to our own Milky Way, and various
extraterrestrial hierarchies are said to be based there, so its
position should be of significance. Its object index is that of the
very last object in the program, which is presently #79.

S) Finally, all the C source files for the program have been
completely commented! Although it may not be commented heavily, at
least every routine has a comment describing what it does, and
Astrolog is now a more respectable program as opposed to being a huge
HACK! (Actually, I probably could have doubled the number of features
added to this version of the program if I didn't spend all that time
putting in those comments! :)

Now, for a list of the new features added in the graphics area:

T) There is a new compile time variable dealing with graphics (in
addition to the X11 one) called GRAPH. One comments out the #define
GRAPH line if they don't want graphics, and not just if they don't
have X windows. In other words, one can now generate most of
Astrolog's graphics charts even if they don't have X windows. (The X11
#define is still there for we X windows users who will find the
graphics features just as before.) Now, when GRAPH is defined but X11
isn't, the program will generate the charts, but just never try to
bring up a window; it will simply always assume that you are writing a
bitmap file. The bitmap file will contain a (unfortunately always
black and white) image of what would normally be in the window, just
as the -Xb switch does. One can then use any of various graphics
utilities to convert the image into something they can display on
their system. (Any system that can compile Astrolog should be able to
compile in the non X window graphics features as well.)

U) A new graphics chart is available through the -Z0 switch: local
horizon charts suitable for stargazing. Now, as in previous versions,
the normal -Z switch generates a listing of the planets with repect to
the local horizon, and the -Z combined with the -X switch generates a
graphic image of the planets and stars on the local horizon. This
chart assumes one is facing due south, and is divided left to right by
the horizon line, with straight up being toward the top of the screen
and straight down toward the bottom. This is a good chart, especially
for noticing the rising and setting of planets and other objects, but
the fact that the meridian is split up causes distortion when trying
to view objects high up in the sky. Therefore, if one combines the new
-Z0 switch with the -X switch, a new differently oriented local
horizon chart will be displayed. Here, the zenith point straight up is
in the center of the screen, and the horizon line is a surrounding
circle. Due north is along the line from the center to the top of the
screen, due south is on the line from the center to the bottom, east
is to the left, and west is to the right. In other words, this is just
like what one would see if they were lying on their back looking
straight up with their feet to the south, so this should be better for
stargazing. Outside the circle marks what's below the horizon, and the
extreme corners of the screen mark the nadir - what's straight down.
As with the normal -Z graphic chart, this one has the various axes
marked at five degree increments.

V) The new -XW0 switch is just like the normal -XW switch in that it
just displays the world map and nothing else, except that this new
-XW0 map generated will be in what's called the Mollewide projection,
a good looking form often used for maps of the world, as opposed to
the standard rectangular map projection used up until now which
distorts the polar regions of the globe across the top and bottom of
the screen. (The Mollewide projection pinches the polar regions
together, generating a elliptical map, which is similar to the -XG
globe displays, but which shows the whole world instead of just half.)

W) The -XW and -XW0 maps can be animated like as the -XG globe display
can. Animation of these maps (which before would just sit there) are
done by shifting the whole map to one side or the other. In fact, such
a feature can be used indirectly to shift one of the X window
astro-graph charts (which are drawn on the world map) from the normal
case of having the date line on the edges of the screen: Go into the
world map or globe display, animate it a bit, and then change graphic
modes to display the astro-graph chart, and it will be shifted by the
corresponding amount. (Note that animating the astro-graph screen
itself will change the chart info, not how the screen itself is done.)

X) Because the -XW world map, and -XP polar globe display, can be
animated just as the -XG general globe display can, the -XW and -XP
switches now accept optional parameters on the command line that will
specify what degree (from 0 to 359) to start the map at, just like the
-XG switch does. In addition, the -XG option itself accepts a second
optional parameter, which is the starting angle for the globe's tilt,
from -90 to +90 degrees.

Y) A new bitmap output mode has been added to the graphics routines.
If one changes BITMAPMODE in astrolog.h to the character 'A' when
compiling, then all bitmaps output will be in a straight ascii form,
with one character corresponding to each pixel. This format is
identical to the result produced by the unix command bmtoa, and it can
be converted back into a bitmap with the unix command atobm. Although
not as efficient spacewise, this is a simpler format, and is
recommended for those without X windows who are still using Astrolog's
graphics, if they want to write their own conversion program.

Z) This is probably more of a glitch fix than a new feature, but
anyway one may have noticed that text would never get printed in a
bitmap. This could be problem, because it meant that the chart
information couldn't be shown, and the actual object labels of stars
and other things without glyphs wouldn't appear in bitmaps. This was
caused by the fact that the program always used the X library text
printing routine to show any text. Well, now Astrolog includes its own
internal 6x10 text font, which works just as well as the X library's
does, and which can be written in the -Xb bitmaps as well.

Well, I've reached the end of the alphabet, so this concludes the 26
new features in Astrolog 2.30 :)

--

And now for a list of bugs in version 2.25 that have now been fixed:

1) A very major bug caused all the positions of the stars to always be
about 25 degrees farther in the zodiac than they should have been. In
other words, all the stars were in the wrong positions and this
feature was basically useless in version 2.25. All the stars are now
in their proper positions at all times.

2) The entire X astro-graph chart would be shifted a large amount if
the longitude of the chart in question was different from the present
default longitude. This was because the program improperly used the
default longitude instead of the longitude of the chart in question in
the astro-graph routine. This was only in the X version; the text
astro-graph routine would always work fine. Now they both work
properly.

3) The locations of the lines in both the text and X astro-graph
routines would slightly change if one changed the location of the
chart in question. This was minor and almost unnoticeable, since the
abberation would never be more than a degree in any direction.
Nevertheless, astro-graph charts should be based only on birth time
and never on location, so this was a slight problem. This has been
fixed so the astro-graph charts are always identical no matter what
the location data may be.

4) A glitch in command switch processing would allow any time zone
except zero to be passed to the -z switch. Now, "-z 0" is accepted and
properly processed.

5) The -rm time space midpoint chart would occasionally have the
longitude of the resulting chart 180 degrees off from where it should
be, if both charts were close to different sides of the date line.
This will no longer happen.

6) Those objects which imposed maximum limits upon the aspect orbs
that any other object could make with it, e.g. 2.0 degrees for the
North Node and others, would force this value to be the orb with it
even if the orb for the aspect in question was less. For example, if
one set septiles to have a max orb of 1 degree, then the program would
still allow a 2 degree septile between the planet in question and the
north node to appear in the grid. This has been fixed, and now the
lesser between the aspect's defined orb and the object's defined orb
is used to determine if an aspect is in effect.

7) The -Ao and -AO switches would work properly, but would cause
additional command line switches after their aspect orb lists to not
get processed. This has been fixed.

8) Finally, the fiasco caused for PC users by my inserting #define int
long in the code to fix the fact that PC's ints are only 16 bits has
been remedied. Now, ints remain ints, and those variables in the code
which require 32 bits are specifically defined long, which is what I
should have done in the first place. In fact, to save space, some
large arrays were able to be declared in 8 bit chars, so the problem
of PC's running out of global variable space should no longer be a
problem.

************************************************
Astrolog 2.40 posted Wed, 20 Jan 93 03:23:16 GMT
************************************************

     Surprise! The Sun enters Aquarius today, sign of the unexpected.
(Aquarius quote: I'm not weird, everyone else is :) To appropriately
honor one of my favorite signs of the zodiac, I am releasing the
newest version of Astrolog: 2.40!

     This particular file describes the new features and bug fixes in
version 2.40 of Astrolog (over the formerly most recent version, 2.30,
posted four months ago). This new version is a stand alone program;
however, this Update file requires knowledge of the features in
version 2.30 in order to be of much use. If you aren't already
familiar with version 2.30, get and read the version 2.30 Helpfile
that was posted here last month, which should be available at our
alt.astrology anonymous ftp site at hilbert.maths.utas.edu.au.

     The main new things added to version 2.40 are ansi mode graphics
and color for text charts, and midpoint charts, in addition to much
improved PC support. This is the first version that I've ever
personally tested and run on a PC, so it should run just as smoothly
on a PC as on a Unix system with X windows. X window graphics support,
although I haven't added very much to this release, at least is as
easy to work with as before, and is less buggy too.

     The long awaited PC windows graphics that I've promised are not
here yet. It is however very easy now to compile with the GRAPH option
set, so PC users can generate bitmaps. Under Microsoft Windows at
least one can generate a Windows .bmp file and then go set their
background to it, indirectly simulating the -XB switch used by X
users. Since (1) all the former versions of Astrolog have been
difficult to compile for PC's, (2) I have a nice easily compilable
version right now with some decent new features, (3) The real version
I was planning on posting will still take a couple of months, (4)
There were unfortunately a few bugs in version 2.30 that would cause
problems on Unix and X platforms that I was getting all this email
over, I have chosen to post this version now instead of waiting.
There may be less new features than normal, but that will mean less
bugs, and besides it isn't that difficult to release a new version.

     This post of Astrolog consists of 7 articles. First is this
Update file. Second is instructions on how to compile along with the
Unix Makefile and makefiles for a few other platforms. Third is the
astrolog.dat defaults file (remember astrolog.dat files from version
2.30 and before are not compatible with 2.40!) Fourth is the 8 source
files all together in one big shar file (no more one source file per
article releases!) Fifth are the same 8 source files again, but in a
uuencoded .zip file (unix users can easily extract through the shell
archive, while PC users will like this zip file.) Sixth is a uuencoded
ready to run executable for PCs (of course the code should be easy to
compile now too.) Seventh is a History file describing the things
added to the 10 previous versions of astrolog that have been posted in
the past. I have also put all these files in /pub/incoming/astrolog at
the hilbert ftp site, so they should be readily accessible via ftp in
/pub/astrology soon. As for a formal comprehensive Helpfile describing
all the features in 2.40 together, I haven't made that up yet, but I
will soon (and I promise it won't take me three months as it did with
version 2.30! I don't like writing documentation! :)

--

Here are the new features for version 2.40 that aren't in previous releases!

A. -k switch: Ansi graphics! The text charts may now be displayed in
   color, as well as with real graphics characters instead of with stuff
   like dashes and pluses. This makes the text charts look almost as
   cool as their color X11 graphic counterparts. All that's needed is a
   terminal that accepts ansi escape sequences.  You will get garbage if
   you include -k on a non-ansi terminal. Most PC's are in ansi mode, so
   if you have a PC this should work. Include the -k switch on the
   command line, and the program will display all charts as before, but
   change the color appropriately for every part of any chart printed!
   Just try a -w chart, a -g grid, or a -T list and see the difference
   of how much easier it is to find a planet or aspect among a large chart.

   Color isn't used randomly but is based on logic. Most colors are very
   similar to the ones chosen in the color X charts. In general,
   everything is based on the following rules for elements: Fire is Red,
   Earth is Yellow, Air is Green, and Water is Blue. Zodiac signs and
   positions are printed in the color of their element. Houses are
   printed in the color of their corresponding sign. Planets are printed
   in the color of the sign they rule. As for the other objects, we have
   the following colors: Asteroids are in bright purple (magenta),
   Uranians are in dim purple, and non-physical points like the Node,
   Fortune, and Vertex are in a bluish gray (dark cyan). Stars are
   either orange if they are bright (magnitude < 1.0) or a dark red if
   dimmer. For aspects we have the following: Conjunctions are Yellow,
   Oppositions are Blue, Squares are Red, Trines are Green, Sextiles are
   Light Blue (Cyan). For the minor aspects we have magenta for
   inconjunct/semisextile, orange for semisquare/sesquiquadrature, dark
   cyan for all the quintiles, dark purple for all the septiles, and
   dark red for all the noviles.

B. -m switch: A new chart type is available: true midpoint charts.
   Before midpoints were only available in the aspect grid. Use the -m
   switch and get a list of all midpoints printed out sorted in zodiac
   order. So if you want to see if any important midpoint is close to
   your Sun, this is a much easier chart to use than to scrutinize the
   midpoint/aspect grid.

C. -m0 switch: Aspects too may now be displayed in a nice ordered
   list, instead of only in the -g aspect grid. Invoke the above switch
   as -m0 instead of just -m and get a list of every aspect from the
   aspect grid printed out one per line. The order in which they are
   printed is based on the total "power" in the aspect, i.e. the
   influence of the two planets in question, the aspect in question, and
   the orb. The same info and data from the -I influence charts are used
   here, so changing those default influences will affect the ordering.
   The two planets are printed, the aspect they make, their orb, and
   then the power of the aspect used in ordering. Any power number more
   than 10 is a very major aspect. An exact Sun Moon conjunction can
   exceed 25. So, if you want to know if that exact Mars Jupiter
   conjunction is more powerful than that wide Sun Moon sextile, try a
   -m0 chart and find out at least what Astrolog's opinion is.

D. -Xb switch extension: If GRAPH is defined, there is a new format
   one can output bitmap files in. The .bmp extension bitmap files
   commonly used on PC's running under Microsoft Windows are supported.
   One can change this default file mode in astrolog.h before compiling,
   or it may be specified directly as described below. If you have a PC
   running Windows, you can set your root background to be one of these
   monochrome Astrolog bitmaps by: use the -Xb option to create a bitmap
   file, then rename it to have the extension .bmp and put it in your
   Windows subdirectory, then go into Program Manager -> Control Panels
   -> Desktop and select this file to be your "wallpaper".

E. -Xb switch extension: Another bitmap file extension, this one
   allows the the bitmap file mode to be changed without having to
   recompile the program, as had to be done before. Now, one can change
   the mode by putting an extra character on the command line after the
   -Xb switch. Specifically, to override the compile time mode, use -Xbn
   for a standard X11 bitmap, -Xbc for an X11 bitmap with some white
   space removed, -Xbv for a very compact X11 bitmap, -Xba for the one
   character per pixel ascii dump, and finally -Xbb for the new .bmp
   mode described above.

F. -X1 <object> switch: Yet another graphics feature, this allows one
   to effectively rotate one of the graphic wheel charts so that a
   particular object is hinged to the left hand (east) edge of the
   chart. Given the -X1 switch with the index value of an object, the
   wheel is drawn but always rotated so that the object in question is
   at the left side of the chart. By default we have the ascendant at
   the left edge, of course. This is useful for tracking important
   planets so one knows where they are, but yet doesn't distort the
   house cusps as the -1 switch does. This is basically my official
   version of the "-D" switch in Andrew's 2.30 PC port posted earlier.

G. -X2 <object> switch: This is identical to the -X1 switch above
   except here we rotate the entire graphic wheel so the object in
   question is always at the top of the chart. Note that during a day,
   the degree difference between the Ascendant and Midheaven varies in
   most house systems, so that with the Ascendant hinged at the left
   edge, the Midheaven will wobble back and forth near the top of the
   wheel. If you prefer, "-X2 18" will fix the Midheaven at the top of
   the screen, and the chart will be like before except the Ascendant
   will be the one to wobble near the left edge of the chart.

H. The -w text wheel switch takes an optional parameter now to
   specify the size in text rows of each house printed. Before, this
   always has to be four, but now one may increase (realize this will
   make the chart require more than 24 lines to print) or decrease
   (don't know why you would want to, but you can) this value to their
   preference. The parameter may range from 1 to 10, being 4 by
   default, and with this you can nicely generate a text wheel chart
   with all 79 objects in it, which before would overflow the houses.

I. The -+ and -- add/subtract number of days to current chart before
   casting options before always required a parameter. Now, this
   parameter is optional, defaulting to 1. For example, to see what
   aspects are occurring among the planets tomorrow, before you would
   have to include "-n -+ 1 -d", and now we can just do "-n -+ -d".

J. The astrolog.dat file has been extended to accept three additional
   variables. First is whether the -k ansi graphics should always be in
   effect. If set, then it is assumed -k is always in affect, and one
   needs then to use the -k switch to return to normal. This is
   recommended for PC users who display charts on the screen more often
   than they print one out. Second is the default number of rows to pass
   to the -w switch. To change this before one has to recompile the
   program; now we can just change the value in the astrolog.dat file (or
   just put the value after -w). Finally, the value of DIVISIONS may be
   changed in the file. This value tells how many segments we should
   divide each day, etc, when doing aspect or transit searches (-d or
   -T). More segments is slower but can be more accurate by a minute or
   two. I suggest a value of 24 here for Unix systems and 8 for PC's, but
   now it is easy to experiment to see what would be best for you.

K. Many PC users are accustomed to specifying command line parameters
   with a "/" instead of the "-" familiar in the Unix environment. Now,
   either of these formats are allowed. One may invoke a command switch
   with a dash, with a slash, or with no lead character at all, and
   Astrolog will process it properly.

L. This is hardly a new feature, but the old NOASTEROIDS compile time
   option that would automatically assume -R to be in effect is gone.
   This was reduntant, and can easily be done by restricting the
   appropriate planets with the astrolog.dat file now that that's here.

M. Very minor, but the -g aspect/midpoint grids now include the
   degree of each planet that is labelled down the main axis in addition
   to its zodiac sign location.

--

Here are the bugs in version 2.30 that have been fixed in this release.

1. The default restrictions weren't read correctly from the
   astrolog.dat file. This was a major problem that was often more than
   just the program ignoring what was put in that file. Some systems
   would always crash with a bus error upon startup, while some would
   print over a dozen lines telling of "bad memory access" every time
   the program was invoked. Everything works find now (as it did in all
   versions before 2.30).

2. A major bug that primarily affected some Unix users, was one which
   on some systems would prevent one from being able to open an X
   window, always giving a "Can't Open Display" message. Everything
   works fine now (again as it did in all versions before 2.30). This
   was due to an unfortunate conflict between an Astrolog and a system
   function.
 
3. On PC systems, the transit lists would display garbage for the
   dates about 2/3 of the way down the list. This was due to an overflow
   of small ints on the PC. These lists are displayed without error now.

4. Another PC glitch, this bug caused the day of the week displayed
   in the middle of the -w text wheel chart to always be off by a few
   days. This was another overflow of a 16 bit PC int that has been
   fixed.

5. PC users would have all kinds of trouble if they tried to compile
   with GRAPH #define'd. The compiler would puke on the large (over one
   megabyte) bitmap array, and even if one got around this, there would
   be many flaws in the display due to still more int overflows. Well,
   now the overflows are all fixed, and the bitmap array is much more
   efficient and is down to under 64K in size! So all PC users should be
   able to run with the GRAPH option now, and finally get to see some
   graphics. (X window users will still find everything as before.)

6. Astrolog.dat files from before version 2.30 were not compatible
   with 2.30 itself. This wasn't a bug, in that version 2.40 is no
   exception (version 2.30 astrolog.dat files won't work with it and
   must be replaced.) What was a problem is that version 2.30 wouldn't
   complain about these old files, and would happily read all sorts of
   erroneous data in. The program would either hang trying to read the
   old file, or would read in all kinds of crazy defaults. Now
   everything is fine, and the program will print a nice error message
   if one tries to run this version on any pre 2.40 astrolog.dat file.

7. The automatic convert string month to number feature in the main
   manual data entry area would generate the wrong number for certain
   months. Simply entering numbers would always work, but typing in some
   strings such as "Jan", "Mar", "Apr", etc, would not result in the
   logical month number implied. No longer a problem.

8. The -F switch was flawed in that although it would correctly
   change the location of the object in question, the original house the
   object would have been in was not updated. As a result, one could
   move a seventh house Venus in Libra over to Aries, and the program
   would display Venus in Aries, but still in the 7th house! Everything
   is updated properly now.

9. In the -ga aspect grid lists, the orbs of aspects between two
   stars would always be displayed to be zero, even if this wasn't the
   case. The proper orbs between stars in the grid are printed now.

10. The -1 and -2 put object on house cusp options would not allow
   one to include any of the objects beyond the first 20. This has been
   remedied, and now one may include uranians, stars, etc here.

11. The -I0 general interpretations list would ignore the current -A
   number of aspects setting when it displayed the meanings of the
   aspects. Minor, but still something to be fixed.

--

     That's it for this pre-new Moon release. Expect a version 2.50 or
even a 3.00 with real Windows for PC's, and more interpretation stuff,
etc, next time. Instructions to compile are in the next article with
the Makefiles. The astrological "chart" (and hence the default chart
in memory you get if you force an X window chart without giving any
time) for version 2.40 is at 5:29pm PST (8 hr before GMT) on Jan 19,
1993 here in Seattle, WA 122W20, 47N36 (cusp of Aquarius.)

--

#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#
+     Walter D. "Cruiser1" Pullen    |   astrolog@byron.u.washington.edu.     +
#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#
