AAAAA SSSSS TTTTTTT RRRRRR OOOOO L OOOOO GGGGG

A A S S T R R O O L O O G G

A A S T R R O O L O O G

AAAAAAA SSSSS T RRRRRR O O L O O G GGGG

A A S T R R O O L O O G G

A A S S T R R O O L O O G G

A A SSSSS T R R OOOOO LLLLLLL OOOOO GGGGG

** VERSION 7.00 **

Release notes for Astrolog version 7.00 (June 2020):

Happy Full Moon Lunar Eclipse everyone! :) This file describes the freeware astrology software program Astrolog version 7.00 and the additions and fixes made to it, over the previous version 6.50 which was released eleven months ago in July 2019. The main things in this update are an atlas (including time zone and Daylight Time change information), eclipse detection, display of numerous asteroids at once, Windows context menus, and “AstroExpressions” which are programmable customizations that don’t require recompiling the program.

NEW FEATURES

Here are new additions to version 7.00 that weren't in previous versions:

1. Atlas features: Astrolog now has an atlas, allowing one to easily lookup the longitude and latitude of cities. :)

Lookup city: The new -N switch will look up the current city (as set in the second parameter to the -zi switch, or the “Location” field in the Chart Info dialogs). By default the 22 best matches are displayed, although the switch takes one optional parameter for how many rows to potentially display, which may range up to 200. In the Windows version, the new “Lookup City” button in the Chart Info dialogs will do the same thing. Afterward, you can click on the entry in the dialog you want, then click the new “Apply Info” button to apply the coordinates to the chart info. (This will also apply the correct time zone and Daylight Saving field too, as described below). You can specify just a city name, or use a comma to combine with a country/region name or its two letter abbreviation, to restrict search to just that region. For USA and Canada, states and provinces may be specified instead of or in addition to the country. City names will match substrings, which will be ranked in an appropriate manner. For example, if you lookup the city “Eden”, the exact match “Eden, NC” will be first, followed by the subword exact match of “Eden Prairie, MN”, then the substring match at the beginning/end of a word in “Edenvale, Germany”, and finally the substring in the middle of a word “Redencao, Brazil”.

Nearest cities: The new -Nl switch will display the nearest cities to the current longitude and latitude coordinates. By default the 22 nearest are displayed, although the switch takes one optional parameter for how many rows to display, which may range up to 200. In the Windows version, the new “Nearest Cities” button in the Chart Info dialogs will do the same thing.

Atlas information is stored in the new file atlas.as, which gets loaded the first time atlas information is needed. This is an Astrolog command switch text file like any other, and can easily be user modified or extended. The header of the file describes the format. The file consists of one instance of the new -YY command switch, which takes one parameter indicating the number of city location lines that follow in the file. This switch is only valid in switch files, and an error will be displayed if it’s seen on the command line.

The default atlas.as file contains over 24,000 cities, or every city in the world with over 15,000 population. Similar to ephemeris files, you can download a larger atlas if you want more cities available. The file http://www.astrolog.org/ftp/atlas/atlasbig.as contains nearly 200,000 cities, or every city in the world with over 500 population. You can replace the default atlas.as with atlasbig.as, or just load the larger file into the program when needed. The information in these atlases was composed using data from https://www.geonames.org/, available under the Creative Commons Attribution 4.0 License.

2. Time change features: Astrolog can now do time zone detection (including whether Daylight Saving Time is in effect or not) for any date/time at any location in the world. :)

Apply time changes: The new -zN switch takes one parameter for a city name, and will automatically look it up, take the best match, and apply to the chart info the atlas coordinates, time zone, and whether Daylight Time is in effect. For example, “astrolog -qt Jun 5 2020 12:12pm -zN Seattle” is a quick way to do a chart for that city given the date and local time. In the Windows version, the “Apply Info” button in the Chart Info dialogs will (after you select a city from lookup results) update the Time Zone and Daylight Saving fields in the chart appropriately, based on the local time and city you’ve specified in the Time and Location fields.

Note that some times are ambiguous, for which it is not possible to determine whether or not Daylight Saving Time is in effect. For example, in Seattle clocks “fall back” one hour on Nov 1, 2020, in which 1:59am Daylight Time is followed by 1:00am Standard Time. If you say you’re born at “1:30am” local time on that day, it’s unknown whether that means 1:30am Daylight Time, or 1:30am Standard Time an hour later. Astrolog will display a warning in such a situation. A similar warning will be displayed if you say you were born during the one hour gap during which clocks “spring ahead”, which is an invalid time that never appears on clocks because it gets skipped.

Display time changes: The new -Nz switch will display all time changes for the time zone area corresponding to the active chart’s city, as specified in the “Location” string field. If that string doesn’t match anything in the atlas, then time changes in all time zones will be output instead, for a complete output of Astrolog’s worldwide database. This chart will display every time change to or from Daylight Time, as well as occasions when the time zone offset itself for the location changes. This will range from the first date when the location started using a standard time zone (which will be no earlier than 1847 when GMT was introduced). The list will run until 2025, or five years after the chart’s date (whichever is later, but never later than 2080). Time changes will be printed one per line, listing the date and local time at which the time changes, along with how the time zone offset changes and how much the local clock time changes. In the Windows version, the new “Time Changes” button in the Chart Info dialogs will do the same thing.

Time change information is stored in the new file timezone.as, which gets loaded the first time that such information is needed. This information was converted from the collaborative open source and public domain TZ database (sometimes called the “Olson database”) at https://data.iana.org/time-zones/tz-link.html, which is used by many programs and operating systems for time zone and Daylight Saving Time determination. This database is fully accurate everywhere in the world for 1970 and beyond. Before 1970 time changes are often an inexact science, but are estimated to be at least 90% accurate. The file timezone.as is an Astrolog command switch text file like any other, and can be user modified. The sections within the file describe the format. There are three sections in it, which contain instances of the following three new command switches:

-YY1 <rules> <entries>: Reads in a new set of Daylight Saving Time change rules from the current switch file, consisting of the specified number of rules, each consisting of a sublist of rule entries. First parameter is number of rules, and second is the total number of rule entry lines in all rules. The time zone areas in the -YY2 section can specify different rules to apply at different times.

-YY2 <zones> <entries>: Reads in a new set of time zone changes from the current switch file, consisting of the specified number of time zone areas, each consisting of a sublist of zone change entries. First parameter is number of time zone areas, and second is the total number of zone change entry lines in all areas. This defines when time zone offsets themselves change in a particular area, as well as when to apply different Daylight Saving Time rules.

-YY3 <rows>: Reads in a new set of time zone links from the current switch file, consisting of the specified number of time zones from atlas.as, and how each maps to a zone change area as listed in the -YY2 switch section. This defines how a city’s time zone maps to a time zone area, so the program can lookup a date/time in question within that area to see the time zone and Daylight Time offsets that were in effect then.

3. Show cities: Astrolog’s atlas is graphical! :) It can plot the location of all cities in its atlas on the graphic world map and globe displays. To show them, turn on the new -XL switch (which is also available as the “Show Cities” menu command on the “Graphics / Show Map Effects” submenu). Normally all cities are displayed in the same color. However, if the aspect line labeling setting (-XA switch described below) is also on, then cities will be colored differently. If the -XL switch is invoked with a trailing digit, it will affect how cities are colored:

-XL1: Cities are colored one of the seven colors of the rainbow based on their country.
-XL2: Like -XL1 but USA states and Canada provinces are also colored differently.
-XL3: Cities are colored one of six colors of the rainbow based on their default time zone offset in effect today. Cities in irregular non-hour time zones (such as in India) are colored magenta instead.
-XL4: Like -XL3 but the correct offset (including Daylight Time) is calculated for each city based on the current chart time. For past times before a location started using time zones, cities are colored gray instead.

