home *** CD-ROM | disk | FTP | other *** search
/ Collection of Education / collectionofeducationcarat1997.iso / SCIENCE / EPHEM421.ZIP / README < prev    next >
Text File  |  1990-09-13  |  7KB  |  163 lines

  1. General Notes for version 4.21, August 23, 1990:
  2.  
  3. 1) Start by reading the generic-printer-ready manual in Man.txt. If you have
  4.    source, read on in this file for building hints.
  5.  
  6. 2) Beware that ephem does not gracefully handle the fact that there is no year
  7.    0 in the Christian calendar. It is best to avoid entering a year of 0 for
  8.    now.
  9.  
  10. Recent Change History:
  11.  
  12. Changes from 4.20 to 4.21:
  13.     fix bug preventing rise/set times near vernal equinox.
  14.  
  15. Changes from 4.19 to 4.20:
  16.     add g/k and H/G magnitude model options for elliptical objects.
  17.     put moon's geocentric long/lat under Hlong/Hlat columns.
  18.     allow entering negative decimal years.
  19.     init all static mjd storage to unlike times.
  20.     add USE_TERMIO option to io.c.
  21.  
  22. Changes from 4.18 to 4.19:
  23.     add listing feature, with 'L' hot-key.
  24.     add title for plot file (as well as listing file).
  25.     add some (void) casts for lint sake.
  26.  
  27. Changes from 4.17 to 4.18:
  28.     fix parabolic comet bug in objx.c (bad lam computation).
  29.  
  30. Changes from 4.16 to 4.17:
  31.     add 'c' short cut to Menu field.
  32.     display full Dec precision for fixed objx setup.
  33.     increase pluto auscale in watch.c, and guard screen boundries.
  34.     add Pause field.
  35.     fruther improve rise/set and dawn/dusk times.
  36.     add MENU={DATA,RISET,SEP} config/arg option.
  37.  
  38. Changes from 4.15 to 4.16:
  39.     watch popup now allows changing formats without returning.
  40.     add 'w' short cut to watch field.
  41.     improve labeling a bit in Dome display.
  42.  
  43. Changes from 4.14 to 4.15:
  44.     move setjmp() in main so it catches error in config file too.
  45.     maintain name of objx/y and generally clean up objx.c.
  46.     fix bug in circum.c related to phase of fixed objects.
  47.     add "Sky dome" watch format and improve labels.
  48.     remember last watch, plot and search popup selections.
  49.  
  50. Changes from 4.13 to 4.14:
  51.     fix bug watching object y by adding y to body_tags[] in watch.c.
  52.     add ! support (#ifdef BANG in sel_fld()).
  53.     add support for VMS via #ifdef VMS.
  54.     switch to EPHEMCFG environ variable (HOME no longer used).
  55.     fix phase so it works for objects out of the ecliptic.
  56.  
  57. If you have source, here is how you build ephem:
  58.  
  59. 1) io.c:
  60.    define UNIX, VMS or TURBO_C in io.c depending on your system. Note that
  61.    TURBO_C also seems to work ok with Microsoft and Lattice C too but these
  62.    have not been tested recently. Note also that the VMS C compiler defines VMS
  63.    automatically so you don't really have to #define it.
  64.  
  65.    Also in io.c and if you use UNIX, you have two choices of methods for doing
  66.    non-blocking reads depending on whether you define USE_NDELAY; use whichever
  67.    works for you. You can also choose between sgtty.h and termio.h; again,
  68.    use whichever works on your system; for the latter, define USE_TERMIO.
  69.  
  70.    MSDOS users can do cursor control with direct BIOS calls (the default),
  71.    or with ANSI.SYS by defining USE_ANSISYS in io.c.
  72.  
  73. 2) time.c:
  74.    Select from two methods of dealing with time from the operating system
  75.    with the TZA/TZB defines in time.c. If you get link undefines related to
  76.    time functions try changing to the other form.
  77.  
  78.    On Sun systems running OS 4.0.3 (or BSD 4.3) or Apollo SR 10.1 use TZB and
  79.    change <time.h> to <sys/time.h>.
  80.  
  81.    For VMS, since it does not support time zone info, do NOT #define EITHER
  82.    of TZA or TZB. This will have the effect of leaving the time zone unchanged
  83.    whenever you set the time via the "Now" option. (This is taken care of
  84.    automatically in time.c by #undef'ining TZA and TZB if VMS is defined.)
  85.  
  86. 3) mainmenu.c:
  87.    if you are compiling for an IBM-PC then try #define PC_GRAPHICS for a
  88.    nicer looking way to draw the screen boundry lines.
  89.  
  90. 4) sel_fld.c:
  91.    if your runtime library supports the system() function (to run a shell
  92.    command) then #define BANG in sel_fld.c, else leave it undefine. When
  93.    defined, this will allow you to jump out of ephem and run any command,
  94.    then resume where you left off.
  95.  
  96. 5) beware that I have not used string.h or strings.h. if your library's
  97.    strlen() and str.*cmp() functions don't return int (such as long), then you
  98.    will have to hand add string.h or your own extern declarations. I have
  99.    included all the necessary declarations for the functions that return
  100.    (char *) such as strcpy(), etc, though.
  101.  
  102. 6) main.c calls sleep() which is not in some IBM-PC runtime C libraries. You
  103.    might kludge up your own call that does a cpu countdown loop. The accuracy
  104.    will only effect the Pause feature, not ephem's actual time mechanisms.
  105.  
  106. 7) Ephem can now be built by simply compiling all the .c files and linking them
  107.    all together. On Unix systems, you must also link with the termcap library
  108.    (-ltermcap) and possibly the auxiliary math library (-lm) if your default C
  109.    library does not include all the required transcendental functions. At the
  110.    end of this file I have included a VMS build script for those building
  111.    ephem on a that system.
  112.  
  113. The following files are pretty much just pure transliterations from BASIC
  114. into C from machine-readable copies of the programs in Duffett-Smith's book.
  115. They have nothing to do with the rest of ephem so they may be used for
  116. completely different applications if so desired.
  117.  
  118.    aa_hadec.c anomaly.c astro.h cal_mjd.c comet.c eq_ecl.c moon.c moonnf.c
  119.    nutation.c obliq.c parallax.c pelement.c plans.c precess.c reduce.c
  120.    refract.c sex_dec.c sun.c utc_gst.c
  121.  
  122. $!========================================================================
  123. $!
  124. $! Name      : BUILD.COM
  125. $!
  126. $! Purpose   : compile and link ephem under VMS
  127. $!
  128. $! Arguments : P1/P2 = DEBUG: compile with DEBUG info
  129. $!             P1/P2 = LINK : link only
  130. $!
  131. $! Created  23-MAR-1990   Karsten Spang
  132. $!
  133. $!========================================================================
  134. $   ON ERROR     THEN $ GOTO EXIT
  135. $   ON CONTROL_Y THEN $ GOTO EXIT
  136. $   IF P1.EQS."DEBUG" .OR. P2.EQS."DEBUG"
  137. $   THEN
  138. $       CC:=CC/DEBUG/NOOPTIMIZE/NOLIST
  139. $       LINK:=LINK/DEBUG/NOMAP
  140. $   ELSE
  141. $       CC:=CC/NOLIST
  142. $       LINK:=LINK/NOMAP
  143. $   ENDIF
  144. $   FILES="MAIN,AA_HADEC,ALTMENUS,ANOMALY,CAL_MJD,CIRCUM,COMET,COMPILER,"+ -
  145.         "EQ_ECL,FLOG,FORMATS,IO,MAINMENU,MOON,MOONNF,NUTATION,"+ -
  146.         "OBJX,OBLIQ,PARALLAX,PELEMENT,PLANS,PLOT,POPUP,PRECESS,REDUCE,"+ -
  147.         "REFRACT,RISET,RISET_C,SEL_FLD,SEX_DEC,SRCH,SUN,TIME,UTC_GST,"+ -
  148.         "VERSION,WATCH"
  149. $   IF P1.EQS."LINK" .OR. P2.EQS."LINK" THEN GOTO LINK
  150. $   FILE_NUM=0;
  151. $COMPILE_LOOP:
  152. $       FILE=F$ELEMENT(FILE_NUM,",",FILES)
  153. $       IF FILE.EQS."," THEN GOTO COMPILE_END
  154. $       CC 'FILE'
  155. $       FILE_NUM=FILE_NUM+1
  156. $       GOTO COMPILE_LOOP
  157. $COMPILE_END:
  158. $LINK:
  159. $   LINK/EXE=EPHEM 'FILES',SYS$INPUT/OPT
  160. SYS$LIBRARY:VAXCRTL/SHARE
  161. $EXIT:
  162. $   EXIT
  163.