

                  Changes or Special Notes About FP40 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 FIPP Command Reference Guide operate as specified.  There are 
        some minor differences in the operation of the commands due to 
        the differences between the 6500 and the FP40.  These differences 
        are described below.

        Except where noted, the FP40 does not support the expand command 
        formats. Also, only the commands shown in FP40CMDS.TXT are 
        supported by the FP40.

        Reading Dynamic Data:
        Dynamic data may not be valid immediately after changing the 
        operational state of the FP40, such as changing the source 
        amplitude. An example sequence would be; Change Amplitude, Skip 
        Poll(or Quick Terminate), Get Measurement Data, Skip Poll (or 
        Quick Terminate). The Get Measurement Data may not return the 
        desire data for the new amplitude. The hearing aid being tested 
        may not have stabilized yet. The stabilization time needed will 
        depend on the hearing aid. You can use the Set Measurement Settle 
        time command to change the amount of time that will be delayed 
        before the measurement is made. The minimum allowed settle time 
        is 5ms, the maximum allowed settle time is 5000ms.

        Note that the settle time is the "minimum" amount of time the 
        FP40 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 FP40 has to change the input gain 
        settings (prescalers) or speech filter 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 beyond the minimum 
        measurement cycle time of the instrument. 

        Machine type:
        The FP40 will return a machine type of 40.  The RS232 option 
        became available with FP40 version 2.40 software.















                                        1


        Machine sub-type:
        With the introduction of FP40 V2.51 software, a machine sub-type 
        field was added to the version command to identify the desktop 
        model. The FP40 will return a machine sub-type of 0. The FP40-D 
        will return a machine sub-type of 1. Earlier versions will not 
        return a machine sub-type field (the returned version packet will 
        be one field smaller). With V3.00, a new cpu was used in the 
        FP40. The new cpu will return one of four sub-types (2-5). 

          subtype : description
             0    : FP40    64180 cpu - LCD only  Old Standard model
             1    : FP40-D  64180 cpu - LCD only  Old Desktop model 
             2    : FP40    80186 cpu - LCD only  Standard model
             3    : FP40-D  80186 cpu - LCD only  Desktop model
             4    : FP40    80186 cpu - LCD/VGA   VGA Standard model
             5    : FP40-D  80186 cpu - LCD/VGA   VGA Desktop model

        Simulated Key Presses:
        Some functions operate by simulating a key press. These will 
        result in the keycode for that key being set even though the key 
        wasn't physically pressed. Normally this is not a problem, but is 
        noted here in case you are wondering what is happening.
        The following commands operate as simulated key presses:

          Do Level      (cmd 17)  (level key)
          Do Start/Stop (cmd 16)  (start/stop key)
          Set Active    (cmd 54)  (start/stop key)
          Do Print      (cmd 65)  (print key)
          Do Feed       (cmd 64)  (feed key)

        Reset:
        The RS232 reset is different than the reset key on the front 
        panel. The RS232 reset emulates the reset functionality of the 
        6500 and will return you to the main coupler curve display.

        Telecoil:
        The Telecoil option was added to the FP40 in V3.00. It was not 
        fully operational in the RS232 command set until V3.02. Telecoil 
        can be entered from the main mode by selecting Major state 7 and 
        minor state 0, or by using the Set Telecoil Mode command. While 
        in Telecoil, the set source amplitude command changes from DB*100 
        to milliamp per meter*100. Telecoil source amplitude is set with 
        the set amplitude command (0) in ma/M*100. In V3.02 and prior, 
        also in V3.10 to V3.50, the get source amplitude was incorrect. 
        It returned a bad value. Later versions return the correct 
        ma/M*100 value in the get source amplitude. Note that telecoil is 
        treated separately in Average mode (it is a minor state of 
        Average). The Set Source amplitude and Get Source amplitude 
        commands however work the same. Only the state information is 
        different.






                                        2


        The telecoil mode in the FP40 is more flexible than in the 6500. 
        The FP40 allows the frequency and source to be set to any of the 
        available values. Thus the Set Tcoil Mode (39) and Get Tcoil Mode 
        (44) commands are not required on the FP40.

        The telecoil source levels that are available in the FP40 are:

                0 : off
             1000 : 10.00 milliamp per Meter
             1780 : 17.80 milliamp per Meter 
             3160 : 31.60 milliamp per Meter
             5620 : 56.20 milliamp per Meter


        Battery Test:
        In early versions of the 6500, there was a separate battery test 
        command required to collect hearing aid battery data. The FP40 
        measures battery information continuously when the battery test 
        is enabled, so the separate command is not required. The Battery 
        Test command (19) will not return an error, but it has no effect. 

        Battery Type:
        The Battery simulator types that can be returned by Get Battery 
        Type and selected by Set Battery Type commands are as follows:

        Battery types 0 through 7 are used by the 6500 and are not valid 
        for the FP40. For compatibility, sending 0 through 3 to the FP40 
        will be translated to 0=8, 1=14, 2=15, 3=13. 4 through 7 are not 
        translated and will result in an error. There is no reverse 
        translation. eg setting battery type 1 will return type 14.

        The #5 battery type was added with software version 2.33.


              Type                      Volts          Impedance
              8 = NONE (external)       0.0V            1.0 Ohms
              9 = 10A/230 Z-AIR         1.3V           10.0 Ohms
              10 = 312 SILVER           1.5V           10.0 Ohms
              11 = 312 MERCURY          1.3V            8.0 Ohms 
              12 = 312 ZINC-AIR         1.3V            6.0 Ohms
              13 = 13 SILVER            1.5V            8.0 Ohms
              14 = 13 MERCURY           1.3V            8.0 Ohms
              15 = 13 ZINC-AIR          1.3V            6.0 Ohms
              16 = 76 SILVER            1.5V            5.0 Ohms
              17 = 675 MERCURY          1.3V            5.0 Ohms
              18 = 675 ZINC-AIR         1.3V            3.5 Ohms
              19 = 41 MERCURY           1.3V            1.0 Ohms
              20 = AA                   1.5V            1.0 Ohms
              21 = Low Battery          1.0V           10.0 Ohms
              22 = 5 ZINC-AIR           1.3V           10.0 Ohms 






                                        3


        Curve data:
        The FP40 has curve information similar to the 6500, but slightly 
        different.  The curves are referenced by curve name on the FP40 
        screen, and by curve number in the FIPP commands.

            curve name     curve number(#)
           ------------------------------------------- (probe mode)
            Curve 1              0  (coupler curve)    (unaided)
            Curve 2              1                     (current aided) 
            Curve 3              2                     (current insertion)
            Curve 4              3                     (target Ins. Gain)
            Reference 1          4  (multicurve 1)
            Reference 2          5  (multicurve 2)
            Reference 3          6  (multicurve 3)
            Reference 4          7  (multicurve 4)

            <additional curves available in probe mode>
            Aided 1              8
            Aided 2              9
            Aided 3             10
            Insertion 1         11
            Insertion 2         12
            Insertion 3         13

        In chamber mode, curve 1 (crv# 0) is the currently measured 
        curve. Curves 2-4 (crv# 1-3) are not valid in the chamber 
        measurement mode, although they may contain previously measured 
        curve information.

        In probe mode, the first four positions (crv# 0-3) refer to 
        different curves, they become REUR (real ear unaided response), 
        REAR (real ear aided response), REIR (real ear insertion 
        response), and Target insertion response.  Curves 2 and 3 (crv# 1 
        and crv# 2) are based on the currently selected aided curve. To 
        read the specific aided or insertion curves, you can read from 
        Aided 1-3 and Insertion 1-3 (crv# 8-13). 

        The FP40 uses curve frame types 0 and 1. There are slight 
        differences in the curve data between the 6500 and the FP40. 
        Normally, the 6500 will return data in all curve frame positions. 
        When the FP40 is in pure tone or fast sweep mode, it does not 
        measure all frequencies. The unmeasured frequencies will be left 
        at 8000H (32768 decimal). Curve distortion information will only 
        be returned in curve 1 at the main chamber mode screen. 
        Multicurve curves will not return distortion information. Sending 
        a curve to any place other than curve 1 in the main chamber mode 
        screen will cause the distortion information to be discarded.









                                        4


        In the FP40, the insertion gain curves are computed only when 
        they are being displayed. They are not maintained as separate 
        curves internally. Because of this, the insertion gain curves 
        cannot be directly modified like on the 6500. You can read curves 
        11 through 13, but you cannot write to them. To maintain 
        compatibility with existing software, writing to curve 3 will not 
        return an error, however, any data sent will be discarded. 

        The insertion gain curve between version 3.30 and 3.50 had an 
        incorrect flag set for the curve type identifier. The Real Ear 
        Aided Response flag was set along with the Real Ear Insertion 
        Response flag. 

        The FP40 never measures 100 Hz. 

        In Normal Pure Tone, the FP40 will only measure 200Hz through 
        2200Hz in 100Hz steps, 2400Hz, 2500Hz, 2600Hz, 2800Hz, 3000Hz, 
        3100Hz, 3300Hz, 3500Hz, 3700Hz, 4000Hz, 4200Hz, 4500Hz, 4700Hz, 
        5000Hz, 5300Hz, 5600Hz, 6000Hz, 6300Hz, 6700Hz, 7100Hz, 7500Hz, 
        and 8000Hz.

        In Fast Sweep mode, the FP40 will only measure 200Hz, 300Hz, 
        400Hz, 500Hz, 600Hz, 800Hz, 1000Hz, 1200Hz, 1600Hz, 2000Hz, 
        2500Hz, 3100Hz, 4000Hz, 5000Hz, 6300Hz, and 8000Hz.

        The target curve only contains data at the frequencies 200Hz, 
        500Hz, 700Hz, 1000Hz, 1500Hz, 2000Hz, 3000Hz, 4000Hz, 6000Hz,
        and 8000Hz. Additionally, the data at frequency location 200Hz is 
        actually the data for the 250Hz target frequency, and the data at 
        the frequency location of 700Hz, is actually the data for the 
        750Hz target frequency. If a target frequency does not contain 
        data, it will contain the value 8000H (32768 decimal).

        Sending a target curve to the FP40 in V3.00 through V3.12 may 
        cause the FP40 to lock-up requiring a reset. If you need to send 
        target curves to the FP40, you should get V3.20 software or 
        later.

        In composite mode the FP40 measures all 79 frequencies. Up to 
        V3.40 the FP40 used it's own Chirp style of composite source 
        rather than the composite noise source type that 6500 used. With 
        V3.50 software, the FP40 can use either type of source. The curve 
        frame source flags have been changed to reflect this difference. 
        A new source definition has been added to identify the chirp 
        composite source type. Prior to V3.40, the FP40 indicated that 
        a noise composite source was being used even though it was 
        generating a chirp composite source. 









                                        5


        The FP40 has implemented digital speech measurement in V3.50, and 
        supports the new ANSI and ICRA digital speech source types. The 
        source bit flags in the curve frame will reflect the new source 
        type if it was used. Note that a curve frame that contains 
        digital speech information has a modified 100Hz data value. It 
        contains packed information about the bias tone used. The upper 
        byte contains the source amplitude in DB, and the lower byte 
        contains the bias tone frequency in Hz/100. Since the FP40 does 
        not have a bias tone, the 100Hz value will not contain the bias 
        tone information. Instead it will be set to 8000H.

        The FP40 will use curve type 0 for chamber mode puretone curves 
        except when in multicurve where it will use type 1 curves. Probe 
        mode curves are always type 1 curves. 

        Distortion values are only sent with chamber mode curve number 0. 
        If a curve containing distortion information is sent to any other 
        curve slot besides curve number 0 in chamber mode the distortion 
        information will be discarded. 

        The FP40 will automatically convert curve type 0 to type 1 when a 
        curve is sent to it. Internally curves are stored only as type 1. 
        Note that this may cause some data loss if composite data is sent 
        to a pure tone screen.

        The FP40 source can be set to any pure tone frequency on a 100Hz 
        boundary between 200Hz and 8000Hz. In addition, the following 
        extra frequencies are supported: 630, 1250, 3150, 250, 750Hz. 

        Time Stamps:
        The FP40 does not provide time stamps in the curve frames since 
        it does not have a real time clock to maintain the current time.
        The time stamp field is set to zero.

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

        You should always turn off automatic measurement (composite or 
        fast sweep) before sending a curve to the FP40 to prevent the 
        uploaded curve from being over written. You should also turn off 
        smoothing since that may distort the data sent to the FP40.

        Refer to the Curve Frame Reference Guide for a description of the 
        curve frame and how it is used.









                                        6


        Multicurve:
        Unlike the 6500, the FP40 multicurve mode is integrated into the 
        main chamber mode. All command functions still work when 
        multicurve is enabled. In V3.02 and earlier there was no way to 
        select multicurve mode other than to simulate pressing the 
        function key to enable it. Also, there was no specific way to 
        know if multicurve is enabled other than to measure a curve and 
        see if a multicurve register was updated. Additionally, 
        multicurve would return the same state information as the main 
        screen (major:1, minor:0). 

        Starting with V3.10, Multicurve will return as Major:14 Minor:0 
        when multicurve is selected. Multicurve can be turned off by 
        selecting Major:1 Minor:0. Reset will also turn off multicurve. 
        Exiting a test by using the Major:1 Minor:0 will also turn off 
        multicurve. If Minor:-1 is used to exit the test, multicurve will 
        be left on if it was on when the test was started. If telecoil is 
        turned on, it's state will take precedence over multicurve. There 
        is no way to know if multicurve is enabled if telecoil is also on 
        since there is a state conflict. You can turn telecoil off to see 
        if multicurve is currently on.

        There is no specific way to select the multicurve destination 
        other than to simulate pressing the function key selection. 
        Currently there is no specific way to know which destination 
        register has been selected other than to measure a curve and see 
        which register is changed. 





























                                        7


        Digital Speech (DIGSP):
        The DIGSP option was added to the FP40 in V3.50 The option is used 
        to test digital hearing aids. The DIGSP in the FP40 works 
        different than the 6500. The 6500 uses Set Instrument State to
        enter a special DSIN mode. The FP40 just allows you to change the 
        source type to be DIGSP compatible. As such, the FP40 does not 
        support the DSIN major state 17 that the 6500 uses, but it does 
        implement a special FP40 command using Get/Set Operating Mode 
        (cmds 77/78) to select the source type.

        There is one aspect that should be kept in mind with the DIGSP  
        option. While you can get the curve frame from the instrument 
        while the DIGSP option is active, you should not try to get the 
        curve repeatedly on a real time basis. The DIGSP option pushes 
        the FP40 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 FP40 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 FP40 during the test. 

        The speech level can be set in 5db increments from 40db to 90db 
        in probe, or 40dB to 100dB in chamber. The speech signal type can 
        be either ICRA(0), or ANSI(1). There is no bias tone available on 
        the FP40. 






























                                        8


        ANSI, IEC, JIS:
        The FP40 ANSI, IEC, and JIS options operate similarly to the 6500 
        with one minor exception. The 6500 never stops in state zero of 
        the ansi/iec/jis mode because in the 6500, the ansi/iec/jis test 
        is triggered from the main chamber mode screen. The FP40 has a 
        separate ansi/iec/jis mode screen where the test is triggered. 
        This means that the FP40 will enter the test mode at state zero. 
        This may cause problems with automated ansi/iec/jis tests that 
        expect the test to be run when started from the main coupler 
        screen. 

        In version 3.02 and earlier, the set instrument state command in 
        the FP40 did not respond to the -1 minor state command (go back 
        to previous major state).  This function was added in later 
        versions. 

        The FP40 does not differentiate between AGC and Adaptive. 
        Commands that specify an Adaptive setup will set the FP40 to 
        its standard AGC setup. 

        Versions of FP40 software prior to V2.52 do not return the IO 
        data (or attack and release dummy fields) in the IEC blob. 
        In V3.02 and earlier, the Major:1 Minor:0 state request from IEC 
        did not work. The only way to exit from IEC was with a reset or 
        F4 press. This is fixed in V3.10 and above. 

        Prior to V3,20, in JIS, Get JIS Parameters had a problem which 
        caused the FOG Source value to be overwritten by the coupler type 
        value, and the coupler type value contained invalid data. 

        The FP40 and 6500 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.

        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.













                                        9


        ANSI92:
        This option did not exist before V3.20. Use the Set Instrument 
        State command to place the FP40 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. A problem with the noise reduction setting getting 
        lost was fixed in V3.23. This may be different on other models of 
        Fonix instruments. For the FP40 the curve sets are:

         0:  40, 50, 60, 70, 80 dBSPL source
         1:  50, 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.

        The ANSI92 RS232 returns a test completion minor state of four 
        (4) in the FP40 instead of the correct minor state of two (2). 
        This has not been corrected and will not be corrected as it is 
        now legacy code and "fixing" it would break existing software. 

        ANSI96:
        ANSI96 support was added to the FP40 in the V3.60 software.

        ISI: 
        In versions prior to 3.00, the FP40 did not implement serial 
        communications in the ISI test mode. Starting with V3.00, A 
        limited set of commands are provided, primarily to identify that 
        the FP40 was in the ISI mode and to allow the controlling 
        computer to exit the ISI mode if it was inadvertently selected. 
        In version V3.02 and earlier, the ISI could only be exited by a 
        reset command. In later versions, all the commands normally 
        available in ANSI/IEC tests are available with the exception of 
        set/get isi option parameters and get blob (these commands have 
        yet to be defined as to what information will be supported).
        Also, the current test state is only reported as state 0 (test 
        not active) or state 1 (test active) rather than the normal 
        expected minor test states. Prior to V3.60, it was not possible 
        to enter ISI with cmd 59.

        ANSI03:
        ANSI03 support was added to the FP40 in the V3.70 software.














                                       10


        Profiler:
        Although the profiler software was added to the FP40 in software 
        V3.60, RS232 is not officially supported. There is unoffical 
        support which allows you to enter and exit the profiler test.

        Set Option Parameters:
        The Set IEC option parameters command was affecting the EQIN 
        selection in versions prior to V2.52. As of V2.52 the EQIN is 
        left in the selection set by the FP40 keyboard. ISI option 
        parameters are not currently selectable via RS232.

        Get Option Parameters:
        The JIS Get Option Parameter data for FOG Source and Coupler Type 
        is incorrect prior to V3.20. The FOG Source information will 
        actually contain the Coupler type information, and the coupler 
        type information will contain invalid data (if the previous 
        command was a Set Parameter, it will contain the coupler type, 
        otherwise it is unknown what the value will be). The FOG source 
        information is not directly available, although it can be 
        determined after the test has been run by looking at the FOG 
        source information in the FOG curve.

        Target Insertion Gain, Target 2CC, HL Probe:
        The FP40 does not communicate in these modes.  If the FP40 is 
        placed in one of these modes, it will not communicate on the 
        RS232 link until the mode has been exited at the FP40.
        RS232 communication was enabled for Probe SPL and AI modes in 
        software version 3.60.

        Target Insertion Response Curves:
        Versions prior to V2.52 on the FP40 were overly picky about 
        target insertion response curve construction. Everything had to 
        be set exactly correctly or it was rejected. This was relaxed in 
        V2.52 to allow pretty much any curve and the FP40 will convert it 
        to a full target curve.





















                                       11


        Average:
        Prior to Version 3.00 there was no command to place the FP40 in 
        Average mode (from the main coupler screen). If the FP40 was 
        placed in average mode, it would not communicate on the RS232 
        link until the average mode was turned off manually at the FP40. 
        Starting with Version 3.00, the average mode is now an available 
        option under RS232 control. Refer to the command tables for the 
        available commands when in Average mode. Note: In V3.02 and 
        earlier, the Get/Set Measurement Settle Time and Level commands 
        were not available in the Average mode. The FP40 RS232 Average 
        option has two minor states; 0 and 1. Minor state #0 is with 
        Tcoil off, Minor State 1 is with Tcoil on. See the Get/Set 
        Measurement Settle Time for limitations on the settle time.

        Averaging Frequencies:
        The get/set averaging frequencies command was added to the FP40 
        RS232 command set in Version 3.02. In V3.02 it was only available 
        in Chamber mode (main screen), Average, ANSI, and Probe. In later 
        versions the commands are made available in all modes to be 
        compatible with the 6500 command set. Note: The IEC frequency set 
        is not available in ANSI. The FP40 does not have support for 
        custom averaging frequencies.

        Sweep Settling Delay:
        The get/set sweep delay command was added to the FP40 RS232 
        command set in Version 3.02. In V3.02 it was only available in 
        Chamber mode (main screen), Average, ANSI, and Probe. In later 
        versions the commands are made available in all modes to be 
        compatible with the 6500 command set.

        Set State:
        In V3.02 and prior, the FP40 did not implement the -1 minor state 
        function (return to prior major state). You should use the 
        Major:1, Minor:0 set state to exit a mode, or use the reset 
        function to return to the main coupler mode screen.

        Setup Menu:
        Prior to Version 3.00 the FP40 did not communicate in the Setup 
        Menu.  If the FP40 was placed in the setup menu, it would not 
        communicate on the RS232 link until the mode has been exited 
        manually at the FP40. Beginning with V3.00, the Setup menu mode 
        allows the RS232 to send a command to exit the Setup menu.
        This was primarily provided so that automatic control software 
        would not get locked up if the setup menu was inadvertently 
        selected at the FP40. In Version 4.?? and earlier, the menu major 
        state of the FP40 was incorrectly set to 14. The proper 
        definition is 16 which later versions correctly implement.









                                       12


        Amplitude:
        The FP40 allows the amplitude to be set in 5 dB steps from 40 to 
        100 dB for chamber mode, and from 40 to 90 dB probe mode.  
        Setting the source amplitude to 0 turns it off. If an odd value 
        is selected (ie 52 dB), the next lowest 5 dB value will be 
        selected (in this case 50 dB). In V3.02 and earlier, the maximum 
        level setable via RS232 in Chamber mode was 90dBSPL in both 
        composite and pure tone. Later versions allow pure tone mode 
        amplitude to be set up to 100dBSPL.

        Get Reference Microphone Data:
        This command does not work on the FP40.

        Get Microphone Data:
        In coupler mode, the last known value is always returned. In 
        probe mode, a value is returned only if in single tone mode and 
        the sound is on. An ACK will be returned if these conditions are 
        not valid.

        Harmonic distortion:
        The FP40 returns harmonic distortion curve frame values only in 
        the coupler mode number one pure tone curve. If distortion is 
        sent to the FP40 in any other curve the distortion values will be 
        discarded. Because of this, if the curve is then read back from 
        the FP40, the distortion information will not be in the curve 
        frame. This is because the FP40 does not keep the distortion 
        information in the curve frame internally. It is only available 
        with curve one while in the coupler mode.

        Smoothing:
        Only log smoothing is provided in the FP40. 100 Hz smoothing is 
        not available.

        OES:
        The OES option was added to V2.60 of the FP40. Prior to V3.20 OES 
        was not available via RS232 unless the Probe option was installed 
        in the FP40. With V3.20 this is no longer a limitation. 

        CIC:
        The CIC option was added to V3.20 of the FP40. 
        The bit flag for the CIC correction was in the incorrect position 
        of the curve frame flags in versions prior V3.23. in V2.30 
        through V2.32 the flag appeared in bit position 4 of the upper 
        flag byte. The flag was moved to the correct position in bit 7 of 
        the upper flag byte in software version V3.23.











                                       13


        Labels:
        In version V3.02 and earlier, the set label was not available in 
        the sign-on screen and in sub-test states (eg ANSI minor 1-3).
        Beginning with V3.10, the set label commands (6,66) were made 
        global in nature and are available from anyplace where RS232 
        commands are operational. Also with V3.10 the GetExtendedLabel 
        command was added. This allows you to restore the factory default 
        label by requesting the factory label and then sending that data 
        to the instrument. This only works with the extended label (66), 
        not with the older label function (6). 

        Invalid values:
        Any value which does not contain valid information will be set to 
        8000H (32768 decimal).

        Changing State and Reading Values:
        Remember that you must do a skip poll or Quick Terminate to 
        release the FP40 from communication mode. As an example, if you 
        change the source amplitude, you must do a skip poll or quick 
        terminate to release the FP40 so that it can do a dynamic 
        measurement. Additionally, the first dynamic measurement taken 
        after a system change may be incorrect because the measurement 
        will have been taken before things have settled down. Because of 
        this, you may want to discard the first dynamic reading taken 
        after a system change or wait for things to settle down before 
        taking the measurement.

        Static and Dynamic Data:
        A system change is any command that causes the FP40 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 FP40, such as GetMeasurementData. Dynamic 
        data is measurement data that is constantly updated in the FP40. 
        Source Amplitude is static data and will reflect the current 
        system status. Measurement Data is dynamic data and is constantly 
        being updated while the FP40 is running. 




















                                       14


                            New commands in the FP40

        These commands are not in the 6500 because they are either 
        specific to the FP40, or were not implemented in the 6500. 

        Get Battery Data: (cmd 19)
        The FP40 has a wider selection of battery types. Because of this, 
        it uses different numbers than the 6500 does for batteries. The 
        FP40 also returns two additional words in its battery data which 
        provides the battery voltage and impedance information. 

        Set Battery Type: (cmd 79)
        The FP40 can change the battery type under software control, so 
        this cmd was added to reflect that ability.

        Set Power State / Power Status:   (cmds 56/80)
        The FP40 portable option has a battery, so this option allows the 
        battery operations to be controlled via the RS232. 

        The Get Power Status command (80) gets the current status of the 
        instrument power status and backup battery option. The battery 
        voltage is the current voltage of the backup battery *100. Thus a 
        voltage value of 13.7 would be given as 1370. The Power control 
        flags indicate the current state of the backup option in the 
        instrument. Note: Reserved bits may take on any value, do not 
        rely on the bits being zero.

        Power Control Flags:
                  BIT 0 = <reserved>
                  BIT 1 = NZ=Battery is full, Z=Not fully charged
                  BIT 2 = NZ=Battery in overcharge mode
                  BIT 3 = <reserved>
                  BIT 4 = Charger ON/OFF state NZ=OFF, Z=ON
                  BIT 5 = External Power state NZ=OFF, Z=ON
                  BIT 6 = <reserved>
                  BIT 7 = Charger status       NZ=Valid, Z=Invalid

                  BITS 8 to 11 = <reserved>
                  BIT 12= NZ=Battery near empty,  Z=battery is ok
                  BIT 13= Power conserve mode     NZ=ON, Z=OFF(normal)
                  BIT 14= <reserved>
                  BIT 15= Screen Saver  NZ=enabled, Z=disabled

        Note: Old documentation indicated that BIT 0 was the battery 
        empty flag. This was incorrect. BIT 12 is the battery empty flag. 
        Also, prior to V3.50, the reserved flags would not always contain 
        zero values. 









                                       15


        Get/Set Operating Mode: (cmds 77/78)
        On the FP40, this command works in both coupler and probe mode.
        It is used to select fast sweep, normal pure tone, or composite 
        mode operation. 

            0 - Pure Tone Normal Sweep
            1 - Composite Chirp ANSI
            2 - Fast Sweep (warble)
            3 - Single Tone Mode       (probe only)
            4 - Short Sweep Mode
            5 - Composite Noise ANSI  (V3.50)
            6 - Composite Interrupted Noise ANSI  (V3.50)
            7 - Composite Interrupted Noise IRCA  (V3.50)

        Note: Using Set Operating mode to switch to composite mode in 
        versions prior to V2.53 when the composite option is not 
        available will cause the FP40 to crash. This operation should be 
        avoided in those instruments.

        The interrupted composite noise selections are used for digital 
        speech testing.



































                                       16


                          Changed Commands in the FP40

        These commands operate differently in the FP40 compared to the 
        associated 6500 commands.

        Set/Get KeyCode:   (cmds 58/72) 
        Since the FP40 has different keys, it's key codes are different 
        from the 6500 or other instruments. See the FP40 keycode 
        documentation file. On the FP40, when a key is pressed, that code 
        will be returned until a new key is pressed, or a zero keycode is 
        sent by Set KeyCode. Warning: in V3.02 and earlier, sending a 
        keycode value greater than 21 may cause the FP40 to crash. In 
        later versions this is checked and a ACK (with failed command 
        status) will be returned if the key code value in above 21.

        Start Test:    (cmd 16)
        In the 6500 this is only valid in the main coupler screen when in 
        pure tone mode. In the FP40, this function simply simulates 
        pressing the Start button, and is available in all places where 
        the start button is a valid selection.

        Get/Set Active mode:  (cmds 54/55)
        In the 6500 this is only valid in probe mode. In the FP40, it is 
        available in all modes where starting or stopping a test is valid 
        when pressing the start/stop button.

        Get/Set Weighting status:  (cmds 8/30)
        The FP40 does not support unweighted (flat) operation.

        Get/Set Ref Mic status:  (cmds 52/53)
        The FP40 allows reference mic usage in chamber mode, so the 
        function is available in probe and chamber mode. These commands 
        are only available in probe mode on the 6500. 

        Get Last Measured Curve Data:  (cmd 42)
        This command is only available in probe mode on the 6500. On the 
        FP40, the last measured curve is always available in any mode. 
        The exception is when switching modes such as to ANSI or IEC, the 
        last measured curve will be lost. 

















                                       17


        Get/Set Ear: (cmds 75/76)
        The FP40 does not have a No Ear or Bone selection. The FP40 uses 
        the original Ear command format which is obsolete. It defines 
        zero as the Left ear selection and one as the right ear. You 
        should check for the FP40 when selecting the ear so as to be that 
        the correct command is given. If the Get Ear response returns 
        more than one parameter, it is the newer expanded get Ear format.

        Note: Prior to V3.60, the Set Ear command did not work correctly. 
        When the set Ear command was called, it would only toggle the ear 
        selection from the current selected ear to the other ear.

        Curve Frame Bit 1 of flag word 1 (which is now obsolete) on the 
        FP40 was used to hold ear information (0=left, 1=right). The 
        information was not always valid, and should not be used as a 
        reference. Use the Get Ear command to determine which ear is 
        being tested. 

        Get/Set Instrument State (cmds 59/60):
        In the 6500, the ANSI, IEC and JIS tests are started from the 
        Main coupler mode screen. There is no startup screen available 
        for ANSI, IEC, or JIS. The FP40 has a separate startup screen for 
        these modes, thus the zero state is available in the FP40. In the 
        6500, the ANSI, IEC, or JIS test is started automatically when 
        going into the ANSI, IEC, or JIS mode. Thus selecting state zero 
        from the coupler screen on the 6500 would start the test. In the 
        FP40, you must start the test by first going into the ANSI, IEC, 
        or JIS startup screen (0) and then starting the test by advancing 
        the state (1). Once a test has been run, a new test can be run by 
        selecting either the startup state (0) or the first test step 
        (1). The -1 minor state command did not work on the FP40 in V3.02 
        and prior. You should instead just go to Major 1, Minor 0 to exit 
        the test state to the main coupler screen, or use the Reset 
        command (38).






















                                       18


        Known Version 3.20 RS232 problems:

        Setting the power status (56) to power save mode while AC power 
        is on causes the backlight to flash continuously (fixed V3.23).

        The custom option word is not returned with the get version 
        command (28) (fixed in V2.32).

        The Set Option Parameters command (70) does not work for ANSI92 
        from the main coupler screen (fixed in V3.23). 

        Using the Set Frequency command (2) in probe single tone mode 
        locks up the FP40 (fixed in V3.23).

        The Get Operating mode command (78) always returns a 3 (single 
        tone mode) when in pure tone probe (fixed in V3.23).

        You can not enter single tone probe mode using the set operating 
        mode command (77) (fixed in V2.32).


        Other known bugs that have been fixed:

        Exiting screen saver mode by simulating a pressed key on the FP40 
        via an RS232 command caused the FP40 to lock up in software 
        versions prior to V3.30. 

        Prior to V3.32 the FP40 left the speaker on when switching from 
        pure tone to composite. Also, a problem with switching from 
        composite to pure tone and back to composite was fixed.


























                                       19


        Printing:

        Prior to V3.23 the External Epson printer driver used graphics 
        mode #5 to print graphics. This was changed in V3.23 to mode #4 
        to improve the aspect ratio and because later model Epson 
        printers have dropped mode #5 capability. Some Epson based 
        printers may experience trouble printing graphics as there 
        appears to be a movement away from the old style graphics 
        functionality. We recommend HP based (HPCL) printers.

        The FP40 always prints a full screen. It does not have a top and 
        bottom print feature like the 6500 which prints the top and/or 
        bottom portion of the screen. As a result, the FP40 will print 
        the entire screen when either the Top and/or Bottom bit flags (or 
        both) are selected. When only the Label flag is on, only a label 
        is supposed to be printed, but currently the FP40 cannot print 
        only a label. A screen must be attached to a label in the FP40.

        Print control flags:

           Bit 0 - Print Label
           Bit 1 - (Print Top)    *Print Screen
           Bit 2 - (Print Bottom) *Print Screen


        With V3.40 the FP40 added two new commands 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 - 0=Use HPCL printer       1=Use Epson printer
           Bit 3-15 - <reserved>

        When the internal printer is selected, the color and HPCL/Epson 
        flags are ignored. The internal printer is always monochrome.

        Note: the 6500 does not support the Epson printer.
        The FP40 does not support stored printer labels (cmd 89).
        The FP40 does not support printer label bitmaps (cmd 96).














                                       20


        Bugs fixed in V3.60:

        Could not read Mic data via command 31 while in probe Single tone 
        mode.

        Probe Insertion curve header curve type was 6. It should be 4.

        In ANSI87 if not RTG setting occurred, measured value should be 
        FOGAVG not the measured value.

        Could not enter ISI via command 59.

        Command 75 toggles the ear selection from the previous condition
        instead of setting it to the selected value.

        Command 60 was in Probe IG was returning the wrong information 
        for minor state (should always be zero).

        RS232 was dead in probe SPL and probe AI. It is now functional.

        Command 81 returned 6 for IEC 2000 avg frequency set. It is 
        supposed to be 5.

        Command 0 was truncating the source value now it rounds it to 
        match the way the 6500 does it.

        Command 21 was returning an incorrect value in telecoil mode.

        Although there is no official support for RS232 in the Profiler 
        test, the RS232 can be used to enter and exit the test mode. 

        Known bugs remaining in V3.50:

        JIS blob coupler type is being returned as 500Hz. 
        JIS blob SSPL90 and Response curves are swapped.
        If MZ coupler is selected in JIS, the MZ bit is not set in the 
        curve frames.
        JIS blob measured RTG is not being placed in the blob if the aid 
        has been adjusted. Instead, OSPL90-77 is being sent.

















                                       21


                          FP40 Option Flags Description

        The FP40 contains a standard option flag indicator and a custom 
        option flag indicator that can be read by requesting the version 
        number from the FP40. The software version request will return 
        the Software version installed in the FP40 followed by the option 
        flags. Machine type and sub-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
                  0040 - Machine type
                  0000 - Machine sub-type

        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 FP40's screen 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 FP40. When the bit is on (1), the 
        option has been installed in the FP40 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 FP40. When the bit is off (0), the 
        option has been installed in the FP40 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 and the machine sub-type word. The machine 
        identification word indicates which Frye instrument is responding 
        to the commands. The FP40 instrument will return a 0040 in the 
        machine type word. The machine sub-type specifies the type of 
        FP40. The FP40 will return a sub-type between 0 and 5.

        Standard options are options which are available on all FP40s. 
        Custom options are options provided through a special arrangement 
        with a customer and are not available on standard FP40s.

        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.


                                       22


        Option Flags:

        Each FP40 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 FP40. 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    - ENANSI  - *ANSI87 (see note)      ........ .......x
        ( 1)   1    - ENIEC   - IEC                     ........ ......x.
        ( 2)   2    - ENISI   - ISI                     ........ .....x..
        ( 3)   3    - ENOP03  - <reserved>   (1" mic)   ........ ....x...
        ( 4)   4    - ENOP04  - <reserved>   (multi)    ........ ...x....
        ( 5)   5    - ENOP05  - <reserved>   (I/O)      ........ ..x.....
        ( 6)   6    - ENAVG   - <reserved>   (avg)      ........ .x......
        ( 7)   7    - ENOP07  - <reserved>   (Zeta)     ........ x.......
        ( 8)   8    - ENPROBE - Probe                   .......x ........
        ( 9)   9    - ENOP09  - <reserved>   (insitu)   ......x. ........
        (10)  10    - ENOP10  - <reserved>   (0/60)     .....x.. ........
        (11)  11    - ENJIS   - JIS                     ....x... ........
        (12)  12    - ENGAIN  - Gain                    ...x.... ........
        (13)  13    - ENOP13  - OES                     ..x..... ........
        (14)  14    - ENVAC   - <reserved>   (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    - ENOP20  - <reserved>   (enh DSP)  ........ ...x....
        (21)   5    - ENAN03  - *ANSI03 (see note)      ........ ..x.....
        (22)   6    - ENOP22  - <reserved>              ........ .x......
        (23)   7    - ENOP23  - <reserved>              ........ x.......
        (24)   8    - ENOP24  - <reserved>              .......x ........
        (25)   9    - ENCRT   - Crt *                   ......x. ........
        (26)  10    - ENPORT  - Portable *              .....x.. ........
        (27)  11    - ENCOMP  - Composite               ....x... ........
        (28)  12    - ENT2CC  - <reserved>              ...x.... ........
        (29)  13    - ENOP29  - <reserved>              ..x..... ........
        (30)  14    - ENOP30  - <reserved>              .x...... ........
        (31)  15    - ENOP31  - <reserved> (audiometer) x....... ........

        * ENCRT is only valid on old models (0-1). 
        * ENPORT is only valid for non-desktop models (0,2,4).
        * If ANSI87 ANSI96 or ANSI03 is available, ANSI92 is also.
        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 
        description of the flags used on other instruments.


                                       23


        <eof> -med























































                                       24