4. Eclipse detection: Astrolog can accurately detect eclipses and occultations/transits, or when one planet’s disk is partially covering another. To do this, turn on the new -Yu switch (which is also available as the “Show Eclipse Information” checkbox in the Display Settings dialog). When active, appropriate charts will indicate whether conjunctions and oppositions are eclipses. The aspect list (-a switch), transit to transit times (-d), and transit to transit influence (-D) charts will display next to each aspect if it’s an eclipse, and if so whether it’s total (or an occultation in which one body completely covers another), annular (or a transit in which one body is passing in front of another), partial (in which one body partially overlaps another), penumbral (in which part of the Moon is in the Earth’s shadow, i.e. some part of the Moon’s surface is experiencing a partial Solar eclipse), or total penumbral (a semi-rare condition in which all of the Moon is within the Earth’s penumbra, but no part of the Moon is in the full umbra). Note that for accurate Solar Eclipse times, such as detecting when totality begins and ends, your location on Earth is very important, so you should have topocentric positions on (-YV switch). Similarly, for Lunar Eclipses you want to consider the effect of Earth’s shadow from the geocentric middle of the planet, which means you should have topocentric positions off.

If the print nearest minute setting (-b0 switch) is in effect, then any eclipses will include the percentage of the planet’s diameter involved. For example, for partial eclipses it will range from 1% (just beginning to cover) to 99% (just shy of totality or annularity). For annular and total eclipses it will range from 1% (complete overlap just begin) to 100% (planets’ middles perfectly centered at the same position). For penumbral eclipses it will range from 1% (Moon just entering Earth’s penumbra) to 100% (totally within penumbra).

The transit to transit graphs (-B switch) will graph the intensity of an eclipse over time. In the text mode transit graph, times during eclipses will be marked by special characters: Total eclipses or occultations are indicated by “T”, annular eclipses or transits are “A”, partial eclipses are “P”, and penumbral lunar eclipses are “p”. In graphics mode, a second graph will be drawn in dark blue overlapping the first. The height of this graph will indicate the type of eclipse and its percentage progression: Penumbral eclipses will range from 1/12 to 3/12 height of the area, partial eclipses will range from 5/12 to 7/12, and annular or total from 9/12 to 11/12. These three “zones” make it easy to see (for example) a lunar eclipse progressing over time, and when it moves from penumbral to partial to total.

5. Aspect line labeling: Lines indicating aspects between objects (such as seen in the middle of wheel charts, as well as in solar system orbit charts and chart spheres) have the option to draw the aspect’s glyph over the middle of the line. The new -XA switch (and the new “Show Glyphs On Aspect Lines” menu command on the “Graphics / Show Map Effects” submenu) will label aspect lines in this manner.

6. Extra asteroids: Astrolog can display custom asteroids and other bodies, assuming their Swiss Ephemeris format ephemeris files have been downloaded, however doing so usually requires specifying each asteroid individually. The new -XE switch will display an arbitrarily long sequence of asteroids. It takes two parameters: The low and high minor planet numbers of the bodies to calculate and list. This is a quick way to display hundreds or even thousands of asteroids at once, assuming their ephemeris files have been downloaded. Extra asteroids may be seen in the graphics charts for local horizon (-Z switch), solar system orbit (-S switch), on world maps and chart spheres, and in the text mode list objects table (-HO switch). For example, here’s a fun Astrolog animation in which 10,000 asteroids are orbiting around the Sun at once: http://www.astrolog.org/astrolog/screen/asteroid.gif

Extra asteroid labeling: The asteroid list feature is very similar to the existing -XU switch which displays all the stars in the sefstars.txt file, except this displays a range of asteroids instead. The -XU switch subsetting will affect asteroids too, in which -XU1 shows just a dot, -XU2 has the asteroid’s name labeled, -XU3 is a larger dot, and -XU4 is a large dot with label. Assuming labels are present as defined by -XU, then the -XE switch can be invoked with a trailing digit to determine how exactly asteroids are labeled. Doing -XE1 will have no label, -XE2 will label with the asteroid’s number (e.g. “10”), -XE3 will label with the asteroid’s name (e.g. “Hygiea”), and -XE4 will label with both number and name (e.g. “10 Hygiea”).

Extra asteroid colors: The new -YkE switch can be used to specify colors to use for particular extra asteroids when the show asteroids setting (-XE switch) is active. It takes one parameter, which is a comma separated list of string pairs. These pairs indicate the numeric index of an asteroid followed by the name of the color to use for it. For example, “-YkE 5,Red,10,Blue” will highlight asteroid “5 Astrea” in red and “10 Hygiea” in blue. You can also reference the name or number+name of the asteroid, if the -XE switch is set appropriately so that asteroids are being labeled in that format. For example, if -XE2 is in effect, then “-YkE Astraea,Red,Hygiea,Blue” will also work.

7. Windows context menus: In the Windows version, each graphics chart has a unique popup menu that can be brought up by right-clicking on the window. There are 13 different popup menus, which allow changing settings specialized to that graphics chart. This is a quick and easy way to modify charts in ways that may not be readily apparent otherwise.

8. Full screen mode: In the Windows version, the new “Size Window Full Screen” menu command on the “Edit / Window” submenu (accessible with the “Shift+Tab” hotkey) will toggle the Astrolog window into or out of full screen mode. The scrollbars will determine the relative placement of the Astrolog chart within the screen, if they have different proportions (e.g. scrollbars centered will center the chart within the screen).

9. Screen saver: Astrolog can act as a Windows screen saver. To use it as one, copy the Astrolog.exe executable to the file Astrolog.scr in your Windows system directory (which is usually C:\WINDOWS\SYSTEM32). The right directory is the one that has other .scr extension screen savers in it. Once installed, in Windows select “Start / Settings / Control Panel / Display / Screen Saver” or equivalent, and pick “Astrolog” from the list. When Previewed or when started as a screen saver, the default display will be a wheel chart starting from the current moment now and animating forward a minute at a time. If the file “astrolog.as” exists in the same directory as Astrolog.scr, then that file will be loaded on startup, which can change the default behavior. You can’t set an unlock password when Astrolog is running as a screen saver, and the Settings button won’t do anything other than show the same animation within a window.

Astrolog knows to act as a screen saver when Windows invokes it with specific command switches, and will exit immediately when a key is pressed or the mouse is moved. “Astrolog /s” (run screen saver) will run in full screen mode. “Astrolog /c” and “Astrolog /a” (configure screen saver) will run in windowed mode. “Astrolog /p” (preview screen saver) will do nothing. One can invoke Astrolog with these switches to test its screen saver functionality, or use the new -WZ switch, which will turn on the internal mode which makes the program exit on the next user action.

10. Scrollbar positioning: In the Windows version, the new -WB switch will set the window’s scrollbars. Its two parameters specify the horizontal and vertical scrollbar positioning. Both are numbers from 0-24, in which 0 is the left or top edge, 24 is the right or bottom edge, and 12 is centered in the middle.

11. Equatorial declination: Astrolog can display vertical planet coordinates as equatorial declination (instead of as ecliptic latitude, which is the default). To do this, turn on the new -sr0 switch (which is also available by turning on “Equatorial Latitudes” in the Calculation Settings dialog). This is an extension of the old -sr switch, which turns on equatorial coordinates for both longitude and latitude (but may be less useful since it distorts zodiac position longitudes). These two settings together can cover all four combinations of ecliptic versus equatorial coordinates. For example “=sr _sr0” will result in equatorial longitudes and ecliptic latitudes, by turning on equatorial for both and then turning off equatorial latitudes.

12. Star brightness adjustment: Star brightness is usually a fixed value indicating the star’s magnitude as currently viewed from Earth. The new -YUb switch when active adjusts star brightness based on the star’s current distance from the central object. This is useful when doing charts for extreme past or future times (in which the stars have drifted to different distances and therefore brightnesses) and especially when casting charts centered on other star systems (which have a more immediate effect on distance and brightness). For example, the star Sirius is magnitude -1.46 now, however in the year 38,000 when it’s closer to our Sun it will have brightened to -1.57, and by the year 300,000 it will have dimmed to just +0.01. Also, the new -YUb0 switch will make brightness be displayed as a star’s absolute magnitude, or the inherent brightness of the star independent of distance (which is defined as the magnitude of the star when viewed from 10 parsecs or 32.6 light years away).

13. Star velocity ordering: Star objects when listed in certain charts may be ordered by their longitudinal velocity with the new -Uv switch. In the Windows version, there’s a new “By Velocity” option in the “Fixed Star Ordering” section of the Chart Settings dialog.

14. Restrict all aspects: The new -RA0 switch will restrict all aspects. (This is similar to the -R0 switch which restricts all objects, and is equivalent to doing -A 0.) Similarly, the new -RA1 switch will unrestrict and show all aspects. (This is similar to the -R1 switch which restricts all objects, and is equivalent to doing -A 18 after -A 0).

