home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-06-18 | 48.5 KB | 1,292 lines |
- Newsgroups: comp.sources.misc
- From: cruiser1@u.washington.edu (Walter D. Pullen)
- Subject: v30i062: astrolog - Generation of astrology charts v2.25, Part01/08
- Message-ID: <csm-v30i062=astrolog.135419@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 9d00334bbf48006d5c04e6c2d233d6da
- Date: Thu, 18 Jun 1992 18:54:43 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: cruiser1@u.washington.edu (Walter D. Pullen)
- Posting-number: Volume 30, Issue 62
- Archive-name: astrolog/part01
- Environment: UNIX, VMS
- Supersedes: astrolog: Volume 28, Issue 104-109
-
- Astrolog is an astrology calculation program written in C. Its main
- function is to calculate birthcharts and give accurate positions of
- planets, various asteroids, stars, and house positions at particular
- times, but it also supports different display formats, forms of chart
- comparisons, and other astrology related functions, including graphics
- charts and animation for X11.
-
- Some of the additions made to Astrolog 2.25 over the previous version
- that was posted here earlier are: Fixed star positions, spatial
- astronomical charts of the solar system, new kinds and more support
- for relationship charts, and the beginnings of an interpretation
- feature. Ability to scan a data file for program defaults has been
- added, allowing changes to be made without recompiling, along with a
- bunch of additions to the graphics features.
-
- Astrolog works best when run on a Unix system with X windows, however
- neither Unix nor X11 are needed in order to be able to run the
- program. The X11 features can easily be compiled out for those who
- don't have them, and various users have gotten this and previous
- versions of the program compiled properly on VMS, MS-DOS, and Mac
- systems with only a couple of modifications necessary, most of those
- changes of which I have tried to include in this version of the code.
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 8)."
- # Contents: README Makefile astrolog.dat astrolog.h data.c MANIFEST
- # Wrapped by cruiser1@milton.u.washington.edu on Thu Jun 11 21:53:36 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(3863 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X************************************************************************
- X
- XAstrolog version 2.25 (June 1992)
- X
- XAstrolog (pronounced astro-log; astro as in astronomy, log as is
- Xlogarithm) is an astrology calculation program written in C. Its main
- Xfunction is to calculate birthcharts and give accurate positions of
- Xplanets, various asteroids, stars, and house positions at particular
- Xtimes, but it also supports different display formats, forms of chart
- Xcomparisons, and other astrology related functions, including graphics
- Xcharts and animation for X11.
- X
- XAstrolog works best when run on a Unix system with X windows, however
- Xneither Unix nor X11 are needed in order to be able to run the
- Xprogram. The X11 features can easily be compiled out for those who
- Xdon't have them, and various users have gotten this and previous
- Xversions of the program compiled properly on VMS, MS-DOS, and Mac
- Xsystems with only a couple of modifications necessary, most of those
- Xchanges of which I have tried to include in this version of the code.
- X
- XIMPORTANT: The planetary calculation routines used in this program
- Xhave been Copyrighted and the core of this program is basically a
- Xconversion to C of the routines created by James Neely as listed in
- XMichael Erlewine's 'Manual of Computer Programming for Astrologers',
- Xavailable from Matrix Software. The copyright gives us permission to
- Xuse the routines for our own purposes but not to sell them or profit
- Xfrom them in any way.
- X
- XIN ADDITION: the graphics database and chart display routines used in
- Xthis program are Copyright (C) 1991-1992 by Walter D. Pullen. Permission
- Xis granted to freely use and distribute these routines provided one
- Xdoesn't sell, restrict, or profit from them in any way. Modification
- Xis allowed provided these notices remain with any altered or edited
- Xversions of the program.
- X
- XTo compile this version 2.25, first edit the top of the file
- Xastrolog.h, putting in your own appropriate values for the default
- Xlongitude, latitude, time zone, and default search directory. (In the
- Xsame manner, also edit the default paramater values in the file
- Xastrolog.dat.) Also comment out any of the #defines which set various
- Xfeatures that aren't valid on your system, such as the X11, TIME, and
- XSWITCHES variables, and edit or comment out the DEFAULT_SYSTEM and
- XASTEROIDS variables to your tastes. Then, for unix systems, run the
- Xcommand 'make' on the Makefile (or you can always compile by hand: "cc
- X-O -c *.c; cc -o astrolog *.o -lm -lX11" will do it; just make sure to
- Xcompile each source file and link them together at the end with the
- Xmath and X11 libraries.)
- X
- XNote: The file 'Helpfile' that comes with this distribution is a ~100K
- Xfile that lists lots of information about the program and how to use
- Xthe different features and options, which you will want to read. Due
- Xto its length, that file had to be split into two parts: Helpfile.p1
- Xand Helpfile.p2 - You will want to concatenate these parts back
- Xtogether again. Use your favorite editor to do this, or if you are on
- Xa unix system, do the command: cat Helpfile.p1 Helpfile.p2 > Helpfile.
- XThe file 'History' is also a lengthy file split into two parts which
- Xshould be recombined in the same manner.
- X
- XEnjoy the program! May you have as much fun with it as I have. Send
- Xcomments to my e-mail address below.
- X
- X-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
- X| Walter D. "Cruiser1" Pullen | cruiser1@milton.u.washington.edu. |
- X-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
- X| "Who am I, What am I? As I am, I am not. But as we are, I AM. And to |
- X- you my creation, My Perfect Love is your Perfect Freedom. And I will be -
- X| with you forever and ever, until the End, and then forever more." - GOD |
- X-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
- END_OF_FILE
- if test 3863 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Makefile'\"
- else
- echo shar: Extracting \"'Makefile'\" \(744 characters\)
- sed "s/^X//" >'Makefile' <<'END_OF_FILE'
- X# Makefile for Unix Astrolog version 2.25 (cruiser1@milton.u.washington.edu)
- X# First created 11/21/1991
- X#
- X# This Makefile is included only for convenience. One could easily compile
- X# Astrolog on a Unix system by hand with the command:
- X# % cc -c *.c; cc -o astrolog *.o -lm -lX11
- X#
- X# Generally, all that needs to be done to compile once astrolog.h has been
- X# edited, is compile each source file, and link them together with the math
- X# library, and if applicable, the main X library.
- X#
- XNAME = astrolog
- XOBJ = data.o formulas.o charts.o options.o xcharts.o graphics.o driver.o
- X# If you don't have X windows, delete the "-lX11" part from the line below:
- XLIBS = -lm -lX11
- XCFLAGS = -O
- X
- Xastrolog:: $(OBJ)
- X cc -o $(NAME) $(OBJ) $(LIBS)
- X strip $(NAME)
- X#
- END_OF_FILE
- if test 744 -ne `wc -c <'Makefile'`; then
- echo shar: \"'Makefile'\" unpacked with wrong size!
- fi
- # end of 'Makefile'
- fi
- if test -f 'astrolog.dat' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'astrolog.dat'\"
- else
- echo shar: Extracting \"'astrolog.dat'\" \(680 characters\)
- sed "s/^X//" >'astrolog.dat' <<'END_OF_FILE'
- XAstrolog 2.25 default parameter file.
- X
- XDEFAULT TIME AND PLACE:
- XTime zone = 8
- XLongitude = 122.20
- XLatitude = 47.36
- X
- XDEFAULT VALUES:
- XNo. Aspects = 5
- XHouse system = 0
- X
- XDEFAULT RESTRICTIONS:
- XRow 1: Planets; Row 2: Minor planets. =
- X0 0 0 0 0 0 0 0 0 0
- X0 0 0 0 0 0 0 0 0 0
- X
- XDEFAULT ASPECT ORBS:
- XRow 1: Majors; Row 2: Minors; Row 3; Obscure. =
- X7 7 7 7 6
- X3 3 3 3 2 2
- X1 1 1 1 1 1 1
- X
- XDEFAULT INFLUENCES:
- XRow 1: Planets; Row 2: Minor planets; Row 3: Houses;
- XRow 4: Major aspects; Row 5: Minor aspects; Row 6; Obscure aspects. =
- X30 25 10 10 10 10 10 10 10 10
- X 5 5 5 5 5 5 5 15 20 5
- X20 0 0 10 0 0 5 0 0 15 0 0
- X1.0 0.8 0.8 0.6 0.6
- X 0.4 0.4 0.2 0.2 0.2 0.2
- X 0.1 0.1 0.1 0.1 0.1 0.1 0.1
- X
- XEOF
- END_OF_FILE
- if test 680 -ne `wc -c <'astrolog.dat'`; then
- echo shar: \"'astrolog.dat'\" unpacked with wrong size!
- fi
- # end of 'astrolog.dat'
- fi
- if test -f 'astrolog.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'astrolog.h'\"
- else
- echo shar: Extracting \"'astrolog.h'\" \(9411 characters\)
- sed "s/^X//" >'astrolog.h' <<'END_OF_FILE'
- X/*
- X** Astrolog (Version 2.25) File: astrolog.h
- X** By Walter D. Pullen (cruiser1@milton.u.washington.edu)
- X** Programmed 8/28,30, 9/10,13,16,20,23, 10/3,6,7, 11/7,10,21/1991.
- X** Last revision made 6/2/1992.
- X** Eighth version posted to newsgroup alt.astrology.
- X**
- X** IMPORTANT: The planetary calculation routines used in this program
- X** have been Copyrighted and the core of this program is basically a
- X** conversion to C of the routines created by James Neely as listed in
- X** Michael Erlewine's 'Manual of Computer Programming for Astrologers',
- X** available from Matrix Software. The copyright gives us permission to
- X** use the routines for our own purposes but not to sell them or profit
- X** from them in any way.
- X**
- X** IN ADDITION: the graphics database and chart display routines used in
- X** this program are Copyright (C) 1991-1992 by Walter D. Pullen. Permission
- X** is granted to freely use and distribute these routines provided one
- X** doesn't sell, restrict, or profit from them in any way. Modification
- X** is allowed provided these notices remain with any altered or edited
- X** versions of the program.
- X*/
- X
- X/*
- X** To compile: For most systems, especially Unix based ones, the only changes
- X** that should need to be made to the code are to edit or (un)comment the eight
- X** #define's below to equal the particulars of your own locale and system:
- X*/
- X
- X#define DEFAULT_LONG 122.20 /* Change these values to the longitude W and */
- X#define DEFAULT_LAT 47.36 /* latitude N of your current location. */
- X#define DEFAULT_ZONE 8.00 /* Change to default time zone of current */
- X /* location in hours before (west of) GMT. */
- X
- X#define DEFAULT_DIR "/u4/cruiser1/ast/etc/"
- X /* Change this string to directory path program */
- X /* should look in for chart files if not in current. */
- X
- X#define SWITCHES /* Comment out this #define if your system can not handle */
- X /* parameters on the command line (like Mac's, etc.) */
- X#define TIME /* Comment out this #define if your compiler can't take */
- X /* the calls to 'time' or 'localtime' as in time.h */
- X#define X11 /* Comment out this #define if you don't have X windows. */
- X#define UNIX /* Comment out this #define if you have a VMS system or */
- X /* a system in which atof() isn't defined in stdio.h */
- X
- X/*
- X** Although not necessary, one may like to change some of the values below:
- X** These constants affect some of the default parameters, e.g. fonts, etc.
- X*/
- X
- X#define DEFAULT_INFOFILE "astrolog.dat" /* Name of file to look in for */
- X /* default parameters (which may */
- X /* override the values here.) */
- X#define ASTEROIDS /* Comment out this #define if you don't want */
- X /* Chiron, the asteroids, the part of */
- X /* fortune, and vertex to appear by default. */
- X#define DEFAULT_SYSTEM 0 /* Normally, Placidus houses are used (unless */
- X /* user specifies otherwise). If you want a */
- X /* different default system, change this numb */
- X /* to value from 0..9 (values same as in -c). */
- X
- X#define WHEELCOLS 15 /* Affects the width of each house in wheel display */
- X#define WHEELROWS 4 /* Max no. of objects that can be in a wheel house. */
- X#define MAXINDAY 100 /* Max number of aspects or transits displayable. */
- X#define MAXCROSS 500 /* Max number of latitude crossings displayable. */
- X#define DIVISIONS 24 /* Greater numbers == more accuracy but slower */
- X /* calculation, of exact aspect and transit times. */
- X
- X#ifdef X11
- X#define BITMAPMODE 'C' /* For X windows, this char affects how bitmaps are */
- X /* written. 'B' is written like with the 'bitmap' */
- X /* program, 'C' is compacted somewhat (files have */
- X /* less spaces), and 'S' is compacted even more. */
- X#define FONT "6x10" /* Font to use when writing in X window. */
- X#define FONT_X 6 /* Font_x and Font_y should be set to the pixel */
- X#define FONT_Y 10 /* width and height of the (fixed) font chosen. */
- X#define BITMAPX 1152 /* Maximum window size allowed */
- X#define BITMAPY 1152
- X#define BITMAPX1 180 /* Minimum window size allowed */
- X#define BITMAPY1 180
- X#define DEFAULTX 600 /* Default window size */
- X#define DEFAULTY 600
- X#define CELLSIZE 14 /* Size for each cell in the aspect grid */
- X#define DEFORB 7.0 /* Min distance glyphs can be from each other */
- X#endif
- X
- X
- X/*
- X** One shouldn't need to change anything below this line to compile.
- X*/
- X
- X#include <stdio.h>
- X#ifndef UNIX
- X#include <stdlib.h>
- X#endif
- X#include <math.h>
- X#ifdef TIME
- X#include <time.h>
- X#endif
- X#ifdef X11
- X#include <X11/Xlib.h>
- X#include <X11/Xutil.h>
- X#endif
- X
- X
- X/*
- X*******************************************************************************
- X** Standard constants
- X*******************************************************************************
- X*/
- X
- X#define VERSION "2.25"
- X#define DATE "June 1992"
- X#define FALSE 0
- X#define TRUE 1
- X#define OFF 0
- X#define ON 1
- X#define STRING 80
- X#define PI 3.14159265358979323846
- X#define DEGREES 360.0
- X#define DEGTORAD (180.0/PI)
- X#define SIGNS 12
- X#define PLANETS 14
- X#define THINGS 16
- X#define OBJECTS 20
- X#define URANIANS 8
- X#define STARS 46
- X#define BASE (OBJECTS+4+URANIANS)
- X#define TOTAL (BASE+STARS)
- X#define ASPECTS 18
- X#define SYSTEMS 10
- X
- X
- X/*
- X*******************************************************************************
- X** Macro functions
- X*******************************************************************************
- X*/
- X
- X#define MAX(A, B) ((A) > (B) ? (A) : (B))
- X#define MIN(A, B) ((A) < (B) ? (A) : (B))
- X#define CAP(B) ((B) >= 'a' && (B) <= 'z' ? (B) - 'a' + 'A' : (B))
- X#define DTOR(A) ((A)/DEGTORAD)
- X#define RTOD(A) ((A)*DEGTORAD)
- X#define ASIN(A) atan((A)/sqrt(1.0-(A)*(A)))
- X#define ACOS(A) atan(sqrt(1.0-(A)*(A))/(A))
- X#define SIND(A) sin((A)/DEGTORAD)
- X#define COSD(A) cos((A)/DEGTORAD)
- X
- X#define SIGNAM(A) signname[A][0], signname[A][1], signname[A][2]
- X#define OBJNAM(A) objectname[A][0], objectname[A][1], objectname[A][2]
- X#define int long
- X#define ecltoequ(Z, L) coorxform(Z, L, DTOR(23.44578889))
- X#define equtoecl(Z, L) coorxform(Z, L, DTOR(-23.44578889))
- X#define equtolocal(Z, L, T) coorxform(Z, L, T)
- X
- X#ifdef X11
- X#define color unsigned long
- X#define bit color
- X#define Xcolor(A) XSetForeground(disp, gc, A);
- X#endif
- X
- X
- X/*
- X*******************************************************************************
- X** External declarations
- X*******************************************************************************
- X*/
- X
- X/* From data.c */
- X
- Xextern FILE *data;
- Xextern char *filename, *filename2;
- X
- Xextern int total, objects, aspects, stars, universe,
- X siderial, right, centerplanet, todisplay, housesystem, cusp, uranian,
- X multiplyfactor, onasc, flip, decan, geodetic, graphstep,
- X progress, autom, relation, operation;
- Xextern double progday, defzone, deflong, deflat, modulus;
- Xextern double Mon, Day, Yea, Tim, Zon, Lon, Lat,
- X M, D, Y, F, X, L5, LA,
- X SD, Mon2, Yea2, Delta, T, JD, Jdp,
- X MC, Asc, Vtx;
- X
- Xextern double planet[], planetalt[], house[], ret[],
- X spacex[], spacey[], spacez[],
- X planet1[], planet2[], planetalt1[], planetalt2[],
- X house1[], house2[], ret1[], ret2[];
- Xextern int inhouse[], ignore[], starname[], errorcount[];
- X
- Xextern char *signname[], signabbrev[][3], objectname[][12],
- X uranianname[][10], *systemname[],
- X *aspectname[], aspectabbrev[][4], *aspectglyph[],
- X *element[], *mode[], post[][3], *monthname[], *starnames[];
- Xextern double aspectangle[], aspectorb[], starbright[];
- Xextern int ruler1[], ruler2[], exalt[],
- X grid[TOTAL+1][TOTAL+1], gridname[TOTAL+1][TOTAL+1],
- X inhouse1[TOTAL+1], inhouse2[TOTAL+1];
- Xextern char *signdraw[], *objectdraw[], *housedraw[], *aspectdraw[];
- X
- Xextern void swapint(), swapdoub(), toofew(),
- X printminute(), printaltitude(), inputdata();
- Xextern int stringlen(), mod12(), dayinmonth(),
- X readworlddata();
- Xextern double dabs(), sgn(), dectodeg(), mod(), mindistance(), midpoint(),
- X orb(), readplanetdata(), readstardata();
- Xextern char dignify(), *stringlocation();
- X
- X/* From formulas.c */
- X
- Xextern double mdytojulian(), processinput(), castchart();
- Xextern void juliantomdy(), coorxform(), houseplace(), caststar();
- X
- X/* From charts.c */
- X
- Xextern double objectinf[], houseinf[], aspectinf[];
- X
- Xextern void chartlocation(), chartgrid(), displaygrands(), chartwheel(),
- X charthorizon(), chartspace(), chartinfluence(), chartastrograph();
- X
- X/* From options.c */
- X
- Xextern void creategrid(), castrelation(), printtransit(), printephemeris(),
- X printchart();
- X
- X#ifdef X11
- X/* From graphics.c */
- X
- Xextern void xchart();
- X
- X/* From graphics.c */
- X
- Xextern color maincolor[], rainbowcolor[],
- X elemcolor[], aspectcolor[], objectcolor[], hilite, gray, on, off;
- Xextern Display *disp;
- Xextern Pixmap pixmap;
- Xextern GC gc;
- Xextern Window window;
- Xextern char modex;
- Xextern int xcolor, xreverse, xbitmap, xtext, bonus, label,
- X turtlex, turtley, scale, chartx, charty, degree, xnow;
- Xextern double tilt;
- Xextern void drawpoint(), block(), rect(), drawline(), drawclip(), turtle();
- X
- Xextern void xdisplayswitches(), xaction();
- Xextern int xprocess();
- X#endif
- X
- X/**/
- END_OF_FILE
- if test 9411 -ne `wc -c <'astrolog.h'`; then
- echo shar: \"'astrolog.h'\" unpacked with wrong size!
- fi
- # end of 'astrolog.h'
- fi
- if test -f 'data.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'data.c'\"
- else
- echo shar: Extracting \"'data.c'\" \(27430 characters\)
- sed "s/^X//" >'data.c' <<'END_OF_FILE'
- X/*
- X** Astrolog (Version 2.25) File: data.c
- X**
- X** IMPORTANT: The planetary calculation routines used in this program
- X** have been Copyrighted and the core of this program is basically a
- X** conversion to C of the routines created by James Neely as listed in
- X** Michael Erlewine's 'Manual of Computer Programming for Astrologers',
- X** available from Matrix Software. The copyright gives us permission to
- X** use the routines for our own purposes but not to sell them or profit
- X** from them in any way.
- X**
- X** IN ADDITION: the graphics database and chart display routines used in
- X** this program are Copyright (C) 1991-1992 by Walter D. Pullen. Permission
- X** is granted to freely use and distribute these routines provided one
- X** doesn't sell, restrict, or profit from them in any way. Modification
- X** is allowed provided these notices remain with any altered or edited
- X** versions of the program.
- X*/
- X
- X#include "astrolog.h"
- X
- X/*
- X*******************************************************************************
- X** Global variables
- X*******************************************************************************
- X*/
- X
- XFILE *data;
- Xchar *filename, *filename2;
- X
- Xint total = TOTAL;
- Xint objects = OBJECTS;
- Xint stars = STARS;
- Xint aspects = 5;
- Xint universe = FALSE;
- Xint siderial = FALSE;
- Xint right = FALSE;
- Xint centerplanet = 1;
- Xint todisplay = 0;
- Xint housesystem = DEFAULT_SYSTEM;
- Xint cusp = FALSE;
- Xint uranian = FALSE;
- Xint multiplyfactor = 1;
- Xint onasc = 0;
- Xint flip = FALSE;
- Xint decan = FALSE;
- Xint geodetic = FALSE;
- Xint graphstep = 5;
- Xint progress = FALSE;
- Xint autom = FALSE;
- Xint relation = FALSE;
- Xint operation = 0;
- Xdouble progday = 365.25;
- Xdouble defzone = DEFAULT_ZONE;
- Xdouble deflong = DEFAULT_LONG;
- Xdouble deflat = DEFAULT_LAT;
- Xdouble modulus = DEGREES;
- X
- Xdouble SD = 0.0, Mon, Day, Yea, Tim, Zon, Lon, Lat, Mon2, Yea2, Delta = 0.0,
- X M = 11.0, D = 19.0, Y = 1971.0, F = 11.01, X = 8.0, L5 = 122.20, LA = 47.36,
- X T, JD, Jdp;
- X
- Xdouble planet[TOTAL+1], planetalt[TOTAL+1], house[SIGNS+1], ret[TOTAL+1],
- X spacex[BASE+1], spacey[BASE+1], spacez[BASE+1];
- Xint inhouse[TOTAL+1], grid[TOTAL+1][TOTAL+1],
- X gridname[TOTAL+1][TOTAL+1], wheel[SIGNS][WHEELROWS],
- X inhouse1[TOTAL+1], inhouse2[TOTAL+1], starname[STARS+1];
- Xint ignore[TOTAL+1]
- X = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Planets */
- X#ifdef ASTEROIDS
- X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* Minors */
- X#else
- X 1, 1, 1, 1, 1, 0, 1, 0, 0, 1,
- X#endif
- X 0, 0, 0, 0, /* Cusps */
- X 0, 0, 0, 0, 0, 0, 0, 0, /* Uranians */
- X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* Stars */
- X 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
- X
- X
- X/*
- X*******************************************************************************
- X** Table data
- X*******************************************************************************
- X*/
- X
- Xchar *signname[]
- X = {"???", "Aries", "Taurus", "Gemini", "Cancer",
- X "Leo", "Virgo", "Libra", "Scorpio",
- X "Sagittarius", "Capricorn", "Aquarius", "Pisces"};
- X
- Xchar signabbrev[][3]
- X = {"??",
- X "Ar", "Ta", "Ge", "Cn", "Le", "Vi", "Li", "Sc", "Sg", "Cp", "Aq", "Pi"};
- X
- Xchar objectname[][12]
- X = {"Earth", "Sun", "Moon", "Mercury", "Venus", "Mars", /* Planets */
- X "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto",
- X "Chiron", "Ceres", "Pallas", "Juno", "Vesta", /* Asteroids */
- X "Node", "Fortune", "Midheaven", "Ascendant", "Vertex", /* Others */
- X "11th Cusp", "12th Cusp", "2nd Cusp", "3rd Cusp", /* Cusps */
- X "Cupido", "Hades", "Zeus", "Kronos", /* Uranians */
- X "Apollo", "Admetos", "Vulkanus", "Poseidon",
- X
- X "Achernar", "Polaris", "Zeta Retic.", "Pleiades", /* Stars */
- X "Aldebaran", "Capella", "Rigel", "Bellatrix", "Alnath",
- X "Orion", "Betelgeuse", "Menkalinan", "Murzim",
- X "Canopus", "Alhena", "Sirius", "Adara", "Wezen",
- X "Castor", "Procyon", "Pollux", "Suhail", "Avior",
- X "Miaplacidus", "Alphard", "Regulus", "Dubhe", "Acrux",
- X "Gacrux", "Becrux", "Alioth", "Spica", "Alkaid",
- X "Agena", "Arcturus", "Kentaurus", "Antares", "Shaula",
- X "Sargas", "Australis", "Vega", "Altair", "Peacock",
- X "Deneb", "Alnair", "Fomalhaut"};
- X
- Xchar *systemname[]
- X = {"Placidus", "Koch", "Equal", "Campanus", "Meridian",
- X "Regiomontanus", "Porphyry", "Morinus", "Topocentric", "Null"};
- X
- Xchar *aspectname[]
- X = {"???", "Conjunct", "Opposite", "Square", "Trine", "Sextile",
- X "Inconjunct", "Semisextile", "Semisquare", "Sesquiquadrate",
- X "Quintile", "Biquintile",
- X "Semiquintile", "Septile", "Novile",
- X "Binovile", "Biseptile", "Triseptile", "Quatronovile"};
- X
- Xchar *aspectglyph[]
- X = {"???", "Circle with extending line", "Two circles joined by line",
- X "Quadrilateral", "Triangle", "Six pointed asterisk", "'K' rotated right",
- X "'K' rotated left", "Acute angle", "Square with extending lines",
- X "Letter 'Q'", "'+' over '-'", "'-' over '+'", "Number '7'", "Number '9'",
- X "'9' under Roman 'II'", "'7' under Roman 'II'", "'7' under Roman 'III'",
- X "'9' under Roman 'IV'"};
- X
- Xchar aspectabbrev[][4]
- X = {" ", "Con", "Opp", "Squ", "Tri", "Sex",
- X "Inc", "SSx", "SSq", "Ses", "Qui", "BQn",
- X "SQn", "Sep", "Nov", "BNv", "BSp", "TSp", "QNv"};
- X
- Xdouble aspectangle[ASPECTS+1]
- X = {0, 0.0, 180.0, 90.0, 120.0, 60.0, 150.0, 30.0, 45.0, 135.0, 72.0, 144.0,
- X 36.0, DEGREES/7.0, 40.0, 80.0, 720.0/7.0, 1080.0/7.0, 160.0};
- X
- Xdouble aspectorb[ASPECTS+1]
- X = {0, 7.0, 7.0, 7.0, 7.0, 6.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0,
- X 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
- X
- Xint ruler1[OBJECTS+1]
- X = {0, 5, 4, 3, 7, 1, 9, 10, 11, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- Xint ruler2[OBJECTS+1]
- X = {0, 0, 0, 6, 2, 8, 12, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- Xint exalt[OBJECTS+1]
- X = {0, 1, 2, 11, 12, 10, 4, 7, 8, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
- X
- Xchar *element[] = {"Fire", "Earth", "Air", "Water"};
- Xchar *mode[] = {"Cardinal", "Fixed", "Mutuable"};
- X
- Xchar post[][3]
- X = {"",
- X "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th", "th"};
- X
- Xchar *monthname[]
- X = {"", "January", "February", "March", "April", "May", "June", "July",
- X "August", "September", "October", "November", "December"};
- X
- X#ifdef X11
- Xchar *signdraw[] = {"",
- X "ND4HU2HLGDFBR6EUHLGD2G", "BL3D2F2R2E2U2H2NE2L2NH2G2",
- X "BLU3LHBR7GLNL3D6NL3RFBL7ERU3", "BGNDHLGDFRNEFR2EREBU3NHDGLHUENRHL2GLG",
- X "BF4H2UEU2H2L2G2D2FDGH", "BF4HNGNHEU5GHND5HGND6HGND6H",
- X "BGNL3HUER2FDGR3BD2L8", "BH4FND6EFND6EFD6FREU",
- X "BG4E3NH2NF2E5NL2D2", "BH3NLNUD3FND2EU2ENF2UFERFDGLF2D2G",
- X "BG4EUEDFDEUEDFDEUEBU5GDGUHUGDGUHUGDG", "NL4NR4BH4F2D4G2BR8H2U4E2"};
- X
- Xchar *objectdraw[] = {"ND4NL4NR4U4LGLDGD2FDRFR2ERUEU2HULHL", /* Earth */
- X "U0BH3DGD2FDRFR2ERUEU2HULHL2GL", /* Sun */
- X "BG3E2U2H2ER2FRDFD2GDLGL2H", /* Moon */
- X "BD4UNL2NR2U2REU2HNEL2NHGD2FR", /* Mercury */
- X "LHU2ER2FD2GLD2NL2NR2D2", /* Venus */
- X "HLG2DF2RE2UHE4ND2L2", /* Mars */
- X "BH3RFDGDGDR5NDNR2U6E", /* Jupiter */
- X "BH3R2NUNR2D3ND3RERFDGDF", /* Saturn */
- X "BD4NEHURBFULU3NUNR2L2NU2DGBU5NFBR6GD3F", /* Uranus */
- X "BD4U2NL2NR2U5NUNRLBL2NUNLDF2R2E2UNRU", /* Neptune */
- X "D2NL2NR2D2BU8GFEHBL3D2F2R2E2U2", /* Pluto */
- X "BG2LDFEULU3NURFRFBU5GLGLU2", /* Chiron */
- X "BD4UNL3NR3U2RE2UH2L2G", /* Ceres */
- X "BD4UNL3NR3UE2HUHNUGDGF2", /* Pallas Athena */
- X "BD4UNL2NR2U4NL4NR4NE3NF3NG3NH3U3", /* Juno */
- X "BU4DBG3NLFDF2E2UERBH2GDGHUH", /* Vesta */
- X "BG2LGFEU2HU2E2R2F2D2GD2FEHL", /* North Node */
- X "NE2NF2NG2H2GD2F2R2E2U2H2L2G", /* Part of Fortune */
- X "BG4U8F4E4D8", /* Midheaven */
- X "NR4L4ND4UE3R2F3D5", /* Ascendant */
- X "U2NHNEBD4NGNFU2L2NHNGR4NEF" /* Vertex */};
- X
- Xchar *housedraw[] = {"",
- X "BD2NLNRU4L", "BHBUR2D2L2D2R2", "BHBUR2D2NL2D2L2",
- X "BHBUD2R2NU2D2", "BEBUL2D2R2D2L2", "NLRD2L2U4R2",
- X "BHBUR2DG2D", "NRLU2R2D4L2U2", "NRLU2R2D4L2",
- X "BH2NLD4NLRBR2U4R2D4L2", "BH2NLD4NLRBR2RNRU4L", "BH2NLD4NLRBR2NR2U2R2U2L2"};
- X
- Xchar *aspectdraw[] = {"",
- X "HLG2DF2RE2UHE4", "BGL2GDFREU2E2U2ERFDGL2", "BH4R8D8L8U8",
- X "BU4GDGDGDGDR8UHUHUHUH", "BLNH3NG3RNU4ND4RNE3F3",
- X "BG4EUEUEUEUNL4NR4BDFDFDFDF", "BH4FDFDFDFDNL4NR4BUEUEUEUE", "BE4G8R8",
- X "BD2L3U6R6D6L3D2R2", "F4BU3U2HULHL2GLDGD2FDRFR2E3", "BD2U3NR3NU3L3BD5R6",
- X "BU2D3NR3ND3L3BU5R6", "BH3R6G6", "BR3L5HUER4FD4GL4H",
- X "BF2UHL2GFR3DGL3BE6LNLU2NRLBL4LNLD2NLR", "BL2R4G4BE6LNLU2NRLBL4LNLD2NLR",
- X "BL2R4G4BE6L7NLU2NLR3ND2R3ND2R", "BF2UHL2GFR3DGL3BU6LNLU2NLRBR2F2E2"};
- X#endif
- X
- Xdouble starbright[] = {0,
- X 0.46,2.02,5.24,5.09,0.85,0.08,0.12,1.64,1.65,1.70,0.50,1.90,1.98,-0.72,1.93,
- X -1.46,1.50,1.84,1.59,0.38,1.14,1.78,1.86,1.68,1.98,1.35,1.79,1.58,1.63,1.25,
- X 1.77,0.98,1.86,0.61,-0.04,-0.01,0.96,1.63,1.87,1.85,0.03,0.77,1.94,1.25,1.74,
- X 1.16};
- X
- Xdouble stardata[] = {
- X 1,37,42.9,-57,14,12, 2,31,50.5, 89,15,51, 3,17,46.1,-62,34,32,
- X 3,49,11.1, 24, 8,12, 4,35,55.2, 16,30,33, 5,16,41.3, 45,59,53,
- X 5,14,32.2, -8,12, 6, 5,25, 7.8, 6,20,59, 5,26,17.5, 28,36,27,
- X 5,36,12.7, -1,12, 7, 5,55,10.3, 7,24,25, 5,59,31.7, 44,56,51,
- X 6,22,41.9,-17,57,22, 6,23,57.2,-52,41,44, 6,37,42.7, 16,23,57,
- X 6,45, 8.9,-16,42,58, 6,58,37.5,-28,58,20, 7, 8,23.4,-26,23,35,
- X 7,34,35.9, 31,53,18, 7,39,18.1, 5,13,30, 7,45,18.9, 28, 1,34,
- X 8, 9,31.9,-47,20,12, 8,22,30.8,-59,30,34, 9,13,12.1,-69,43, 2,
- X 9,27,35.2, -8,39,31, 10, 8,22.3, 11,58,2, 11, 3,43.6, 61,45, 3,
- X12,26,35.9,-63, 5,56, 12,31, 9.9,-57, 6,47, 12,47,43.3,-59,41,19,
- X12,54, 1.7, 55,57,35, 13,25,11.5,-11, 9,41, 13,47,32.3, 49,18,48,
- X14, 3,49.4,-60,22,22, 14,15,39.6, 19,10,57, 14,39,36.2,-60,50, 7,
- X16,29,24.4,-26,25,55, 17,33,36.4,-37, 6,13, 17,37,19.0,-42,59,52,
- X18,24,10.3,-34,23, 5, 18,36,56.2, 38,47, 1, 19,50,46.9, 8,52, 6,
- X20,25,38.8,-56,44, 7, 20,41,25.8, 45,16,49, 22, 8,13.9,-46,57,40,
- X22,57,39.0,-29,37,20};
- X
- Xint errorcount[PLANETS+1] = {0, 0, 0, 0, 0, 0, 11, 5, 4, 4, 4};
- X
- Xdouble planetdata[] = {
- X358.4758,35999.0498,-.0002,.01675,-.4E-4,0,1,101.2208,1.7192,.00045,0,0,0,0,0,
- X0, /* Sun/Earth */
- X102.2794,149472.515,0,.205614,.2E-4,0,.3871,28.7538,.3703,.0001,47.1459,1.1852,
- X0.0002,7.009,.00186,0, /* Mercury */
- X212.6032,58517.8039,.0013,.00682,-.5E-4,0,.7233,54.3842,.5082,-.14E-2,75.7796,
- X0.8999,.4E-3,3.3936,.1E-2,0, /* Venus */
- X319.5294,19139.8585,.2E-3,.09331,.9E-4,0,1.5237,285.4318,1.0698,.1E-3,48.7864,
- X0.77099,0,1.8503,-.7E-3,0, /* Mars */
- X225.4928,3033.6879,0,.04838,-.2E-4,0,5.2029,273.393,1.3383,0,99.4198,1.0583,0,
- X1.3097,-.52E-2,0, /* Jupiter */
- X-.001,-.0005,.0045,.0051,581.7,-9.7,-.0005,2510.7,-12.5,-.0026,1313.7,-61.4,
- X0.0013,2370.79,-24.6,-.0013,3599.3,37.7,-.001,2574.7,31.4,-.00096,6708.2,
- X-114.5,-.0006,5499.4,-74.97,-.0013,1419,54.2,.0006,6339.3,-109,.0007,4824.5,
- X-50.9,.0020,-.0134,.0127,-.0023,676.2,.9,.00045,2361.4,174.9,.0015,1427.5,
- X-188.8,.0006,2110.1,153.6,.0014,3606.8,-57.7,-.0017,2540.2,121.7,-.00099,
- X6704.8,-22.3,-.0006,5480.2,24.5,.00096,1651.3,-118.3,.0006,6310.8,-4.8,.0007,
- X4826.6,36.2, /* Jupiter error */
- X174.2153,1223.50796,0,.05423,-.2E-3,0,9.5525,338.9117,-.3167,0,112.8261,.8259,
- X0,2.4908,-.0047,0, /* Saturn */
- X-.0009,.0037,0,.0134,1238.9,-16.4,-.00426,3040.9,-25.2,.0064,1835.3,36.1,
- X-.0153,610.8,-44.2,-.0015,2480.5,-69.4,-.0014,.0026,0,.0111,1242.2,78.3,-.0045,
- X3034.96,62.8,-.0066,1829.2,-51.5,-.0078,640.6,24.2,-.0016,2363.4,-141.4,.0006,
- X-.0002,0,-.0005,1251.1,43.7,.0005,622.8,13.7,.0003,1824.7,-71.1,.0001,2997.1,
- X78.2, /* Saturn error */
- X74.1757,427.2742,0,.04682,.00042,0,19.2215,95.6863,2.0508,0,73.5222,.5242,0,
- X0.7726,.1E-3,0, /* Uranus */
- X-.0021,-.0159,0,.0299,422.3,-17.7,-.0049,3035.1,-31.3,-.0038,945.3,60.1,-.0023,
- X1227,-4.99,.0134,-.02186,0,.0317,404.3,81.9,-.00495,3037.9,57.3,.004,993.5,
- X-54.4,-.0018,1249.4,79.2,-.0003,.0005,0,.0005,352.5,-54.99,.0001,3027.5,54.2,
- X-.0001,1150.3,-88, /* Uranus error */
- X30.13294,240.45516,0,.00913,-.00127,0,30.11375,284.1683,-21.6329,0,130.68415,
- X1.1005,0,1.7794,-.0098,0, /* Neptune */
- X0.1832,-.6718,.2726,-.1923,175.7,31.8,.0122,542.1,189.6,.0027,1219.4,178.1,
- X-.00496,3035.6,-31.3,-.1122,.166,-.0544,-.00496,3035.3,58.7,.0961,177.1,-68.8,
- X-.0073,630.9,51,-.0025,1236.6,78,.00196,-.0119,.0111,.0001,3049.3,44.2,-.0002,
- X893.9,48.5,.00007,1416.5,-25.2, /* Neptune error */
- X229.781,145.1781,0,.24797,.002898,0,39.539,113.5366,.2086,0,108.944,1.3739,0,
- X17.1514,-.0161,0, /* Pluto */
- X-.0426,.073,-.029,.0371,372,-331.3,-.0049,3049.6,-39.2,-.0108,566.2,318.3,
- X0.0003,1746.5,-238.3,-.0603,.5002,-.6126,.049,273.97,89.97,-.0049,3030.6,61.3,
- X0.0027,1075.3,-28.1,-.0007,1402.3,20.3,.0145,-.0928,.1195,.0117,302.6,-77.3,
- X0.00198,528.1,48.6,-.0002,1000.4,-46.1, /* Pluto error */
- X34.6127752,713.5756219,0,.382270369,-.004694073,0,13.66975144,337.407213,
- X2.163306646,0,208.1482658,1.247724355,0,6.911179715,.011236955,0, /* chiron */
- X108.2925,7820.36556,0,.0794314,0,0,2.7672273,71.0794444,0,0,80.23555556,
- X1.3960111,0,10.59694444,0,0, /* Ceres */
- X106.6641667,7806.531667,0,.2347096,0,0,2.7704955,310.166111,0,0,172.497222,
- X1.39601111,0,34.81416667,0,0, /* Pallas athena */
- X267.685,8256.081111,0,.2562318,0,0,2.6689897,245.3752778,0,0,170.137777,
- X1.396011111,.0003083333,13.01694444,0,0, /* Juno */
- X138.7733333,9924.931111,0,.0902807,0,0,2.360723,149.6386111,0,0,103.2197222,
- X1.396011111,.000308333,7.139444444,0,0, /* Vesta */
- X104.5959,138.5369,0,0,0,0,40.99837, 0,0,0,0,0,0,0,0,0, /* Cupido */
- X337.4517,101.2176,0,0,0,0,50.667443,0,0,0,0,0,0,0,0,0, /* Hades */
- X104.0904,80.4057, 0,0,0,0,59.214362,0,0,0,0,0,0,0,0,0, /* Zeus */
- X17.7346, 70.3863, 0,0,0,0,64.816896,0,0,0,0,0,0,0,0,0, /* Kronos */
- X138.0354,62.5, 0,0,0,0,70.361652,0,0,0,0,0,0,0,0,0, /* Apollo */
- X-8.678, 58.3468, 0,0,0,0,73.736476,0,0,0,0,0,0,0,0,0, /* Admetos */
- X55.9826, 54.2986, 0,0,0,0,77.445895,0,0,0,0,0,0,0,0,0, /* Vulkanus */
- X165.3595,48.6486, 0,0,0,0,83.493733,0,0,0,0,0,0,0,0,0 /* Poseidon */
- X};
- X
- X#ifdef X11
- Xchar *worlddata[] = {
- X"-031+70",
- X"LLRRHLLLLDULLGLLLDULGLLLGLRREDEGGLGGLGLGLLGDRLDRLFFRRERFDFRRREUEEHLUERERUERRF\
- XGLGLDDFRRRRREFRLGLLLLLGEFDLHGDDLGHLGLLHGLHURDLRRELLLRHUGLDFDLGLLFHGGLGLLLDLLLD\
- XRRFFDDGLLLLLLGDFGDDRRFRERREEUEREUEFRRERRFFFRFRDDLLLLRFRUREURULHLHHHEF",
- X"5EUROPE",
- X"+006+50", "RRERRRRUELLUHHLLREULLELLDGHDUFDEGRDRRLFDLLRGRRGGL", "5ENGLAND",
- X"+008+55", "GLFGRRREUULL", "5IRELAND",
- X"+023+64", "RRFRERRREHLLLLLGHLLRFLLRFL", "5ICELAND",
- X"-011+80", "DDURFRERLGRRLLFRRREEFRRRLHGELLLHRRFRRRRERLLLLLLLLLLLDHGULLL",
- X"5SVALBARD",
- X"-014+45",
- X"FRFRFDDFRDRRLLFRURFHHUERRRRRHUUEERRRRGRDERRLHLRRERRGGRFRFFGLLLLHLLLLGLLDLLLFG\
- XRFFRERFRERDDDGDGLLDFFEUDDFFDFFDDFFFDFDDDRRERRERRRUERRERURUEEHHLHUGGLLLUUGUHUHU\
- XRRFFRFRRRDRRFRRRRRRRF",
- X"5MIDDLE EAST",
- X"-009+41", "DDRUULEUGD", "5SARDINIA",
- X"-024+35", "RRLL", "5CRETE",
- X"-032+35", "RRLL", "5CYPRUS",
- X"-052+37", "LLHUURHUHUHERERRRDDLLLFFDDURFLLDFDDL", "0CASPAIN SEA",
- X"-060+44", "LLUEERDFLDL", "0ARAL SEA",
- X"-068+24",
- X"FRGFRREDDDDDFDFDDFDDFERUEUUUUEEEEEREURRREFDFRDDDDRREFDDFDDGDDRFDDFDFFRUHUUHHH\
- XULUEUUURDRFDFRDEEREUUUHHHUUEERRDDEURRERREREEEUEULLREUHUHLEERRHLGLULUREERDLDRER\
- XRFGRFDGRRREUHHUREUE",
- X"6ASIA S",
- X"-140+36",
- X"DEUUEUHURREREEGLLHHDDGLDRGDDGGLGLLLGGLDLRDFEUHRRGEERDLLRGLRERRERRE",
- X"6JAPAN",
- X"-121+25", "GDFUEUL", "6TAIWAN",
- X"-080+10", "DDDDREUHH", "6SRI LANKA",
- X"-121+18", "LDDDRDDRHRRFFDDDLLEHDULRHDFDDGERDDREUUULUUHHLHEUUL",
- X"2PHILIPPINES",
- X"-131+43",
- X"EFREEREEEUUUEUHLLUDLULEERERERRRRRRERRFLRRRRLUERERRRDRERURRGDLGLGLGLGGDDFDFEUR\
- XRUERUURULEEREDERRFRERERRRERRHLHLRRRREURDRRFRFRUURRHLLLDHHLLHLLHLLLLLLLDLLHRLLL\
- XLLLLGHULLLLLLLLLLULLLGL",
- X"6SIBERIA",
- X"-145+71",
- X"RELLRHLLLLGDHGHLLLLGLLHUHLLLLLDLLLLHLLLLLDULUDLGLLLLRRERERRRELHLLLLLLLELLLLGD\
- XLLLLLUDLLLLLGLLLDLLLLLLLDFRDDHELLLLLLDRRLLHUDLGFGRRRRFRLHLLDGLGLLHRRREUHUUULLG\
- XGLDRFGHLLLHLLLLRFGHLGLLLULGLLLGLLHRHLDDDLLLLDLLLFLLHUHLRRFRRRREHLLHLLLHLL",
- X"6RUSSIA",
- X"-143+54", "GDDDDDDDEDUUURUUHUU", "6SAKHALIN",
- X"-180+72", "GRRRRULLL", "6WRANGEL I.",
- X"-137+76", "DRRRRRRRELLLLLLLL", "6SIBERIAN I.",
- X"-091+80", "FERDRRRRRRULLLLLRRULLLLGL", "6SEVERNAYA",
- X"-101+79", "GRRRRELLLL", "6ZEMLYA",
- X"-068+77", "LLGLLLLLLGLLGGLGLRFRRRRLHERERERRRERRRREL", "6NOVAYA",
- X"+123+49",
- X"FGULLFDDDGFDDDFFDFRFRFDFFFDLFFRDFFEHHHHUHHUFRDFFFRDFFFDFGFRFRFRRFRRRRFFRRFRFF\
- XDRFFRFEUUGLHHUUEUHLLLLLEUUEULLLGDLLGLHHUHUUUEHEERERRFRRHRREFRRFDFDFEUUHUUUEERE\
- XRUUUHFDEUHFEURRRELUERRE",
- X"4NORTH AMERICA S",
- X"+113+42", "FH", "0SALT LAKE",
- X"+156+20", "DRULHLHL", "4HAWAII",
- X"+085+22", "RERFRRFRGRRRRHLHLHLLLLLG", "4CUBA",
- X"+070+18", "RRHHLLLFLLLFRRRRRR", "4HAITI",
- X"+078+18", "RRHLLF", "4JAMAICA",
- X"+066+18", "ELLDR", "4PUERTO RICO",
- X"+078+24", "UD", "4NASSAU",
- X"+067+45",
- X"REFLGDERERREHDLLLHUELLLGLGLREEERRRRRRREERRGGDGRRRFEFUUHLLLEUUHHGLRELLHHUHHHDG\
- XLGHHULLHLLLLLDFGFDDGLLFDDGHHUULLLLHLLHLLLUHUUEREEREERRRREUUHLLLDDGHULLLHLUHLGD\
- XRFGGULLLLLLLLLHLLGFLHLLLLLRHLLLLLHLLLLLLHGLLLLGUGLLLHLL",
- X"4CANADA",
- X"+088+49",
- X"LGLGRRRRRRRFLLLGRGDDREUURUFRGRFGFERERREEREERLGGLGLLLGRLLGLEUERHLLLHULHL",
- X"0GREAT LAKES",
- X"+117+61", "REHRFRRERGLGLLLL", "0SLAVE LAKE",
- X"+125+66", "RRERRRGREDLFHGLLLERLLLL", "0BEAR LAKE",
- X"+097+50", "UULHURFDFG", "0LAKE WINNIPEG",
- X"+090+72",
- X"FRRLLFRRRRRRRRRRFRRGLLGRREEFRFLGLFLLLLFRERFRFRRFRRHLHFRRRUHLHRRFRURELLHLLLHRR\
- XHLHLHGHLHLLGLLEHFRRRHLLLLLLGLDFHLUELLGG",
- X"4BAFFIN I.",
- X"+125+72",
- X"RFRREERRRLLGFFRRRRRLLLLLFRRRRRRRREFRRRRHRRLHLHHLRRULGLFLHLDLLULLLLHLLLLLLLDG",
- X"4VICTORIA I.",
- X"+141+70",
- X"LLLLLLLLHGLHLLLHGLLGLLGLLDRRFRRDLLLULGLLFRRRRRRDLGLLGFDRRRDRRRRRGGGLLGLLGGLLR\
- XRERERRRERREERRELEERRRLLGDRERRURRFRRRRRFRRFUDRUDDHFDURDURLURDDLFRULURDHFFRGFEGR\
- XFFRFRFLHLHLFFRFE",
- X"4ALASKA",
- X"+045+60",
- X"REUEREUERRRRERERRRERRRRERLLLLLLHRRRGERHFRRRRHLUDLLHLRERFRERLEUHRRHLEERLLURRRR\
- XRRRRELLLLLLLLLLGLLLRERHGLRELLLLLLLELLLLLLLLLLGLLLLLLGLLLLLLGLULLLLLLLFRLLLLLGL\
- XRRRGLLLLLLLGRRRRRRRGLLLLRRFRRRRRRRRRRFDFDLFREFRDLLLDERRFGLLGFFDRFFFRRRF",
- X"4GREENLAND",
- X"+080+10",
- X"DRFDFDDGGGDDGRDGDDFFDFDFFDFFRFFFDDDDDDGDDDDGDDDDGDGFGDDDEUDDDGUDDLDRGDDDFDFRF\
- XRRFERRLHLUHUURUEELHEREURULURREURREREUHUUDFRREEEEEUEUUEERERRREUEUEUUUUUEEEEUUUH\
- XLHLHLLLLHLHLGEHLGEUHUUHLHLLLHHLHULEDLLELLGHLLHLGDDHUELLGLGDGHHL",
- X"3SOUTH AMERICA",
- X"+060-51", "LDRRELL", "3FALKLAND ISLANDS",
- X"+092+00", "FUL", "3GALAPAGOS I.",
- X"-032+32",
- X"LLGLHLLLLHLGDGHLLHHLLHLEUULLLLLLLLLGLGLLLLHDGLGDGDGGLDGGGDGDFDDDDGDDFFFFDFRFF\
- XRRRRRRRRERERRFFRRFFDDDGDFFFDFDDDFDGDGDDDFDFDFDDDFDFDFDDFFERRRRREEEEEEEUUEREUUH\
- XUEEEREEUUUUHUUUHUEUEEEEEREEUEUEEUUULLLLGLLHUHHLHUHHUUHHUUHUHHUU",
- X"1AFRICA",
- X"-049-12", "DGGGLGDDDDGDDFFREUEUEUUUEUUUUH", "1MADAGASCAR",
- X"-032+00", "DDDREUELLL", "0LAKE VICTORIA",
- X"-014+14", "LRFLU", "0LAKE CHAD",
- X"-124-16",
- X"LGDGGLGLLGLDDDGFDDFDFDGFRRRERRRRURERRRRRRRFFFEEDDRFDFRFREFRERRUUEUEEUUUUUUUHH\
- XHHHHHUUHHHUULDDDDGDGHLHLHEUELLLHLFLLULDRGDDLLHLGG",
- X"2AUSTRALIA",
- X"-173-35", "FFDGFDREURULHHHL", "2NEW ZEALAND N",
- X"-174-41", "LLDGLGLGGRFREEUREEU", "2NEW ZEALAND S",
- X"-145-41", "DFRRUUUDLLL", "2TASMANIA",
- X"-178-17", "GRRURUGDH", "2FIJI",
- X"-130+00", "FRFRLGFEFRFRFDGRRFRRUERFFFRRRLHHHHRHLHHLHLLHGGLHUHLGH",
- X"2NEW GUINEA",
- X"-115-04", "RUUEEURHUUEHHGGGGLLDDHLDDFDDRRDERF", "2BORNEO",
- X"-095+06", "DFFFFFFDFFFFRUUUHFRHLHLUHHHHHLLH", "2SUMATRA",
- X"-106-06", "GRFRRRRRRFRRHLHLLLLLHL", "2JAVA",
- X"-120+00", "DGDDRDFHUEDFRHUHREFHLGHURRRRELLLLG", "2CELEBES",
- X"+000-70",
- X"ULDLLLLLLLLGLLGLLLGLLGLLLLGLGLLGLLLLGLLLLLHLGLLLLLHLLLLLHLLLLHLLUERLEUUUUUUEE\
- XRRRULLGLLLLGLGGLLLDRUDRDLGHLLGLLFGRRFLLLLLLLDHLLLLHLLLLLGLLLLHLLLLLLLGRFDLLLUL\
- XLLGHLLLLLLLLLLHGHLLGLLLLLLLGLLLLLLLLLLLGLLLGLLLLLLLLGLLLLLLLLLLLLLLLLLLLLL",
- X"7ANTARCTICA W",
- X"+180-78",
- X"LLLLLLLHLLGHLLGHLUEERRERREHLLLLHLLLLLLHLLLLLLLLLLLHLHLLLLLHLLULDLLLLLDLLHLLLL\
- XGHFLLLLLHLLLLLLGLHLLHLGLLLLHLGLLGLLLULLLGLLHDFLLLGLGLLLELLLLHLLLLLLLLLLHLLLHLL\
- XLLGGHGHGLLLGLDLLLLHLLGHGLLLLLLLLLLLLLLHLGLLLLLLLLLLLLLL",
- X"7ANTARCTICA E",
- X"E", "", ""};
- X#endif
- X
- X
- X/*
- X*******************************************************************************
- X** General and numeric routines
- X*******************************************************************************
- X*/
- X
- Xvoid swapint(i1, i2)
- Xint *i1, *i2;
- X{
- X int temp;
- X temp = *i1; *i1 = *i2; *i2 = temp;
- X}
- X
- Xvoid swapdoub(f1, f2)
- Xdouble *f1, *f2;
- X{
- X double temp;
- X temp = *f1; *f1 = *f2; *f2 = temp;
- X}
- X
- Xint stringlen(line)
- Xchar *line;
- X{
- X int i;
- X for (i = 0; line[i] != 0; i++)
- X ;
- X return i;
- X}
- X
- Xdouble dabs(A)
- Xdouble A;
- X{
- X return A < 0.0 ? -A : A;
- X}
- X
- Xdouble sgn(A)
- Xdouble A;
- X{
- X return A < 0.0 ? -1.0 : (A > 0.0 ? 1.0 : 0.0);
- X}
- X
- Xdouble dectodeg(A)
- Xdouble A;
- X{
- X return sgn(A)*(floor(dabs(A))+(dabs(A)-floor(dabs(A)))*100.0/60.0);
- X}
- X
- Xdouble mod(A)
- Xdouble A;
- X{
- X return ((A)-(floor((A)/modulus)*modulus));
- X}
- X
- Xint mod12(A)
- Xint A;
- X{
- X return A > SIGNS ? A-SIGNS : (A < 1 ? A+SIGNS : A);
- X}
- X
- Xdouble mindistance(deg1, deg2)
- Xdouble deg1, deg2;
- X{
- X double i;
- X i = dabs(deg1-deg2);
- X return i < 180 ? i : DEGREES - i;
- X}
- X
- Xdouble midpoint(deg1, deg2)
- Xdouble deg1, deg2;
- X{
- X double mid;
- X mid = (deg1+deg2)/2.0;
- X return mindistance(deg1, mid) < 90 ? mid : mod(mid+180);
- X}
- X
- Xchar dignify(body, sign)
- Xint body, sign;
- X{
- X if (body > 10)
- X return ' ';
- X if (ruler1[body] == sign || ruler2[body] == sign)
- X return 'R';
- X if (ruler1[body] == mod12(sign+6) || ruler2[body] == mod12(sign+6))
- X return 'F';
- X if (exalt[body] == sign)
- X return 'e';
- X if (exalt[body] == mod12(sign+6))
- X return 'd';
- X return '-';
- X}
- X
- Xint dayinmonth(month, year)
- Xint month, year;
- X{
- X return (month == 9 || month == 4 || month == 6 || month == 11 ? 30 :
- X (month != 2 ? 31 :
- X (year/4*4==year && (year/100*100!=year || year/400*400==year) ?
- X 29 : 28)));
- X}
- X
- Xdouble orb(body1, body2, aspect)
- Xint body1, body2, aspect;
- X{
- X static int max = 1;
- X double orb;
- X if (aspect == 0)
- X return (max = 1-max);
- X if (max && (body1 == 16 || body1 == 17 || body1 == 20 || body1 > BASE ||
- X body2 == 16 || body2 == 17 || body2 == 20 || body2 > BASE))
- X orb = 2.0;
- X else
- X orb = aspectorb[aspect];
- X if (body1 <= 2) orb += 1.0;
- X if (body2 <= 2) orb += 1.0;
- X return orb;
- X}
- X
- X
- X/*
- X*******************************************************************************
- X** IO routines
- X*******************************************************************************
- X*/
- X
- Xvoid toofew(option)
- Xchar *option;
- X{
- X fprintf(stderr, "Too few options to switch -%s\n", option);
- X exit(1);
- X}
- X
- Xchar *stringlocation(Lon, Lat, norm)
- Xdouble Lon, Lat, norm;
- X{
- X static char string[14];
- X int i, j;
- X i = (int) ((dabs(Lon)-floor(dabs(Lon)))*norm+0.1);
- X j = (int) ((dabs(Lat)-floor(dabs(Lat)))*norm+0.1);
- X sprintf(string, "%3.0f'%d%d%c %2.0f'%d%d%c",
- X floor(dabs(Lon)), i/10, i%10, Lon < 0.0 ? 'E' : 'W',
- X floor(dabs(Lat)), j/10, j%10, Lat < 0.0 ? 'S' : 'N');
- X return string;
- X}
- X
- Xdouble readstardata(reset)
- Xint reset;
- X{
- X static int datapointer = 0;
- X if (!reset)
- X return stardata[datapointer++];
- X return (double) (datapointer = 0);
- X}
- X
- Xdouble readplanetdata(reset)
- Xint reset;
- X{
- X static int datapointer = 0;
- X if (!reset)
- X return planetdata[datapointer++];
- X return (double) (datapointer = 0);
- X}
- X
- X#ifdef X11
- Xint readworlddata(nam, loc, lin)
- Xchar **nam, **loc, **lin;
- X{
- X static int datapointer = 0;
- X *loc = worlddata[datapointer++];
- X *lin = worlddata[datapointer++];
- X *nam = worlddata[datapointer++];
- X if (*loc[0] != 'E')
- X return 1;
- X return (datapointer = 0);
- X}
- X#endif
- X
- X/*void printsecond(deg)
- Xdouble deg;
- X{
- X int sign, d, m, s;
- X deg = mod(deg + 1.0/60.0/60.0/2.0);
- X sign = (int) (deg / 30.0);
- X d = (int) deg - sign*30;
- X m = (int) ((deg - floor(deg))*60.0);
- X s = (int) (((deg - floor(deg))*60 - (double) m)*60.0);
- X printf("%s%d%c%c%c%s%d'%s%d\"",
- X d < 10 ? "0" : "", d, SIGNAM(sign + 1),
- X m < 10 ? "0" : "", m, s < 10 ? "0" : "", s);
- X}
- X
- Xvoid printtenth(deg)
- Xdouble deg;
- X{
- X int sign, d, m;
- X deg = mod(deg + 1.0/60.0/10.0/2.0);
- X sign = (int) (deg / 30.0);
- X d = (int) deg - sign*30;
- X m = (int) ((deg - floor(deg))*600.0);
- X printf("%s%d%c%c%c%s%.1f",
- X d < 10 ? "0" : "", d, SIGNAM(sign + 1),
- X m < 100 ? "0" : "", (double) m / 10.0);
- X}*/
- X
- Xvoid printminute(deg)
- Xdouble deg;
- X{
- X int sign, d, m;
- X if (!right) {
- X deg = mod(deg + 1.0/60.0/2.0);
- X sign = (int) (deg / 30.0);
- X d = (int) deg - sign*30;
- X m = (int) ((deg - floor(deg))*60.0);
- X printf("%s%d%c%c%c%s%d",
- X d < 10 ? "0" : "", d, SIGNAM(sign + 1), m < 10 ? "0" : "", m);
- X } else {
- X deg = mod(deg + 1.0/4.0/2.0);
- X d = (int) (deg / 15.0);
- X m = (int) ((deg - (double)d*15.0)*60.0/24.0);
- X printf("%s%dh,%s%dm",
- X d < 10 ? "0" : "", d, m < 10 ? "0" : "", m);
- X }
- X}
- X
- Xvoid printaltitude(deg)
- Xdouble deg;
- X{
- X int d, m;
- X while (deg > 90.0)
- X deg -= 180.0;
- X while (deg < -90.0)
- X deg += 180.0;
- X putchar(deg < 0.0 ? '-' : '+');
- X deg = dabs(deg) + 1.0/60.0/2.0;
- X d = (int) deg;
- X m = (int) ((deg - floor(deg))*60.0);
- X printf("%s%d %s%d'", d < 10 ? "0" : "", d, m < 10 ? "0" : "", m);
- X}
- X
- Xdouble input(prompt, low, high)
- Xchar prompt[];
- Xdouble low, high;
- X{
- X char line[80];
- X double x;
- X while (1) {
- X printf("%s > ", prompt);
- X if (gets(line) == (char *) NULL) {
- X printf("\nAstrolog terminated.\n");
- X exit(1);
- X }
- X sscanf(line, "%lf", &x);
- X if (x >= low && x <= high)
- X return x;
- X printf("Value out of range of from %.0f to %.0f.\n", low, high);
- X }
- X}
- X
- Xvoid inputdata(filename)
- Xchar *filename;
- X{
- X char name[STRING], c;
- X int i;
- X double k, l, m;
- X#ifdef TIME
- X struct tm curtime;
- X int curtimer;
- X if (filename[0] == 'n' && filename[1] == 'o' && filename[2] == 'w' &&
- X filename[3] == 0) {
- X autom = 1;
- X curtimer = (int) time((int *) 0);
- X curtime = *localtime(&curtimer);
- X M = (double) curtime.tm_mon + 1.0;
- X D = (double) curtime.tm_mday;
- X Y = (double) curtime.tm_year + 1900.0;
- X F = (double) curtime.tm_hour + (double) curtime.tm_min / 100.0 +
- X (double) curtime.tm_sec / 6000.0;
- X X = defzone; L5 = deflong; LA = deflat;
- X return;
- X }
- X#endif
- X if (filename[0] == 't' && filename[1] == 't' && filename[2] == 'y' &&
- X filename[3] == 0) {
- X printf("** Astrolog version %s (cruiser1@milton.u.washington.edu) **\n",
- X VERSION);
- X#ifdef SWITCHES
- X printf(" Invoke as 'astrolog -H' for brief list of command options.\n");
- X#endif
- X M = input("Enter month of birth [MM] ", 1.0, 12.0);
- X D = input("Enter date of birth [DD] ", 1.0, 31.0);
- X Y = input("Enter year of birth [YYYY]", 0.0, 4000.0);
- X printf("Assuming a 24 hour clock below (0.00=midnight, 18.00=6pm, etc)\n");
- X printf("Subtract 1 from hour entered if Daylight Saving time then.\n");
- X F = input("Time of birth [HR.MIN - Add 12 for PM times]", -2.0, 24.0);
- X printf("Enter negative value below for time zones east of Greenwich.\n");
- X X = input("Time zone in hours off GMT [HR.MIN - 5=Eastern, 8=Pacific]",
- X -24.0, 24.0);
- X printf("Enter negative values below for eastern or southern locations.\n");
- X L5 = input("Longitude west of place: DEG.MIN", -180.0, 180.0);
- X LA = input("Latitude north of place: DEG.MIN", -90.0, 90.0);
- X printf("\n");
- X return;
- X }
- X autom = 1;
- X data = fopen(filename, "r");
- X if (data == NULL) {
- X sprintf(name, "%s%s", DEFAULT_DIR, filename);
- X data = fopen(name, "r");
- X if (data == NULL) {
- X fprintf(stderr, "File '%s' not found.\n", filename);
- X exit(1);
- X }
- X }
- X if ((c = getc(data)) != 'S') {
- X ungetc(c, data);
- X fscanf(data, "%lf%lf%lf%lf%lf%lf%lf", &M, &D, &Y, &F, &X, &L5, &LA);
- X } else {
- X M = -1.0;
- X for (i = 1; i <= objects; i++) {
- X fscanf(data, "%s%lf%lf%lf", name, &k, &l, &m);
- X planet[i] = (l-1.0)*30.0+k+m/60.0;
- X fscanf(data, "%s%lf%lf", name, &k, &l);
- X planetalt[i] = k+l/60.0;
- X ret[i] = DTOR(name[1] == 'D' ? 1.0 : -1.0);
- X }
- X for (i = 1; i <= SIGNS/2; i++) {
- X fscanf(data, "%s%lf%lf%lf", name, &k, &l, &m);
- X house[i+6] = mod((house[i] = mod((l-1.0)*30.0+k+m/60.0))+180.0);
- X }
- X }
- X fclose(data);
- X}
- X
- X/**/
- END_OF_FILE
- if test 27430 -ne `wc -c <'data.c'`; then
- echo shar: \"'data.c'\" unpacked with wrong size!
- fi
- # end of 'data.c'
- fi
- if test -f 'MANIFEST' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MANIFEST'\"
- else
- echo shar: Extracting \"'MANIFEST'\" \(1342 characters\)
- sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
- X File Name Archive # Description
- X-----------------------------------------------------------
- X README 1 Easy instructions on how to compile Astrolog.
- X Makefile 1 Unix Makefile to easily compile program.
- X astrolog.dat 1 Data file with default program parameters.
- X astrolog.h 1 Compile time options and program definitions.
- X data.c 1 Table information and simple program functions.
- X formulas.c 2 Planetary and house position calculations.
- X charts.c 2 Routines to display charts on text screen.
- X options.c 2 Main display and search routines in program.
- X xcharts.c 3 Routines to draw graphic charts in X windows.
- X graphics.c 4 X window/bitmap primitives and window routines.
- X driver.c 3 Main program to connect all the other parts.
- X Helpfile.p1 5 List of Astrolog features and how to use them.
- X Helpfile.p2 6 Part 2 of the above file. (See the README).
- X Update 7 New features and bug fixes in version 2.10
- X History.p1 8 Features and bug fixes in previous versions.
- X History.p2 4 Part 2 of the above file. (See the README).
- X MANIFEST 1 This shipping list
- END_OF_FILE
- if test 1342 -ne `wc -c <'MANIFEST'`; then
- echo shar: \"'MANIFEST'\" unpacked with wrong size!
- fi
- # end of 'MANIFEST'
- fi
- echo shar: End of archive 1 \(of 8\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 8 archives.
- echo "See the README file for further instructions."
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
- exit 0 # Just in case...
-