Software versions and updates for the motorized telescope control program, scope.exe, prior to January 1, 2000 Mel Bartels

Version compiled 12/31/99:
1. Fixed bug where the analysis.dat file was never closed, so it remained empty.
2. Added close and init of lx200 serial port during slewing.

Version compiled 12/26/99:
1. Changed altitude offset algorithm from an interative approach to Dave Ek's derived formula.

Version compiled 12/26/99:
1. Changed the way refraction is handled so that the analysis of mount pointing errors will accurately reflect the affects of refraction.  Now the Current.Alt will show the pointing angle of the telescope from the perspective of the sky, that is, if an altazimuth mount and if the sky says the scope is pointing to 0 deg, then the scope will actually be pointing about 1/2 deg above the horizon.

Version compiled 12/19/99:
1. Changed analysis of mount pointing errors to read in positions set by a new handpad mode called "analysis", using align.dat file. Analysis file is recreated each program startup, so to recreate a past session, load in that sessions's align.dat file, and after program startup, copy the old analysis file to analysis.dat.
2. Added menu option to turn off field rotation motor.  This allows motor to be moved by handpaddle but stopped during scope tracking.
3. Reorganized submenu items for more logical work flow.

Version compiled 12/12/99:
1. Added new handpad mode of guide+stay+rotate, where the guiding corrections as input from the handpaddle or an autoguider are rotated based on the guide rotation angle.  This angle is slaved to the field rotation angle - an offset, and can be set directly by a new menu option under the control section, called guide angle.
2. Added LX200_LongFormat as an option in the config.dat file.  This tells scope.exe how to emulate LX200 commands.
3. Added menu option to reset the lx200 port.  If the lx200 commands make the program behave erratically, resetting the port will clear away the problem.  Also resetting the port can make it clearer as to what commands are being received.
4. Changed lx200 display to highlight last received command and char; formerly last command was marked with an "*".
5. Fixed bug when receiving lx200 command to change motor speed to slew speed.  Bug caused program to behave sluggishly.

Version compiled 12/2/99:
1. Fixed new bug in title display.
2. Added wrap around in menu.

Version compiled 12/1/99:
1. Added new variable in the config.dat, MaxPWM.  Formerly MaxPWM was set by PWM[0], but now PWM[0] can be a lesser value than MaxPWM.  This might ease stepper motor cogging in certain situations.
2. Upped number of microsteps to 20.  User can choose from 2 to 20 microsteps.  This can result in more smoothness from the motors.
3. Put adjustment of microsteps display into the 'adjust microsteps' menu box so that it does not appear during normal program operation.
4. Reorganized code after hitting compiler limit.
5. In AnalyzeZ1Z2, changed to reading file into linked list and then reading linked list.  This allows sorting of linked list.
6. Data file display now sorted alphanumerically.
7. Hand paddle buttons pushed field now displays all buttons pushed even during microstepping, and the 'M' for microstepping changed to 'm' to help distinguish it from 'H' for halfstepping.
8. Added graphical displays of pointing errors: overall display + altitude vs azimuth + altitude vs altitude + azimuth vs altitude + azimuth vs azimuth.  This uses the init.dat file, a history of the inits done each session.  User must ensure that no unwanted init3s are in the file.  To build the file, do the init1 and init2 and correction for altitude offset, followed by as many init3s as desired, in as many parts of the sky as possible.  Init1 and init2 can be touched up if necessary, but do not redo the altitude offset correction.
9. Added new menu item to median smooth the PEC curves.  User choice as to number of values to use in the median smoothing.

Version compiled 10/25/99:
1. If using mouse encoders, EncoderComPort now set to 0.  This prevents rare lockup when using mouse encoders caused by CloseSerial() routine.
2. HoldReps now holds the stepper rotors in position for HoldReps * HsDelayX * MaxDelay calls to the port.

Version compiled 10/18/99:
1. Added keyboard abort in menu move microsteps.
2. Added realtime display of microsteps moved in menu move microsteps.

Version compiled 10/11/99:
1. Added calculation of mount axes misalignment averages to the analysis of the init.dat file.
2. Added screen input of Z1, Z2, and Z3 mount misalignment variables.
3. Added display of Z1, Z2, and Z3 to the initialization display.