15. Glyph redefinition: The -YXD and -YXA switches, which allow one to redefine the graphic glyphs used for objects and aspects, take two parameters for the small and large sized glyphs, which requires defining both. The new -YXD1 and -YXA1 switches are simpler in that they take a single parameter for the small glyph. The large glyph will be the small glyph scaled appropriately.

16. Julian calendar date: Astrolog assumes the Gregorian calendar when inputting and displaying dates after October 15, 1582, and the Julian calendar for dates before then. In obscure cases, one might want the Julian calendar in effect later or the Gregorian calendar earlier. The new -ig switch is like -i, but will read chart data into variables which indicate the date to use for the start of the Gregorian calendar. The virtual file “__g” can be used to access the current crossover date. For example, “-qd Mar 1 1700 -ig nul” will have the Gregorian calendar start on March 1, 1700, as it did in Germany.

17. New house systems: Astrolog supports five theoretical equal house systems. They don’t appear as Windows menu options, but can be selected by the command line.

-c 22: Midheaven based Whole houses: Standard Whole houses has the 1st house at the start of the sign of the Ascendant. Midheaven based Whole houses has the 10th house at the start of the sign of the Midheaven. This is similar to the difference between standard Equal houses which ties the 1st house to the Ascendant, and Equal (MC) houses which ties the 10th house to the Midheaven.

-c 23: Midheaven based Vedic houses: Standard Vedic houses has the Ascendant in the middle of the 1st house. Midheaven based Vedic houses has the MC in the middle of the 10th house.

-c 24: Balanced Equal houses: This is a mixture between Ascendant and Midheaven based Equal houses. Here the difference between the Asc and MC is applied to both the 1st and 10th cusps equally, so the amount the Asc is different from the 1st cusp is always the same as the amount the MC is different from the 10th. On a technical level, Balanced Equal houses places the Asc/MC midpoint in the middle of the 11th house, which ensures a balanced distribution, as seen in this animation: http://www.astrolog.org/astrolog/pic/equal.gif

-c 25 Balanced Whole houses: Similar to Balanced Equal houses, this is a mixture between Ascendant and Midheaven based Whole houses. Just as Ascendant based Whole houses has the Ascendant somewhere in the 1st house, and Midheaven based Whole houses has the Midheaven somewhere in the 10th, Balanced Whole houses ensures the Asc/MC midpoint is always in the 30 degree section half way between the 1st and 10th houses.

-c 26: Balanced Vedic houses: Similar to Balanced Equal houses, this is a mixture between Ascendant and Midheaven based Vedic houses. The end result of these five theoretical house systems combined with the four more common existing house systems, is a 3x3 grid of nine house systems total. There’s Equal, Whole, and Vedic along one axis. Along the other axis, each of these three concepts can be centered around the Ascendant, centered around the Midheaven, or balanced between the two.

18. AstroExpressions: AstroExpressions are programmable customizations that don’t require recompiling the program, and can be considered an extended form of command switches. You can compose expressions to do a variety of operations, such as create your own house systems. There are 13 new AstroExpression related command switches, which all start with “-~” (dash tilde). See the AstroExpression Features section at the end of this document for details about them.

--

Here's a summary of the 33 new command switches in Astrolog 7.00 that weren't in previous versions:

-N [<rows>]: Lookup chart location as city in atlas.

-Nl [<rows>]: Display nearest cities in atlas to chart location.

-Nz [<rows>]: Display all time changes in time zone of chart city.

-t[p]d: <month> <day> <year>: Compute transits for a single day.

-zN <city>: Lookup city in atlas and set zone, Daylight, and location.

-sr0: Like -sr but only display declinations instead of latitudes.

-XA: Draw aspect glyphs over aspect lines in charts.

-XE <low> <high>: Draw range of asteroids in certain charts.

-XE[0-3] [..]: Like _XE but set whether to label ast number and name.

-XL: Plot city locations from atlas on world map.

-WB <0-24> <0-24>: Set window scrollbar positions.

-WZ: Treat program as screen saver, and exit next user input.

-Yu: Display eclipse and occultation information in charts.

-YUb: Adjust star brightness to apparent magnitude based on distance.

-YUb0: Set brightness to distance independent absolute magnitude.

-YkE <astlist>: Customize list of extra asteroid colors.

-YY <rows>: Load atlas list of city locations from current file.

-YY1 <rules> <entries>: Load Daylight Time rules from current file.

-YY2 <zones> <entries>: Load time zone change lists from file.

-YY3 <rows>: Load atlas time zone to zone change mappings from file.

-~ <string>: Display result of string parsed as AstroExpression.

-~a <string>: Set adjustment for aspect list powers.

-~E <string>: Set filter for text ephemeris lines.

-~d <string>: Set filter for transit to transit events.

-~t <string>: Set filter for transit to natal events.

-~j <string>: Set adjustment for object influence.

-~O <string>: Set adjustment for object calculations.

-~C <string>: Set adjustment for house cusp calculations.

-~A <string>: Set adjustment for aspect orbs.

-~kO <string>: Set adjustment for object colors.

-~kA <string>: Set adjustment for aspect colors.

-~M <0-26> <string>: Define the specified AstroExpression macro.

-~0: Disable all automatic AstroExpression checks in the program.

Here's a summary of the 3 new menu commands in the Windows version of Astrolog 7.00 that weren't in previous versions:

View / Window Settings / Size Window Full Screen

Graphics / Show Map Effects / Show Glyphs On Aspect Lines

Graphics / Show Map Effects / Show Cities

EXTENDED AND IMPROVED FEATURES

A list of improvements to existing features in Astrolog 7.00, such as new things you can now do with old features that you couldn’t do before, or ways that existing features work better than before:

1. 3D house systems: Astrolog now supports multiple systems of “3D houses”. Every standard house system now has a corresponding 3D house system, defined by great circles drawn from the due South point to the due North point on the local horizon, passing through each 2D cusp where it intersects the ecliptic. See http://www.astrolog.org/astrolog/pic/placidus.gif for an example of 3D Placidus houses. Before, Astrolog only supported 3D Campanus or “3D Equal houses”, in which each 3D house is an equal sized 30 degree slice of the celestial sphere. Note that chart spheres always draw the horizon (which the Ascendant is on) and meridian (which the Midheaven is on), which means 3D non-quadrant systems (which disassociate the 1st cusp from the Ascendant and/or the 10th cusp from the Midheaven) will show 13 or 14 lines crossing the sphere instead of just 12.

2. Astro-graph all cusps: Astrolog’s world map displays can show astrocartography lines on it. These displays will now show astro-graph lines for the minor cusps as well, when the minor cusp objects are unrestricted. Just as the Ascendant line in astrocartography shows where on the world an object is rising, a minor cusp line shows where on the world the object is exactly conjunct that cusp (or its 3D cusp to be precise). Standard astro-graph lines are based on the angles, and that means non-quadrant house systems (which disassociate the 1st cusp from the Ascendant and/or the 10th cusp from the Midheaven) will show 13 or 14 lines on the world instead of just 12. Note that this addition is only for the world map and globe displays which can show astro-graph lines, while the actual astro-graph chart (-L switch) is still limited to the classic view of the angles.

3. Screen fonts: The Windows version of Astrolog can now display real fonts in graphics charts on screen, for sign, planet, and aspect glyphs. Before, one could only include actual fonts in PostScript and Windows metafile files, and Astrolog’s internal vector font was the only option for screen graphics. Now, the “Use Real System Fonts In Graphics Charts” option in the Display Settings dialog (-YXf switch) will affect screen graphics too.

4. Aspect calendar: Astrolog’s graphic calendar chart (-K -X switches) will include aspect and other events times within each day’s box, if the new “show glyphs on aspect lines” setting is active (-XA switch). This effectively combines the graphic calendar with the existing transit to transit times search (-d switch). Depending on the amount of room available in the boxes, displayed will be the aspect event, its exact time, and markers for void of course Moon and Moon phases. Do you miss the aspect calendars in Jim Maynard’s Celestial Guide and Pocket Astrologer books, after they stopped printing them? This feature can allow you to make your own. :)

5. Multi-year graphic ephemeris: The graphic ephemeris (-E -X switches) can now graph multiple years instead of just one year. The parameter passed to the -EY multiple ephemeris years switch (which is also present in the “Years To Span” field in the Transits dialog in the Windows version) will determine how many years the graphic ephemeris covers.

