 #####################  ASTROLOG 4.00 UPDATE FILE  #####################

      Happy New Year everyone! 1994 promises to be a exciting year,
 with the last Saturn Pluto Square being exact after the very first
 day, and the great seven planet Stellium in Capricorn soon after on
 1-11. In honor of these great times and great events (and my Pluto
 over Sun transit that just happened), allow the next big release of
 our Astrolog astrology calculation program to be presented: version 4.00!

      More than just your ordinary upgrade, Astrolog 4.00 features
 some major new enhancements:
 * A new set of formulas for the planets whose accuracy rivals if not
   exceeds those of all major commercial products.
 * PostScript file representations for all of Astrolog's graphics
   charts.
 * Windows metafile picture file options which allow graphics charts
   to be easily inserted into documents or modified in picture editors.
 * Many other new useful features such as labeled cusps for graphics
   charts, along with a standard batch of bug fixes and improvements.

      This release posting consists of the following files, each
 posted as a separate article:
 1. A text Update file describing new features and changes to Astrolog
    4.00 made over the previous version, 3.10 (what you're reading now).
 2. A uuencoded, compressed, shell archive of the source code, config
    file, and makefile.
 3. A uuencoded, zip archive containing the source code, config file,
    makefile, icon file, and two ephemeris files.
 4. A uuencoded DOS executable ready to run on PC's.
 5. A History file as a uuencoded, compressed, straight text file
    describing the changes made to each version of the program since its
    beginning (not necessary unless you are upgrading from several
    versions ago).

      The "source code" consists of 15 files (13 C program files and
 two header include files). The "config file" is the astrolog.dat
 default parameter file (not necessary to have to run but useful). The
 "makefile" is a standard compilation Makefile in the shell archive,
 and a different Microsoft nmakefile in the zip archive. The "icon
 file" is a Microsoft Windows icon to use if invoking Astrolog from
 Windows. The "ephemeris files" are used for the accurate calculation
 of the planetary positions (see later).

      Some of these files are posted in more than one part in multiple
 articles, due to newsreader size restrictions. For these files,
 extract each part in turn to a separate file, go into a text editor
 and strip off the header and trailing text, and concatenate them
 together.

      All the files described above have been uploaded to Michael
 Bulmer's alt.astrology anon ftp site at hilbert.maths.utas.edu.au in
 the directory /incoming/astrolog. (The ephemeris files are in the
 subdirectory /incoming/astrolog/ephem.) They should be moved to the
 standard /pub/astrology/Astrolog directory there soon. Fellow
 employees at Microsoft connected to its network can get a copy of
 this version out of my public share in the directory
 \\myemailname\public\astrolog.

      If you have used or are familiar with the previous versions of
 the program, you may want to first read the section on changes to old
 features made in this release. In addition, if you aren't familiar
 with any previous versions of the program at all, you will want to
 read the comprehensive Helpfile for version 3.10, so you know what
 the version 4.00 feature enhancements are referring to. This
 documentation Helpfile for the previous version describes all its
 features together in order, and is available at the hilbert ftp site.
 I intend to create and post one for version 4.00 containing this
 Update information in it sometime soon.


 #####################  ASTROLOG 4.00 MAIN FEATURES  #####################

 NEW FORMULAS:

      -b switch: Astrolog 4.00 has a new set of calculation routines
 which are much more accurate than the Matrix software routines that
 have always been used before! The old routines are still there,
 except that one may now choose between the old and new calculation
 methods with the new -b switch. With -b, Sun through Pluto, the North
 Node, and Chiron will be computed more accurately (although slower).
 The other asteroids, uranians, stars, and house cusps are always
 generated with the Matrix routines.

      The new calculation uses ephemeris files for some planets which
 must be in a directory specified at compile time in order to work.
 The new routines are valid based on how many of the ephemeris files
 one has. With all of them, the formulas will cover and deliver
 accurate positions for nearly 8500 years from December -5260 BC
 through March 3237 AD! There are 62 ephemeris files total. Each file
 covers a range of 100,000 days, or about 273 years. Altogether they
 take up 2.8 megabytes of disk space, but each segment of 273 years
 only takes up 90K. For each time segment, there is an ephemeris file
 named "LRZ5_n" containing the positions of Jupiter through Pluto (at
 80 day increments) and a file "CHI_n" containing the positions of
 Chiron. The 'n' refers to span of Julian Days covered by it (divided
 by 100000). For example, Julian Days 1,200,000 through 1,300,000 are
 in the files "LRZ5_12" and "CHI_12" (the 'm' character in some files
 refers to negative Julian Days). You don't need all the files to use
 -b, just those that cover the dates you want to use. If you try to
 use -b with a date not covered by an available ephemeris file, an
 error message will be printed and the Matrix positions will be used.
 The files "LRZ5_24" and "CHI_24" cover the years 1859 through 2131
 AD, which is good for most purposes and only takes up 90K. These two
 files are included in the posted zip archive. For Unix users who want
 any ephemeris files, and PC users who want to cover more years, the
 complete set of files is at the hilbert ftp site.

      Astrolog uses the formulas from the "Placalc" program package to
 generate its precise positions. Placalc's accuracy is about the same
 as the "CCRS" routines, and those used in Nova (it even fixes some
 accuracy problems Nova has, in some of its earlier versions at
 least). Placalc's integrated outer planet positions represent the
 standard of the Nautical Almanac, the international astronomical
 standard, as published in the Astronomical Almanac, for its
 computations as computed before 1984. (Since 1984 the standard has
 been the DE200 integrations by JPL.) The Sun's position implements
 the Newcomb theory for all terms > 0.01", the positions of Mercury
 through Mars are done to all terms > 0.05", while "Brown's improved
 lunar ephemeris" is used such that the Moon is within 3" of DE200.
 Placalc's fraction of second precision, is of course much more
 accurate when compared to the old Matrix positions, which were only
 accurate to about one minute (and several degrees for Chiron) for
 this century only. For example, at 1800 AD, the Matrix positions for
 the outer planets are off by 2 degrees, and about 1 degree for 2100;
 by 1500 AD, Matrix is off by 14 degrees for Pluto while Chiron is
 barely in the right hemisphere anymore.

      There is a new flag to "Use ephemeris files" in the astrolog.dat
 file, which when set, will always use the Placalc routines and is the
 same as just including -b all the time, in which case -b will toggle
 them back off. There is a compile time option #define PLACALC in the
 astrolog.h which can be commented out to disable the -b switch and
 the new formulas.

      Note that this calculation method won't allow the -v0 switch to
 express planetary velocities relative to average speed work with it,
 and nor will central planetary bodies other than the Sun or Earth
 (standard Geo and Helio centric charts) via -h work. It will however
 display velocities for the Moon and the Node, which aren't available
 with the Matrix routines.

      Very important: For Unix users only, there is a rare possibility
 that the program will hang when you try to use the -b switch. If this
 happens, you need to add the line "#define MSDOS" to the top of the
 astrolog.h file. Most Unix systems store numbers with the high byte
 first, but some do it in reverse (like PC's) hence the locations from
 the ephemeris file will be read in backwards causing the formulas to
 get caught in an infinite loop. (The "MSDOS" variable just means to
 tell the program to read in the opposite order, so there's no reason
 for any Unix purists to get upset if they have to add "MSDOS"! ;)

      Special thanks goes to Dr. Alois Triendl who kindly allowed his
 formulas to be used in Astrolog. Mr. Triendl is the founder and owner
 of Astrodienst Zurich, second largest astrological computer service
 in Europe, and is well known for his work with Liz Greene. Astrolog
 basically treats his Placalc routines as a library which we link
 into, in that code that knows about both programs is kept to a
 minimum. In fact, any changes made to the Placalc .c and .h files are
 under #ifdef ASTROLOG, so by reverse applying this, one can
 regenerate the original files that came with the Placalc package.

 --

 POSTSCRIPT CHARTS:

      -Xp switch: Astrolog 4.00 can generate PostScript graphics
 files! (Finally - I've been talking about having this since version
 1.20! :) PostScript is a graphics format different from bitmaps in
 that it's based on "strokes" as opposed to "pixels". With a stroke
 graphic, an image is defined in terms of "circle here, line there,
 etc" instead of a large array. This means PostScript graphics can be
 printed at any size without losing accuracy or becoming "blocky", and
 look perfectly smooth when printed to a laser printer. A PostScript
 file is also about an order of magnitude smaller in size than a
 corresponding bitmap file.

      To generate a PostScript chart, use the new -Xp switch. This
 will work just like bitmap files for all Astrolog's graphics charts,
 in that you will be prompted for a file to write the graphics to
 unless you explicitly pass a file to the -Xo switch. The type of file
 generated will be an encapsulated PostScript graphic (which are
 usually seen with a .eps extension) meaning that it's made to be
 inserted into a document and scaled and so on and printed from there.
 A true independent PostScript file which can be sent directly to a
 printer can be generated by specifying -Xp as -Xp0 instead. As with
 bitmaps, it is recommended to include -Xm for a monochrome graphic
 unless you have a color printer, and to include -Xr so the chart is
 black on a white background (so that you don't cover 90% of the page
 with ink when printing)!

      There is a compile time option #define PS in the astrolog.h
 which can be commented out to disable the -Xp switch and all
 PostScript features.

      Special thanks goes to Mr. Brian D. Willoughby (who BTW also
 lives really close to where I work, and who helped me restore the
 files on my NeXT optical disk after it crashed thereby recovering my
 only copies of Astrolog versions 1.00 through 2.00) who wrote the
 routines and parts in the xgeneral.c file which deal with PostScript
 (e.g. what's the PS command to draw a line, ellipse, filled
 rectangle, etc.) Basically, if it's inside #ifdef PS, Brian likely
 gets credit for it, for anything else (except the placalc.c file of
 course, and the Matrix routines which are marked as so) I'm the one
 to blame. :)

 --

 METAFILE CHARTS:

      -XM switch: Yet another graphics format, Astrolog 4.00 can
 generate Windows metafiles. Metafiles are those files (usually with
 extension .wmf and often called "pictures" for users) that are
 frequently used in Microsoft Windows for clipart and other such
 things. (Astrolog is one of the few non-Windows programs which can
 generate metafiles internally without relying on Windows itself.)

      Like PostScript, metafiles are a "stroke" graphic format.
 Metafiles are in binary format unlike the human readable Ascii text
 in PostScript files, and hence are smaller in size for the same
 image. Although the same chart generated in PostScript and metafile
 format will more or less look the same, for PC and Windows users,
 metafiles are preferred. (For Unix systems PostScript is preferred
 since there aren't many Unix apps out there that know or care about
 Windows metafiles, while PostScript is a standard used everywhere.) A
 metafile can be inserted as a picture into Word, CorelDraw, and
 pasted into Windows Write and many other applications. Unlike
 PostScript, a metafile can be displayed on the screen in your
 document, instead of like most EPS files which when displayed by
 Windows just indicate that "this is an PostScript image" and have to
 be printed to be seen. A metafile can actually be edited in MS Draw
 and many other drawing applications where one may modify the Astrolog
 chart, change colors, add text, and so on before printing!

      Metafiles (and PostScript graphics) have the option to include
 actual system fonts for text, as well as even zodiac sign, planet,
 and aspect glyphs! This will look smoother than having Astrolog fake
 all the characters with 45 degree line segments. There is a new
 setting in the astrolog.dat file which when set by the user will
 always use system fonts instead of simulating them. If the -XM switch
 is invoked as -XM0 instead, the status of this flag will be toggled
 for the chart generated. (This switch can be used with PostScript
 charts by specifying "-XM0 -Xp".) In the PostScript charts, the
 following printer fonts are used: Courier for text, Times Roman for
 house labels, and Astro for Sign, Planet, and Aspect glyphs.

      For these metafiles, the following Windows TrueType fonts are
 used: Courier-New for text, Times New Roman for house labels,
 Wingdings for sign glyphs, and Astro-SemiBold for Planets and Aspect
 glyphs. All of these fonts should be installed in your system already
 except likely Astro-SemiBold. This font is available from the hilbert
 ftp site in the directory /pub/astrology/Fonts in the file
 6ttfont.zip. To install it on Windows, unzip this file, then go into
 the Windows Control Panel and select the Fonts icon. Click on the Add
 button and select the file "astro-se.ttf" that was in the zip
 archive, and the font will be installed on your system. If it's not
 installed, the planet and aspect glyphs will appear as letters. (If
 you can't get access to the Astro font, but still want all the other
 fonts to be included, one can set the value of "use actual fonts" in
 astrolog.dat to 2 instead of 1, which will cause only the planet and
 aspect glyphs to be simulated by Astrolog.)

      It is possible that a metafile using all the system fonts may
 print perfectly to a PostScript printer, but an PS file itself won't
 find the Astro font. This is because the Astro font may be installed
 on your Windows system, but not on the printer itself, and because
 when printing a metafile to a printer, Windows will conveniently
 automatically embed the necessary font information in what it sends
 to the printer if the font isn't already there. Note that one may
 actually generate a PostScript chart from a metafile in Windows by
 using the Print Manager (or the Setup dialog button available from
 within those Windows host applications that use the standard Print
 dialog) to set printing to be to an encapsulated PS file instead of
 directly to a printer. Of course doing this won't likely be needed
 since Astrolog can generate PS files natively.

      There is a compile time option #define META in the astrolog.h
 which can be commented out to disable the -XM switch and all metafile
 features.


 #####################  ASTROLOG 4.00 NEW FEATURES  #####################

 In addition to main three features above, this version contains some
 other new features not in previous versions which are listed here:

 1. -v -X addition: Astrolog's wheel charts are now labeled much more
    extensively than before. They will include full information on time,
    place, house system, zodiac, central planet, element table info, as
    well as the actual positions of planet and house cusps as displayed
    in the wheel. All this information is in a "sidebar" to the right of
    the wheel which includes a listing not unlike the -v text chart.
    (Note that the size of this sidebar is such that for the default
    480x480 pixel chart size, including the sidebar will make it 640x480,
    which perfectly fills a VGA PC screen.) If you want an old style
    wheel with just the chart information at the bottom of the graphic,
    set the -v0 flag, as in "-v0 -X" instead of "-v -X" or just "-X".

 2. -w -X chart: A new way of formatting graphical wheel charts is
    available by combining the -w switch with -X. Normally all of
    Astrolog's wheel charts are such that each zodiac sign is the same
    size. Due to different house sizes in most systems however, this
    makes the houses appear different sizes on the wheel, so that the
    Midheaven won't be the exact top of the chart for instance. Some
    users may instead prefer "house oriented" as opposed to sign oriented
    wheel charts. Astrolog now, with the -w -X combination, will make
    each house be the same size on the screen, and will compress or
    expand the signs instead (of course this means that such things as
    exact squares may not be between objects exactly 90 degrees apart on
    the circle anymore). When graphics are displayed on the screen, the
    '0' key will toggle between the two forms of wheel chart.

 3. -b0 switch: The ability to display zodiac positions to the nearest
    degree second is now supported with the -b0 switch. Before all
    positions were displayed just to the minute (which was all that was
    useful due to the accuracy available in previous versions). Now, with
    the new Placalc routines accurate to within seconds, this switch, in
    addition to turning on the more accurate formulas like just -b does,
    will also turn on the more accurate display. The only charts
    presently affected by -b0 are the -w text wheel chart and the sidebar
    positions in graphic wheel charts. There is also a new astrolog.dat
    flag called "Print zodiac seconds" which when set will always display
    to the second even if -b itself isn't specified (in which case -b0
    can be used to toggle it back off).

 4. -rb -X chart: Graphical biorhythm charts are now available by
    combining the -rb switch (or -yb, formerly called -tb) with -X. This
    will make a graph of one's biorhythm for the two weeks before and
    after the specified time, with days on the horizontal axis and the
    Physical, Emotional, and Intellectual percentages on the vertical.
    When any graphics chart is up, one may press the 'Y' key to revert to
    a biorhythm chart. (Note that as this is a relationship comparison
    chart, if you go to it from a graphics mode only showing one chart,
    it will show the biorhythm for them at their birth, and you will
    want to then animate or adjust it to get a useful display.)

 5. -Zd switch: One can display the rising and setting times of the Sun,
    Moon, and planets with this new feature. Specifically, when this
    switch is included, the program will, for the entire day specified in
    the chart information, display whenever a planet rises (specifically
    conjuncts the local horizon while in the eastern hemisphere), sets
    (conjuncts horizon in west), reaches its zenith point (or
    specifically conjuncts the meridian while in the southern hemisphere,
    i.e. is due south from the observer), and reaches its nadir point
    (conjuncts meridian in north). Note that some stars may be high or
    low enough that they will never rise or set, but instead will just
    "zenith" or "nadir" twice in a day as they spin around the pole.

 6. -D switch: This switch will display a chart listing all aspects in
    effect within the chart in question, in order by influence based on
    their power when transiting. This chart focuses upon and gives
    precedence to aspects of outer planets with each other, as opposed to
    common inner planet configurations. For example, right now in early
    January the most influential aspects in effect now are the Uranus
    Neptune conjunction and the Saturn Pluto square. This chart is very
    much like the format of the -m0 aspect list chart, except that we are
    using transit as opposed to natal influences of the planets. The -m0
    chart is most appropriate for a person's natal chart, in that the
    inner planets are focused upon, such as a Sun Moon square will be
    near the top of the list. This -D chart is more appropriate for times
    as opposed to people, since it focuses upon rare outer planet
    configurations. This chart is also very similar to the -T (formerly
    called -y) transit influence chart, in that it shows the aspect,
    applying or separating orb, and power of the event with its present
    orb, except that this does influences of transiting planets among
    themselves as opposed to aspects to a natal chart. If you want to
    see what major events are coming up, and don't want things such as
    Uranus Neptune conjunctions to "sneak by", use this chart and watch
    the configuration gradually rise to the top of the list as its orb
    narrows over time. As this is a new chart which requires only one
    set of chart information to display, it may be combined with others
    and is included in the -e everything switch.

 7. -Tp switch: The -T (formerly called -y) transit influence switch can
    now display all aspects between progressed planets and natal planets
    in order of influence, if it's invoked as -Tp instead of just -T.
    This works like -T in every way except that a switch combination like
    "-i mychart -Tp 1 31 1994" will display aspects between my natal
    planets, and those in my natal chart progressed to the end of the
    month, and their influence and orbs at that time, instead of between
    my natal planets and the actual positions of the planets at the end
    of the month.

 8. -os <file> switch: This switch, given a file, will output the
    contents of a text chart to that file. This is just like output
    redirection except that it's implemented within the program. Hence
    unlike output redirection it will work from within a -Q loop, from
    the File Run menu in Microsoft Windows, and on systems whose shells
    don't allow redirection at all. This also has the advantage in that
    prompts and user messages won't be sent to the file, hence things can
    be done such as "astrolog -os textfile", where the program will still
    prompt you on the screen for the chart info, but the chart itself
    will still go to the file.

 9. -i set: There is now a virtual file named "set" which can be passed
    to the -i and -r switches. Instead of looking for an actual file,
    this represents the "last" set of chart information dealt with, and
    is useful to avoid having to manually enter information in certain
    cases. (Other "virtual files" Astrolog can use are "now" which means
    the current time at the default location, and "tty" which means
    prompt the user for the info.)

    This is best used within a -Q loop. For example, you first manually
    enter the time for a chart and it's displayed. Now, this time in the
    loop, you want the same chart in an aspect grid, and don't want to
    have to enter the data again or create a file to read from. Entering
    "-i set" will use this chart info now matter how it was entered. For
    graphics charts this "last" chart will be set to the initial chart or
    whatever animation situation was saved via the 'o' key. Perhaps the
    most useful ability of the "set" chart however is that it will set
    itself to times that appear in -t and -d transit and aspect in day
    searches. For example, if you want to cast a chart for the New Moon
    this January, first do a combination like "-qd 1 11 1994 -d -R0 1 2
    -A 1", which will scan the 11th for Conjunctions involving the Sun
    and Moon, and display the time. Before, to get a New Moon chart one
    would then have to manually specify the time displayed. Now, just
    "-i set" will bring it up! The initial contents of the "set" chart,
    i.e. what you get by directly doing something like "astrolog -i set"
    are initialized to the astrological "chart" for this version 4.00 of
    the program itself, which is 12:00 noon PST (8 hours before GMT) on
    Sunday, January 2nd, 1994 in Seattle, WA (122W20 47N36).

 10. -qj <julianday> switch: This switch will automatically cast a chart
    for the given Julian Day. Unlike the other -q switches which take
    standard months, days, and years, this switch takes one parameter for
    the Julian Day (which may be fractional to specify a time within the
    day in question). For example, another way to cast a chart for
    Midnight, GMT, on New Year's day of this year is with "-qj
    2449353.5". (Julian Day 0 refers to Noon GMT, January 1, 4712 BC.)

 11. -rp <file1> <file2> switch: This switch is a form of the -r0
    relationship comparison charts. This switch, given two files, will
    compare the natal chart in file1, to the chart of this natal chart
    progressed to the time specified in file2. This is a shorthand way to
    the commonly desired comparison of a progressed chart to a natal one.
    The -y (formerly called -t) switch may be invoked as -yp <file> which
    will automatically compare the chart to the current time now. For
    example, to get a dual graphic wheel chart with your natal planets in
    the inner wheel, and your current progressed chart on the outer
    wheel, simply do "-yp yourchart -X". (There was no easy way to do
    this before, short of using -o0 position charts, since -p affects all
    charts.)

 12. European date flag: There's a new flag in astrolog.dat which
    determines whether dates are displayed in Month/Day/Year order or in
    the more "European" Day/Month/Year format. Before, the program wasn't
    even consistent and would display dates in one way in a certain place
    and in the other elsewhere. Now, setting or clearing this flag will
    give DMY or MDY format everywhere from text wheel charts to transit
    charts to the chart info displayed at the bottom of graphics charts.

 13. European time flag: This is another new flag in astrolog.dat which is
    just like the above except that it affects how times are displayed
    throughout the program. When clear, times will be printed in
    a.m./p.m. format, while when set they will be in the more "European"
    24 hour clock.

 14. -Hc switch: This new help switch displays a full page of credits,
    listing the names of those who programmed Astrolog or parts of it,
    and important copyright information and other legal stuff. Note that
    the program no longer displays my e-mail address every time the
    program is invoked, although it does direct one to the -Hc switch.


 #####################  ASTROLOG 4.00 MINOR NEW FEATURES  #####################

 Here are more features made to version 4.00, which although not as
 visible or significant as above, are still useful and are listed here.

 1. 'c' key: This key, when pressed when a graphics chart is being
    displayed, will toggle the state of whether a relationship comparison
    chart (-r0) is being shown. For example, pressing it when a wheel
    chart is up will revert to a dual wheel chart showing two sets of
    planets, while pressing it when an aspect grid is up will revert to a
    dual aspect grid between the planets of two different charts. When
    going from a comparison to a single chart, one of the charts will be
    used while the other thrown away. When going from a single to a
    comparison, the same chart information will be put in both (which
    won't be too useful until they are made different through animation
    or other keypresses).

 2. 'b' key: This key, when pressed when a graphics chart is being
    displayed, will toggle whether or not a border is drawn around the
    graphic. Some charts, such as aspect grids, will always have a
    border regardless of the state of this flag, while others such as the
    globes will never have one. Most charts however, such as the wheel
    charts (which before always had borders) will look good either way
    and this key can be used to choose.

 3. New astrolog.dat setting: Aspect grids used to always be 20 by 20
    cells (21 by 21 when for the -r0 relationship comparison grids). This
    value can now be increased or decreased as desired.

 4. -I switch enhancement: The -I interpretation toggle switch now
    accepts an optional parameter to specify the number of screen columns
    in which to format the interpretation paragraphs. This is the same
    value as the screen width field in the astrolog.dat default file.
    Giving a parameter to -I can be used to override the astrolog.dat
    value without having to change the file.

 5. 'n' key: This key, when pressed when a graphics chart is being
    displayed, will change the current chart (or "outer" chart when a -r0
    comparison chart is up) to the current time and place now. This
    interactively does the same as the -n command line switch. Before,
    the only way to revert a graphics chart to the time "now" was to
    enter animation mode via the 'N' key and then leave it. (This
    feature is only available when the TIME compile time value is
    uncommented of course.)

 6. '+' and '-' keys: These keys, when pressed when a graphics chart is
    being displayed, will update the current chart forward or backward
    one day (actually 1..9 days based on the current animation rate).

 7. 'B' key enhancement: For PC's, pressing the 'B' key when a graphics
    chart is up used to make the size of the chart the full size of the
    (rectangular) screen. Some charts however (such as wheel charts
    without sidebars, -S space charts, -Z0 sky charts, and -XG globes)
    are distorted unless they are square. For these charts, the 'B' key
    will now resize the chart to be the largest square that will fit on
    the screen, i.e. will automatically do what pressing 'B' followed by
    the 'Q' force to square key would do before.

 8. -+m, -+y switches: The new -+m is just like the -+ switch except that
    it will add one month (30 days) to whatever chart instead of one day.
    The new -+y switch will add one year (365 days) to whatever chart.
    The -- "dash minus" switch has been enhanced in a similar manner, in
    that --m and --y will do as expected. These switches have an optional
    parameter to specify how many months or years to move forward or back.

 9. -geometry switch: For X window systems, Astrolog now accepts the
    standard -geometry switch (which can be abbreviated as anything
    starting with -ge). This is only an alias to the old -Xw chart size
    switch, in that it takes the same parameters in the same way.

 10. Control keys: Certain control keys can be pressed when a graphics
    chart is up to set the color of the "pen" one can scribble on the
    chart with using the left mouse button. (Who knows, maybe Astrolog
    will contain a full featured drawing program someday. ;) Before, the
    scribbles were always only in the gray highlight color. Now, sixteen
    control keys can be pressed to change the pen to sixteen different
    colors, which are defined as follows:

    Ctrl-A is White, Ctrl-Z is Black, Ctrl-R is Red, Ctrl-G is Green,
    Ctrl-B is blue, Ctrl-Y is Yellow, Ctrl-O is Orange, Ctrl-L is Light
    gray, Ctrl-D is Dark gray, Ctrl-V is Magenta (Valentine pink), Ctrl-U
    is Purple (pUrple), Ctrl-E is Maroon (Dark red, next to 'R' on
    keyboard), Ctrl-F is Dark Green (Forest green, next to 'G' on
    keyboard), Ctrl-N is Dark Blue (Navy blue, next to 'B' on keyboard),
    Ctrl-J is Cyan, Ctrl-K is Dark Cyan (Next to 'J' on keyboard).

 11. -w, -d addition: Some more information has been added to certain text
    charts. The -w wheel charts now have the Julian day corresponding to
    the date and time of the chart in the center of the wheel along with
    the other information. The -d aspect in day search list now prints
    the day of the week along with the date at the beginning of the line.

 12. -S, -Z addition: Doing a relationship comparison graphic chart with
    the -S space or -Z horizon charts in animation mode will not cause
    the screen to be cleared between each screen update. This is a hack
    which allows one to get the effect of a timed exposure as the objects
    move across the sky in a -Z horizon chart, and allows one to see the
    orbits of planets as they move around the sun in the -S charts.
    (Note that it's best to not be in a flicker free graphics mode so the
    updates all stay on one page, and to turn off object labels with -Xl
    or the 'l' key so the screen doesn't fill with glyphs.)

 13. -X -I combination: Another fun hack is that doing a graphic wheel
    chart with -I interpretation on (the interpretation setting normally
    doesn't affect graphics in any way) will decorate the corners around
    the wheel! How its decorated depends on the screen width setting in
    astrolog.dat or passed to -I. If this value is even, a spider web
    design will be put in each corner. If this value is odd, a moire
    pattern will be put in each corner. The decoration looks best when
    the screen width is around 79 or 80. The higher the value, the more
    dense the lines will be in the "spider webs", or the less of the
    screen the moire will cover. (Don't make the moire value too low or
    you will cover the entire screen, which looks cool but doesn't aid
    reading the chart any! :)

 14. Compile time options: A couple new compile time options are now in
    astrolog.h which can be used to leave out certain parts of the
    program which you don't desire to have or just take up memory and
    make the executable large. The #define INTERPRET can be commented out
    to remove all the -I interpretation routines and tables. The #define
    BIORHYTHM can be commented out to remove the text and graphical
    non-astrological -rb biorhythm charts.

 --

 As a quick summary reference, here's a list of the new feature
 entries in the -H help list that weren't there in version 3.10:

   /Hc: Display program credits and copyrights.
   /Zd: Search day for object local rising and setting times.
   /D: Like /d but display aspects by influence instead of time.
   /Tp <month> <day> <year>: Print progressions ordered by influence.
   /qj <day>: Compute chart for time of specified Julian day.
   /os <file>: Redirect output of text charts to file.
   /b: Use ephemeris files for more accurate location computations.
   /+Ym,y Y<value>: Cast chart for no. of months/years in future.
   /rp <file1> <file2>: Like /r0 but do file1 with progr. to file2.
   /Xp: Create PostScript stroke graphic instead of bitmap file.
   /Xp0: Like /Xp but create complete instead of encapsulated file.
   /XMY0: Create Windows metafile stroke graphic instead of bitmap.

 And here are the new keypresses from the 'H' key list for the
 graphics features when a chart is up on the screen:

   Press 'b' to toggle drawing of a border around the chart.
   Press 'c' to toggle relationship comparison chart mode.
   Press '+' and '-' to add/subtract a day from current chart.
   Press 'n' to set chart information to current time now.


 #####################  ASTROLOG 4.00 BUG FIXES  #####################

 Here are some significant bugs in version 3.10 that have been fixed
 in this version, "significant" meaning important things like crashes,
 inaccuracies, or loss of stated functionality.

 1. -T bug: All times of transits in -T (now called -t) searches would be
    off by up to 24 hours! This bug was introduced in version 3.10 and
    wasn't in versions before that. It however didn't affect the related
    -d and -y (not called -T) switches any. (This came about because the
    transit searches depended on "fractional days" before and we got
    roundoff when dates were changed to integers for program speed. Yes I
    do tests to compare features to previous versions to make sure I
    don't break anything in a new version before posting, and am
    embarrassed to say how this bug made it past!)

 2. -n bug: The -n cast chart for current time now switch would give
    incorrect planetary positions if the default time zone were different
    from the current zone as defined in the system time library. The
    actual time the chart would be cast for would be one hour off for
    each hour the default zone differs from the system zone since the
    time calls used always returned the time relative to the system zone.
    For the majority of users this isn't a problem since the default zone
    is almost always set to the current time zone as defined by the
    system, but one can easily manifest it by changing the time zone and
    watching the planet positions shift. Now, we get a zone independent
    value and convert it ourselves to a date and time expressed relative
    to the default time zone. The zone setting or passing values to -z
    will no longer affect the positions of the planets, as expected since
    they are where they are "now" no matter how time is expressed.

 3. -v0 bug: The -v (switched with -v0 now) switch which used to express
    planetary velocities relative to average speed (as opposed to
    absolute degrees per day with -v0) would cause some applying vs.
    separating aspect orbs to be inverted, i.e. displayed as applying
    when the reverse is true or vice versa. This would affect app/sep
    aspect grids and aspect lists (-ga and -ma charts, but not -y (now
    called -T) transit influence charts). This is because the velocities
    are used to determine applying vs. separating to see if one planet is
    overtaking another. The bug comes with the program thinking that,
    say, Pluto moving 2 times faster than normal, will soon overtake
    Mars, slightly ahead of it in the zodiac, moving half normal speed.
    When the values are expressed as absolute speed, it's apparent that
    the outer planet Pluto always moves much slower than the more inner
    planet Mars even when Mars is moving half normal speed. This problem
    is actually still in the program, but isn't likely to come up as much
    since the meaning of -v and -v0 have been swapped, hence average
    speed is no longer the default and only explicitly combining -v0 with
    -ma, -ga, or -D will cause a problem.

 4. -T, -y bug: Doing an interpretation of a -T (now -t) transit search
    or -y (now -T) transit influence chart with more than 11 aspects
    active (e.g. -A 18) would cause garbage on the screen and a potential
    crash since interpretations are only available for the first 11
    aspects. Now just as in other charts, interpretations just aren't
    displayed for aspects beyond the Biquintile.

 5. -m bug: Doing an interpretation of a midpoint chart that includes
    stars (-m -I -U) would cause garbage on the screen and a potential
    crash since interpretations aren't available for the stars. Now just
    as in other charts, interpretations just aren't displayed for objects
    beyond the Uranians.

 6. -j bug: The -j planetary influence chart would sometimes result in
    missing ranks in the planet lists, usually manifesting as the total
    rank list starting with a value greater than one, due to looking at
    uninitialized variables. Trust that the ranks (which were at least
    relatively correct to each other before) are also absolutely correct
    and don't have more ranks than there are objects being considered!

 7. -pn, -yn bug: The -pn do progression to current time now and the -yn
    (now -Tn) transit influences at current time now, would be slightly
    incorrect in that they would always use noon on the current date as
    opposed to the actual current time within the date. This isn't a bad
    problem since -p and -y only take parameters to the nearest day
    anyway, with progressed planets moving so slow that a maximum 12 hour
    difference hardly matters. Nevertheless, the extra bit of precision
    is there now, which may be useful for things such as -y charts that
    include the fast moving Moon.

 8. -XB bug: Doing an animation of an X window chart on the root
    background with the -XB -Xn switch combination wouldn't clear the
    root after each update, resulting in a smear effect that makes the
    image unreadable after a few iterations. Trust that root animations
    are just like window animations now. For those who considered this a
    "feature" (especially for -Z and -S charts where it's cool and
    actually useful) the effect can be done for these charts with the -r0
    switch (described earlier).

 9. -T, -m0 omission: Interpretations weren't available for uranians in
    the -T (now -t) transit search and -r0 -m0 relationship aspect lists,
    even if -u were in effect. Uranian interpretations are now available
    for these charts as they are for all the others.

 10. -g0 omission: Aspect configurations included with an aspect grid via
    the -g0 switch wouldn't include any objects other than the first
    twenty in them. Now the -g0 list will include the uranians and stars
    in it if -u or -U is in effect like the other charts do.

 11. -d bug: The times for events in the -d aspect in day list would be
    off by possibly up to an hour, but only if the value of divisions
    were not divisible into 24. If 24 was divisible by the value of
    divisions, there would be no errors whatsoever. Fortunately this bug
    doesn't arise at all in most cases as the default divisions values
    are 8 for PC's and 24 for Unix systems, but it would come up for
    those who modified it to say a value like 75.

 12. House system error: Casting a chart inside the Arctic circle using the
    Placidus system of houses (the default, or specified with -c 0) would
    produce floating point errors since the Placidus system of houses isn't
    defined at these extreme latitudes. Now if the user attempts to cast a
    chart with Placidus with a latitude beyond about 66 degrees N or S, the
    program will print an appropriate error.

 13. -Tpyn bug: It was impossible to do a search for progressions for the
    current year in version 3.10. Of the subswitch variables: search for
    progressions instead of transits (-Tp, now called -tp), scan an
    entire year instead of a month (-Ty), and scan the current month/year
    instead of taking parameters (-Tn), only two of these three would be
    processed in a single switch. Now, -tpyn is a legal combination and
    will do as expected.

 14. X window problem: X window charts would frequently come up partially
    off the bottom right hand corner of the screen. Actually, the larger
    the chart size, the more shifted to the bottom right it would appear.
    Now, all X window charts appear at the top left of the screen and
    will only be clipped if the chart is larger than the screen itself.

 15. -XT error: The display of the time in the chart information at the
    bottom of graphics charts would sometimes be one minute too low due
    to rounddown. This was introduced by the bug "fix" in version 3.10
    which corrected the problem of the minute sometimes being one minute
    too high! Now, trust that all charts will show the correct minute for
    all sixty seconds within it.

 16. Mouse problem: If on a PC system a mouse isn't installed on a system
    and Astrolog is run with mouse features enabled, the program would
    display an error and halt, which would prevent those with graphics
    but no mouse from using any screen graphics in the ready to run
    executable. Now, if a mouse isn't available, the mouse features will
    be ignored as if the functionality weren't even compiled in.

 17. Compilation error: Attempting to compile Astrolog on a PC with screen
    graphics using the Microsoft C7 compiler would result in an error of
    the value "_ZRES256COLOR" being undefined. This is because the
    1280x1024 256 color graphics mode in question wasn't available in the
    C7 graphics.lib file, but it is in the updated one included with C8.
    Now either compiler and library will work without problem.


 #####################  ASTROLOG 4.00 MINOR BUG FIXES  #####################

 Here are some more minor bugs in version 3.10 that have also been
 fixed in this version, "minor" meaning less visible things like
 display blemishes, typos, and things that don't affect functionality.

 1. Smartcusps omission: Perhaps more of a feature extension than a bug
    fix, the smartcusps astrolog.dat parameter now affects -y (presently
    -T) transit influence charts and -m0 aspect listing charts as well.
    Before it only affected -T (presently -t) transit searches.

 2. -L blemish: Graphical astro-graph charts with all stars included (-L
    -U -X) would cause some star zenith locations to be drawn off the
    visible part of the world map among the glyph labels due to their
    high latitude locations. Now these zeniths aren't drawn if they would
    be outside the latitude limits of the map as shown.

 3. -Xn glitch: On a PC, the -Xn switch to display a graphics chart in
    animation mode wouldn't automatically go to the flicker free
    resolution, as is done when one manually enters animation mode from
    within the program. Now for consistency the switch is done on
    startup if need be too.

 4. -E blemish: Graphical ephemeris charts (-E -X) would frequently have
    the glyphs labeling the tracking lines overlapping each other. Now
    they are automatically slid around to avoid this like the wheel and
    astro-graph charts do.

 5. -Xl blemish: Using the -Xl switch to toggle off labeling of object
    points in charts with glyphs, wouldn't also get rid of the lines from
    these glyphs to the points in the wheel and astro-graph charts, a
    minor visual glitch which has now been removed.

 6. 'H' list omission: The 'H' key help list when graphics are on the
    screen didn't include the fact that the spacebar would force a screen
    refresh, but it does now.

 7. astrolog.dat bug: The default horizontal and vertical chart size in
    the astrolog.dat file would be ignored and not read in if bitmap
    graphics were compiled in, and some form of interactive screen
    graphics weren't compiled in as well (i.e. X window or PC graphics).
    Now, these values will be read in as long as any form of graphics are
    available (so that the -Xw switch is visible).

 8. 'Q' key glitch: The 'Q' key to change the chart size to be a square
    would work incorrect on a PC if the graphics were in one of the
    640x200 CGA resolution modes. This is due to its unusual pixel size
    ratio, causing an n by n "square" in such a mode to appear tall and
    skinny. Now we scale the horizontal and vertical sizes accordingly,
    like we do for EGA resolutions, so the 'Q' key will always make
    charts appear square.

 9. divisions problem: The searching divisions astrolog.dat default
    parameter was not checked for validity. Before, one could get away
    with zero or negative values which would cause problems. Also, large
    values of more than 150 or so could cause the same aspect to appear
    more than once in a list. This has been fixed, and one may pump this
    value up to 2880 without problem (if they don't mind the wait) which
    will mean a chart every 30 seconds for -d aspect in day charts and
    one every 15 minutes for -t transit charts.

 10. -v blemish: Unusually fast planetary velocities (i.e. 10 or more,
    usually caused by doing a -v chart several thousand years in the past
    where the old default formulas become inaccurate and objects can be
    thought to move an order of magnitude times their average speed)
    would mess up the text column alignment due to the velocity values
    overflowing their fields. Now any large values are automatically
    clipped.

 11. -g blemish: Restricting the Sun in an aspect grid chart (-g -R 1)
    would result in the minor display problem of extra unneeded boundary
    lines at the left and top sides of the chart, which have been removed
    in version 4.00.

 12. -m0a spec: The -H listing in version 3.10 implied that the switch
    "-m0a" is basically a longhand way of the doing a -ma aspect listing
    with applying and separating orbs. This in fact would be just like
    -m0 with degree orbs. Now, -ma and -m0a do the same thing as expected.

 13. -R1 spec: The documentation for the -R1 "unrestrict everything"
    switch was incorrect. The -R1 switch does automatically turn on minor
    cusps, uranians, and stars, implicitly doing a -C, -u, and -U.
    Version 3.10 said this wasn't the case, but it is. (The actual
    functioning of -R1 hasn't changed any in this version.)

 14. Typos: Various typos have been fixed in the program. The spelling of
    "Porphyry" in the -c house system section of the -H list was
    incorrect. Illegal parameters to the -y switch were displayed as
    being bad parameters to -p instead (hey so I cut and paste a little
    too hastily). And finally, yes the spelling of "Keplar" is now
    correct in the source code comments.

 15. -Xb problem: The combination "-Xb -Xs 300 -g" would always run out of
    memory on a PC. In other words, it was impossible to generate a large
    scale bitmap of an aspect grid with labeled orbs in version 3.10.
    Versions 3.05 and before would clip the bitmap if it were larger than
    the maximum allowed memory bitmap, however the increase of this limit
    in 3.10 doesn't allow this to be done anymore. Although this problem
    is still there, one can get around it by manually "clipping" the
    aspect grids through decreasing the number of cells in using the new
    astrolog.dat parameter described earlier.

 16. -Xbv bug: Attempting to generate a "supercompacted" X11 bitmap file
    on a PC with the -Xbv switch would result in garbage data in the file
    due to 16 bit integer overflow. All other bitmap formats were fine,
    and -Xbv would work properly on Unix systems. This bug actually was
    only in versions 3.05 and before, and was fixed in 3.10, but wasn't
    mentioned in the 3.10 bug fix list so is mentioned here for
    completeness.

 17. Code change: The code in Astrolog 4.00 has been made a bit cleaner
    and more conforming to compiler rules. Under the Microsoft C
    compiler, there are now no warnings of level 3 or less. There should
    be fewer if any warnings under other compilers.


 #####################  ASTROLOG 4.00 PROGRAM CHANGES  #####################

 As with every version, a few changes that aren't new features or bug
 fixes, were made to the program, in that certain old assumptions are
 no longer valid. A list of these (which aren't useful unless you have
 used previous versions of the program) follows:

 1. -T, -t, -y swapped: The meaning of the old -T transit search switch,
    the old -t relationship to now switch, and the old -y transit
    influence switches, have been swapped in a three way cycle. Now, the
    transit search switch is -t, the relationship to now switch is -y,
    and the transit influence switch is -t. This was done to make the
    transit to natal chart options similar to the -d aspect in day chart
    switches. We now have the well organized series:

    * -t switch: Display exact times of transits to natal planets.
    * -T switch: Display influences  of transits to natal planets.
    * -d switch: Display exact times of aspects among transiting planets.
    * -D switch: Display influences  of aspects among transiting planets.

 2. -v, -v0 swapped: The meaning of the -v and -v0 switches have been
    switched. Before, -v would show planetary velocities as a ratio
    relative to average speed, while -v0 would show it as an absolute
    speed in degrees/day. Now -v (and the default when no chart display
    switches are included) is the degrees/day setting, and -v0 must be
    done to show the relative speed. (Note that these two switches used
    to be like this, but were swapped to the old way in versions 3.xx.)

 3. -p changed: The -p progression switch, when given a month, day, and
    year, used to always do a progressed chart for the given day at
    midnight, GMT. Now it is done for the given day at midnight in the
    default time zone. (Hardly noticeable, but still a change.)

 4. New files: Astrolog 4.00 contains three new files that weren't in
    version 3.10. This means that all old makefiles are invalid and
    shouldn't be used with this version. There is the new source file
    placalc.c and its new header file placalc.h, which are the
    definitions and code for the new calculation formulas. There is a new
    graphics file xoptions.c, which was split off from the old xcharts.c.

 5. New glyphs: The minor house cusp objects now have their own glyphs
    for the graphics charts, which are large graphic numbers instead of
    the text that was there before. The Ascendant and Midheaven have new
    glyphs, which are a large "Asc" and "MC". This is more standard than
    the large "A" and "M" they had before.

 6. Graphics interface change: Pressing a key when a graphics chart is up
    which doesn't do anything will sound a beep, instead of doing nothing
    as before. (Actually, there was a useless undocumented feature in
    version 3.10 whereby pressing the 'b' key would beep. Now this key
    has a function described earlier and all other non-bound keys beep.)

 7. -k default changed: Ansi text colors are now off by default in the
    released astrolog.dat file. This is no more than just a change in the
    PC astrolog.dat. If you want them on by default so that the -k switch
    will toggle them off instead of on (recommended if you have a PC)
    simply change it back when customizing your astrolog.dat. Having this
    on by default caused confusion for some whose terminals weren't
    already set up to support Ansi escape sequences.

 8. Default file changes: As almost always with a new version,
    astrolog.dat files for versions 3.10 and before won't work with
    version 4.00, because there are additional definable parameters in
    the file read in for this version. Attempting to read in such an old
    file into version 3.10 will result in an error message saying one
    should upgrade the old file or delete it. Either delete the old file
    and modify the one included with this release, or else manually merge
    in the new fields in the new file with your old one.

 9. Finally, the hack "default" chart in memory one gets if they start up
    with a non information requiring chart (such as the graphic globe or
    world map) and then revert to one requiring information, e.g. -XW
    followed by pressing 'V') is now set for my own birth data: 11:01am
    PST (8 hours before GMT) on Friday, November 19, 1971 in Seattle, WA
    (122W20 47N36).


 #####################  4.00 COMPILING INSTRUCTIONS  #####################

      Compiling Astrolog version 4.00 is virtually identical to
 compiling previous versions: first edit the top of the file
 astrolog.h, commenting out any of the #define's which set various
 features that aren't valid on your system or you don't want, and
 changing default values and directories to your preference. (Just
 look at the self-explanatory section comments in this file.) Then in
 the same manner, also edit these default parameter values in the
 astrolog.dat file to your liking, at least the location and time zone
 values. Then, for Unix systems, just run the command 'make' in the
 directory containing the included Makefile.

      Compiling Astrolog on a PC is easy too. One can usually do it by
 simply compiling each file in turn and then linking them all
 together. You won't have to worry about explicitly mentioning things
 like the math library if your paths are set up properly. (I used the
 Microsoft C7 compiler to generate the ready to run PC executable, but
 I linked with the improved graphics.lib included with Visual C 1.00
 (C8) for the DOS graphics features.) If you have the nmake utility,
 the makefile included in the zip archive will nicely compile and link
 astrolog 4.00 on a PC, with flags set properly and all. I compiled
 under the Large memory model, with 16K bytes of stack space. The
 default directory for chart info files, the astrolog.dat file, and
 the ephemeris files in this ready to run PC executable are all set to
 C:\ASTROLOG. The time and location defaults are set to my own area,
 but you can easily override them with your own values using the
 astrolog.dat file.

      It is possible to easily compile Astrolog on a VMS system, even
 with its X windows functionality. Here's an example of a simple VMS
 .COM file by Max Calvani which can automatically compile and link
 Astrolog for VMS. This should work for version 4.00, although you
 might want to include "/noopt" after the CC's since some compilers
 with optimization can cause the program to pass parameters incorrectly.

 ---- BEGIN INCLUDED FILE COMPILE.COM CUT HERE ----
 $ set ver
 $ define X11 decw$include
 $ define lnk$library sys$library:vaxcrtl
 $ CC CHARTS
 $ CC DATA
 $ CC DRIVER
 $ CC FORMULAS
 $ CC GENERAL
 $ CC INTRPRET
 $ CC OPTIONS
 $ CC PLACALC
 $ CC XCHARTS
 $ CC XDATA
 $ CC XDRIVER
 $ CC XGENERAL
 $ CC XOPTIONS
 $ link/exe=astrolog.exe -
 CHARTS.obj, -
 DATA.obj, -
 DRIVER.obj, -
 FORMULAS.obj, -
 GENERAL.obj, -
 INTRPRET.obj, -
 OPTIONS.obj, -
 PLACALC.obj, -
 XCHARTS.obj, -
 XDATA.obj, -
 XDRIVER.obj, -
 XGENERAL.obj, -
 XOPTIONS.obj, -
 sys$input/opt
 sys$share:decw$xlibshr/share
 $ set nover
 $ exit
 ---- END INCLUDED FILE COMPILE.COM CUT HERE ----

 :)
 --

 #+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#
 +     Walter D. "Cruiser1" Pullen    |    cruiser1@stein.u.washington.edu     +
 #+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#
 +   "Who am I, What am I?  As I am, I am not.  But as we are, I AM.  And to   +
 #   you my creation, My Perfect Love is your Perfect Freedom. And I will be   #
 +   with you forever and ever, until the End, and then forever more." - GOD   +
 #+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#