Version compiled 10/5/99:
1. Added calculation of mount axes misalignment errors to the analysis of the init.dat file.  Also added a test module for the calculations.

Version compiled 9/27b/99:
1. Added the analysis of init.dat file as a menu item.

Version compiled 9/27/99:
1. Fixed bug in optimize init menu option.
2. Added analysis of init file. Choose TestString AnalyzeInitError in config.dat and the init.dat file will be read in and init errors reported in a new initerr.txt file.

Version compiled 9/24/99:
1. Mouse encoders read direction now set by AltEncoderDir and AzEncoderDir as other encoder types have been.
2. Fixed minor problem with the display of offset values in the initialization display menu item.
3. Changed the writing to the init.dat file.  Now all inits are recorded, along with the time of the init, and the reason why.

Version compiled 9/17/99:
1. Added new menu items move halfstep and move microstep.  These menu items allow the user to select the number of halfsteps or microsteps to move.  The halfstep move can be used to discover the fullstep size, a critical value in the configuration file.  The microstep move can verify that torque is adequate and no stalling occurs.

Version compiled 9/14/99:
1. Added option set in config.dat to call CMOS RTC (Real Time Clock) via bios interrupt routines rather than direct port access.  This solves the very rare problem of certain laptops locking up when making RTC direct port calls and reads.
2. Fixed bug in 'reset to encoders' where the azimuth was not being reset.

Version compiled 9/11/99:
1. Fixed bug in 'reset to encoder coordinates': azimuth axis was not being reset.
2. Added delay to CMOS real time clock routine to allow settling before returning value in accordance with programming recommendation.

Version compiled 9/7/99:
1. Added option of 2 axis tracking.  Set TestString Track2Motors at end of config.dat.
2. Added option to control 5 phase stepper motors. See notes.
3. Fixed bug in menu system where hotkey '3' (and possibly others) did not always work.
4. Added test option of printing out the microstepping pulse width modulation values (DisplayPWMValues).
5. Added automatic repeat of scroll tour to handpad options.
6. Added confirmation of quit option (ConfirmQuit in config.dat).

Version compiled 7/23/99:
1. Enhanced user dialogue in add altitude offset menu selection.
2. Fixed typo in initialization display.
3. Spread out field rotation displays over more bios clock ticks for smoother impact during tracking with low end computers..

Version compiled 7/19/99:
1. Greatly increased maximum number of field rotation stepper pulses per second to approximately 300.  Did this by moving field rotation pulsing code into the low level microstepping function.

Version compiled 7/7/99:
1. Enhanced encoder reset error logging to file.

Version compiled 6/23/99:
1. Fixed bug recently introduced for TestString PreloadGuidexx.dat that zeroed out the Guide files after they were loaded.
2. Fixed bug recently introduced that did not incrementally save the PecazXX.txt files.
3. Added ability to continually save the same guiding data after conversion into PEC files.

Version compiled 6/21/99:
1. Added new variable to config.dat file: MakeEncoderResetLogFile.  Set to 1 if you wish encoder threshold violations to be recorded.

Version compiled 6/10/99:
1. Changed guide+drag mode to simply add in the drift from the config.dat to whatever the current drift values are, then subtract the drift from config.dat when guiding efforts are done.

Version compiled 6/9/99:
1. Changed menu system to master menu with submenus.
2. Added ability to change microstepping parameters while in normal program tracking mode.
3. Added virtual handpad.
4. Added new handpad mode: guide+drag that sets up drift based on config.dat values for an autoguider that requires the scope to drag slightly in tracking such that the guide star continuously moves across the knife edge.

Version compiled 5/26/99:
1. Fixed bug in field rotation motor tracking that actually limited max speed of FR motor to 1 pulse per second.  Max speed is 9 pulses per second now.

Version compiled 5/22/99:
1. Added ability to auto sync the PEC with motors turning CW or CCW or either direction.
2. Changed handpad tracking on/off so that mode switch in left position = track on and right position = track off
3. Changed operation of handpad when in FR motor mode.  Now the mode switch in left position = FR motor control on, and, right position of mode switch means FR motor control off.  Use CW and CCW buttons to control FR motor.  This way FR motor can be turned off and on to allow handpad to also fine position the object without recourse to the menu system displayed on the computer screen.