6. Applying parallel aspects: Applying/separating indicators will now be shown for parallel and contraparallel aspects. Before, all such “vertical” aspects would always be shown as separating. Also, when the applying aspects setting is not active, the +/- sign for the orb will show whether the average of the two planets’ positions is above or below 0 declination.

7. Vertical velocity: The velocity of a planet’s motion along the vertical latitude axis (which is used to compute applying/separating parallel aspects) will be displayed in the standard text mode chart (-v switch) when the print nearest second setting (-b0 switch) is on. This will be shown in the last column if the parallel aspects setting is off (otherwise the decan position will be shown there, which was the only option available in previous versions).

8. Dispositor objects extended: The graphic dispositor chart (-j -X switches) will include all non-star and non-cusp objects in the graphs, when unrestricted. For example, you can include asteroids, Nodes, Lilith, and Uranians in these charts.

9. New dispositor settings: The graphic dispositor chart is affected by the Vedic wheel display setting (-J switch), which will cause the dispositor wheel to arrange objects clockwise instead of counterclockwise around it. Also, the dispositor chart is affected by the show house details setting, which will cause the depositor wheel to have the Sun or first object at the top of the wheel instead of at the left.

10. Transit influence summary: The transit influence charts (-D and -T switches) will print an aspect summary afterward, listing the total and average power of the aspects, along with the count of each aspect and the count of aspects to each planet. This is similar to the summary displayed after the aspect list chart (-a switch), and like that summary it’s on by default can be removed by turning off the -a0 switch setting.

11. One day transits: The transit to natal times search (-t switch) and progressed to progressed times search (-dp switch) can now be done for a single day. The default is to search over a month, since these are slower events that often only have a few per month. Before, the minimum amount they would search would be a month, even when “Given Day” was selected in the Transits dialog. On the command line, the new -td <day> <month> <year> switch will search over a single day.

12. Aspects to Arabic parts: The Arabic parts list chart now has an option to, for each part, display a list of aspects from unrestricted planets to it. This is similar to how the midpoint list chart can display aspects to midpoints, and as a result the “text midpoint list includes aspects to midpoints” chart setting (-ma switch) will affect the Arabic parts chart too.

13. Mystic rectangle configuration: Aspect configurations as displayed in the text mode aspect grid chart (-g0 switch) will now include instances of the Mystic Rectangle aspect configuration (a rectangle composed of two Trines and two Sextiles).

14. Aspect list events: The aspect list chart will flag notable aspects such as Moon phases (e.g. “Full Moon”) and eclipses (if the new -Yu switch setting is on).

15. Orbit chart extension: The text mode solar system orbit chart (-S switch) will now display the azimuth in the current display format (zodiac position, number, or hours/minutes) instead of only as a number. Also, when star objects are unrestricted, their brightness will be included.

16. Text chart info extension: When doing text mode charts, the program will display chart information (such as date and time) above most of them. Before, only the standard listing would have a header, which would often leave other chart types lacking context. When displaying multiple different text charts at once, only the first chart will contain a header.

17. Graphic chart info extension: In graphics charts, when displaying chart info at the bottom of the chart, this line of text will now include the chart’s name and location strings.

18. Time zone details: In the Windows version, the “Time Zone” field in the Chart Info dialogs lists the hour offset for each time zone in addition to its abbreviation, in the field’s dropdown. Before you’d have to select and apply an abbreviation, then display a chart or go back into the dialog to see what offset an abbreviation actually referred to. Although improved, specifying time zones is less important now, given Astrolog’s new ability to automatically detect a city’s time zone and Daylight offset for a time and location.

19. Ayanamsa details: In the Windows version, the “Zodiac Offset / Ayanamsa” field in the Calculation Settings dialog lists the name of common ayanamsas in addition to their offset, in the field’s dropdown. That of course makes it much easier to select a common ayanamsa without having to know which offset corresponds to it.

20. Time parsing extended: When parsing time zones, the number can now be preceded by the letter “H”, e.g. “h5w” is the same as “5w”. Also, for times and locations, seconds can be specified by having four digits in a row after the degree/hour, e.g. “12:3456” is equivalent to “12:34:56”. These are formats used by Astrodienst on astro.com, which it’s good to be able to parse.

21. Orbit trails extended: The -YXj switch which specifies the length of orbit trails in the graphics mode solar system orbit chart (-S -X switches) has been extended. If the -YXj switch parameter is negative, it will instead draw complete orbits for objects circling the Sun or Earth. These orbits will be circles of the object’s current radius in the plane of the ecliptic, so aren’t fully accurate, but are still visually useful. Orbit circles will only be drawn for objects whose transit restrictions are also unrestricted, which allows specifying which objects you want to see orbits for.

22. Customize star glyphs: The -YXD switch to customize the graphic glyphs for objects now supports customizing star glyphs too. Before, star objects could only be marked with text abbreviations.

23. Constellation lines improved: The -YXU switch which allows defining lines between points in the list of all stars has been improved. The second parameter usually has number indexes separated with commas, however a semicolon will treat subsequent numbers as starting one beyond the highest number seen so far. That allows defining separate constellations without having to keep track of continually increasing index numbers.

24. Virtual colors: Colors can be specified as references to other colors, in Windows dropdowns and in command switches taking color values. For example, "Fire" (the current color of the element Fire), "Jupiter" (Jupiter’s current color), "Conjunction" (the aspect’s current color), and "Ray3" (that Ray’s current color) all work. Color references can be abbreviated by the first three characters, or however much is needed to be unique. Note that these are one time only input translations to the current value of a particular color, and aren’t persistent aliases that will update if the referenced color is later changed.

25. Windows menu improvement: The Windows version will now place a radio button check mark by the active chart type being displayed. For example, checking “Aspect List” on the Charts menu, “Chart Sphere” on Graphics menu, or “List Switches” on Help menu will place a mark by those commands indicating they’re in effect.

PROGRAM CHANGES

A few changes that aren't new feature additions or bug fixes have been made to Astrolog 7.00, which means certain old assumptions are no longer valid. Most can be considered improvements, but they still change existing behavior. A list of these follows (which aren't useful to be aware of unless you have used previous versions of the program):

1. Animate transit times: In the Windows version, animating charts forward or backward will adjust the time of the transiting chart or the progressed chart. This is more expected and useful than animating the natal chart, as was done before. This will happen when animating the “Transit And Natal” or “Progressed And Natal” bi-wheels (-rt and -rp switches).

2. Equatorial Positions split: In the Windows version, the “Equatorial Positions” checkbox in the Calculation Settings dialog has been split into the two new checkboxes “Equatorial Latitudes” and “Equatorial Longitudes”. Before, one had to change both together. Now, you can show equatorial declinations in charts without changing zodiac positions, which is a common preference.

3. Prompt ordering: In command line versions of the program, when the program interactively prompts one to enter chart information for each field, this process will now prompt for location before (instead of after) the Daylight Time, time zone, and location fields. If the location field matches a city in the atlas, then the appropriate values for Daylight Time, time zone, and location will be displayed. The user still has to type in those values, but they can now just follow the recommendations.

4. File headers changed: The identifying line at the start of Astrolog command switch files has been changed slightly. All Astrolog command switch files start with a line beginning with “@A”, followed by a character identifying the file subtype (which is one of “IPDCZ”), followed by the program version number not counting the period (i.e. “700”). Specifically, Astrolog chart info files start with “@AI700”, chart position files chart with “@AP700”, and default settings files like “astrolog.as” start with “@AD700”. The new city atlas file starts with “@AC700”, and the new timezone change file starts with “@AZ700”. This new scheme is more easily understood than before, in which all files started with “@” and then four digits, in which the first two digits were the file type (e.g. “01” for chart info files), and the second two digits were the file version which would increment each time the file changed in a reasonably significant way. Astrolog 7.00 and earlier versions can still load each others’ files without problem.

5. Commands renamed: Some Windows menu commands have been renamed. “Chart / Standard List” is now “Chart / Standard Radix” (because the chart is only a list in text mode, but is the standard wheel chart in graphics mode). Also, on the Graphics menu the “Show Chart Sphere”, “Show World Map”, “Show Globe”, and “Show Polar Globe” commands now start with “Draw” instead of “Show”. That distinguishes actual charts from mere settings that affect charts such as the “Show Border” command.

