This zip file contains the following additional files:

SDS.ASM		8051 assembly language source code file
SDS.H		Header file used by  SDS.ASM
SDS.HEX		Assembled object file in Intel Hex format
SDS.BIN		Assembled object file in Binary format

The SDS.ASM and SDS.H contain the source code for the new operating system and can be viewed or edited using any text editor.

The 8051 microprocessor in the SDS can be programmed using the .hex or .bin file and an appropriate programming device.  
The operating system has the following improvements over the factory supplied firmware:

1.  The SDS now has a standby mode so the user can turn the motor on/off without using the motor switch or the SDS power switch.
     Enter standby mode via a long press of the RPM button.  Exit Standby mode with a short press of the RPM button.

2.  On many of the lower power motors, the SDS did not recognize when the motor was on so the output voltage was always 72VAC
     regardless of the programmed reduced output voltage.  This has been corrected in firmware on this version.

3.  On the original operating system, nothing happened when you pressed a button until the repeat time out expired making it difficult
     to change the frequency 1 or 2 steps.  The repeat function was also very slow which took a long time to make large changes.
     The new firmware changes the display as soon as you press the button making it easier to make small changes and the press
     and hold feature starts at 7 steps/second and increases in speed the longer you hold the button down until it reaches a max of
     20 steps/second.  Making large changes to the frequency is much shorter now.

4.  On the original firmware, step C1 was for adjusting the 90Hz output, but it never displayed the adjustment and there was no way
     to restore it if it got screwed up.  On the new firmware, calibration step C1 still shows 90.00 Hz, but if you press up/down in this
     mode, it will display the reference divider (11,250 factory set) and allow you to see what it is set to while changning it.  There is
     also a factory default mode for restoring all parameters if things get screwed up.

5.  On the original firmware, steps C3A and C3B allowed you to read the hours of running time, but you could not reset the counter.
     On the new firmware, you are given the option to clear the counter by a long press of the RPM button (short press skips to next
     test without changing).  The display will change to "CLr  no".  Pressing the UP/DOWN buttons will toggle between YES and no. 
     A long press of the RPM button when YES is displayed will clear the counter.

6.   Factory default mode is entered by pressing and holding the Down+RPM buttons while turning on power.

7.   An EEPROM readout mode was also added to dump the contents of the non-volatile memory to the display, one location at a time.
      Pressing the Speed button advances to the next location.  Enter mem dump mode by pressing and holding the UP+Speed buttons
      while turning on power.  The EEPROM memory map is as follows:

      Location        Contents                    Typical values
          00h            Current Speed           00h=45 RPM  02h=33 RPM
          01h            Empty                       00h
          02h            33 RPM MSB (BCD)     60h
          03h            33 RPM LSB (BCD)      00h  (6000=60.00 Hz)
          04h            45 RPM MSB (BCD)     81h
          05h            45 RPM LSB (BCD)      00h  (8100=81.00 Hz)
          06h            Pwr Ups MSB (BCD)    11h
          07h            Pwr Ups LSB (BCD)     20h   (1,120 times)
          08h            Hours MSB (BCD)        00h   Total run time in 1/10s Hour
          09h            Hours                         02h
          0Ah            Hours                         54h
          0Bh            Hours LSB (BCD)          87h   (0,002,548.7 Hours)
          0Ch            Marker                       A2h
          0Dh            Marker                       E9h
          0Eh            90 Hz Cal MSB             2bh
          0Fh            90 Hz Cal LSB              F2h (2BF2h=11,250 for ref divider)
          10h            Attenuation 33 RPM      06h  00=115V
          11h            Attneuation 45 RPM      01h  01=108V
                                                                    02=102V
                                                                    03= 96V
                                                                    04= 90V
                                                                    05= 84V
                                                                    06= 78V
                                                                    07= 72V