Version compiled 5/17/99:
1. Added optional automatic synchronization of altitude PEC alignment via pin 17 of the parallel port, and azimuth PEC alignment via pin 15 of the parallel port.  AutoAltPECSyncOnFlag in config.dat turns on automatic synchronization of the altitude PEC, and AutoAltPECSyncLowHighFlag determines if the low to high or the high to low transition is used.  AutoAzPECSyncOnFlag in config.dat turns on automatic synchronization of the azimuth PEC, and AutoAzPECSyncLowHighFlag determines if the low to high or the high to low transition is used.

Version compiled 5/9/99:
1. Added ability to escape from the 'HsParms' menu selection as in other menu selections.

Version compiled 5/8/99:
1. Added ability to change MsPause and MsDelayX on the fly in the Track() option.
2. Added ability to increase PWM[0] on the fly in the Track() option.
3. Added menu option to temporarily change the halfstepping parameters while the program is executing.

Version compiled 5/4/99:
1. Added display of handpad buttons pushed to screen.
2. Added new variable to config.dat: HandPadPresentFlag. If set to 0, then handpad is ignored.
3. Check for handpad that finds malfunctioning or no handpad now results in warning and ignoring of handpad for rest of program life.  Previously the check if failed, would then abort the program.

Version compiled 4/29/99:
1. Added new hand paddle mode to slew the field rotation motor.  Speed controlled by new variable in config.dat: FRStepSpeedMilliSec.

Version compiled 4/26/99:
1. Increased time allowed to move hand pad switch to indicate an initialization from 1/2 sec to 5 seconds.  This should prevent program aborts when in auto-init mode thanks to accidental multiple inits with same coordinates.

Version compiled 4/22/99:
1. Changed inability to find startup file for Guide to warning from an abort.

Version compiled 4/21/99:
1. Fixed text in Hotkey display menu item.
2. Changed read slew and write slew failures to display warning messages only instead of aborting the program.

Version compiled 4/17/99:
1. Added new hand pad mode that uses mode switch to turn off and on tracking while at the eyepiece.

Version compiled 4/14/99:
1. Fixed bug in Track option that caused stack overflow.
2. Added new variable to the config file - MaxConsecutiveSlews.  This variable sets the number of times the program will attempt to slew consecutively in order to reach a desired position.  When the number of slews is up, the scope tracks from its current position, whatever it may be.  This is an attempt to stop oscillations that occur when MsRepsTick or PWMs are low and the scope's required movement exceeds what can be accomplished by microstepping.
3. Added conversion program, ngcscope to convert file outputs from ngcview to compatible format with scope.exe.  This program joins megscope that converts megastar file outputs.

Version compiled 3/22/99:
1. Fixed bug introduced in previous update that caused microstepping to fail..

Version compiled 3/16/99:
1. Added ability to change PWM[] values on the fly in the Track mode.  This should allow for faster fine tuning of the pulse width modulation value for each microstep.

Version compiled 3/4/99:
1. Changed sound option in Track mode to make an unique pitch for every microstep.

Version compiled 3/1/99:
1. Added option to make a sound whenever the microstep index crosses the zero point while in the Track mode of the program.

Version compiled 2/27/99:
1. Added mouse encoders to the list of possible encoder options.  Make sure that acceleration and multiplier options are turned off in the mouse driver.
2. Extensively revamped the encoder functions.
3. Changed the entry that determines if encoders are to be used and which encoder type is choosen in the config.dat file from EncoderType to EncoderString.

Version compiled 2/9/99:
1. Changed how the test modes are called in the program and in the config.dat file.

Version compiled 1/29/99:
1. Fixed coordinate declination display so that when choosing equatorial mode at startup time, if the dec happens to be exactly zero, the dec will display.

Version compiled 1/26/99:
1. Added two menu options that were formely hotkeys only: read slew and write slew.  These communicate coordinates with an external planetarium control program such as Guide.
2. Added a new variable to the config.dat file, called InterfacePath, that specifies the path to the controlling planetarium program.