6. X icon changed: In X Windows versions, the program’s icon is now the same ringed planet as seen in the Windows version. It’s no longer a rainbow over an eye.

BUG FIXES

Here are bugs or other issues with version 6.50, all of which have been corrected in 7.00:

1. Progressed event times inaccurate: Transit to transit event times for progressions (-dp switch) would display the time within the day wrong (most often being much earlier in the day than it should be).

2. Progression label wrong: The -p progression switch wouldn’t remember the progression date. That normally wasn’t a problem, since the progressed chart would still be cast correctly. However, the wheel chart sidebar which shows the date progressed to would incorrectly show a default date. This only affected the -p command switch, and not the Windows “Progressions” dialog.

3. Heliocentric Nodes wrong: The Moon’s nodes and Lilith would always have their geocentric zodiac positions displayed, even when heliocentric mode is active. They’d also display wrong positions when bodies other than the Earth or Sun were the central planet.

4. Latitude crossing bug: The list of latitude crossings in the text mode astro-graph chart (-L0 switch) would display bogus crossings for the Earth (if the Earth object was unrestricted) and when objects after object index 50 were present (which means most fixed stars).

5. Void of course omission: The Moon void of course markers in the transit to transit times chart (-d switch) would fail to notice an aspect event as the Moon going v/c, when the last Moon aspect is in a different month than the Moon entering the next sign. This also happened if the Moon aspect event and Moon changing sign event were in different blocks of 50 events (e.g. on lines 50 and 51 of the output).

6. Transiting objects limitation: Transiting cusps (when enabled with the -RT and -YRT command switches) wouldn’t appear in charts such as transit to natal bi-wheels, unless at least one standard non-transiting cusp object (such as the Ascendant) was unrestricted too. A similar issue would affect Uranian and fixed star objects, which also required at least one standard object in their category to be unrestricted before they’d show up in transits.

7. Negative coordinate parsing: Specifying a time or longitude/latitude offset as a negative numeric value such as “-1:12” would negate the hour but not the minutes, which maps to 12 minutes after hour -1, which would be 0:48e, which probably isn’t what one wanted. Now “-1:12” will be the same as “1:12e” (just like “1:12” is the same as “1:12w”).

8. HST and NZT zone offset: The time zone abbreviations Hawaii Time (HT) and New Zealand Time (NZT) were treated as half hour offsets, when (at least in modern times) they’re full hour offsets. Although updated, specifying time zones is less important now, given Astrolog’s new ability to automatically detect a city’s time zone and Daylight offset for a time and location.

9. LMT zone display: Specifying the time zone of Local Mean Time would work, however it would be displayed as offset “24.0” in charts and in the Chart Info time zone dropdown, instead of as “LMT”.

10. Astro-graph animation: When showing the graphic globe or world map with astro-graph lines on it, animation would always rotate the world and never animate the time of the chart being displayed. In other words, this case would ignore the “animate map instead of time setting” (-XN switch).

11. Graphic calendar display: The graphic calendar (-K -X switches) would sometimes display the name of the month in too large a size, such that it goes over the left and right edges of the window. Display of the month name (and the numbers within each day box) now won’t ever be larger than will fit within their area.

12. Transit graph display: The graphic transit charts (-B/-V -X switches) would sometimes have the text in the upper left corner that indicates the transit date overlap the top row, if the text was too large to fit. Now this text will only be displayed if it fits within the available space.

13. Influence ranking bug: The text influence chart (-j switch) would incorrectly skip a rank if a sign’s power was zero. For example, if all planets were restricted, signs would be ranked 2-13, instead of 1-12. Similarly, the text esoteric chart (-7 switch) would display garbage percentage values in the corner case of all planets being restricted.

14. Equatorial positions bug: The equatorial positions setting (-sr switch) wouldn’t work right if the parallel aspects setting (-gp switch) was on at the same time. The effect of both would be to do the ecliptic to equatorial coordinate shift twice, which would distort the parallel aspects present. The parallel aspects setting is now smart enough to only coordinate shift once if vertical coordinates are already being displayed as equatorial latitudes.

15. Midpoint aspect display: Aspects to midpoints in the midpoint list chart (-ma switch) would incorrectly show Par/Cpr aspect abbreviations in place of Con/Opp, when parallel aspects (-gp switch) was active, even though the aspects present are actually Conjunction and Opposition.

16. Astro-graph Mollewide glitch: Astro-graph lines on the Mollewide projection of the world map would sometimes stretch to the edge of the window, instead of just to the edge of the world’s oval boundary.

17. Sidebar omissions: The sidebar of the graphics wheel chart should include house cusp objects in the list (even if it’s the same as the corresponding house cusp already listed) if its latitude is non-zero. Usually house cusp objects are at latitude 0, but having equatorial latitudes on (-sr switch) can move them. Also, the sidebar now includes a line for the harmonic chart factor (-x switch) if it’s been set.

18. Custom objects bug: The -Ye switches wouldn’t accept multiple suffixes before, which meant for example that -YeHS to toggle both the heliocentric and sidereal zodiac settings of an object wouldn’t work.

19. Extra stars limitation: The display of list extra stars (-XU switch) wouldn’t properly make another star object the central object, if the Sun was restricted.

20. Add time bug: The -- and -+ switches, which add a number of days to the current chart time, would sometimes apply their offset more than once. They’d keep applying that same offset every time the screen updated.

21. Animation glitch: Animating a chart by minutes or seconds over a period of time would occasionally result in roundoff error when entering a new hour or day. For example, it could show the time as 12:00am on one day, when the planet positions are really showing 12:00am the next day.

22. Metafile font issue: Creating Windows metafiles (-XM switch) with system fonts would embed the font “Astro-Semibold” (and therefore require it to be installed to display correctly). That’s an inferior version of, and is also inconsistent with, the “Astro” font used elsewhere in the program.

23. Wireframe globe display: The 3D wireframe globe had a few display issues. It reversed the consideration of the modify display setting (-Xi switch) from the standard 2D globe, when deciding whether to show 3D astro-graph lines. It would accidentally include the chart information from the bottom of the screen of 2D charts within the 3D wireframe. It also wouldn’t draw a ring around the globe at the latitude of the chart (-L0 switch) like the 2D chart does.

24. Wireframe constellation glitch: The wireframe constellation globe would produce a small extra horizontal line crossing the sphere near the bottom at the edge of the constellation Octans, at certain rotation values of the sphere.

25. X Windows display: On some X Windows systems, lines on the screen would end one pixel short, resulting in (for example) slightly truncated text characters and glyphs. Also, certain lines wouldn’t appear at all, such as the transit graph chart would appear mostly blank.

26. X Windows omission: The timed exposure feature (-Xj switch) wouldn’t work on X Windows systems.

27. Windows scrollbar omission: Scrollbars in the Windows version wouldn’t scroll when selecting the dial and dragging it to another location. Also, right clicking on a scrollbar and selecting “Scroll Here”, “Left Edge”, “Right Edge”, “Top”, or “Bottom” wouldn’t do anything.

28. Windows menu omission: Compiling out options in the Windows version wouldn’t remove the associated menu commands. Running a more limited Windows version will now have fewer menu options, instead of dead menu options still present that do nothing.

ASTROEXPRESSION FEATURES

AstroExpressions are a versatile new feature area introduced in Astrolog 7.00. The term “AstroExpression” stands for “Astrolog Expression”. AstroExpressions are programmable customizations that don’t require recompiling the program, and can be considered an extended form of command switches. You can compose expressions to do a variety of simple or advanced operations, such as create your own house systems. AstroExpressions are composed of the following components, which are defined as follows:

Constant: A fixed numeric value. For example, “True” (which always evaluates to 1), and “Signs” (the number of signs in the zodiac, which is 12). Indexes into the alphabet can be indicated by “%a” (number 1) through “%z” (26). Also, there are lists of constants available for months, objects, aspects, house systems, signs of the zodiac, color indexes, and days of the week. These constants start with a letter and an underscore, followed by at least three letters (or enough to be unique). For example, “M_January”, “O_Jupiter”, “A_Trine”, “H_Placidus”, “S_Leo”, “K_Green”, and “W_Sunday”.

Variable: A numeric value stored somewhere, which can change. For example, “Mon” is the month of the current chart.

