aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/astro/astro.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/astro/astro.h')
-rw-r--r--src/cmd/astro/astro.h210
1 files changed, 210 insertions, 0 deletions
diff --git a/src/cmd/astro/astro.h b/src/cmd/astro/astro.h
new file mode 100644
index 00000000..ab3c4119
--- /dev/null
+++ b/src/cmd/astro/astro.h
@@ -0,0 +1,210 @@
+#include <u.h>
+#include <libc.h>
+
+#pragma varargck type "R" double
+#pragma varargck type "D" double
+
+typedef struct Obj1 Obj1;
+typedef struct Obj2 Obj2;
+typedef struct Obj3 Obj3;
+typedef struct Occ Occ;
+typedef struct Event Event;
+typedef struct Tim Tim;
+typedef struct Moontab Moontab;
+
+#define NPTS 12
+#define PER 1.0
+
+enum
+{
+ DARK = 1<<0,
+ SIGNIF = 1<<1,
+ PTIME = 1<<2,
+ LIGHT = 1<<3,
+};
+
+struct Obj1
+{
+ double ra;
+ double decl2;
+ double semi2;
+ double az;
+ double el;
+ double mag;
+};
+struct Obj2
+{
+ char* name;
+ char* name1;
+ void (*obj)(void);
+ Obj1 point[NPTS+2];
+};
+struct Obj3
+{
+ double t1;
+ double e1;
+ double t2;
+ double e2;
+ double t3;
+ double e3;
+ double t4;
+ double e4;
+ double t5;
+ double e5;
+};
+struct Event
+{
+ char* format;
+ char* arg1;
+ char* arg2;
+ double tim;
+ int flag;
+};
+struct Moontab
+{
+ double f;
+ char c[4];
+};
+struct Occ
+{
+ Obj1 act;
+ Obj1 del0;
+ Obj1 del1;
+ Obj1 del2;
+};
+struct Tim
+{
+ double ifa[5];
+ char tz[4];
+};
+
+double converge;
+
+char flags[128];
+int nperiods;
+double wlong, awlong, nlat, elev;
+double obliq, phi, eps, tobliq;
+double dphi, deps;
+double day, deld, per;
+double eday, capt, capt2, capt3, gst;
+double pi, pipi, radian, radsec, deltat;
+double erad, glat;
+double xms, yms, zms;
+double xdot, ydot, zdot;
+
+double ecc, incl, node, argp, mrad, anom, motion;
+
+double lambda, beta, rad, mag, semi;
+double alpha, delta, rp, hp;
+double ra, decl, semi2;
+double lha, decl2, lmb2;
+double az, el;
+
+double meday, seday, mhp, salph, sdelt, srad;
+
+double* cafp;
+char* cacp;
+
+double rah, ram, ras, dday, dmin, dsec;
+long sao;
+double da, dd, px, epoch;
+char line[100];
+Obj2 osun;
+Obj2 omoon;
+Obj2 oshad;
+Obj2 omerc;
+Obj2 ovenus;
+Obj2 omars;
+Obj2 osat;
+Obj2 ouran;
+Obj2 onept;
+Obj2 oplut;
+Obj2 ojup;
+Obj2 ostar;
+Obj2 ocomet;
+Obj3 occ;
+Obj2* eobj1;
+Obj2* eobj2;
+
+char* startab;
+
+extern int dmo[];
+extern Obj2* objlst[];
+
+extern double venfp[];
+extern char vencp[];
+extern double sunfp[];
+extern char suncp[];
+extern double mercfp[];
+extern char merccp[];
+extern double nutfp[];
+extern char nutcp[];
+extern Moontab moontab[];
+
+extern void args(int, char**);
+extern void bdtsetup(double, Tim*);
+extern double betcross(double);
+extern double convdate(Tim*);
+extern double cosadd(int, double, ...);
+extern double cosx(double, int, int, int, int, double);
+extern double dist(Obj1*, Obj1*);
+extern double dsrc(double, Tim*, int);
+extern void dtsetup(double, Tim*);
+//extern int evcomp(void*, void*);
+extern void event(char*, char*, char*, double, int);
+extern void evflush(void);
+extern double fmod(double, double);
+extern void fstar(void);
+extern void fsun(void);
+extern void geo(void);
+extern void helio(void);
+extern void icosadd(double*, char*);
+extern void init(void);
+extern void jup(void);
+extern int lastsun(Tim*, int);
+extern int main(int, char**);
+extern void mars(void);
+extern double melong(Obj2*);
+extern void merc(void);
+extern void moon(void);
+extern void numb(int);
+extern void nutate(void);
+extern void occult(Obj2*, Obj2*, double);
+extern void output(char*, Obj1*);
+extern void pdate(double);
+extern double pinorm(double);
+extern void ptime(double);
+extern void pstime(double);
+extern double pyth(double);
+extern double readate(void);
+extern double readdt(void);
+extern void readlat(int);
+extern double rise(Obj2*, double);
+extern int rline(int);
+extern void sat(void);
+extern void uran(void);
+extern void nept(void);
+extern void plut(void);
+extern void satel(double);
+extern void satels(void);
+extern void search(void);
+extern double set(Obj2*, double);
+extern void set3pt(Obj2*, int, Occ*);
+extern void setime(double);
+extern void setobj(Obj1*);
+extern void setpt(Occ*, double);
+extern void shad(void);
+extern double sinadd(int, double, ...);
+extern double sinx(double, int, int, int, int, double);
+extern char* skip(int);
+extern double solstice(int);
+extern void star(void);
+extern void stars(void);
+extern void sun(void);
+extern double sunel(double);
+extern void venus(void);
+extern int vis(double, double, double, double);
+extern void comet(void);
+extern int Rconv(Fmt*);
+extern int Dconv(Fmt*);
+extern double etdate(long, int, double);