Version compiled 1/23/99:
1. Fixed recently introduced bug that prevented the init.dat file from being written to..
2. Per suggestion of Mark Williams, added interpolation between PEC values: in situations where the PEC cycle lasts for a long time (many minutes), there is a noticable period of time between individual PEC values.  This may cause motors to jump when the next PEC value occurs.
3. Added a new column of menu choices on PEC options.
4. Added display of PEC indexes and PEC values in tenths of arcseconds.

Version compiled 12/26/98:
1. Added autoscaling in vertical or y axis to guiding and pec analysis graph screens.

Version compiled 12/21/98:
1. Added testmode of 13 which preloads guidealt.dat and guideaz.dat giving opportunity for analysis and generation of pec files.

Version compiled 12/19/98:
1. Wrote new guiding corrections to PEC conversion routine where the entire guiding correction effort is utilized to make multiple PEC files..

Version compiled 12/16/98:
1. Fixed bug in convering guiding corrections to PEC values.

Version compiled 12/14/98:
1. Added more LX200 commands.
2. Greatly enhanced realtime updating and handling of PEC.

Version compiled 11/29/98:
1. Fixed a bug in the receiving of a LX200 protocol slew command.

Version compiled 11/23/98:
1. broke apart zeroing of pec data into 'y' for altitude pec, and 'z' for azimuth pec.

Version compiled 11/20/98:
1. Added function to meld guiding corrections into PEC array, and added graphical display of PEC, guiding corrections, and resulting PEC.

Version compiled 11/5/98:
1. Revamped LX200 section and tested with ECU and SkyMap.

Version compiled 10/4/98:
1. Fixed bug introduced during last version, where BSeg type encoders initializing would fail.

Version compiled 9/28/98:
1. Added encoder type for non resettable encoders like the SkyWizard.
2. Added still largely untested code to accept LX200 protocol handpad commands from external programs.

Version compiled 9/16/98:
1. Fixed extremely small chance that a conditional test might have the variables involved changed during the test by an interrupt call.  This contribution by Egon Lenc.
2. Small changes in low level code to make it more sharable with servo based computer control telescopes.

Version compiled 9/6/98:
1. Fixed Y2K problem with CMOS realtime clock (which only stores two digit years; added separate century field, and code to handle rollover from 12/31/99 to 1/1/0).

Version compiled 8/28/98:
1. Added confirming message before adding in altitude offset.

Version compiled 8/27/98:
1. Added altitude offset algorithm as developed by Dave Sopchak.  This refines the altitude readings. The altitude offset is now displayed in the initialization display, and the new hotkey 'a', adds it into all initialization altitudes and current altitude.

Version compiled 8/19/98:
1. Added a message stating that the pec array has been zeroed out.
2. Fixed bug in guide+stay routine.
3. Couldn't get new guide+save to work because skipping of PEC indexes occured occasionally when a motor was spinning fast to track, so, returned to original guide format, where the PEC index and the accumulated guided amount is saved.
4. A message confirming zeroing out of PEC added.

Version compiled 8/6/98:
1. Added check at startup for missing or malfunctioning handpad.  A missing or malfunctioning handpad can make the program appear locked up, as the program would be exclusively busy processing a handpad command such as 'move up' or 'move counterclockwise'.
2. Rearranged code that processes the handpaddle in order to better catch invalid handpaddle states.

Version compiled 8/6/98:
1. Added option to specify the parallel port by the lpt number.  For lpt1, enter '1' for PPortAddr in the config.dat file.
2. Enhanced the startup procedure if an align.dat file is not present.  You now have your choice between a starting equatorial alignment (using appropriate variables from the config.dat file), or a starting altazimuth alignment (using appropriate variables from the config.dat file), or no alignment at all.  As a consequence, removed the now unneeded EquatorialFlag from config.dat.  These options will not appear if you have display opening messages turned off in config.dat.
3. Added new hotkey 'i' to display initializations.
4. Changed recording of guiding corrections such that the guiding corrections will start with the synchronization point of the PEC.
5. Added hot key 'u' to automatically convert guiding corrections into an 'instant' PEC to use on the spot; a new PEC.DAT file is written.
6. Changed startup behavior: if PEC.DAT file not found, a default PEC array with zero values or a flat PEC curve, is generated.
7. Added hot key 'z' that zeroes out the PEC array.
8. Added hot keys '9' to input altaz, and '0', to reset to input altaz.