Custom Variable: One of a set of generic variables, which don’t correspond to any specific program setting, but can be used by expressions to store whatever they want. An example is an index while looping over the list of all objects. Some numeric variables are automatically set by the program before it evaluates an AstroExpression hook, and can be considered special parameters to that expression. Also, some custom variables are automatically queried by the program after an expression hook returns, and can be considered as special return values from that hook. The custom variable slots start at index #0 and end at index #26. Custom numeric variables #0 through #9 can be referenced with the @ prefix (e.g. @0 or @9). Custom variables #1 through #26 can also be referenced with @a through @z. Note the important distinction between “%a” (which is always 1) and “@a” (which is the value contained within variable #1).

Parameter: A piece of data passed to a function or variable assignment. Parameters are either constants, variables, or functions. Anything that’s not a constant is a variable or function to be queried or evaluated.

Type: The type of data contained in a parameter or variable. All parameters and variables contain either integers or real numbers. Integers are signed 32 bit numbers. Real numbers are floating point numbers, and real constants always contain decimal points (e.g. “1.0” is real number 1, while “1” is integer 1). Boolean values are no different from integers, in which False is represented by 0, and True is represented by 1 or any non-zero number.

Function: A type of parameter, which evaluates to a number. Functions are followed by zero or more nested parameters. An example is “Add”, which takes two numeric parameters and returns their sum. A function that takes zero parameters and always evaluates to the same thing is a named constant, such as “False” or a specific color like “K_Red”. Functions always precede their parameters, which means AstroExpressions are in prefix format, e.g. “Mul Add 1 2 Sub 4 3” expresses “Multiply(Add(1, 2), Subtract(4, 3))” or “(1 + 2) x (4 - 3)”.

Expression: A string of text which gets evaluated, and returns a result. If an expression consists of multiple subexpressions, they will be evaluated in sequence, and the value of the last one will be returned. All parameters can be considered subexpressions contained within a larger expression.

Hook: A type of expression that can be defined which is “hooked” into a particular part of the program, which (if defined) gets evaluated every time that part of the program runs. There are hooks into object and house cusp calculation which can modify their positions, along with hooks into certain charts which allow filtering or modifying their outputs.

The following lists all AstroExpression functions. The name of each function is listed, followed by the type of its return value and the expected types of its parameters (if any). Numbers will automatically be converted to Integer or Real as needed. “Num” means either type is handled, without any conversion needed. If “Num” is the return value, then if any “Num” parameters are Real the return type will be real, else integer. For example, “Add 1 2.5” will cast integer 1 to real 1.0, then add two real numbers to return 3.5. “Bool” means the function returns an integer (0 for False or 1 for True).

General functions (which are independent of Astrolog and astrology):

False: Bool: Constant. Returns integer 0.

True: Bool: Constant. Returns integer 1.

Int: Int(Num): Integer. Converts a number to integer, discarding any decimal real part. For example “Int -3.9” is -3. Like the “(int)” cast operator in C.

Real: Real(Num): Real. Converts a number to real. Like the “(float)” cast operator in C.

Add: Num(Num, Num): Addition. Adds two integer or two real numbers together.

Sub: Num(Num1, Num2): Subtraction. Subtracts Num2 from Num1.

Mul: Num(Num, Num): Multiplication. Multiplies two numbers together.

Div: Num(Num1, Num2): Division. Divides Num1 by Num2.

Mod: Int(Int1, Int2): Modulus. Returns the remainder when Int1 is divided by Int2.

Pow: Real(Real1, Real2): Power. Returns Real1 raised to the Real2 power.

Neg: Num(Num): Negation. Negates the sign of a number.

Inc: Num(Num): Increment. Adds one to a number.

Dec: Num(Num): Decrement. Subtracts one from a number.

Equ: Bool(Num, Num): Equality. Returns whether two numbers are equal.

Neq: Bool(Num, Num): Inequality. Returns whether two numbers are not equal.

Lt: Bool(Num1, Num2): Less than. Returns whether Num1 is less than Num2.

Gt: Bool(Num1, Num2): Greater than. Returns whether Num1 is greater than Num2.

Lte: Bool(Num1, Num2): Less than or equal. Returns whether Num1 is less than or equal to Num2.

Gte: Bool(Num1, Num2): Greater than or equal. Returns whether Num1 is greater than or equal to Num2.

Not: Bool(Int): Boolean not. Returns whether a number is 0. Like the “!” operator in C.

And: Int(Int, Int): Logical and. Returns the bits of two numbers anded together. This function does not do short circuit evaluation, meaning both arguments are always evaluated even if the first is false. Like the “&” operator in C.

Or: Int(Int, Int): Logical or. Returns the bits of two numbers ored together. This function does not do short circuit evaluation, meaning both arguments are always evaluated even if the first is true. Like the “|” operator in C.

Xor: Int(Int, Int): Logical exclusive or. Returns the bits of two numbers exclusive ored together. Like the “^” operator in C.

Inv: Int(Int): Logical inverse. Returns a number with all its bits flipped. Like the “~” operator in C.

<<: Int(Int1, Int2): Shift left. Returns Int1 with all its bits shifted left Int2 times. Like the “<<“ operator in C.

>>: Int(Int1, Int2): Shift right. Returns Int1 with all its bits shifted right Int2 times. Like the “>>“ operator in C.

Odd: Int(Int): Odd. Returns whether an integer is an odd number.

Abs: Num(Num): Absolute value. Returns the absolute value of a number, or the positive part if the number is negative.

Sgn: Num(Num): Sign. Returns the sign of a number (-1 if negative, 0 if zero, and 1 if positive).

Min: Num(Num1, Num2): Minimum. Returns the lower of Num1 and Num2.

Max: Num(Num1, Num2): Maximum. Return the higher of Num1 and Num2.

?:: Num(Int, Num1, Num2): If/else. If Int is true, return Num1, otherwise return Num2. This function does not do short circuit evaluation, meaning all parameters are evaluated regardless of the flag. Like the “?:” operator in C.

Squ: Num(Num): Square. Return a number squared.

Sqr: Real(Real): Square root. Return the square root of a real number.

Dist: Real(Real, Real): Distance. Return the distance from the origin to a pair of real coordinates.

Sin: Real(Real): Sine. Return the trigonometric sine of a real number, specified in radians.

Cos: Real(Real): Cosine. Return the cosine of a real, in radians.

Tan: Real(Real): Tangent. Return the tangent of a real, in radians.

Asin: Real(Real): ArcSine. Return the inverse sine of a real, in radians.

Acos: Real(Real): ArcCosine. Return the inverse cosine of a real, in radians.

Atan: Real(Real): ArcTangent. Return the inverse tangent of a real, in radians.

Ang: Real(Real, Real): Angle. Return the angle of a line from the origin to a pair of real coordinates, in radians.

SinD: Real(Real): Sine. Return the trigonometric sine of a real number, specified in degrees.

CosD: Real(Real): Cosine. Return the cosine of a real, in degrees.

TanD: Real(Real): Tangent. Return the tangent of a real, in degrees.

AsinD: Real(Real): ArcSine. Return the inverse sine of a real, in degrees.

AcosD: Real(Real): ArcCosine. Return the inverse cosine of a real, in degrees.

AtanD: Real(Real): ArcTangent. Return the inverse tangent of a real, in degrees.

AngD: Real(Real, Real): Angle. Return the angle of a line from the origin to a pair of real coordinates, in degrees.

Floor: Real(Real): Floor. Round a real number down to the next lower whole number. For example, “Floor -3.1” is -4.0.

Fract: Real(Real): Fraction. Return the fractional part of a real number, i.e. its floor subtracted from it. For example, “Fract -3.1” is 0.9.

Rnd: Int(Int1, Int2): Random number. Return a random integer between Int1 and Int2, inclusive.

Specific functions (which are related to Astrolog and astrology):

Signs: Int: Signs. Returns the constant number of signs in the zodiac (i.e. 12).

Objs: Int: Objects. Returns the constant maximum object index in the program (i.e. 89).

Asps: Int: Aspects. Returns the number of aspects currently enabled in the program (ranging from 0 to 18).

Mon: Int: Month. Returns the month of the current chart (i.e. 1-12).

Day: Int: Day. Returns the day of the current chart (1-31).

Yea: Int: Year. Returns the year of the current chart.

Tim: Real: Time. Returns the time of the current chart in hours (0.0 to 24.0).

