

                  Changes or Special Notes About 6500 Commands          
                                                               2005/02/14


        The RS232 based FIPP (Frye Instrument Packet Protocol) was first
        implemented on the Fonix 6500.  Most of the commands listed in 
        the RS232 Command Reference Guide operate as specified.  Over 
        time there have been some changes and additions.  These changes 
        are described below.

        Instrument State:
        In version V3.09 and earlier, the instrument minor state was only 
        valid in ANSI, IEC, and JIS modes. In all other modes, the 
        instrument minor state could take on any value. Also, the 
        instrument major state was only valid in ANSI, IEC, JIS, the Main 
        screen, and the Logo screen. However, the Set State command (59) 
        does not work from the logo screen. You must use the Reset 
        command (38) to get out of the logo screen. Once out, you cannot 
        go back to the logo screen. The logo screen only appears when the 
        instrument is first turned on.

        In most states when at the idle minor state (start of test or 
        when test is complete), you can use the Set State Major:1, 
        Minor:0 to return to the main screen. The preferred method is to 
        use the -1 minor state to exit the current mode. Currently on 
        most instruments this is the same as Set State Major:1 Minor:0. 
        The reset command also has the same effect.

        Prior to V4.03, the Set Instrument State was not available in all 
        modes where the Get Instrument State was available. Specifically, 
        it was only available in the ANSI, IEC, and JIS test modes, 
        Probe, and the main chamber mode screen.

        Machine type:
        The 6500 normally returns a machine type of 0000.  Prior to 
        version 2.32 the 6500 did not return a machine type in the 
        version response. If the version command returns a length of 
        five, it means that the attached instrument is a 6500.  This is 
        the only means available to determine the identity of the 
        instrument prior to version 2.32.  Software this old should be 
        replaced anyway as there have been many bug-fixes and 
        enhancements since then.

        Machine sub-type:
        The 6500 does not currently return a machine sub-type field. (The 
        returned version packet will be one field shorter.)










                                        1


        Frequency:
        The 6500 allows the frequency to be specified in steps of 50 Hz
        between 100 Hz and 3950 Hz, and increments of 100 Hz from 4000 to 
        8000 Hz. Selecting a frequency of 0 Hz places the 6500 in 
        composite mode.

        Amplitude/Gain:
        The 6500 allows the amplitude to be set in 5 dB steps from 40 to 
        90 dB for weighted gain and weighted power, and from 50 to 100 dB 
        for un-weighted and pure tone mode.  Setting the source amplitude 
        to 0 turns it off. Note: Set/Get Gain is not available when 
        composite source is being presented. Use the Get/Set Weighting to 
        determine if the 6500 is using gain or not. Only use the Get/Set 
        Gain with the pure tone source.

        Battery Data:
        The 6500 only returns three battery types:

          Type: 0 = none (external)
                1 = mercury (1.3 v)
                2 = zinc-air (1.3 v)
                3 = silver oxide (1.5 v)

        Battery Test:
        Prior to version 2.24 of the 6500 software, a separate Battery
        Test (14) had to be run before the battery data was valid.  
        Starting with version 2.24 the battery data is made available to 
        the RS232 every time it is measured.  The Battery Test command is 
        still valid, but has no effect. (Note: This command may be 
        discontinued in future instruments.)

        Do Test:
        As of 09/22/93, the "Do Pure Tone Sweep" command was redefined as 
        "Do Test". As of 06/28/99 the command was redefined again to "Do 
        Start/Stop" to better describe the action of the command 
        (effectively pressing the start/stop button. On the 6500 however, 
        it still is limited to only starting a pure tone sweep.

        Get/Set Active Status:
        This command is limited to only probe mode of the 6500. It does 
        not control the Start/Stop key action in other modes.

        Harmonic Distortion:
        Prior to V2.60 the harmonic distortion status flags were set in 
        the curve frame even when they were not measured.  Now if there 
        are no measured distortion values the distortion mode flags are 
        set to 0 (no distortion). After V2.60, distortion data in the 
        curve frame is returned as 8000H (32768 decimal) if it was not 
        measured. Prior to V2.60 the data was set to -1 or 0.







                                        2


        Curve data:
        Prior to Version 2.50 the 6500 had nine curve buffers available 
        for use. With Version 2.50 four additional buffers have been 
        added.

        The curves are referenced by curve name on the 6500 screen, and 
        by curve number in the FIPP commands.

            curve name               curve number
           ---------------------------------------    (probe mode curves) 
            Curve 1 (real-time curve)     0           (Unaided response)
            Curve 2                       1           (Aided response)
            Curve 3                       2           (Insertion gain) 
            Curve 4                       3           (Target insertion)

            (multicurve registers)
            Reference 1                   4         (SPL Aided #1)
            Reference 2                   5         (SPL Aided #2)
            Reference 3                   6         (SPL Aided #3)
            Reference 4                   7         (SPL HTL)
            Reference 5                   8         (SPL Target) 
            Reference 6*                  9         (SPL UCL / RECD)
            Reference 7*                 10         (Target 2cc SSPL90)  
            Reference 8*                 11         (Target 2cc FOG) 
            Reference 9*                 12         (Difference Curve) 

        The first four positions refer to different curves when in probe 
        mode, they become REUR (real ear unaided response), REAR (real 
        ear aided response), REIR (real ear insertion response), and 
        Target insertion response.

        * Curves 9 to 12 are new with V2.50 software.

        The 6500 uses curve frame types '0' and '1'.  Refer to the Curve
        Frame Reference Guide for a description of these two curve frame
        types and how they are used.

        A note about curves:
        When a 6500 curve frame is requested which does not contain valid 
        data the 6500 returns a NAK, this can be confusing as this is the 
        same error returned when an invalid curve number (i.e. 99) is 
        requested.














                                        3


        Multicurve:
        Prior to V4.03 there were no commands to place the 6500 in multi-
        curve mode, the only way to do this was to set rs232 keyboard 
        control and simulate the [MULTI] key being pressed. Communication 
        in multicurve became available with V2.60 software. In V4.03 the 
        ability to use Set State Major:14, Minor:0 was added to directly 
        enter multicurve. In V3.10 and in V4.03 and above, the Do Print 
        command was made available in Multicurve.

        Probe:
        The 6500 did not properly send the curve frames from curves 2 and
        3 while in probe mode prior to version 2.43.

        In version 2.45 several new probe commands were added. 
        Including Get/Set Noise Reduction, Get/Set Automatic Status, 
        Get/Set Output Limiting Value, Get/Set RefMic Status, Get/Set 
        Frequency, Get/Set Source Amplitude, Do Start/Stop (Do Sweep), 
        Get/Set Active Status, and Get Measurement Data.

        Prior to V4.51 there were problems with Probe multicurve of 
        knowing when the instrument was in probe multicurve verses 
        coupler multicurve and having the screen be properly updated when 
        curve data was sent to probe multicurve via RS232. This was 
        resolved by adding a new multicurve major state (20) for probe 
        multicurve to indicate that it is a different multicurve state. 
        The main coupler screen multicurve state can still be entered 
        from the coupler screen by using Major state 14. 

        Get Reference Microphone Data:
        This only works in probe mode.

        Telecoil:
        Prior to V4.03 there were no commands to place the 6500 in 
        telecoil mode, the only way to do this is to set RS232 keyboard 
        control and simulate the [Tcoil] key being pressed. This 
        functionality became available with V4.03, at which point The Set 
        Instrument State command could be used to place the 6500 into 
        telecoil mode from the main screen. Telecoil is major state 7.
        With V4.60 tcoil was enhanced to allow ANSI96 coil test (type 3) 
        if the ANSI96 option is available.

        Get Measurement Data (31):
        This command requests the most recent measurement value. In 
        composite mode this is always an SPL value, in pure tone mode 
        this is a gain figure if the instrument is in gain mode, 
        otherwise it too is an SPL figure. Normally this is the 
        microphone input data. In average mode it would be the results of 
        the average measurement.








                                        4


        Attack/Release:
        Prior to V4.03 there were no commands to place the 6500 in A/R 
        mode, the only way to do this is to set RS232 keyboard control 
        and simulate the [A/R] key being pressed. This functionality 
        became available with V4.03, at which point The Set Instrument 
        State command could be used to place the 6500 into A/R mode from 
        the main screen. Fixed A/R is major state 9. Variable A/R is 
        major state 10. In V4.60 support was added for ANSI96 style 
        attack and release. In ANSI96 mode, the following frequencies 
        are supported; 250Hz, 500Hz, 1000Hz, 2000Hz, 4000Hz. 

        The Attack and Release Windows are set with the following values; 
        0=500mS, 1=1000mS, 2=2000mS, 3=5000mS. Warning: Other instruments 
        may allow actual time in milliseconds to be used as parameters in 
        the  Attack  and Release Parameter command (97/98).  The  Windows 
        setting are only valid in the ANSI96 mode of the 6500. When doing 
        an ANSI96 Attack and Release test, it is only available from  the 
        Do  Attack  &  Release  command (13). There  is  no  Major  state 
        associated  with  the test. The test will return to  the  coupler 
        screen when it is complete (where you can get the values with the 
        Get  Attack  &  Release Data command (18). In  fixed  Attack  and 
        Release  mode, the following frequencies are available;  100,200, 
        300,400,500,600,700,800,1000,1200,1600,2000,2500,3200,4000,5000, 
        6400,8000.  In Variable Attack and Release, the frequency is  not 
        adjustable.

        CIC:
        The CIC option was added in V4.06 of the 6500 software.

        ANSI, IEC, JIS:
        These options and their data are not available with software 
        versions prior to V2.66. In V4.02 and earlier, in the ANSI 
        telecoil test minor state, the telecoil output was only available 
        via the Get measurement data command. In V4.03 and above the 
        GetBlob command was added to allow the data to be obtained via 
        the blob thus allowing for simpler programming. Also beginning 
        with V4.03 the Get measurement data command was added to the RTG 
        minor states of the ANSI/IEC/JIS tests. The Get measurement data 
        will return the measured three frequency average value in ANSI 
        (the value as displayed on the screen). The ANSI RTG measurement 
        data is returned as a gain value. In versions 4.00 to 4.04 the 
        telecoil state in the set/get parameter commands was backwards. 
        Prior to V4.60, the calculated RTG was returned as SPL and the 
        Target RTG was returned as Gain. In V4.60 this was corrected to 
        return both values as gain.

        The 6500 and FP40 instruments return the calculated RTG as either 
        the OSPL90-77 value if an adjustment was made or the FOGAVG value 
        if no adjustment was made. The calculated value returned in the 
        blob should be treated as the reference RTG. On the computer, 
        derive the calculated RTG by subtracting 77dB from the OSPL90 
        average FOG value. If the result matches the calculated RTG 
        returned in the blob, then the aid was adjusted. If the two 
        values do not match, the then aid was not adjusted.


                                        5


        On the FP35 and 7000, if the hearing aid was not adjusted during 
        the RTG test, the Calculated RTG value is returned in the blob as 
        INVALID DATA (0x8000) to indicate that the calculated fog RTG was 
        not used for the reference.

        ANSI92:
        This option did not exist in V4.02 and earlier. Use the Set 
        Instrument State command to place the 6500 into the ANSI92 test 
        mode. ANSI92 is major state 12. The Get/Set parameter selection 
        for the Source Amplitude Selection refers to the set of curves 
        that will be displayed. This may be different on other models of 
        Fonix instruments. For the 6500 the curve sets are:

          0: 40, 50, 60, 70 dBSPL source
          1: 50, 60, 70, 80 dBSPL source
          2: 60, 70, 80, 90 dBSPL source

        Note: The display selection does not change the values returned 
        in the Blob. The Blob always returns the 50dB through 90dB values 
        and never returns the 40dB values.

        I/O:
        Prior to V4.03 there were no commands to place the 6500 in 
        I/O mode, the only way to do this is to set rs232 keyboard 
        control and simulate the [I/O] key being pressed. This 
        functionality became available with V4.03, at which point The Set 
        Instrument State command could be used to place the 6500 into 
        I/O mode from the main screen. I/O is major state 11.

        Beginning with V4.20 two additional parameters were added to  the 
        Set I/O Parameters and Get I/O Parameters commands. The Start 
        Delay parameter controls the time that will pass before the first 
        measurement is made after the presentation of the first signal. 
        The Sweep Delay parameter controls the time that will pass after 
        each successive signal presentations before the measurement is 
        made. Any changes made to the Start Delay and Sweep Delay will be 
        affect all I/O tests in the instrument. 

        ANSI96:
        This option was added with Version 4.50. Version 4.60 enhanced 
        the RS232 commands to enable the 6500 to perform individual 
        components of the test. Prior to V4.80 the short blob size (size 
        value  returned  inside the blob) was incorrect it  reported  the 
        large  blob  size  [362]). Prior to V4.80  ANSI96  would  not  be 
        allowed unless ANSI87 was also installed on the 6500.

        ANSI03:
        This option was added with Version 4.90. 








                                        6


        Zeta:
        The Zeta test is an obsolete option that was never fully 
        supported via RS232.

        Average:
        Prior to V4.03 there were no commands to place the 6500 in 
        Average mode, the only way to do this was to set RS232 keyboard 
        control and simulate the [AVG] key being pressed. This 
        functionality became available with V2.66 software, but was not 
        yet fully supported until V4.03, at which point The Set 
        Instrument State command could be used to place the 6500 into 
        average mode from the main screen. Average is Major state 13.

        Starting with V4.14, you can change the average start delay and 
        settling  time (commands 90/91). This gives you more flexibility 
        in using the average function with different hearing aids.
        A minimum time of 0ms and a maximum time of 5000ms can be set.
        See note for Get/Set Measurement Settle Time for limitations.

        Starting with V4.40, minor state 2 was added to the three 
        frequency average. This state when used will enter the average 
        state, perform one measurement cycle and exit the state. You can 
        then use cmd 94 to retrieve the data. This can only be done 
        currently from Major state 1 (main coupler screen).

        Get/Set Measurement Settle Time:
        Beginning with version V4.03, the command to change the settle 
        time before a measurement is taken was added. A minimum time of 
        0ms and a maximum time of 5000ms can be set.

        Note that the settle time is the "minimum" amount of time the 
        6500 will wait before taking a measurement. It does not take into 
        account the time to create a new source signal. There can also be 
        additional delays if the 6500 has to change the input gain 
        settings (prescalers) to properly measure the signal. The exact 
        time is dependent upon what is being done and can vary from as 
        little as 10ms to 100ms or more in a noisy environment. Once a 
        stable signal has been achieved, the settle time will be the 
        dominant time delay. 

        Get/Set Average Frequency Set:
        Beginning with version V4.03, the command to change the frequency 
        set (HFA/SPA) used for averaging was added. 

        Get HFA Measurement (cmd 94):
        Beginning with version V4.40, the Get HFA measurement command was 
        added. This command will return the last HFA measurement made 
        while in Major State 13 (see cmd 59). A new minor state (2) was 
        added to State 13 which performs one measurement and returns to 
        the calling state. Currently this is only operational from the 
        main coupler screen (major state 1). 





                                        7


        Get/Set Poll Delay:
        Beginning with version V4.00, the Poll Delay command was added to 
        the 6500. This allows the poll time-out period to be adjusted to 
        adapt to computers that are able to respond faster than 50ms to a 
        poll, or for those who are not able to respond within 50ms. 

        Set Label (cmd 6):
        In versions 4.00 to 4.02 the Set label command does not work in 
        chamber mode (main screen). Use the Set Extended Label command 
        (66) instead for these versions. 

        Get Label (cmd 86):
        The Get Label command was added in version 4.04. Do not send any 
        label type value other than 0 or 1 in V4.04. Doing so will cause 
        the 6500 to lock up and stop working requiring that it be turned 
        off to recover. This was fixed to cause an error return (NAK) in 
        later versions. In the power-on screen, the label cannot be read 
        with command 86. It will return an ACK in this circumstance.

        Set Printer Label Storage (cmd 89):
        The Set Printer Label Storage command was added in version 4.06. 
        It is used to set the power on label default that will be used.

        Get/Set Ear:
        The 6500 currently does not track the ear being tested, so these 
        commands are not available. In the curve frames, the ear will 
        always be identified as the left ear.

        Do Measure:
        Starting with V4.14, a new command (85) was added that performs a 
        single measurement using specified source values. This was done 
        to make programming easier. Great care should be used with this 
        command because it violates default timing specifications in the 
        FIPP protocol. Specifically, the results of the measurement will 
        not be returned until after a valid measurement has been made. 
        That means that the response timeout period will probably be 
        violated. See the Fryers document on how to extend the response 
        timeout period. Typically this command will improve multiple 
        measurements by 10%. It may not be worth the hassles.

        Quick Terminate:
        Beginning with version V4.00, the Quick Terminate function was 
        added to the 6500 software. If you don't use a quick terminate, 
        you must use the slower skip poll method to allow the 6500 to 
        perform the command sequence sent to it. (See the Commands 
        document and the Fryers documentation for a further discussion of 
        the quick terminate command.) 









                                        8


        Enhanced Digital Speech: 

        Limited RS232 support for Enhanced Digital Speech was added in 
        V4.72 It is selected via Major State 28:0. The test can be run by 
        selecting Major28:Minor1. RS232 will only ever see Minor state 0. 
        Since the 6500 doesn't communicate while running the test (Minor 
        State 1). Use State 28:-1 or 1:0 to Exit the Enhanced DSP test.

        Get Raw Data (cmd 110):

        Command                         Response
        -------                         --------
        006E Cmd number (110)           806E  Rsp number
        0003 Three words                0800  256 data points
        xxxx Data Selection             ....  Binary sample data
        nnnn How to collect             
              0=get current data        
        zzzz Number of samples          
              0=default count           
                                         
        <Cmd 110 Command>

        The data selections available consist of the following:
         6=Aid #1 Delay Display Data
         7=Aid #1 Phase Display Data
         8=Aid #2 Delay Display Data (new with V4.80)
         9=Aid #2 Phase Display Data (new with V4.80)

        The 6500 uses a default 256 data samples (you cannot change it).
        To get new data you run another test using the State commands. 
        Thus the second two parameters of command 110 are always 0.

        <Cmd 110 Response>

        The data samples start in the received array assuming a zero 
        relative word (two byte) array. Data in the is in smallint form 
        (16 bit integers), low byte first, high byte second (Intel 
        format).

        The returned data is the relative data displayed on the 6500 
        screen. 

        Get Delay Measurements (cmd 131):
        This command is used by the Enhanced DSP test. It returns two 
        values, the system delay in microseconds), and the hearing aid 
        delay (in microseconds). In V4.80 an additional (third) parameter 
        is returned as Aid #2 delay. 









                                        9


        Printing:
        The 6500 prints the screen in two portions. The top half and the 
        bottom half. The print command reflects this functionality in the 
        Print Selector word. 

          Bit 0 - Print the current label. 
          Bit 1 - Print the top half of the CRT screen.
          Bit 2 - Print the bottom half of the CRT screen.

        On the 6500CX and above, the current date and time will 
        automatically added to the Date field of the label when using the 
        factory label, or when label command 6 was used to create the 
        label. If label command 66 was used to create the label, the date 
        and time will not be added to the date field since it not known 
        whether that line is to contain date information. If it is 
        desired to have date information, it is up to the program that 
        sends the label information to add the date to the label.

        External Printing:
        Beginning with Version 4.20, the ability to print to an external 
        printer (inkjet or laser) was added to the 6500. Two new commands 
        were added to allow the selected printer to be controlled via 
        RS232 (92 and 93); Get Printer Selection and Set Printer 
        Selection. 

        Printer selection flags:

           Bit 0 - 0=Use internal printer   1=Use external printer
           Bit 1 - 0=Print in monochrome    1=Print in color       
           Bit 2 - <reserved>
           Bit 3-15 - <reserved>

        When the internal printer is selected, the color flag is ignored. 
        The internal printer is always monochrome. Bit 2 on the FP40 
        controls the selection of either an Epson or HPCL printer. The 
        6500 does not support the Epson printer, the flag is ignored.

        Currently the 6500 only accepts an HPCL (level 3 or better) 
        compatible printer for external printing. the printer is 
        connected via a spare serial port on the 6500 backpanel. For most 
        printers this may require that a serial to parallel converter be 
        used (available from Frye Electronics). 














                                       10


        Digital Speech In Noise (DSIN):
        The DSIN option was added to the 6500 in V4.30 The option is used 
        to test digital hearing aids. DSIN is entered with the Set State 
        command. DSIN uses major state 17.

        There is one aspect that should be kept in mind with the DSIN 
        option. While you can get the curve frame from the instrument 
        while the DSIN option is active, you should not try to get the 
        curve repeatedly on a real time basis. The DSIN option pushes the 
        6500 to the limit, and using RS232 commands that take a lengthy 
        time to process may adversely affect the operation of the test. 
        It is not so much a problem with the 6500 as it is with the 
        hearing aid being tested. The timing of the signal processing is 
        important, and getting a curve frame can affect the timing. The 
        same can be true if repeated or many multiple commands are sent 
        to the 6500 during the test. 

        The main issue is randomness. If the hearing aid sees a non-
        random (repeated) signal, it will assume that it is not speech 
        and may change gain. It is desirable to maintain a random 
        pattern. Thus, an occasional RS232 command is fine since it can 
        actually add to the randomness of the signal, while repeated 
        RS232 commands may appear as a non-random pattern.

        Individual Amplitude(0) and Frequency(2) commands are not 
        available in the DSIN mode. They are set with the Set Parameters 
        command (70). Also, the Set Weighting command (8) is limited to 
        only weighted power (1) and weighted gain (2). 

        The speech level can be set in 5db increments from 50db to 90db. 
        The bias tone level can be set in 5db increments from 50db to 
        90db. The bias tone can also be turned off by setting the value 
        to 0. The bias frequency can be set from 200Hz to 8000Hz in 100Hz 
        increments. The speech signal type can be either ICRA(0), or 
        ANSI(1).





















                                       11


        Profiler:
        The Profiler was added to version 4.50 software as a new test 
        sequence that can quickly profile a hearing aid to determine its 
        condition and state of operation. You can enter the profiler by 
        issuing the Major state 19 command. The profiler operates similar 
        to the ANSI test except that there are only minor states 1 and 2 
        that it can stop at. Minor state 1 waits for the aid to be set to 
        full on gain. Minor state 2 indicates that the test is complete. 
        The Profiler blob is only available when the test is in minor 
        state 2. You can start a new test by issuing minor state 0, or 
        exit the test by issuing minor state -1, or go directly to the 
        main coupler screen with major state 1 minor state 0. 

        See the Set parameter command for the profiler test conditions 
        that can be set via RS232. 

        See the Get Blob command for the description of the returned blob 
        data. 






































                                       12


        Set/Get KeyCode/KeyState:   
        Since the 6500 has it's own key structure, it's key codes are 
        different from other instruments. See the 6500 keycode 
        documentation file for key code values. On the 6500, when a key 
        is pressed, that code will be returned only once when requested. 
        A follow on call will read a zero if no other key has been 
        pressed. If the key is on the remote module the high bit of the 
        code will be set. 

        NOTE: It is possible to use the SetKeyCode to place the 6500 into 
        a state where it can no longer communicate via RS232. This is 
        usually caused by entering a mode where RS232 is not supported. 
        If this happens, you will have to exit the mode manually at the 
        6500 keyboard. Currently, some of the areas where this will 
        happen are Menu, Audiogram, Data screens, and any measurement 
        screen when it is "frozen".  

        In version V3.09 and earlier, and in V4.00-4.02, the GetKeycode 
        and SetKeycode functions were erratic. If you need to use these 
        functions, you should update your software. If you need to use 
        the V3.09 or earlier software with the SetKeycode command, then 
        the following sequence can be used to improve reliability (it 
        still isn't perfect though).  

             The GetKeyCode data is only valid when the KeyState is set 
             to 1 (RS232 control) and the KeyCode register was previously 
             set to zero while under 6500 control (The keycode value will 
             not be valid until a key has been pressed after entering the 
             RS232 control state).

             To use GetKeycode, do the following sequence:
              Set KeyState to 0   (6500 control)
              Set KeyCode to 0    (clear keycode register)
              Set KeyState to 1   (RS232 control)
              Get KeyCode         (get the desired key)
              Set KeyState to 0   (6500 control - if needed)

             To use SetKeycode, do the following sequence:
              Set KeyState to 0   (6500 control)
              Set KeyCode to 0    (clear keycode register)
              Set KeyState to 1   (RS232 control)
              Set KeyCode to Key# (press the desired key)
              Set KeyState to 0   (6500 control - if needed)

        In V3.10 and in V4.03 and above, these limitations do not apply. 
        You only need to set the KeyState to RS232 control to send a 
        SetKeycode command. The above sequence won't hurt anything if you 
        do use it in newer software, it will just slow things down a bit.








                                       13


        Changing State and Reading Values:
        Remember that you must do a skip poll to release the 6500 from 
        communication mode. As an example, if you change the source 
        amplitude, you must do a skip poll to release the 6500 so that it 
        can do a dynamic measurement. Additionally, prior to V4.14 the 
        first dynamic measurement taken after a system change will be 
        incorrect because the measurement will have been taken while the 
        system was changing. Because of this, you should discard the 
        first dynamic reading taken after a system change if you are 
        using 6500 software prior to version 4.14.

        Static and Dynamic Data:
        A system change is any command that causes the 6500 to change its 
        operational state such as changing mode, source amplitude, or 
        frequency. A dynamic reading is any command that reads dynamic 
        measurement data in the 6500, such as GetMeasurementData. Dynamic 
        data is measurement data that is constantly updated in the 6500. 
        Source Amplitude is static data and will reflect the current 
        system status. Measurement Data is dynamic data and is constantly 
        being updated while the 6500 is running. 

        Reading Dynamic Data:
        In the 6500 prior to version 4.14 dynamic data may not be valid 
        immediately after changing the operational state of the 6500, 
        such as changing the source amplitude. You may want to discard 
        the first reading because of this. An example sequence would be; 
        Change Amplitude, Skip Poll(or Quick Terminate), Get Measurement, 
        Skip Poll (or Quick Terminate), Get Measurement (discard the 
        data), Get Measurement. The second Get Measurement will return 
        the valid data for the new amplitude. 

        In the 6500 version 4.14 and later, the measurement will have 
        been taken at a stable time period and will be valid within that 
        time period (ie the measurement will reflect the microphone input 
        at the time the data was requested), but remember that the 
        hearing aid being tested may not have stabilized yet. The 
        stabilization time needed will depend on the hearing aid. 

        With version V4.14 and above, the bad data on the first 
        measurement after changing the source was improved. The returned 
        value from the 6500 will be a true measured value, however, the 
        problems with delays of the hearing aid settling time remain. You 
        may still need to perform a delay before getting the data after 
        changing the source.












                                       14


        Invalid values:
        Prior to V2.60 invalid values were either left in an unknown 
        condition, or were set to a -1 value. In V2.60 and above this has 
        been changed to use the standard MinInt value of 8000H.

        Note: Starting with V4.00, a new cpu was used with the 6500. The 
        new cpu required entirely new software. However, the older cpus 
        still need to be supported. Because of this, the software has 
        fragmented into two lines. The V3.10 and above is targeted to the 
        old cpu, and V4.00 and above is targeted to the new cpu. Because 
        the old cpu software changes are primarily related to bug fixes 
        and special modifications, the two versions may not track each 
        other with regard to available functions, even though both 
        versions are "current". The V4.00 software was created from the 
        V3.09 software base. The V3.nn software base is tracked only for 
        maintenance (bug fixes). No more major enhancements will occur in 
        the  old software. New enhancements will be applied to the  V4.nn 
        software base. Additional changes to V4.nn may not track V3.nn.
        Except where noted, the 6500 does not support the expand command 
        formats. Also, only the commands shown in 6500CMDS.TXT are 
        supported by the 6500.



































                                       15


                          6500 Option Flags Description

        The 6500 contains a standard option flag indicator and a custom 
        option flag indicator that can be read by requesting the version 
        number from the 6500. The software version request will return 
        the Software version installed in the 6500 followed by the option 
        flags. The machine type defines the machine being used.

        The information is provided as an array of 16 bit words in the 
        following form:

                  vvvv - Version number
                  oooo - Standard option low word
                  oooo - Standard option high word
                  cccc - Custom option low word
                  cccc - Custom option high word
                  0000 - Machine type (*see note)

        The version number is the indicated version times 100. Thus 
        version 2.24 would be given as "224". The version number is given 
        as a binary number. The current version and date is visually 
        presented on the 6500's monitor when you first turn it on (the 
        logo screen).

        Following the version number is the standard option flag 
        indicator. The standard option flag indicator consists of a 32 
        bit long word which is used to indicate when a standard option 
        has been installed on the 6500. When the bit is on (1), the 
        option has been installed in the 6500 when the bit is off (0) the 
        option is not installed.

        Following the standard option flag indicator is the custom option 
        flag indicator. The custom option flag indicator also consists of 
        a 32 bit long word which is used to indicate when a custom option 
        has been installed on the 6500. When the bit is off (0), the 
        option has been installed in the 6500 when the bit is on (1) the 
        option is not installed (opposite of standard options).

        Following the custom option flag indicator is the machine 
        identification word. The machine identification word indicates 
        which Frye instrument is responding to the commands. The 6500 
        instrument will normally return a 0000 in the machine type word. 
        Note: Instrument software prior to V2.32 will not return a 
        machine type (the packet is one word shorter).

        Standard options are those options which are available on all 
        6500s. A custom option is an option which is provided through a 
        special arrangement with a customer and is not available on other 
        6500s.

        Since custom option definitions can change over time, the 
        individual flag definitions are not covered by this appendix. If 
        you require specific information on a custom option you should 
        contact Frye Electronics for more information.


                                       16


        Option Flags:

        Each 6500 contains a set of flags which tell what options are 
        installed on that instrument.  These are split in two categories, 
        standard options and custom options.  The two sets of flags are 
        stored as a 32 bit long-word and can be retrieved with the get 
        version message to the 6500. The bits in the standard option 
        long-word are defined as follows:

        bit number    flag      functional                bit position
        (long)word - label   - description   (other)    76543210 76543210
        -----------------------------------------------------------------
        ----first word----                                              
        ( 0)   0   - ENAN87  - *ANSI87 (see note)       ........ .......x
        ( 1)   1   - ENIEC   - IEC                      ........ ......x.
        ( 2)   2   - ENISI   - ISI                      ........ .....x..
        ( 3)   3   - ENOP03  - 1" Mic                   ........ ....x...
        ( 4)   4   - ENMULTI - MultiCurve               ........ ...x....
        ( 5)   5   - ENIO    - I/O                      ........ ..x.....
        ( 6)   6   - ENAVG   - Average                  ........ .x......
        ( 7)   7   - ENZETA  - Zeta <obsolete>          ........ x.......
        ( 8)   8   - ENPROBE - Probe                    .......x ........
        ( 9)   9   - ENOP09  - Insitu                   ......x. ........
        (10)  10   - ENZ60   - 0/60                     .....x.. ........
        (11)  11   - ENJIS   - JIS                      ....x... ........
        (12)  12   - ENGAIN  - Gain                     ...x.... ........
        (13)  13   - ENOES   - OES                      ..x..... ........
        (14)  14   - ENVAC   - VA CorFig                .x...... ........
        (15)  15   - ENRS232 - RS232                    x....... ........
        ----second word----                                              
        (16)   0   - ENCIC   - CIC                      ........ .......x
        (17)   1   - ENAN96  - *ANSI96 (see note)       ........ ......x.
        (18)   2   - ENPROF  - Profiler                 ........ .....x..
        (19)   3   - ENDSPC  - Digital Speech           ........ ....x...
        (20)   4   - ENEDSP  - Enhanced Dig Spch        ........ ...x....
        (21)   5   - ANAN03  - *ANSI03 (see note)       ........ ..x.....
        (22)   6   - ENOP16  - <reserved>               ........ .x......
        (23)   7   - ENOP17  - <reserved>               ........ x.......
        (24)   8   - ENOP16  - <reserved>               .......x ........
        (25)   9   - ENOP17  - <reserved> (crt)         ......x. ........
        (26)  10   - ENOP16  - <reserved> (portable)    .....x.. ........
        (27)  11   - ENOP17  - <reserved> (composite)   ....x... ........
        (28)  12   - ENOP16  - <reserved>               ...x.... ........
        (29)  13   - ENOP17  - <reserved>               ..x..... ........
        (30)  14   - ENOP16  - <reserved>               .x...... ........
        (31)  15   - ENOP17  - <reserved> (audiometer)  x....... ........

        Flag bits marked reserved are currently unused but may be used 
        for any purpose in the future.  Reliance on the state of these 
        bits is a sure way to have software break. (Other) is the
        descriptions of flags used on other instruments.

        * If ANSI96, ANSI03 or ANSI87 is available, ANSI92 is also.
        <eof>


                                       17