Version compiled 6/25/98:
1. Added slewing capability to the field derotation drive.
2. Added menu item to reset field derotation motor to the current field rotation angle.

Version compiled 6/23/98:
1. Important! Fixed a typo that caused incorrect coordinate translations - this was introduced about 6/11/98.
2. Fixed and improved the GEM meridian flip algorithm.
3. At program startup time, you are asked if you want to use the previous coordinates.  Now, you must answer 'N' or 'n' if you do not wish to.
4. During Grand Tour, now display coordinates from data file not only in the current coordinates field, but also in the input fields.  This allows the user to do a little touch up centering and other functions that use the input fields.
5. Removed the 2nd field rotation display that was there mainly for diagnostic reasons.

Version compiled 6/12/98:
Blocked display of unwanted *.dat files in 'display data files'.

Version compiled 6/11/98:
Added German Equatorial Mount meridian flip menu option.

Version compiled 6/10/98:
1. Re-did screen for easier readibility thanks to ever increasing number of menu items.
2. Fixed problem with calling Project Pluto's Guide program from scope.exe - the startup.mar file was being mangled.

Version compiled 6/1/98:
Enlarged buffer area to read Guide's startup.mar file.

Version compiled 5/1/98:
Fixed a recent typo that when calling the IACA routines, resulted in no scope movement.

Version compiled 3/15/98:
1. added encoder reset count for tracking, tracking off, and slewing.
2. added unexpected slew while tracking trap via Test Mode 11.
3. added support for BBox and NGC encoder interface boxes.
4. added ability to keep encoder box on after exiting scope.exe, then read current encoder box coordinates when re-starting scope.exe.
5. moved SerialWriteDelayMs value to config.dat.
6. added check of encoders after every slew.
7. added new method of communicating with Guide: '7' reads Guide's coordinates, '8' writes coordinates to Guide.

Version compiled 1/26/98:
Added long formatting to LX200 protocol.

