THE VERY USEFUL PROGRAM FOR ANALYSING MEAN MOTION TABLES (MM) version 1.2 (January 1999) Copyright: Benno van Dalen 1994/1999 Institut fuer Geschichte der Naturwissenschaften Postfach 111932 (FB 13) 60054 Frankfurt am Main GERMANY =============================================================================== Millennium Bug: the only date related operations performed by MM are the setting of the date-and-time stamp on files which are written to disk (files with extension .MMT containing tables in MM format and ASCII files of various types), which is done by directly calling the DOS routines (interrupts) concerned, and the reading of such stamps for display in lists of files. Therefore, MM can be considered to be millennium proof. Disclaimer: The author of MM disclaims liability for any errors that may be present in the program and for any damage that may ensue from its use. ============================================================================== CHANGES BETWEEN VERSIONS 1.1 (MARCH 1998) AND 1.2 (JANUARY 1999): 1) Changes in the input or modification of a subtable: - When entering the last month of a subtable for months, you may now use the UP and DOWN keys to scroll through the month names, type the first letter of the month name, or type the number of the month within the year. - You may now jump through the values of a subtable with the PGUP / PGDN and CTRL-HOME / CTRL-END keys. Note that you still have to press with the cursor on the last tabular value to confirm a complete subtable. Use CTRL-PGUP and CTRL-PGDN to jump between the specifications section (top half of the screen) and the tabular values (bottom half). - Within a value, you may now jump from digit to digit by hitting the CTRL-LEFT ARROW and CTRL-RIGHT ARROW keys. - An undefined value no more needs to be set back to zero by pressing *. Instead you may pretend that it is already equal to zero and type HOME, LEFT, +, -, or any digit to edit it straight away (note the effect of ALT-0!). "U" can now be used as an alternative to "*" for setting a value to undefined. - When editing tabular values, ALT-C will make the manuscript value equal to the corrected one, whereas ALT-M makes the corrected value equal to the manuscript one. - In order to facilitate corrections such as 9 signs into 10 and 290 degrees into 300, it is now possible to intermittently let the value which is being edited have up to 19 signs or 399 degrees. However, the values can still only be confirmed (by striking ENTER or moving to a different value) if they have at most 11 signs and 359 degrees. 2) The Byzantine and Julian calendars were implemented to work with arbitrary first months of the year and arbitrary locations of the leap year within the cycle of 4 year. The settings need to be changed on the upper part of the MOdify screen by pressing the TAB / SHIFT-TAB keys. It may be necessary to first explicitly reset the parameters of previously entered tables for these types of calendars. Also the short-cut ALT-I for changing the intercalation in the Byzantine and Julian calendars while editing the subtable for extended years, has now been implemented. Always try striking ALT-I when you encounter a difference between manuscript and predicted value of approximately the motion in a single day (for the Persian calendar the differences may be more complicated). However, DO NOT USE ALT-I to change the intercalation in tables you have previously entered, because all following values of the subtable you are editing will be recomputed (and therefore probably not any more equal to the values in the manuscript). Instead, change the type of intercalation while editing the table specifications in the upper half of the MOdify screen. Note that it is once again possible to change the calendar type of a table. However, this feature should be used with care since it may make various of the subtables meaningless. 3) Command CA (Calculate Almanac, previously Mean Positions): calculates sets of mean positions for dates to be specified by hand or read from a previously produced almanac file. The output can be written to a file besides being shown on the screen. Note that the calendar type of the first table to be specified determines the way in which mean positions are extracted from all tables. If the dates are taken from an almanac file, they must be in agreement with this type. If necessary, you can specify a longitude difference in eastern or western direction. The months of the initial date can be specified by using the up and down keys to scroll, typing the first letter of a month name, or a month number. All following dates are specified by using the keys indicated at the bottom of the screen to jump forwards or backwards by a day, week, month, year, decade or century. Once you have set the date correctly, you can confirm the almanac line by pressing . If the dates are read from an almanac file, you may choose to pause after each page of output. In that case output will stop after the first line to give you a chance to change the displaymode from degrees to signs or vice-versa by typing ALT-D. Press ESC after having confirmed the last line of the almanac. Please note that the command CA is still at a preliminary stage and requires further extensive testing and improving. 4) New command SE (Scribal Errors): displays the differences between the manuscript version and corrected version of the given table. 5) New command CD (Change Directory): changes the current directory. 6) New command RZ (Rename Zij): changes the name of an external zij. 7) New command LB (List zijes in Branch): lists the external zijes in all subdirectories of the given directory. 8) New command VW (VieW): prints the manuscript and corrected values of a single table in a standard format. This saves a number of specifications which would be necessary in PR (PRint). 9) The Maliki or Jalali calendar, a true solar calendar designed in the 1070s by Omar al-Khayyam and others on the order of the Seljuk sultan Malikshah, was added as a possible type of calendar. For the time being, it has been implemented only in the version found in the Muhaqqaq Zij of Shams al-Din al-Munajjim al-Wabiknawi. 10) There is a preliminary calendar type "L" (to be typed instead of "A" for Arabic, "B" for Byzantine, etc., not indicated in the menu), which implements a general linear function. In fact, each subtable for days and larger periods may be used for multiples of the "daily" parameter; in the subtable for collected years the linear function may be given a vertical displacement. Test reports and further wishes are much appreciated. Known bug: The standard deviations given by the Least Squares estimation only seem to be correct for the days subtable. 11) Various: - ALT-D and ALT-S for displaying sexagesimal numbers with degrees and signs respectively have been replaced by a toggle ALT-D (D for displaymode). This toggle can now also be invoked from the command prompt, but not yet within commands such as LS and LNE. - When selecting a subtable, S now systematically stands for the subtable for single years with the smaller increment, T for that with the larger increment. The program automatically assigns the correct subtable to the correct letter, also if the subtables were entered in the "wrong" order. - LNE should now also work correctly on parts of the subtable for collected years if the locations of the leap years relative to the first tabular value to be used for the estimation have changed. - Meaningful captions were added to the first LNE plot for each subtable, which displays for each tabular value the interval of parameter values for which the value is correctly recomputed. Along the vertical axis the arguments are plotted. - A history for ASCII file names (e.g., output of the almanac command AC) and for the names of tables (when editing the name, strike the UP ARROW key to obtain the previously entered name) was added. Because of this, old configuration files (MM.CFG) may not be read correctly by this version of MM (unless you add one empty line after the first line and five empty lines after the originally eleventh line). - Various small bugs were repaired and various error messages were added or made clearer. 12) A separate big version of MM was compiled which can handle tables with up to 600 values instead of 200. In a future version of MM the big and small versions will be integrated so as to use the minimum possible amount of memory. If you need the big version, please contact the author of MM by email. ============================================================================== CHANGES BETWEEN VERSIONS 1 (JULY 1994) AND 1.1 (MARCH 1998): 1) The file format of the .MMT files was changed in order to allow the addition of two types of subtables, namely for PARTS of an hour (i.e. minutes; note that fractions of an hour are 2/3, 1/2, 1/3, 1/4, etc.) and for ZODIACAL SIGNS (for the time being, the number of days in the respective signs has been taken equal to those in the Sanjufini Zij and Huihui-li). In order to convert .MMT files from the old format to the new one, a special program MM1TO11 must be used, which is included in the zip file MM11.ZIP. MM version 1.1 will let you know when you are trying to read a file prepared with version 1.0. MM1TO11 works much like MM itself: you read an old file with GetZij and write it in the new format with SaveZij. It is recommended to keep the old files for safety and store the new ones under new names or in a separate directory. 2) A rather large number of changes was made in order to make the various operations in MM more similar to the corresponding ones in TA. Such changes include: addition of the command MV (MoVe tables) as in TA; introduction of a configuration file which keeps the current file and directory settings; modification of the operation of the C (Corrected value) and M (Manuscript value) keys when entering tabular values; addition of the Alt-n (n=0,1,2,...,9) keys for convenient correction of scribal errors in tabular values (cf. the TA help screen EDIT SEXAGESIMALS: SPECIAL FUNCTIONS, which will be displayed when you press F1 while entering or modifying tabular values); introduction of ranges of table numbers for commands like LT, MV, etc. 3) MM is still clearly inferior to TA as far as writing tabular values to a file is concerned. Version 1.1 provides a very basic WR (WRite) command, which simply writes the complete subtables of a mean motion table to a file, but this can hardly be called sufficient. 4) A new SP (SPecial) command implements summation and halvation of mean motion tables. It can be used to investigate relations between certain tables, e.g., tables for planetary motion in anomaly and in longitude and tables for the (double) elongation and solar and lunar longitude. A command MP (Mean Positions) is still in its very earliest stage of development. In the end it should allow the user to "trace out" an almanac by specifying consecutive dates in a given calendar and having MM calculate the corresponding mean positions from an entered mean motion table. 5) A graphical display of the results has been added for the Least Number of Errors Criterion (LNE). It shows for which ranges of the unknown mean motion parameter every single tabular value is correct and then, after an arbitrary key has been pressed, the number of errors in the complete subtable as a function of the parameter value. This graphical feature requires the graphics drivers (.BGI files) of TurboPascal 7, which are included in the zip file.