Dst: Real: Daylight Saving: Returns the Daylight Saving Time offset of the current chart in hours (usually 0.0 or 1.0).

Zon: Real: Time zone: Returns the time zone offset of the current chart in hours West of GMT (usually -12.0 to 12.0).

Lon: Real: Longitude: Returns the longitude of the current chart in degrees West of GMT (-180.0 to 180.0).

Lat: Real: Latitude: Returns the latitude of the current chart in degrees North of the equator (-90.0 to 90.0).

Mon2, Day2, Yea2, Tim2, Dst2, Zon2, Lon2, Lat2: Int or Real: Second chart. Like above but returns chart info for chart slot #2.

MonT, DayT, YeaT, TimT: Int or Real: Transit chart. Like above but returns chart info for the time to transit over or progress to.

DayWeek: Int(Int1, Int2, Int3): Day of week. Returns the day of the week it is on month Int1, day Int2, year Int3.

ObjLon: Real(Int): Object longitude. Returns the zodiac position of an object.

ObjLat: Real(Int): Object latitude. Returns the ecliptic latitude of an object.

ObjDir: Real(Int): Object direction. Returns the velocity of an object. (Negative means retrograde motion.)

ObjDirY: Real(Int): Object direction Y. Returns the velocity of an object along the vertical axis.

ObjHouse: Int(Int): Object house. Returns the house placement of an object (i.e. 1-12).

ObjX: Real(Int): Object X. Returns the X coordinate of an object in space, in AU.

ObjY: Real(Int): Object Y. Returns the Y coordinate of an object in space, in AU.

ObjZ: Real(Int): Object Z. Returns the Z coordinate of an object in space, in AU.

ObjOn: Bool(Int): Object on. Returns whether an object is present and not restricted. Specified with -R switch.

ObjOnT: Bool(Int): Object on transit. Returns whether an object is present in transits and not restricted in transit restrictions. Specified with -RT switch.

ObjOrb: Real(Int): Object orb. Returns an object’s maximum aspect orb allowed, in degrees. Specified with -Am switch.

ObjAdd: Real(Int): Object addition. Returns how much aspects to an object should have their orbs widened, in degrees. Specified with -Ad switch.

ObjInf: Real(Int): Object influence. Returns the power of an object. Specified with -Yj switch.

ObjInfT: Real(Int): Object transit influence. Returns the power of an object when transiting. Specified with -YjT switch.

ObjCol: Int(Int): Object color. Returns the color index of an object. Specified with -YkO switch.

ObjDist: Real(Int): Object distance. Returns average distance of an object from the Sun (or Earth if it orbits it) in millions of kilometers.

ObjYear: Real(Int): Object year. Returns average length of year or time it takes an object to orbit the Sun (or Earth if it orbits it) in Earth years.

ObjDiam: Real(Int): Object diameter. Returns the diameter of an object, in kilometers.

AspAngle: Real(Int): Aspect angle. Returns the angle of an aspect, in degrees. Specified with -Aa switch.

AspOrb: Real(Int): Aspect orb. Returns the maximum orb allowed for an aspect, in degrees. Specified with -Ao switch.

AspInf: Real(Int): Aspect influence. Returns the power of an aspect. Specified with -YjA switch.

AspCol: Int(Int): Aspect color. Returns the color index of an aspect. Specified with -YkA switch.

Cusp: Real(Int): House cusp. Returns the zodiac position of a house cusp, in degrees.

Cusp3: Real(Int): 3D cusp. Returns the prime vertical position of a 3D house cusp, in degrees.

HouseInf: Real(Int): House influence. Returns the power of a house. Specified with the -YjC switch.

LonSign: Int(Real): Longitude sign. Returns the sign of a 0-360 degree zodiac position (i.e. 1-12).

LonDeg: Real(Real): Longitude degree. Returns the degree within a sign of a 0-360 degree zodiac position (0.0 to 30.0).

LonDist: Real(Real, Real): Returns the minimum distance between two 0-360 degree zodiac positions, in degrees (ranging from 0.0 to 180.0).

LonDiff: Real(Real1, Real2): Returns the minimum difference between zodiac positions Real2 and Real1, in degrees (ranging from -180.0 to 180.0)

LonMid: Real(Real, Real): Returns the midpoint of two 0-360 degree zodiac positions.

PolDist: Real(RealX1, RealY1, RealX2, RealY2): Polar distance. Returns the distance between two sets of longitude and latitude coordinates on a globe, in degrees.

HouseSys: Int: House system. Returns the index of the current house system.

GridNam: Int(IntX, IntY): Grid name. Returns the aspect present in the current aspect grid, or sign of the midpoint if a midpoint grid, or sign of the object if referencing coordinates on the main diagonal of a single chart grid.

GridVal: Int(IntX, IntY): Grid value. Returns the orb value present in the current aspect grid, or degree within sign of the midpoint if a midpoint grid, or degree within sign of the object if referencing coordinates on the main diagonal of a single chart grid. Either way, return value is number of arc-seconds.

Programming functions (which are related to programming and control flow):

Var: Num(Int): Variable lookup. Returns the value within the referenced custom variable.

Do: Num(Num1, Num2): Evaluate the parameter Num1, then return Num2. “Do” is useful as the function inside control flow functions such as “If” and “For”, to chain multiple operations together.

Do2: Num(Num1, Num2, Num3): Evaluate the parameters Num1 and Num2, then return Num3.

Do3: Num(Num1, Num2, Num3, Num4): Evaluate the parameters Num1 through Num3, then return Num4.

If: Num(Int, Num): If statement. If Int is true, then evaluate Num. Returns Num if true, else 0. Note that Num will only be evaluated if Int is true. Like the “if” statement in C.

IfElse: Num(Int, Num1, Num2): If/else. If Int is true, then evaluate and return Num1, otherwise evaluate and return Num2. Note that unlike the similar “?:” function, here only one of Num1 and Num2 will be evaluated. Like the “if / else” statement in C.

DoCount: Num(Int, Num): Loop. Evaluate expression Num for Int number of times in sequence. Return the final evaluation of Num (or 0 if it never got evaluated).

While: Num(Int, Num): While loop. Evaluates Int as an expression. If true, evaluates Num and then repeats. Keep reevaluating until expression Int is no longer true. Return the final evaluation of Num (or 0 if it never got evaluated). Warning: Expressions like “While True 0” will run forever and hang the program! Like the “while” statement in C.

DoWhile: Num(Int, Num): Do/while loop. Evaluates Num as an expression, then evaluates Int as an expression. If true, then evaluate again, and repeat until expression Int is no longer true. Return the final evaluation of Num. Like the “do/while” statement in C.

For: Int(Int1, Int2, Int3, Num): For loop. Set custom variable indicated by Int1 to Int2. While Int1 is less than or equal to Int3, evaluate Num, then increment Int1. Returns the final value of Int1 after the loop finishes. In most cases one wants to specify the variable Int1 as “%a” instead of “@a”. The former makes variable %a itself loop, while the latter makes the custom variable pointed to by the value of @a loop. Similar to the “for” loop in various languages.

Macro: Num(Int). Macro expression. Run and return the result of custom expression that was defined in slot Int with the ~M command switch.

Assign: Num(Int, Num): Variable assignment. Assigns Num to the custom variable Int, and also returns that number. Can also use “=” as a shortcut for “Assign”.

=a: Num(Num): Assign to “A”. Assigns Num to custom variable “A”, and also returns that number. Can also use functions “=b” through “=z” to assign to them.

There are several new command switches which allow one to define AstroExpression “hooks” into areas of chart calculation or display, to modify or filter their results. All AstroExpression related command switches start with the tilde (~) character:

1. ~ <string>: Parse AstroExpression. The passed in string will be parsed and evaluated, and the return value displayed. This is useful for debugging expressions, or querying the value of custom variables. For example, “~ 'Sqr Div 9.0 4.0'” will evaluate and display the expression “SquareRoot(9.0 / 4.0)” which is 1.5.

2. ~a <string>: Adjust aspect powers. Called during the -a switch aspect list chart, and allows one to adjust each aspect’s power. On entry, custom variables @w and @y are the two objects forming aspect, @x is the aspect, and @z is the current power (in thousandths, e.g. a power of 1.234 is integer 1234). Return value is ignored, although if @z is changed it will be the new power to use. For example, to triple the power of any aspect involving an object in the sign Sagittarius, do: ~a "If Or Equ LonSign ObjLon @w S_Sag Equ LonSign ObjLon @y S_Sag =z Mul @z 3"