Version compiled 1/6/98:
1. Fixed loading of align.dat file containing only 2 inits.
2. Fixed azimuth offset display when aligned equatorially.
3. Changed optimization initialization to find the 3 closest inits.
4. Added Equatorial option to config.dat file for equatorially aligned scopes (don't have to enter init data anymore).

Version compiled 1/2/98:
1. Added initialization optimization.
2. Updated format of align.dat file to that of init.dat file. Program will auto-convert old format.

Version compiled 12/27/97:
Changed program to read Guide 6.0 startup file.

Version compiled 12/19/97:
Fixed bug that caused LX200 styled Ra and Dec inputs to read improperly.

Version compiled 11/29/97:
Fixed bug that caused PEC indexes to jump when FullstepsPerPECArray value very high.

Version compiled 11/19/97:
Fixed bug when setting MGIII encoder box to resoution higher than 10,000.

Version compiled 11/5/97:
Greatly increased maximum workable value of FullstepsPerPECArray (used to be about 3500).

Version compiled 11/3/97:
Added new handpad modes for explicit init 1, init 2, and init 3, so that the operator can force a particular init to happen.

Version compiled 10/28/97:
1. Fixed bug in conversion test routine.
2. Fixed bug in test module selection routine.

Version compiled 10/27/97:
1. Added code so that the program can be controlled by an external PC sending LX200 protocol commands via serial null cable.
2. Added ability to do 3 star initialization. This is more accurate than the 2 star initialization because the 2 star init actually generates a 3rd init position that carries with it the errors in the first 2 inits.
3. Initializing from the handpad after the 3 stars have been initialized automatically re-inits by replacing the closest init.

Version compiled 8/5/97:
1. Fixed lockup that occured after reaching end of data file w/o selecting an object.
2. Fixed rare occurrence where scope unexpectedly jogs a fraction of a degree. This happened when control was returned to the handpaddle momentarily just after an encoder query: the encoder read a fraction of a second later was no longer valid.

Version compiled 7/28/97:
Added ability to reverse encoder count direction for situations where mechanically reversing the encoder is not convenient.

Version compiled 7/20/97:
1. Added IACA back into the program. This communicates with other programs through the InterApplication Communication Area. However, it will not work with OS such as Win95/NT that put each DOS program into its own memory area.
2. Added equatorial position recording via the handpaddle. By setting the handpaddle mode, and then flipping the mode switch, the equatorial coordinates are written to the file, "record.dat". This is to build grand tour and scroll tour files, among other purposes.
3. Changed format of data files to put the object name or comment at the end of the coordinates. This makes all coordinate file formats consistent.

Version compiled 7/16/97:
Fixed microstep and guide speed displays.

Version compiled 7/6/97:
1. Code broken into two modules: common.c and common.h that holds low level functions and common definitions, and scope.c, scope.h that contains the hand paddle and keyboard/screen interface.
2. A new file, outguide.dat, is written to everytime Project Pluto Guide is exited, allowing a compilation of positions to be accumulated avoiding manual entry.
3. A new standalone conversion program, called megscope.exe, written to convert from Megastar's file output to scope.exe's *.dat format. Contact the author to get a copy.

Version compiled 6/28/97:
1. Current coordinates now displayed in yellow (you can change this color, to help you locate them on the screen).
2. Menu items now have an explanation line.
3. An encoder error threshold variable, called TrackEncoderErrorThresholdDeg, was added to apply only when tracking or slewing, EncoderErrorThresholdDeg applies at all other times.
4. New handpad mode to allow guiding corrections to continue ad infinitum when PEC is active. Formely when PEC was on, guide corrections were limited to 3 or 4 turns of the motor shafts, in order to keep the outputted file size reasonable.
5. Grand Tour is now a handpad mode. Load a data file, then put the handpad in grand tour mode. Now use the left mode and right mode buttons on the handpad to move forward or backwards through the data file list of coordinates. This is envisioned as a way to plan and automate nightly observing sessions as well as favorite lists of objects or tours, if you will.
6. Scroll mode now added. When in scroll mode and a scroll file loaded, the handpad is used to move forward or backward through the coordinates in a microstepping or scrolling motion over many seconds. This is envision as a 'fly-over' approach, for instance, scanning the Moon or extended objects at a constant slow speed.
7. Added some backup keys for menu items: q for quit, h for handpad, d for datafile.

Version compiled 6/24/97:
1. Added ability to show more than 26 data files.
2. Fixed coordinates' display in Data File menu selection.
3. Rearranged menu layout to add more menu items.
4. Added reset equatorial coordinates to encoders menu item.
5. Adding Grand Tour menu item.

Version compiled 6/14/97:
1. Removed MaxMsDistance variable from config.dat.
2. Added PWMRepsTick variable back into config.dat.

Version compiled 6/10/97:
1. PWMRepsTick now displayed on the screen at all times.
2. Calculation of best average PWMRepsTick now done by the software - no need to enter a value in the config.dat file.
3. Added a new config variable: MaxMsDistanceDeg, the maximum distance microstepping will be used to make the move.

Version compiled 6/6/97:
1. Added optional realtime display of actual PWMRepsTick via DisplayActualPWMRepsTick in config.dat.
2. Minor cleanup of code in microstepping routines.

Version compiled 6/3/97:
1. Gave option to display the microstep # when in TestModule 8 mode. Fixed same function where motors would not move if inputed microsteps per second < 1 and PWMRepsTick in config.dat > achievable PWMRepsTick.
2. Changed variable name from MsRepsTick to PWMRepsTick to better reflect the variable's use.

Version compiled 5/29/97:
Fixed bug in TestModule mode 8 that when negative microsteps per second entered (to reverse the motor direction), the motor only quivered.

Version compiled 5/27/97:
Added alternative to normal program execution to track or move motors at constant rate, in microsteps (can be a fractional number) per second. Set TestModule to 8 to operate in this mode.

Version compiled 5/15/97:
Removed requirement for PEC.DAT file and for PEC to be on, for guide function. If no PEC.DAT file or PEC off, then guide function merely calculates drift.

Version compiled 5/13/97:
For Guide functions to operate, reinstate the requirement that the PEC data file be present. Add a dummy PEC.DAT file called PEC.TXT to make using the guide functions/capabilities easier.

Version compiled 5/4/97:
Added defaults for config.dat vars to scope.exe.

Version compiled 5/3/97:
Guiding now works without PEC, and the handpad status shows when guiding is active.

Version compiled 5/2/97:
Added ability to set MGIII encoder resolution based on AzEncoderCountsPerRev and AltEncoderCountsPerRev.

Version compiled 5/1/97:
Added ability to interface with Bob Seagrest's encoder unit. Flag in the config.dat file called EncoderType sets type of encoder box.

Version compiled 1/19/97:
Fixed bug that in unusual circumstances caused program to appear locked while tracking.

Version compiled 1/16/97:
Increased the backlash trigger sensitivity so that backlash is immediately taken up for configurations with larger step size

Version compiled 1/15/97:
Scooted the shortcut keys '2' through '5' down to '3' through '6' and added '2' as a shortcut key for tracking on/off

Version compiled 1/14/97:
Fixed the '2' and '4' key so that they save the current equatorial coordinates, not the inputed equatorial coordinates

Version compiled 1/13/97:
1. Added the '4' key to save a 2nd set of inputed equatorial coordinates
2. Added the '5' key to retrieve the 2nd set of inputed equatorial coordinates

Version compiled 1/3/97:
1. Added the '1' key to also select 'move to equat'
2. Added the '2' key to save inputed equatorial coordinates
3. Added the '3' key to retrieve inputed equatorial coordinates

Version compiled 1/1/97:
1. Added altaz limit checks before move to equatorial coordinates actually commences

Version compiled 12/31/96:
1. Fixed occasional program lockups due to serial port and timer interrupt conflict
2. Changed Uranostat to Siderostat to make variable name more understandable, as the need to prevent the azimuth axis from flipping 180 deg when a scope moves to the other side of zenith also applies to other scope mounts, for instance, some equatorially mounted telescopes such as the split ring and horseshoe mounts cannot allow this kind of azimuth flip that would otherwise occur when attemping to move under the North Celestial Pole

Version compiled 12/29/96:
1. Added code to handle siderostats and uranostats; these mounts use a movable flat to direct the light into a stationary tube; so, the flat can exceed 90 deg in alt: in dobsonians, movement past the zenith is not allowed, instead the mount is moved 180 deg in azimuth, however, with the flat, this would flip it upside down; az limits must be set so that east AzLowLimit is about 90, and the west AzHighLimit is about 270, the difference between the two limits cannot exceed 180 degrees, and pointing south must be about 180 degrees in azimuth
2. Added the left apostrophe key, in the upper left of the keyboard, as an optional keystroke to the menu item, "Guide.bat". In Guide, one can define the exit key to be the left apostrophe, so that this same key can be used to call Guide.bat as to exit it, a practice useful in the dark.

Version compiled 12/27/96:
1. Added encoder support via David Lane's MicroGuider III (added interrupt driven serial interface, code to reset, query, and read the encoders, new menu item to reset encoders while program is operating, added error checking so that if error threshold exceeded, current altazimuth coordinates reset to encoder coordinates, and if tracking is off, current equatorial coordinates to track/slew to also reset);
2. Doubled highest possible microstepping speed;
3. Added Backlash speed setting in config.dat file (until now, backlash was taken up at maximum microstepping speed, the sudden jump to new max speed discovered to cause occasional motor stalling);
4. Added ability to select menu items by cursor and tab keys;
5. Added optional low and high motion limits in altitude and azimuth

Version compiled 1995:
1. switched back from C++ to Ansi C code.

Version compiled 1992:
1. recoded in C++.

Version compiled 1989:
1. recoded in C on AT class machine.

Version compiled 1985:
1. coded in Basic and 6502 assembly language on Commodore 64, routines for moving steppers and coordinate conversions and other astronomical utilities and computations.