3. ~E <string>: Filter ephemeris output. Called for each line in the text ephemeris chart. Return value is whether to display the line. For example, to do a stellium search and only display ephemeris lines in which there are at least 5 planets in the same sign, do: astrolog -n -Ey ~E "For %m 1 Signs = @m 0 For %m 0 Objs If ObjOn @m = LonSign ObjLon @m Inc Var LonSign ObjLon @m =n 0 For %m 1 Signs =n Max @n Var @m Gte @n 5"

4. ~d <string>: Filter transit to transit events. Called for each event in the -d switch chart. On entry, @q is the first object forming the event, @r is the object’s zodiac position, @s is the object’s retrogradation (negative for retrograde), @t is the aspect or other event (-1: sign change, -2: direction change, -3: degree change), @u is the second object forming the event (or new sign if that event), @v is the second object’s zodiac position, @w is the second object’s retrogradation, @x is Moon void of course indicator for how many seconds it will be v/c (-1 for not going v/c in this event), @y is the eclipse type (-1: eclipse detection turned off, 0: no eclipse, 1: penumbral, 2: total penumbral, 3: partial, 4: annular, 5: total), and @z is the eclipse percentage (if any). Return value is whether to display the event. For example, to display eclipses for this year (at least those in effect when corresponding aspect is exact) do: astrolog -n -dy =Yu ~d "Gt @y 0"

5. ~t <string>: Filter transit to natal events. Called for each event in the -t switch chart. On entry, @t is the first object forming the event, @u is the object’s zodiac position, @v is the object’s retrogradation (negative for retrograde), @w is the aspect (or -4 for 3D house change), @x is the second object forming the event (or destination house if 3D house change), @y is the second object’s zodiac position, and @z is the second object’s retrogradation. Return value is whether to display the transit. For example, to only display transit events taking place on weekends, do: ~t "=a DayWeek Mon Day Yea Or Equ @a 0 Equ @a 6"

6. ~j <string>: Filter influence powers. Called when a chart’s object and aspect powers are computed in the text mode -j influence and -7 esoteric charts. On entry, @x is the object, @y is its power due to positioning, and @z is its power due to aspects. Return value is ignored, although if you update @y and @z they will be the new powers used. For example, to give an extra 100 power to completely unaspected planets, do: ~j "=n 0 For %i 0 Objs If And Neq @i @x GridNam Min @i @x Max @i @x =n Inc @n If Lte @n 0 =z Add @z 100.0"

7. ~O <string>: Adjust object position. Called each time a chart is cast, and allows changing objects’ positions. On entry, @v is the object index, @w is the object’s zodiac position, @x is the object’s ecliptic latitude, @y is the object’s zodiac position velocity (negative for retrograde), and @z is the object’s vertical velocity. Return value is ignored, although if you update @w through @z the object’s positions and velocities will be updated. For example, to invert all zodiac positions 180 degrees for locations south of the equator, do: ~O "=w Add @w 180.0 Lt Lat 0.0"

8. ~C <string>: Adjust house cusp position. Called each time a chart is cast, and allows changing house cusp positions. On entry, @x is the house cusp (1-12), @y is the cusp’s zodiac position, and @z is the cusp’s 3D house position. Return value is ignored, although if @y and @z are changed the cusp’s positions will be updated. For example, Astrolog supports Null houses or the “0 Aries” system, an equal house system in which the 1st house cusp is always 0Aries. Suppose you want a “0 Leo” house system in which the 1st house cusp is always 0Leo? This can be done with: ~C "=y Mul Sub Add S_Leo @x 2 30.0"

9. ~A <string>: Redefine aspect orb. Called for each cell whenever the aspect grid is internally composed. On entry, @v and @x are the two objects potentially being aspected, @w is the aspect, @y is the difference in angle between them (negative for applying and positive for separating), and @z is the default max orb. Return value is ignored, although if @z is changed it will be the new max orb to use. For example, to have separating aspects have 70% the orb of applying aspects, do: ~A "If Gt @y 0.0 =z Mul @z 0.70"

10. ~kO <string>: Customize object color. Called each time an object glyph is displayed, and allows one to change its color. On entry, @y is the object, and @z is the default color. Return value is ignored, although if @z is changed it will be the new color to use. For example, to make planets colored the same as the zodiac sign they’re located within, do: ~kO "=z ObjCol Dec Add O_Asc LonSign ObjLon @y"

11. ~kA <string>: Customize aspect color. Called each time an aspect line is drawn between two planets in a wheel chart, and allows one to change its color. On entry, @w and @y are the two objects being aspected, @x is the aspect, and @z is the default color. Return value is ignored, although if @z is changed it will be the new color to use. For example, to change the color of aspect lines involving the Sun or Moon to magenta, do: ~kA "If Or Lte @w O_Moo Lte @y O_Moo =z K_Mag"

12. ~M <0-26> <string>: Define AstroExpression macro: Similar to command switch macros, you can define custom AstroExpression macro functions. The first parameter is the macro slot to fill, and the second is the AstroExpression to place within it. Macros can be called in AstroExpressions with the “Macro <arg>” function, in which parameter <arg> is the macro index to call.

13. ~0: Disable AstroExpressions. AstroExpressions are often hooks inserted into program operation, which means they may be evaluated on every screen update. Therefore, they automatically get disabled if there’s an error parsing one, to avoid a continuous stream of errors. The ~0 switch disables all AstroExpression hooks in the current program session, which means “_~0” can be used to reenable them. This setting will also disable the display of the result when using the ~ switch, although not any side effects of its evaluation (which is useful to e.g. initialize custom variables in switch files without getting popup windows). In the Windows version, the “Enter Command Line” dialog has a new “Enable AstroExpression Hooks” checkbox, which can be used to enable, disable, or check their status.

One final feature is that parsing of many dialog fields and command switches can use AstroExpressions. If the parameter starts with a tilde (~) character, then the rest of it will be parsed as an AstroExpression. For example, to find and restrict the first unrestricted object, do: -R "~=b 0 For %a 0 Objs If ObjOn @a Do =b @a =a Objs @b"

LICENSE

IMPORTANT NOTICE: Astrolog and all chart display routines and anything not enumerated below used in this program are Copyright (C) 1991-2020 by Walter D. Pullen (Astara@msn.com, http://www.astrolog.org/astrolog.htm). Permission is granted to freely use, modify, and distribute these routines provided these credits and notices remain unmodified with any altered or distributed versions of the program.

The main ephemeris databases and calculation routines are from the library SWISS EPHEMERIS and are programmed and copyright 1997-2008 by Astrodienst AG. The use of that source code is subject to the license for the Swiss Ephemeris Free Edition, available at http://www.astro.com/swisseph. This copyright notice must not be changed or removed by any user of this program.

Additional ephemeris databases and formulas are from the calculation routines in the program PLACALC and are programmed and Copyright (C) 1989,1991,1993 by Astrodienst AG and Alois Treindl (alois@astro.ch). The use of that source code is subject to regulations made by Astrodienst Zurich, and the code is not in the public domain. This copyright notice must not be changed or removed by any user of this program.

The original planetary calculation routines used in this program have been copyrighted and the initial core of this program was mostly a conversion to C of the routines created by James Neely as listed in 'Manual of Computer Programming for Astrologers', by Michael Erlewine, available from Matrix Software.

Atlas composed using data from https://www.geonames.org/ licensed under a Creative Commons Attribution 4.0 License. Time zone changes composed using public domain TZ database: https://data.iana.org/time-zones/tz-link.html

The PostScript code within the core graphics routines are programmed and Copyright (C) 1992-1993 by Brian D. Willoughby (brianw@sounds.wa.com).

More formally: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful and inspiring, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, a copy of which is in the LICENSE.HTM file included with Astrolog, and at http://www.gnu.org

O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O

* Walter D. "Cruiser1" Pullen :) ! Astara@msn.com *

O Astrolog 7.00 homepage: http://www.magitech.com/astrolog/astrolog.htm O

* "Who am I, What am I? As I am, I am not. But as we are, I AM. And to *

O you my creation, My Perfect Love is your Perfect Freedom. And I will be O

* with you forever and ever, until the End, and then forever more." - GOD *

O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O*O