

                  Changes or Special Notes About FP35 Commands          
                                                               2006/07/31

        The RS232 based FIPP (Frye Instrument Packet Protocol) was first
        implemented on the Fonix 6500. The commands were also implemented 
        on the Fonix FP40. Most of the commands listed in the FIPP 
        Command Reference Guide operate as specified.  There are some 
        minor changes in the operation of some commands due to the 
        differences between the 6500, FP40, and the FP35.  These 
        differences are described below.

        Reading Dynamic Data:
        Dynamic data may not be valid immediately after changing the 
        operational state of the FP35, such as changing the source 
        amplitude. An example sequence would be; Change Amplitude, Skip 
        Poll(or Quick Terminate), Get Measurement, Skip Poll (or Quick 
        Terminate). The Get Measurement 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.

        Note that the settle time is the "minimum" amount of time the 
        FP35 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 FP35 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. 

        Note: 
        Also see the files FP35INFO.TXT and FP35MEAS.TXT for special 
        advanced use FP35 RS232 commands.

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

        Machine type:
        The FP35 will return a machine type of 35.  The RS232 option 
        became available with FP35 version 2.00 software.

        Machine sub-type:
        The FP35 will return a machine sub-type of 0. When running the 
        boot loader software (while uploading new software to the FP35), 
        the machine sub-type will be -1. Starting with V3.40 the sub-type 
        will return 4 if the VGA daughter board is installed.





                                        1


        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 Start/Stop (cmd 16)  (start/stop key)
          Set Active    (cmd 54)  (start/stop key)
          Do Reset      (cmd 38)  (reset key)

        Reset:
        The RS232 Reset operates by virtually pressing the reset key. 
        This results in a slightly different action than the FP40 or 6500 
        where the reset will take you to Instrument state Major 1, Minor 
        0 (coupler screen). On the FP35, the Reset will take you to the 
        opening screen which is the top level screen on the FP35 (Major 
        0, Minor 0). This may cause some minor problems with programs 
        that operate instruments like the 6500 and FP40 where the top 
        level is the coupler screen. 


        Battery Test and Battery Type:
        The FP35 does not have a battery simulator, so the battery 
        commands are not available.


        Set Baudrate (cmd 0x7c03):
        This is a special command that allows the serial port baudrate to 
        be set to 9600, 19200, 28800, 38400, 57600 or 115200 baud.
        The parameter is given as baudrate / 10 (so that 115200 can fit 
        in the word length). Starting with V3.20, an expanded format 
        allows the aux serial port on the FP35 to be set to one of the 
        above baudrates. The default at power on is the same as the 
        Fryers FIPP serial port. 

        Set/Get Aux Port (cmds 148/149):
        Starting with V3.20, the aux serial port on the FP35 is 
        controllable. The aux serial port shares the Fryers serial port 
        and uses pins 5(gnd) 4(txd2), 6(rxd2), 7(cts), 8(rts). 
        Only pins 5(gnd), 2(txd1) and 3(rxd1) are required by the Fryers 
        packet port. Pin 1 is not used by the FP35 (it is tied to earth 
        ground via a transorb). The aux port does not support buffering 
        on the input, so only a single byte at a time can be received via 
        cmd 149. If a data stream is sent on the output of the aux serial 
        port, all other FP35 operations will stop until the entire data 
        stream sent via cmd 148 has been transmitted.









                                        2


        Curve data: 

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

          curve name   number (coupler mode)  (probe mode)
         --------------------------------------------------------- Ver --
          Curve 1        0    (current curve) (current unaided)
          Curve 2        1                    (current aided) 
          Curve 3        2                    (current insertion)
          Curve 4        3                    (current target)
          Reference 1    4    (multicurve 1)  (Aided #1)
          Reference 2    5    (multicurve 2)  (Aided #2)
          Reference 3    6    (multicurve 3)  (Aided #3)
         *Reference 4 !  7    (multicurve 4)  (!SPL HTL Curve)     V2.40
                                                                  
          <additional curves available in probe mode>
         *Reference 5 !  8             (!current target curve)     V2.40
         *Reference 6 !  9             (!SPL UCL Curve)            V2.40

          <Other curves that are available>
         *Insertion #1   100                  (Insertion Gain #1)
         *Insertion #2   101                  (Insertion Gain #2)
         *Insertion #3   102                  (Insertion Gain #3)  
          
        *Only Curves 0->6 are writable in probe. 0->7 are writable in 
        Coupler. The rest are read only.
        !In the FP35, in probe mode, Curve 4 and curve 8 are the same. 
        On other instruments (6500), 4 is the target gain curve, and 8 is 
        the Target SPL curve. In the FP35 these curves depend on the 
        current screen/mode the FP35 is in. In the 7000, curves 4->7 are 
        Aided response 1->4. Curves 100->103 are I.G. 1->4. 
        On 7000 crv 10=HTL SPL, 11=LOW SPL Target, 12= MID SPL Target, 
        13=HIGH SPL Target, 14=UCL SPL Target.
        Note: Audiogram curves are in the Audiogram section below.

        Unlike the FP40 or 6500, the FP35 does not have a separate 
        multicurve mode (14). The chamber coupler test screen (1) is the 
        chamber multicurve test screen. 

        To maintain compatibility, curve number 0 is the current selected 
        multicurve measurement curve, regardless of the selected 
        multicurve number, and curves 4 through 7 (reference 1-4) are the 
        specific multicurve numbers 1 though 4. mc1=c4/r1, mc2=c5/r2, 
        mc3=c6/r3, mc4=c7/r4. 

        In probe mode, the first four positions 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 are based on the 
        currently selected aided curve. To read the specific aided 
        curves, you can read from curves 4-6. 



                                        3


        The FP35 uses curve frame types 0 and 1. There are slight 
        differences in the curve data between the 6500 and the FP35. 
        Normally, the 6500 will return data in all curve frame positions. 
        When the FP35 is in pure tone, short or fast sweep mode, it does 
        not measure all frequencies. The unmeasured frequencies will be 
        left at 8000H (32768 decimal). 

        Distortion information can be sent in the pure tone curve frames, 
        but the distortion information will only be displayed if it is 
        the currently selected curve on the screen.

        In the FP35, 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 the 
        insertion curve (#3), but you cannot write to it. To maintain 
        compatibility with existing software, writing to curve 3 will not 
        return an error, however, any data sent will be discarded. 

        The FP35 never measures 100 Hz in curve frames. 

        In Normal Pure Tone, the FP35 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 FP35 will only measure 200Hz, 300Hz, 
        400Hz, 500Hz, 600Hz, 800Hz, 1000Hz, 1200Hz, 1600Hz, 2000Hz, 
        2500Hz, 3100Hz, 4000Hz, 5000Hz, 6300Hz, and 8000Hz.

        In Short Sweep mode, the FP35 will only measure 200Hz, 500Hz, 
        700Hz, 1000Hz, 1500Hz, 2000Hz, 3000Hz, 4000Hz, 6000Hz, 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). This 
        maintains compatibility with the FP40.

        In composite mode the FP35 measures 79 frequencies (200-8KHz).

        The FP35 uses curve type 0 for puretone curves, and curve type 1 
        for composite curves. Distortion values are only sent with 
        pure tone curves (curve type 0). 

        Time Stamps:
        See the CURVE.TXT document for information on time stamps.





                                        4


        Noise Reduction:
        The noise reduction value in the curve frame in V2.00 of the FP35 
        software shows the noise reduction value as 1 when noise 
        reduction is off. This is corrected in in V2.10 to be 0 (off).

        A note about curves:
        When a FP35 curve frame is requested which does not contain valid 
        data the FP35 returns an ACK.

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

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

        Channel A and Channel B curve frames. In addition to the display 
        curve frame, the FP35 allows access to the original microphone 
        measurement curve frames. You can only read the microphone curve 
        frames, you cannot set them. Only the display curve frame can be 
        set via command 9 (which as a side effect deletes the microphone 
        curve frames for that display curve. To read a microphone curve 
        frame, call the normal GetCurve (cmd 25) with the added channel 
        parameter; 0=display curve, 1=measurement mic, 2=reference mic.
        This feature was first available with V2.00 software, however, 
        the probe data was incorrectly returned (Channel A and B (1&2) 
        reversed). This was corrected in V3.10 software. 

        Multicurve:
        On the FP35, multicurve and coupler test are the same screen. 
        There is no separation between the chamber coupler test and 
        chamber coupler multicurve on the FP35. 

        Target Insertion Gain, Target 2CC, HL, SPL, AI Probe:
        The FP35 does not currently support these modes.


        Amplitude:
        The FP35 allows the amplitude to be set in 0.1 dB steps from 0 to 
        100 dB for chamber mode, and from 0 to 90 dB in probe mode.  
        Setting the source amplitude to 0 turns it off. Some tests may 
        over-ride the source setting if they require the source to be at 
        a specific level. While the source set resolution is 0.025dB, the 
        actual instrument accuracy due to hardware variances will be 
        larger. The hardware should be calibrated at the operating 
        temperature if you wish to have a more accurate source. A 
        calibration jig is available from Frye Electronics for those who 
        are picky about exacting calibration. Source calibration will 
        typically be better than 0.5dB under normal operating conditions. 
        The keyboard limits amplitude changes to 5dB steps. Changing the 
        amplitude with the keyboard will cause the amplitude to go to the 
        nearest 5dB step.



                                        5


        Frequency:
        The FP35 source can be set via RS232 to any pure tone frequency 
        on a 1Hz boundary between 50Hz and 10000Hz for single frequency 
        measurements. The front panel controls limit the frequency 
        selection to only the frequencies allowed in the selected test 
        mode. Changing the frequency with the keyboard will cause the 
        frequency to go to the nearest frequency selection for the 
        selected test. 

        When changing the frequency to a non-100Hz harmonic, the sample 
        rate and/or number of samples will be different than on the 6500 
        or FP40. This is done on the FP35 to reduce the possibility of 
        intermodulation distortion from affecting the measurement. 

        It should be noted that while the FP35 can be set to frequencies 
        above 8KHz (up to 20KHz) or below 200Hz (down to 50Hz) via RS232, 
        the supplied microphones are not calibrated below 200Hz or above 
        8KHz. As such the measurements at those frequencies will not be 
        calibrated. In addition, measurements below 100Hz and above 10KHz 
        will not be as accurate since the FP35 is not designed to 
        accurately measure signals at those frequencies. The signals will 
        be affected by the filter and measurement circuits. The needed 
        compensation is determined during the hardware calibration and 
        the needed corrections are added to the measurement signal, 
        however the keep in mind that the signal is being measured 
        outside the filter band of the circuits and this can affect the 
        signal being measured.

        Non-100Hz harmonic frequencies are measured using a DFT, whereas 
        100Hz harmonic frequencies are measured with either ERMS, CRMS, 
        TRMS, or a DFT depending on the measurement being made.

        Start Test:    (cmd 16)
        In the 6500 this is only valid in the main coupler screen when in 
        pure tone mode. In the FP35, 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 Status:  (cmds 54/55)
        In the 6500 this is only valid in probe mode. In the FP35, it is 
        available in all modes where starting or stopping a test is valid 
        when pressing the start/stop button. This command simulates 
        pressing the button when that is the desired action.

        Get Microphone Data/Get RefMic Data:
        In coupler mode, the last known value is always returned. The ref 
        mic data is not available in composite mode because the RMS for 
        the ref mic is never computed it will return a 0x8000 value. In 
        probe mode, a value is returned only if in single tone mode and 
        the sound is on. An ILL will be returned in probe mode if not in 
        single tone mode. 





                                        6


        Harmonic Distortion:
        The FP35 returns harmonic distortion curve frame values in the 
        coupler chamber test mode and in Real ear if distortion has been 
        enabled and the source is set to pure tone (curve frame 
        measured/created as a pure tone curve). 

        Intermodulation  Distortion:
        The FP35 can test intermodulation distortion if it has the 
        composite option. The results are returned in the normal curve 
        frame as distortion percentage if distortion is on or as SPL/gain 
        if distortion is off. See the separate IM Distortion document 
        description for more detail. 

        Cmds 125/126 (set/get IM Distortion):
        This is a redefinition of the digital speech bias tone command. 
        If the instrument is in IM distortion mode, this command will set 
        the distortion difference frequency (param1) and the last test 
        frequency (Param2) for the IM Dist sweep. If the difference 
        frequency is set to zero, the IM distortion test will measure 
        harmonic distortion instead. If the difference frequency is set 
        to invalid (0x8000), the IM Distortion test will be turned off. 
        If the distortion sweep end frequency is set to zero, the 
        selected frequency set will be swept to the end frequency. If the 
        end sweep frequency is set to Invalid (0x8000), the current end 
        frequency will not be changed. An invalid end frequency will 
        cause a command error. You can change the primary test frequency 
        and amplitude of the IM distortion test using the normal set 
        frequency and set amplitude commands. 

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

            0 - Standard Pure Tone Mode
            1 - Composite Chirp          (FP40/FP35 method)
            2 - Fast Sweep Mode
            3 - Single Tone Mode                     
            4 - Short (burst) Sweep Mode
            5 - Composite Noise          (6500 method)
            6 - Digital Speech Noise     (6500/FP40 method)
            7 - Icra Digital Speech      (obsolete - see Set Filter)
            8 - IM Distortion            (FP35)
            9 - <reserved>
           10 - Long Sweep Tone Mode     (6500 method)











                                        7


        Get/Set Weighting Status:  (cmds 8/30)
        The FP35 does not support unweighted (flat) source operation
        with this command (see Set Filter below). However, in spectrum 
        mode, there is no weighing applied to the measured signal.

        Get/Set Filter: (cmds 136/137)
        Starting with V2.40 you can optionally select the filter to be 
        used when the weighting filters are enabled. If Auto is selected, 
        the ANSI filter will be selected for composite signals with the 
        source on, and no filter for pure tone or source off. Except for 
        Real Ear mode where the appropriate filtering is done. If a 
        specific filter is selected, it will override the auto filter 
        selection (including for pure tone). Prior to V2.40 the filter 
        is always automatically selected. 

        Get/Set Ref Mic:  (cmds 52/53)
        The FP35 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. Ref mic data is not 
        available in coupler composite mode. It will return 0x8000.

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

        Get Last Measured Curve:  (cmd 42)
        This command is only available in probe mode on the 6500. On the 
        FP35, the last measured curve is always available in any mode 
        (except when in the audiometer option). When switching modes such 
        as to ANSI or IEC, the last measured curve will be lost. Also, 
        when sending a curve to the FP35 via RS232, the last curve buffer 
        is used as a work space, which will cause the last measured curve 
        data to be lost.

        Set/Get Output Limit (50,51):
        Prior to V3.20, the output limit commands were not available in 
        coupler mode even though the output limiting feature was 
        available. The commands were added to coupler screens in V3.20.


















                                        8


        Get/Set Instrument State (cmds 59/60):
        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. 
        Like the FP40, in the FP35, 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 Set Instrument state is also used to navigate to other test 
        screens in the instrument. This command is replacing the 
        individual state selection commands that were previously used, 
        (such as Set Probe). If you are writing new software, you should 
        use the Set Instrument State command (59) and Get Instrument 
        State command (60) to move to different screens in the 
        instrument. 

        Note that while the FP35 allows you to directly jump to other 
        test screens, such as going to IEC from Probe, not all 
        instruments allow it. If you wish to maintain compatibility with 
        other instruments such as the FP40 and 6500, you should exit the 
        current test screen (-1 minor state), until you reach the top 
        screen (Major=0 on FP35, Major=1 on FP40 or 6500), then select 
        the desired new test screen you wish to go to. 

        Some software uses the Reset command (38) to get to the top 
        screen. While this generally works, it should be noted that the 
        reset command has different side effects in each instrument which 
        may cause things to happen that you weren't expecting (such as 
        lost data). Using the -1 minor state in the Set Instrument State 
        command is a safer method of reaching the top screen of the 
        instrument.

        Note: The local menu minor states changed slightly starting with 
        V3.20. A new Menu[0] was added which displaced the first menu in 
        the local menu sequence for real ear menus to match the operation 
        of the target coupler menus. Specifically, the menu numbers are 
        one higher and default menu becomes [1] instead of [0]. The 
        target menu is now menu zero which is accessed by pressing Back 
        from the default menu.

        The Coupler Target (state 26) and Ear Simulator (state 27) 
        screens were added in Software Version 3.20.












                                        9


        Get Software Information (cmd 95):
        This command provides additional information about the software 
        in the FP35. Including instrument type, current software version, 
        language and boot loader version number.

         Returns variable items:
          [1] Instrument (35 = FP35)
          [2] Software Version (210 = V2.10)
          [3] Language (0 = Unknown, 1 = English, 2 = French)
          [4] BootLoader Version (7 = V7.0) 0=none
          ---------------------------------------
          [5] EErom Version (10 = V10.0) 0=none (new with V2.12)
          ---------------------------------------
          [6..9] Frye Serial Number (char string) (new with V2.20)
          [10..11] Mfg Date        (packed dword) (new with V2.20)
          [12..13] Hw Cal Date     (packed dword) (new with V2.20)
          [14..15] Sys Cal Date    (packed dword) (new with V2.20)
          ---------------------------------------
          [16] Calibration Status           (new with V3.20)
          [17..18] Software Build date      (new with V3.20 *note)
          [19] Software Build number        (new with V3.20)
          ---------------------------------------
          [20] Current Temperature (C*100)  (new with V3.50)
          [21] Hardware Cal Temp (C*100)    (new with V3.50)
          [22] System Cal Temp (C*100)      (new with V3.50)

        Note: Prior to software V2.12 the Bootloader version number was 
        incorrectly set and would read 1792 instead of 7. 

        The EErom Version number was added starting with software V2.12 
        (prior versions only had the first four items).

        With V2.20 software the Frye Serial number has been added to the 
        information returned along with the Mfg and calibration dates (in 
        packed date format). 

        The calibration status was added in V3.20. If the calibration 
        status is zero, the instrument is calibrated, if the calibration 
        status is NZ, the instrument is not calibrated. (The FP35 returns 
        its internal calibration error number in this field.)

        The software build date and build number were added with V3.20.
        The build date is in packed (dword) format. The build number is 
        the release candidate build number for the software. Note: prior 
        to V3.50, the software build date was incorrect.

        The temperature information was added in V3.50 for mfg use. 









                                       10


        IEC:
        The IEC test option was added in software version V2.00.

        ACIC:
        The ACIC test is just the ANSI96 test setup to handle the CIC 
        coupler. It operates exactly the same as the ANSI96 test. Only 
        the name was changed to protect the guilty. The ACIC test is 
        available when both the ANSI96 and CIC options are available. The 
        ACIC test was added with Version 2.20

        ANSI96:
        The ANSI96 test option was added in software version V2.10.
        ANSI96 does not currently support attack and release.
        Telecoil in ANSI96 support was added in V3.60.

        ANSI03:
        The ANSI 2003 test option was added in software version 3.50. 
        ANSI03 does not currently support Telecoil or attack and release.
        Telecoil in ANSI03 support was added in V3.60.

        ANSI/JIS/IEC:
        On the FP35 and 7000, if the hearing aid was not adjusted during 
        the RTG test, the Calculated value will be returned in the blob 
        as INVALID data. This is different from the FP40 or 6500 which 
        return either the OSPL90-77 value (if an adjustment was made) or 
        the FOGAVG value (if no adjustment was made). Since the 
        calculated RTG value can be determined from the other information 
        in the blob, it was considered desirable to return INVALID to 
        indicate that the aid was not adjusted rather than the measured 
        RTG which is more confusing. The measured RTG was returned in the 
        FP40 and 6500 to prevent breaking existing computer software for 
        those instruments by returning a valid value. However, it is a 
        source of confusion for programmers, so the INVALID DATA value 
        is being used now to indicate that the calculated target 
        reference was not used. 

        Changing State and Reading Values:
        Remember that you must do a skip poll or Quick Terminate to 
        release the FP35 from communication mode. As an example, if you 
        change the source amplitude, you must do a skip poll or quick 
        terminate to release the FP35 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.









                                       11


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

        Test Delays:

        With the advent of AGC and Adaptive hearing aids, the test delay 
        times used in testing hearing aids have become more important. 
        These delay times can have a significant effect on the results of 
        the tests performed on the hearing aid. It has become important 
        to know what the delay times are, how they are used, and in some 
        cases allow them to be changed for the type of aid being tested. 

        The FP35 will automatically setup the test delays for the type of 
        aid that is selected at the time the aid is selected. You can 
        override the default selection by using the SetMeasurmentDelays 
        command. Note that if you reset the instrument, or select a new 
        aid, the default measurement delays for the selected aid type 
        will be reloaded.

        There are three key delay times used in the FP35 tests. 

          1. Test Predelay time
          2. Short Settle time (eg Sweep)
          4. Long Settle time (eg I/O)

        The Predelay time is the time period used at the start of a test 
        to let the aid settle down. This allows the agc/adaptive circuits 
        in the aid to adjust to the test conditions. The specific action 
        depends on the test being performed. The predelay time is not 
        saved. The instrument will start up with the default predelay 
        time based on the aid type when turned on. The predelay time can 
        be changed in the local menu for the selected test, or via a 
        RS232 command. (See the note about Short Tone Sweep for an 
        exception).

        The Short Settle time is the time period used at the start of 
        measurements where short settle times are used, such as a pure 
        tone sweep. This allows the aid to settle down after a change is 
        made during the test. Usually this results from the frequency 
        change made during a pure tone sweep.

        The Long settle time is the time period used at the start of 
        measurements where long settle times are used, such as the level 
        change during an I/O test. Usually this settle time is used when 
        a change requiring a longer settle time is made, such as the 
        level change during the I/O test, or a larger than normal change 
        in frequency, such as during a three frequency distortion test. 


                                       12


        Hardware Delays:

        The Predelay and Settle time delays are time delays added by the 
        test software to improve the test results for the hearing aid. 
        These times do not include the inherent time delays for the 
        hardware stabilization and capture times for the FP35 when a 
        signal is being presented and captured. The inherent time delays 
        are variable and depend on the test selections being used. In 
        some cases the previous test condition can have an impact. 

        As an example, if the previous test signal was a pure tone 
        signal, and composite is selected, there will be approximately a 
        250mS delay before the composite signal is presented when the 
        start button is pressed (the new composite signal is being 
        created during this time period). Starting and stopping the 
        signal once the signal type is changed won't add more delay 
        because the signal is already created.

        Other additional delays can occur if the input prescalers need to 
        change the input gain to adjust the signal level to proper 
        measurement range, or the weighting filters are turned on or off. 
        It takes time for the circuits to stabilize to the new 
        configuration. Normally this will happen in 50mS or less.

        The following hardware delays are used in the FP35:

         TRANSDUCER_CHG_DELAY  100mS
         SPEECH_FILTER_DELAY    50mS 
         PRESCALE_LONG_DELAY    50mS 
         PRESCALE_MEDIUM_DELAY  20mS 
         PRESCALE_SHORT_DELAY   10mS 

        In addition to the hardware delays, there can be software loop 
        time delays. Thus a change in source level (even if requested via 
        RS232) will not happen immediately. It must wait for the current 
        measurement cycle to complete before the new source level will 
        take effect. The amount of time this takes depends on the test 
        setup and what the test is doing. 

        Another internal delay is the input to source synchronization. 
        Data collection must be synchronized to the source signal. The 
        source duration is normally 10mS. Since there are no significant 
        external source output filters, (filtering is done in software), 
        there are no hardware source settle times to worry about beyond 
        the synchronization delays. The exception being when switching 
        between internal and external speakers, and when switching 
        between sound field and telecoil, there will be a slight delay 
        while switching to the alternate transducer. There is a minimum 
        of 50mS delay when this occurs, but it is usually hidden behind 
        the input prescale delays.






                                       13


        In the case of a frequency sweep, there is a minimum time of 10mS 
        from when a signal is measured until the next signal can be 
        measured. Depending on hardware delays, the hardware imposed 
        delay time may be as long as 50mS. 

        Analysis and Display Delays:

        The primary dominant delay in the system is the analysis and 
        display times. Analysis typically takes 50ms to 100ms per 
        microphone. Display update time is typically 75ms to 150ms. 
        If the displayed curve has a lot of noise in it, or the scale 
        changes the display time will be much longer, typically 250ms to 
        400ms. The exact time is indeterminant as it depends on multiple 
        interacting actions within the software. However, with a stable 
        signal being presented, the delays will generally be consistent. 

        Turning the reference mic off will generally make the display 
        update time faster since the signal from the reference mic 
        doesn't have to be analyzed. Collecting the data from the 
        reference microphone doesn't take any long since the data from 
        both microphones is collected at the same time. It is the 
        signal analysis that takes time.

        The real ear screens take longer to analyze the measured data 
        because there are more calculations that must be performed. Thus 
        the real ear screens take a little longer to be updated. 
        Typically twice a second compared to the coupler screen which is 
        typically three times a second with the reference mic on, and 
        four times a second with the reference mic off. .pa
        Software Delays:

        There are separate predelay and settle times for each type of 
        test in the FP35. They are set by the type of aid selected to be 
        tested, but can also be changed to another value from the local 
        menu or via RS232 if required.

        Predelay Time: 

        The predelay time is determined by the type of aid that is 
        selected. If a Linear aid is selected, there will be a 100mS 
        predelay time used in the test. If an AGC aid is selected, a 
        predelay time of 500mS will be used. If an adaptive aid is 
        selected, 3000mS is used. Once the aid type is selected, the 
        predelay time can be changed from the local menu or via RS232 if 
        desired. However remember that each time the aid type is changed, 
        the predelay time will be reset to the predetermined value for 
        the selected aid type. 

        For ANSI, IEC, JIS and ISI tests, Predelay time is also used with 
        other test sequences. At the start of FOG test, the reference 
        test gain setting, the distortion test, and during the equivalent 
        input noise test to separate the source on to source off time. 




                                       14


        Short Settle Time:

        Like the predelay time, the short time is determined by the type 
        of aid that is selected. If a linear aid is selected, there will 
        be no settle time (other than the inherent hardware settle time 
        of the FP35, which normally will be about 20mS. If an AGC aid is 
        selected, a settle time of 50mS is used. If an adaptive aid is 
        selected 100mS will be used as the settle time. 

        Long Settle Time:

        Where a test needs a longer settle time, the long settle time 
        will be used. This is used during an I/O test, three frequency 
        average, and three frequency distortion test. Like the short 
        settle time, the long settle time is determined by the type of 
        aid selected.

        If a linear aid is selected, there will be no long settle time 
        (other than the inherent hardware settle time of the FP35, which 
        normally will be about 20mS. If an AGC aid is selected, a long 
        settle time of 100mS is used. If an adaptive aid is selected 
        250mS will be used as the long settle time. 

        As with the predelay time, the predetermined long e time can be 
        changed with the local menu or via RS232.  Note that the changes 
        are local to the test mode you are in. If you change a delay time 
        for the coupler mode test, it will not affect the real ear, ANSI, 
        or IEC tests. Any delay changes made in the local test will 
        remain that way until either a new aid type is selected, or the 
        FP35 is turned off, or the reset button is pressed.


























                                       15


        Normal Tone Sweep Predelay and Short Settle:

        For a Normal tone sweep, the first sweep frequency will be 
        presented to the aid at the currently selected level for the 
        predelay time period. 

        As each new frequency is presented in the test sweep, the 
        selected short Settle time will precede the measurement at the 
        new frequency. 

        Fast Tone Sweep Predelay and Short Settle:

        For a Fast tone sweep, the first sweep frequency will be 
        presented to the aid at the currently selected level for the 
        predelay time period immediately after the start button is 
        pushed. After that period, the sweep will be repeated without any 
        predelays between the sweeps. This allows the first test sweep to 
        more closely represent the repeat sweep results. It also provides 
        better RS232 control by not giving the attached computer unstable 
        data from the test. 

        As each new frequency is presented in the fast test sweep, the 
        selected Short Settle time will precede the measurement at the 
        new frequency. 

        Short (Burst) Tone Sweep Predelay and Settle:

        The Short Tone does not use test delays. It's purpose is to 
        present the signal (a burst) for as short a duration as possible 
        to make the measurement. There is no predelay time, and no settle 
        time for the Short tone. 

        Composite Predelay:

        In Composite mode, the composite signal will be presented to the 
        aid at the currently selected level for the predelay time period 
        immediately after the start button is pushed before the first 
        measurement is made. This allows the first test measurement to 
        more closely represent the repeat measurement results. It also 
        provides better RS232 control by not giving the attached computer 
        unstable data from the test. 

        Once the composite mode signal has been presented and the first 
        measurement made, successive composite mode measurements will be 
        performed as quickly as they can be done by the FP35. The only 
        delays will be the delay time inherent in the software test loop.










                                       16


        Static Tone Predelay and Settle:

        The first static measurement in single tone will be delayed by 
        the predelay time. Successive measurements will be done as fast 
        as possible. There is no additional settle time used for the 
        measurements because the source is not changed, so no settle time 
        is needed.

        I/O Predelay and Long Settle:

        The I/O test uses the currently selected test predelay time to 
        present the first signal level to the hearing aid before the 
        first measurement is made. 

        The remaining measurements will be delayed by the Long settle 
        time selection.

        Special Tests Predelay and Settle:

        The first single frequency RTG and distortion measurement in IEC 
        and JIS will occur after the signal has been presented for the 
        predelay time period. The repeat RTG single frequency loop 
        measurements will occur as fast as possible (no settle time) 
        after the initial predelay. 

        For three frequency average and three frequency distortion 
        measurements, including coupler and real ear static tone, ANSI 
        FOG, ANSI RTG, and ANSI distortion. The first frequency 
        measurement in the sequence will be delayed by the predelay time. 
        In addition, the first three measurement sets will be discarded. 
        The following individual frequency measurements will be delayed 
        by the long settle time. Where repeat measurements are made, such 
        as static average, or ANSI RTG, only the first measurement is 
        delayed by the predelay time all others measurements use the long 
        settle time.  

        For the Equivalent Input Noise test, the time period from 
        source off to measurement of the noise will be delayed 
        by the predelay time.

















                                       17


        Set/Get Static Tone (121/122):

        The static tone operation is slightly different in real ear verse 
        coupler test mode. In coupler test mode, selecting None (0) will 
        cause the chamber to be silent when a pure tone sweep in not 
        active. If Single is selected, a single pure tone signal will be 
        presented when the pure tone sweep is not active. If Average is 
        selected, a three frequency average will be presented when the 
        pure tone sweep is not active. Note: In composite mode the 
        chamber is always silent when the composite test is not active. 

        In real ear, there is a separate static tone test selection. The 
        Real Ear tests do not present a static tone when a sweep is not 
        running since that would be very irritating. When set to none, 
        the static tone test is removed from the real ear source 
        selection presented on the F4 key. If Single is selected, then a 
        single tone selection will be added to the selection source list. 
        If Average is selected, the three frequency average test will be 
        added to the list instead. 

        Set/Get Source Method Selection (11/37):
        Starting with V3.60, the source method selection is available. 
        The source can be set to either normal SPL, Telecoil, or VRMS.

        When Telecoil or VRMS is selected, the source output will be set 
        to a flat response (filtering still applies). 
        This command used to be referred to as Telecoil On/Off. It was 
        expanded to allow for additional source presentation methods.

        When Telecoil is selected, the source will be shown as mA/M
        (milliamp per meter), or TMSF depending od the source amplitude 
        selection. Setting the source level to 0.01dB selects TMFS, else 
        the mA/M will be used. mA/M is for use with a telecoil board, 
        TMFS is for use with the telewand. 

        If VRMS is selected, the source will be displayed as Vrms.
        In either case, the measurement display results will be shown as 
        dB. The exception is in the O'Scope screen, where Vrms is 
        displayed.

        Set/Get Poll Delay (73/74):
        Prior to V3.70 software, only the poll delay timeout was setable 
        on the FP35. Starting with V3.70 software, the Poll holdoff delay 
        is also setable. Holdoff delay is the amout of time from the 
        completion of the last command before a poll is sent again. Prior 
        to V3.70 the poll holdoff delay was always zero. Starting with 
        V3.70, the delay is set to a default of 10mS at power on. It can 
        be adjusted between 0 and 100mS. The Poll timeout delay is 
        defaulted to 40mS starting with V3.70 software It was defaulted to 
        50mS in prior versions. The poll timeout delay is the length of 
        time after the poll was sent that the FP35 will wait for a 
        command from the computer before it exits communication mode.
        If either value is passed as INVALID_DATA, the value will left 
        unchanged.


                                       18


                             FP35 Audiogram Commands

        Before V2.20 the audiometric screen was not fully supported by 
        the RS232. It just called the standard real ear serial command 
        table. That could cause some interesting side effects since the 
        audiogram screen is somewhat different than the real ear screens. 

        Starting with V2.20 the audiogram screen has its own set of 
        commands. There are additional commands that are available in the 
        audiogram screen when the audiometric option is available. 
        The Audiogram mode supports many of the commands available in 
        probe mode. See the separate FP35 command list for commands 
        available in the audiogram screen.

        Additional commands available with the audiometer option:

        Set/Get Amplitude (cmds 0/21)
        The amplitude sets or gets the currently selected value from the 
        audiogram table. The value is in HL for the HTL/UCL values, or 
        Gain for the TARget or Recd/Reur values. An optional parameter 
        can be sent with the Get command that requests the data as SPL. 

            Get Amplitude        Get SPL Amplitude
         (crv1,2=hl,3,4=spl)       (crv1-4=spl) 
            [0] 21 or 21            [0] 21  command
            [1]  0     1            [1]  1  count
            [0] --     0            [2]  1  data

        Set/Get Frequency (cmds 2/23)
        This sets or gets the frequency of the currently selected 
        audiogram table item. If you select a frequency other than a 
        valid table value, the frequency will only be valid until another 
        operation changes it back to the valid table value. If you select 
        a valid audiogram table frequency, the cursor will be moved to 
        that table location.

        Get Probe Mic Data (cmd 31)
        This information is only available when the probe mic is enabled.
        The value returned is in dBSPL*100.

        Get Reference Mic Data (cmd 57)
        This information is only available when the reference mic is on.
        The value returned is in dBSPL*100.

        Do Target (cmd 178)
        This command is available starting with V3.70 software.
        It causes the target to be generated when the command is sent. 
        (Similar to pushing the F3 key.) This command is only available 
        in the audiogram screen. The command result (33) will indicate if
        the target generation failed.






                                       19


        Set/Get RefMic (cmds 52/53)
        The Get/Set Mic has an extended state in audiometric mode. It 
        turns the probe mic and/or the reference mic on or off.

          0 = Both mics off (no measurements)
          1 = Probe mic on (measured only when sound is presented)
          2 = (turns on reference mic, but without probe can't measure)
          3 = Both Probe and Reference mic on 

        When only the Probe mic is on, the output is displayed as SPL.
        When both Probe and reference mic are on, status information 
        output is displayed as Gain when sound is being presented. If 
        both mics are off, the status display is not shown. If you turn 
        on only the reference mic, nothing happens since it requires 
        that the probe mic also be on to make a measurement. 

        Do Start/Stop(16):
        This function is used to start an Recd/Reur test sweep. For 
        individual frequency presentation when doing an Audiogram HL 
        test, use the Set Active Status command instead. 

        Set/Get Active Status(54/55):
        To present a tone in audiogram mode, use the Set Active command 
        to turn the tone on or off. 

        Set/Get Ear(75/76):
        As in Real Ear mode, you can select which ear is being tested 
        with the Set Ear command.

        Set/Get Warble (cmds 129/130)
        This command allows you to select the warble. 
        In V2.20 software the selection was:
          0=off, 1=fast, 2=slow
        In V2.21 and above the selection is:
          0=off, 1=auto, 2=fast, 3=slow
        You can only select the warble type, you cannot select the amount 
        of warble or the warble rate. The amount is fixed to 5% and the 
        rate is determined by the fast (33Hz), or slow (6Hz) selection.

        Set/Get Output Limit (50/51):
        The output limiting works the same as in real ear mode. The Limit 
        value is always in dBSPL (not HL).

        Set/Get Noise Reduction (4/26):
        You can set the noise reduction to any of the normal values when 
        the microphones are being used for measurement. However, be 
        careful with the use of microphone measurement and large values 
        of noise reduction since that will slow down the measurement.








                                       20


        Set/Get Selected Curve (112/113):
        Set/Get Curve status (114/115):
        The Set/Get Selected Curve and Curve Status work in the audiogram 
        screen as well. However there are some minor differences. 
        You cannot make an Audiogram curve inactive (with Set Curve 
        Status). You can only erase an audiogram curve (crv state = 0).
        Requesting that a curve be made inactive or active will return an 
        Invalid Command response. When the Get Curve Status cmd is used 
        (113), the curve will be returned either as Empty(0), or non-
        empty(1 or 2). 

        In software versions prior to V2.21, the non-empty condition is 
        returned as 1 which normally indicates an inactive curve. 
        Starting with V2.21, the proper value of Active curve (2) is 
        returned when the curve has data in it. 
        Also prior to V2.21, the Get Selected Curve in Audiogram mode 
        incorrectly returned the curve numbers as one less than the 
        selected curve.  In addition, prior to V2.21 the Set Curve 
        selection command(112) did not work. This was corrected in V2.21.
        Note: Curve 0 (Frequency Curve) cannot be selected as a 
        measurement curve. The selection will be ignored.

        In the audiogram RECD/REUR mode, you can provide an additional 
        parameter to select the RECD or REUR Curve display mode (F3). The 
        Recd/Reur parameter will be ignored if the selected curve is not 
        the Recd/Reur curve. If the Recd/Reur Mode parameter is not 
        provided, the current Recd/Reur mode is assumed.

          Normal Curve Select         Extended Recd/Reur Curve Select   
            [0]  112                    [0]    112
            [1]  1                      [1]    2 
            [2]  Curve #                [2]    Curve #
                                        [3]    Recd/Reur Mode
        Audiogram curves:
         Curve name   Number  Description
         ---------------------------------
          AU_FREQ     0       Frequency curve
          AU_HTL      1       HTL curve
          AU_UCL      2       UCL curve
          AU_TARGET   3       Target curve
          AU_REXX     4       Recd/Reur curve 
          AU_BONE     5       Bone Curve
          AU_REDD     110     Redd curve (read only/not selectable)

         Recd Mode          Number  Description
         ---------------------------------
          AU_AVG_REXX       0       Average Recd/Reur curve
          AU_MEAS_REXX      1       Measured Recd/Reur curve

        Notes: REUR and REDD are only available in V2.40 and above.
        In software versions V3.60 and earlier, the BONE and REDD curves 
        were incorrectly mapped. BONE was mapped to 6, and REDD was 
        mapped to 5. The mapping was corrected starting with V3.70.



                                       21


        Recd/Reur Mode selections are available when the RECD or REUR 
        curve is selected. The current RECD/REUR mode selection will be 
        used if a specific Recd/Reur Mode selection is not provided. 
        RECD/REUR Mode selection is only available with the RECD or REUR 
        curve selection. If data is loaded into the Reur curve, it will 
        also be sent to the Unaided Curve in the Real Ear screens. The 
        weighting used to display the Unweighted curve will based on the 
        weighting used for Aided Curve #2 (this is for display only). 
        Unaided curve data loaded in the real ear screen will reflect the 
        specified weighting. Data loaded in the Real Ear Unaided curve 
        will also be copied to the REUR data in the audiogram screen. The 
        audiogram REUR and REDD data is not available in FP35 software 
        prior to Version 2.40. The HTLspl and UCLspl curves in Real Ear 
        were also not available prior to V2.40.

        The REDD curve is read only. You cannot select it as the current 
        curve, nor is it available to turn on or off. You can only read 
        the REDD data with the Get Curve Frame command (25). REDD is 
        derived from the current RECD/REUR + RETSPL for the currently 
        selected ear and output transducer.

        Set/Get Curve Frame(9/25):
        When the audiogram screen is being displayed, you can set or get 
        the audiogram curves (The data display in the box to the right of 
        the graph. The following list indicates the name, curve number 
        and description of the curves. 

        Use Curve Select to select the desired audiogram curve. If the 
        curve is the Recd/Reur selection, which Recd/Reur curve it is 
        will depend on the selected Recd/Reur curve mode and the output 
        device that is selected.  You can select the specific Recd/Reur 
        curve mode by passing a second parameter in the Curve select 
        command (112). If the earphone output device is selected, the 
        Recd/Reur information will be for the earphone Recd method. 
        If the speaker output device is selected, the Recd/Reur 
        information will be for the earphone Reur method (V2.40+). 

        The curves use the audiogram curve format (with 24 data points).
        You can send curves to the audiogram screen or read the current 
        curve data. The frequency curve is used to hold the frequency 
        list in the audiogram table. It is not a regular curve. 

        Note: In software version V2.20 the Audiogram Get Curve returns 
        bad data. This was corrected in V2.21. You can get the data in 
        V2.20 by selecting the desired curve as the active curve, setting 
        the frequency (cmd 2) and then reading the source amplitude (cmd 
        25), which returns the current value that is in the table. 

        Prior to V2.40 the Average value in the curve header always 
        contains the value for 500Hz rather than the three frequency 
        average of 500Hz, 1000Hz, and 2000Hz as it should.
        Prior to V2.40, the first time read (after power on) of the 
        Target curve may return an invalid request. The second request 
        will be ok.


                                       22


                          Changed Commands in the FP35

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

        Set/Get KeyCode:   (cmds 58/72) 
        Since the FP35 has different keys, it's key codes are different 
        from the 6500 or other instruments. See the FP35 keycode 
        documentation file. On the FP35, 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. A ILL will be returned if the key code value 
        sent is invalid.

        Get/Set Printer Label (cmds 6/66/86/89):
        There are two lines of text below the normal label text that are 
        available for use by the customer. In the 6500 and FP40 this 
        information must be specially created at the factory. In the 
        FP35, the text can be added by the customer via an extension to 
        the standard label command (just send two more lines of text).
        Command 86 was extended to add a request for the number of lines 
        to read so that the additional custom text can be read.
        Command 89 allows the new label information to be stored to eerom 
        (permanent storage) so that it will be retained when the 
        instrument is turned off. On the FP35, there is an additional 
        area below the label text that can be used for a bitmap. Prior to 
        V2.21 cmd 89 did not work correctly for the bitmap feature.  Also 
        cmd 86 did not work for the additional user ID text.
        (See also cmd 96/120 - Get/Set Bitmap.)

        Get/Set User ID (cmds 165/166):
        Starting with V3.20 the Set User ID text commands (165/166) were 
        added. Custom User ID text will over ride the Default User ID if 
        present. Reading the label with command 86 will return the 
        current label as it will be printed. To see the Default ID text 
        when a Custom User ID is present, use cmd 165. Setting the 
        Default User ID via the extended cmd 66 remains for backward 
        compatibility to older software. Although there is still a 
        potential for some problems given the slight difference in the 
        way commands 66 and 86 work. The User ID text is saved to EErom 
        at the same time that the printer label text is saved (cmd 89).

        Starting with V3.20, the enable/disable Printer label timestamp 
        commands (8&9) were added to command #80. At power on, the 
        printer label is always timestamped with the current date and 
        time. Selection 8 will disable this feature, making the first 
        printer label line available for use with external text. 
        Selection 9 will turn the timestamp feature back on. The disable 
        is a temporary feature only, it is re-enabled at power on if it 
        was turned off with selection 8.

        Starting with V3.30, the printer label can be viewed by pressing 
        the BACK key while in the main default config menu. The RS232 
        supports this screen and Major state 16, Minor state 100. Only 
        the default RS232 command set is available in the label screen. 


                                       23


        Printing:

        Prior to V2.30 the FP35 did not support an external printer. 
        External printer support is provided in V2.30 and higher.

        We recommend HP based (HPCL) printers.

        The FP35 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 FP35 will print 
        the entire screen when either the Top or Bottom bit flags (or 
        both) are selected. 

        Print control flags:

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

        The FP35 has two 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=<reserved>
           Bit 3-15 - <reserved>

        When the internal printer is selected, the color and HPCL 
        flags are ignored. The internal printer is always monochrome.
        Current the color is not an option for the FP35, so the color 
        selection will be ignored (it will always print in monochrome).

        Starting with V3.30, an additional field was added to cmds 92 and 
        93 to allow the control of automatic label printing and the 
        automatic label timestamp. 

        Printing Setup flags:
          Bit 0 - 0=do not auto-print label,   1=use auto-print label
          Bit 1 - 0=automatic timestamp label, 1=inhibit label timestamp

        Line feeds (cmd 64):
        Prior to V3.30 the printer performed two line feeds for each one 
        specified in the line feed command. This has been corrected in 
        V3.30. The number of feeds is exactly the number specified. 
        Software may have to be adjusted if it relies on the double line 
        feed generated by the older FP35 software.







                                       24


        Set Spectrum (cmd 68)
        The set spectrum command was added to the FP35 in V2.10, but did 
        not work correctly. It was possible to lockup the FP35 with the 
        data, and the levels were incorrect. This was fixed in V2.11. 
        If you are going to use the Set Spectrum command, you should make 
        sure that you have V2.11 or better.

        Prior to V3.20 the Set Spectrum command only adjusted the 
        composite signal. The values given are in dB*100 and will be 
        added to the level of the indicated frequency. The values should 
        be between -32767 and +32767. Starting with V3.20 data points set 
        to -32768 (0x8000) will be left unchanged from the previous 
        setting (in previous versions the results were unknown). 

        Setting a point to zero results in no change to the amplitude of 
        that frequency in the composite signal. Setting a point to +1000 
        will add 10db to the level of the frequency. Setting a point to 
        -1000 will reduce the level of the frequency by 10dB. The 
        corrections are only valid within the range of the FP35 hardware. 
        Setting a level larger than is possible will be limited to the 
        maximum possible signal the hardware can generate. Setting a 
        level smaller than can be generated will turn off the data point. 

        The exact limits are dependent upon the hardware, however, the 
        total available math range is 180.62dB (including leveling and 
        calibration corrections). Thus adding 200dB to a frequency will 
        set that frequency to the maximum possible level. Adding -200bB 
        will turn the frequency off. Note that turning it off requires 
        more to offset the leveling and calibration corrections. 

        Starting with V3.20 any change in the source type will cause the 
        the Spectrum Source Adjust data to be restored to zero (default). 
        If you change the source type, exit the screen and come back, or 
        perform any other function which triggers the source to be 
        rebuilt, you will have to resend the Spectrum Source Adjust 
        information. 

        Unfortunately, due to a bug, the Spectrum command didn't work in 
        V3.10. It always set the source adjust values back to zero. This 
        was fixed in V3.20. 

        Another addition in the V3.20 software is that values in the 
        Spectrum Source Adjust array that are set to INVALID (0x8000) 
        will not change the internal data. This can be used to update 
        specific data points. If fewer than the maximum data points 
        allowed are sent, the array will be filled starting with the 
        lowest frequency slot. 

        To get a list of the frequencies that are used with the Source 
        Array, you can use Command 145 to ask for the leveling
        frequency set which is what the Spectrum source adjust array 
        uses. (Cmd 145 is new with V3.20 software.)




                                       25


        Starting in V3.20, the Source Adjust of pure tone signals was 
        added. Prior to V3.20 the Spectrum Source Adjust is only 
        effective in Composite modes (including digital speech). 

        The pure tone setting will only be made when the instrument is in 
        the pure tone mode. Only one data point is expected and it will 
        adjust the amplitude correction of the current frequency.
        The separate selection for pure tone is required because 
        puretones can be set to any frequency, so a single common source 
        adjustment setting is used for all pure tone frequencies. 
        The source adjustment is relative to the current Source level 
        output setting. If you add 10dB, then the physical output will be 
        10db higher than the level setting on the screen. 

        When the instrument is in pure tone mode, only the pure tone 
        signal is adjusted. When the instrument is in composite, only the 
        composite signal is adjusted. When switching from composite to 
        pure tone, the pure tone source adjustment is reset to zero. Once 
        in pure tone mode, it is left alone, so you only need to set it 
        on entry to pure tone mode. 

        On entry to composite mode, the composite source adjust is reset 
        to zero.  Once in composite mode, it is left alone, so you only 
        need to set it on entry to composite mode.  If you wish to adjust 
        the bias tone for digital speech, first go to pure tone mode, set 
        the pure tone source adjust, then switch to composite mode and 
        set the composite source adjust. 

        The Source Spectrum Adjust feature is not available in Composite 
        Distortion mode since the Composite Distortion mode uses the 
        Source Adjust array for its work. Adjusting the Source Spectrum 
        would disrupt the operation of the Distortion measurements.

        Note: in an unleveled condition, the source refers to 30mVrms out 
        the earphone jack being equal to 110dB. When leveled, the setting 
        is relative to the transducer output as measured by the leveling 
        microphone. The output from the speaker jack will be 
        approximately 16.07dB higher (190mVrms@110dB).

        Warning: If you don't know what this stuff is all about, don't 
        mess with it. The source adjustment will cause the source to do 
        weird things if you don't understand what this is about. Use the 
        regular Source Amplitude commands (0/21) if you just want to 
        change the rms source output normally. Remember that the level 
        reference is attenuation, so negative numbers will increase the 
        source output level. Also keep in mind that setting the level 
        reference too low (making the source output too loud) may 
        trigger the Maximum source output exceeded error. If setting via 
        RS232, you will need to watch for the message window state.

        For Leveling adjustment, look at the leveling data commands 
        (145/146).  Normally you should not change the leveling data, but 
        it can be useful to look at the data to see what is happening 
        with the leveling.


                                       26


        Get/Set Probe mode (cmd 7):
        To retain backward compatibility, you can use cmd(7) to go to 
        probe mode from coupler (value=1), and to go to coupler mode from 
        probe (value=0). Since you can also be at the top (opening) 
        screen, the Get/Set probe command has been expanded to return a 
        value of -1 to indicate that you are at the top screen level. 
        Setting the probe mode to -1 will also take you to the top screen 
        from either coupler or probe. Cmd(7) is not available in any 
        other screens. You should normally use the Set Instrument State 
        command to move between screens. The Set Probe command may not be 
        supported in future instruments.

        Get Bias Tone (126):
        Prior to V3.31 Get Bias Tone always returned a single value of 
        "2" instead of the two values of distortion two frequency 
        difference and sweep end frequency.








































                                       27


        -----------------------------------------------------------------
                            New commands in the FP35

        These commands are not in other instruments because they are 
        either specific to the FP35, or are new with the FP35.

        Set Blob (99):
        The FP35 allows you to send it saved test results from 
        ANSI/IEC/JIS/ISI tests. 

        The ISI test was added in V3.20 software. The ISI test does not 
        currently provide for a 1.0v battery test since there is no 
        battery simulator. This test can be accomplished by using an 
        external 1.0v battery simulator (or weak battery) and running the 
        ISI test again.

        Set/Get Selected Curve (112/113):
        Set/Get Curve status (114/115):
        Set/Get Selected Unaided Curve (116/117):
        These new commands allow you to read or select the active curve 
        in multicurve, and to read or select the active state of a curve 
        in the multicurve test screen. Only the curves selected by the 
        F2/F3 function keys can be changed. Note: Cmds 112, 113, 114 and 
        115 refer to the selected curve on the screen (0-3), and not the 
        curve ID number that the Set/Get curve cmds (9/25) use. This may 
        cause potential confusion since the numbers are not the same.
        Command 116 allows you to set whether to use the Custom Unaided 
        or Average Unaided data. If Average Unaided is selected, the 
        currently selected age will determine the REUR data that will be 
        used to generate the Unaided Curve. 0=Custom, 1=Average, -1=Auto. 
        See the FP35 manual under real ear menus for the differences 
        between Custom(0), Average(1) and Auto(-1) unaided selections. 
        Note: Auto Unaided Select (-1) was not available prior to V3.00.

        Set/Get Impulse Rejection(107/108):
        Impulse rejection can help to improve time averaged measurements 
        in noisy conditions. It has no effect if Noise Reduction is 
        turned off. When the rms of a single measurement exceeds the 
        previous measurement by the amount specified for Impulse 
        rejection, that measurement will be discarded and another one 
        made. The amount of Impulse rejection can be set between 0 (off) 
        and 24db. Values smaller than 3dB in sound field measurements 
        probably should be avoided since the probability of repeated 
        measurements that are stable below 3db is low, which can 
        significantly slow down the measurement system as too many valid 
        measurements may be discarded. 










                                       28


        Set/Get RealTime Clock (104/103):
        The date and time real time clock in the FP35 can be set using 
        this command.

        Get Signal Information (109):
        This command provides information on how the FP35 produces and 
        measures signals. It provides the following information:

          1: SampleRate       = samplerate of signal
          2: CaptureSamples   = number of capture samples
          3: SourceSamples    = number of samples in source
          4: RampSamples      = number of ramp up/down samples
          5: CouplerSkew      = source to coupler mic sample delay
          6: ProbeSkew        = source to probe mic sample delay
          7: InA.PrescaleGain = InputA prescale gain (coupler)
          8: InB.PrescaleGain = InputB prescale gain (probe)
          9: OutL.RmsOffset   = Lchan single tone to rms offset
         10: OutR.RmsOffset   = Rchan single tone to rms offset
         11: OutL.MaxLevel    = Lchan max possible output level
         12: OutR.MaxLevel    = Rchan max possible output level
         13: InA.GainIndex    = InputA prescale gain index (coupler) *
         14: InB.GainIndex    = InputB prescale gain index (probe)   *
         15: InA.HwGainSelA   = Input A HW gain control (coupler) *
         16: InB.HwGainSelB   = Input B HW gain control (probe)   *
         17: InA.InputLevelA  = InputA raw input level *
         18: InB.InputLevelB  = InputB raw input level *
         19: InA.Headroom     = InputA range still available *
         20: InB.Headroom     = InputB range still available *

        * 13 -> 16 were added to the list with V2.12 software
        * 17 -> 18 were added to the list with V3.20 software

























                                       29


        Get Raw Data (cmd 110):

        Command                         Response
        -------                         --------
        006E Cmd number (110)           806E  Rsp number
        0003 Three words                xxxx  Variable length
        xxxx Sample Selection           xxxx  Sample Selection
        nnnn How to collect             xxxx  Sample Style
              0=get current data        xxxx  Trigger Offset
              1=capture n samples       xxxx  Sample Rate
        zzzz Number of samples          xxxx  Prescale Gain
              0=default count           xxxx  Start Index of data     
                                        ....  Binary sample data

        <Cmd 110 Command>
        The maximum allowed samples to capture is 1024. The minimum 
        allowed is 64. If less than the minimum is requested, the default 
        of 256 samples will be used. If more than 1024 is requested, the 
        number collected will be limited to 1024. Sample rate is not 
        controllable it is set by the currently selected frequency. 

        The sample selections available consist of the following:
         0=Coupler (MicA) Raw sample data (raw time domain data)
         1=Probe (MicB) Raw sample data (raw time domain data)
         2=Coupler (MicA) Time Averaged sample data (w/noise reduction)
         3=Probe (MicB) Time Averaged sample data (w/noise reduction)
         4=Left Source (chamber/sound field/left earphone) 
         5=Right Source (right earphone only)

        Note: if source is off, data cannot be time averaged. If the 
        noise reduction is set to zero the data is not time averaged. 
        Time averaging can reduce non-synchronous signal noise when the
        source is on (so that sampling can synchronize to the source).























                                       30


        <Cmd 110 Response>
        The length of the returned response is dependent upon the 
        requested number of samples. The Sample Selection value is a copy 
        of the requested sample selection in the original command. 

        The Sample Style indicates the number of bits per sample. For the 
        FP35 this is always 16 bits per sample. 

        The Trigger Offset is how far into the sample array the first 
        synchronous data point can be found. Note that the trigger offset 
        is different for the probe and coupler mics because of the longer 
        delay through the probe. (See Skew setting.)

        The Prescale Gain is how much gain has been added to the signal.
        The prescale gain can be used to exactly determine the strength 
        of the signal. 

        The Start index value is the location in the response array where 
        the data starts. This should be used to find the data because 
        future enhancements to the data structure may add more header 
        information between the Start index value and the first data 
        sample. 

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

        Prior to V3.40 the RS232 Raw Data capture command was always 
        returning a 256 array regardless of the number of samples 
        requested. The requested samples are now returned. 

        Warning: You are not allowed to capture more samples that the 
        FP35 can handle in one capture frame. The maximum amount is 
        variable depending on the software version. Specifically, the 
        capture memory uses the excess ram available in the system. This 
        memory shinks as new features are added to the FP35. The exact 
        amount available is indeterminant. There is always at least 768 
        samples available since the fast warble method requires that many 
        capture samples.

        Note: The data returned will include the amount of skew selected
        for the channel data returned. Thus if the skew is set to 44,
        and 256 samples are requested, 300 data samples will be returned.












                                       31


        Get Calibration Data (cmd 111):

        This command will return the calibration information for the 
        FP35 microphones. Transducer 0 is MicA (coupler microphone).
        Transducer 1 is MicB (Probe microphone). Currently no other 
        transducers are supported. 

        Each Channel has calibration tables associated with it. 

          0 : CalibrationFrequency #!
          1 : MicFixupLevel #!
          2 : InputFlatError #!
          3 : InputSpeechError #!
          4 : InputRumbleError *!
          5 : InputPrescaleGain *
          6 : MicCalFreqs *!
          7 : FryeMicCalData *!
          8 : RealPrescaleGain *
          9 : HardwareGain     (V3.20)
         10 : CalStatus        (V3.20 - cal status dates & temperatures) 
         11 : OutputAttenError (V3.20 - **Note: this is for the outputs)
         12 : IdealProbeGain   (V3.20 - Ideal probe filter gain chB only)
        100 : SysCalFreqList   (V3.20 - used in factory testing)
        101 : HwCalData        (V3.20 - used in factory testing)
        102 : SysCalData       (V3.20 - used in factory testing)

        Note: #Prior to V2.12 software, only items 0-3 were returned.
        *Items 4-8 were added in V2.12 software. 
         Items 9-10 were added in V3.20.
        !Prior to V3.20 the CalibrationFrequency did not return the last 
        frequency item (20159). Arrays 1,2,3,4,6,7 did not return the 
        last two data items (they are always -32768 anyway).
        Data points containing 8000H (-32768 decimal) are not calibrated. 
        **OutputAttenError contains the output calibration data. 0=left 
        output (std src), 1=right output (earphone src only).

        The CalibrationFrequency table is the list of frequencies that 
        the FP35 uses to calibrate its input circuitry. The first 
        position of the table contains the number of frequencies in the 
        table. The table contains a sequential list of frequencies 
        starting with the second position of the table. Calibration 
        Tables 1 to 4 are referenced to the CalibrationFrequency Table.

        MicFixupLevel are the corrections used for the selected 
        microphone to achieve a flat calibration. The first position of 
        the table contains the overall sensitivity of the microphone. The 
        remain table items are the corrections for the microphone at the 
        frequencies indicated in the CalibrationFrequency Table.

        InputFlatError are the corrections used to correct the FP35 
        hardware to generate a flat electrical response. The first 
        position of the array is the overall correction to set the FP35 
        to 110dBspl = 30mVrms at 1KHz. The rest of the array are the 
        corrections for the individual frequencies to make it flat.


                                       32


        InputSpeechError are the corrections used to correct the FP35 
        hardware speech filter to generate an ideal filter response. 
        The first position is always zero.

        InputRumbleError are the corrections used to correct the FP35 
        rumble filter error when the rumble filter is on. The rumble 
        filter is turned on at high input gain settings to reduce 
        measurement errors caused by rumble in the signal generating 
        premature overrange conditions. The rumble filter is turned on 
        when the prescale gain is set to 24dB or higher. The first 
        position is always zero.

        RealPrescaleGain are the corrections used to correct the data for 
        the currently selected input prescale gain. The current index 
        into the list can be found by calling GetSignalInfo(cmd 109) and 
        reading the InX.GainIndex value. The RealPrescaleGain list was 
        added starting with V2.12 software. The rumble filter is on when 
        the prescale index is at 16 or higher. The FP35 prescales in 
        1.5dB steps. This array contains the calibration for each 
        prescale step.

        InputPrescaleGain are the corrections for the prescale gain 
        amplifiers in the FP35. There are eight items in the table.
        (int) is the internal 20dB gain stage in the codec. (ext) are the 
        additional 12dB and 24dB attenuator and gain stages used in 
        the FP35.

        Item  Gain  Description
          0 : 0dB   no gain                
          1 : 20dB  int 20db mic gain     
          2 : 24dB  ext 24db gain         
          3 : 44dB  int 20db + ext 24db   
          4 : 12dB  ext 12db gain         
          5 : 32dB  int 20db + ext 12db   
          6 : 36dB  ext 24db + ext 12db   
          7 : 56dB  int 20db + ext 24db + ext 12db   

        MicCalFreqs are the calibration frequencies that the microphone 
        currently attached to the FP35 was calibrated at. The first 
        position of the data contains the number of frequencies in the 
        array. 















                                       33


        FryeMicCalData is the calibration information that was created at 
        the factory for the microphone currently attached to the FP35. 
        This information is a direct copy of the calibration information 
        stored in the microphone. Unlike the other correction arrays in 
        this command, FryeMicCalData does not have an initial overall 
        fixup item. Thus the array is one item shorter and index[0]
        contains the data item for the first frequency represented in 
        MicCalFreqs[1].

        The FP35 microphone set uses the Frye standard calibration 
        reference of 30mV RMS output measured with a 110dB SPL at 1KHz 
        acoustic reference signal applied to the microphone. The Probe 
        microphone calibration assumes an idealized probe attached to the 
        microphone.

        HardwareGain returns the internal hardware gain control list. 
        This list is primarily used internally for testing. The 
        information is not normally needed by user programs. The control 
        list is used to control the gain selection in use.

         BYTE HWGain[MAX_GAIN_INDEX+1] = { //input presc                   
          0: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,  0db     
          8: 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,  0+12db    
         16: 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,  0+24db      
         24: 0xC0,0xC1,0xC2,0xC3,0xC4,                 0+12+24db    
         29: 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,  0+20+24db    
         37: 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,  0+12+20+24db 
         45: 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF}; 0+12+20+24db 

             gain range     max gain  [phys HW gain/atten]   
          0: (0db->10.5db)  {11.99db} [-12db ext atten]     
          8: (12db->22.5db) {23.99db} [0db gain]            
         16: (24db->34.5db) {35.99db} [+12db ext(-12+24db)] 
         24: (36db->42db)   {43.99db} [+24db ext gain]      
         29: (44db->54.5db) {55.99db} [+20db mic +12db ext] 
         37: (56db->66.5db) {67.99db} [+20db mic +24db ext] 
         45: (68db->78.5db) full gn                         
         
        CalStatus returns the date and status of the mic calibration, 
        Hardware calibration date and temperature, system calibration 
        date and temperature. The CalDate information can be used to 
        determine the last time the mic and or hardware was calibrated 
        and the current state of the calibration.

        The calibration date will be all zero if the calibration is 
        unknown, otherwise the information will be returned in the 
        calibration date format shown below (note that month and day are 
        bytes which will be returned in one RS232 packet word. For the 
        FP35, the Expire time is normally set to none (255) as the 
        microphones do not normally require a specific time based factory 
        recalibration. 





                                       34


        If the calibration status indicates uncal, the microphone is not 
        calibrated. The FP35 will configure itself for a flat microphone 
        response if it is uncalibrated. Factory calibration means that 
        the calibration information was read directly from the microphone 
        calibration storage. Custom Calibration means that the microphone 
        calibration has had a custom calibration applied since the last 
        factory calibration. If the calibration is unknown, normally a 
        custom calibration should be done before using the microphone.

        If the calibration source is from ram (it has not been saved), it 
        will go away when the FP35 is turned off. If the calibration is 
        from eerom, it will be restored when the FP35 is turned on. 

        Calibration Status Format:
         INT16 Source = source of mic calibration  0=ram, 1=eerom
         INT16 Status = status of mic cal. 0=uncal,1=factory,2=custom
         tCalDate MicCalDate = date mic last calibrated
         INT16 SystemCalStatus = status of FP35 calibration.
         tCalDate HardwareCalDate = Date of last hardware cal
         INT16 HardwareCalTemperature (degrees C*100)
         tCalDate SystemCalDate   = Date of last system cal
         INT16 SystemCalTemperature (degrees C*100) 
         tCalDate MfgLongDate = Date of manufacture

        Calibration timestamp format (tCalDate):
         BYTE  Expire = months until expiration. 255=none    (0=unknown)
         BYTE  Reserved = <unused> currently zero
         WORD  Year   = year last calibrated.    1990->9999  (0=unknown)
         BYTE[0] Month = month last calibrated.  1->12       (0=unknown)
         BYTE[1] Day   = day last calibrated     1->31       (0=unknown)

        Note: The Calibration Temperature will always reflect the last 
        known calibration Temperature. If available from the EErom, it 
        will contain the last saved system calibration temperature. If a 
        syscal has been done since power-on, it will be updated with the 
        current temperature at the time of the calibration. 

        OutputAttenError contains the calibration errors for the output 
        attenuators. The first value in the array is the overall fixup 
        for the output to achieve the desired electrical output of 
        30mVrms when the source is set to a 1KHz pure tone signal. The 
        source output consists of a 16bit codec output followed by 64 
        attenuation steps of 1.5dB each. 

        The codec output attenuators consist of two sections. The first
        16 steps (0-15) use a different method and have more absolute 
        accuracy than the remaining steps (16-63). However, the first 16 
        steps are also less consistent. The remaining steps use a 
        methodology which causes the step attenuation to be relative 
        consistent and thus predictable. The tradeoff is that the 
        absolute attenuation is less accurate.





                                       35


        The output calibration procedure compensates for this by using 
        the predictable attenuation to improve the absolute accuracy of 
        the attenuator. The first 16 steps are calibrated separately with 
        the results saved as is. The next 20 steps are calibrated and the 
        results saved in a similar fashion. The average of the last 
        calibrated 20 steps is determined. The remaining 27 steps are 
        then set to the computed average calibration. The remaining 27 
        steps are not directly calibrated because the signal is too
        close to the input noise floor to obtain an accurate measurement.

        Note: Output calibration is a separate issue from leveling. 
        Output Calibration determines the absolute accuracy of the 
        source output. Leveling is a separate procedure used to generate 
        a signal that has a flat response through the attached output 
        transducer. The leveling information is applied on top of the 
        absolute output calibration.

        IdealProbeFilter contains the information for the idealized probe 
        filter used by the FP35 software. This filter only applies to the 
        probe channel input (Channel B). Reading channel A will return an 
        array of 0x8000 values. The probe filter values are tied to the 
        calibration frequencies. This information is provided for 
        reference to the outside world. 

        SysCalFreqList = List of frequencies used in calibrating the FP35 
        hardware and system. Index[0]= number of freqs, the rest of the 
        list are the frequencies at which the FP35 hardware is 
        calibrated. (60 Frequencies)

        HwCalData returns the calibration results from the Hardware 
        calibration. This information is only valid after a hardware 
        calibration has been done but the power has not yet been turned 
        off. It's purpose is to provide feedback for monitoring factory 
        calibration, and is not normally useful information for the user.

        [0] = Source Reference Correction
        [1] = Input Base Calibration Correction
        [2] = 20db Gain stage gain
        [3] = 24db Gain stage gain
        [4] = 12db Gain stage gain
        [5-64] = Flat Response Correction (see SysCalFreqList for freqs)
        [65-124] = Rumble filter Response Correction (see SysCalFreqList)
        [125-184]= Speech filter Response Correction (see SysCalFreqList)













                                       36


        SysCalData returns the calibration results from the System 
        calibration. This information is only valid after a system 
        calibration has been done but the power has not yet been turned 
        off. It's purpose is to provide feedback for monitoring factory 
        calibration, and is not normally useful information for the user.

        [0-63] = D2A Attenuation Corrections (64 steps)
        [64-79] = A2D Input Gain Corrections (16 steps)

        The attenutation and Input Gain steps are in 1.5db increments. 
        The Attenuation index [0] is the zero reference attenuation (no 
        attenuation of the source signal. Index [63] is the maximum 
        attenuation of the source signal (94.5db). Note the source signal 
        can be further attenuated. This is accomplished by reducing the 
        magnitude of the generated source once the maximum physical 
        attenuation is reached. 

        There are 16 1.5db Step input gain selections. These are in 
        addition to the prescaler gain selections. Input Gain Step [0] 
        (array index 64) is the reference zero gain. The maximum step 
        gain available is 15*1.5 (22.5db). Combined with the 20dB, 24dB, 
        and 12dB prescaler stages, the maximum input gain available is 
        78.5dB. There is some overlap of the gain step configurations. 
        See HardwareGain and RealPrescalerGain for the actual 
        configuration of the input gain selections. 

        Set/Get/Save Bitmap (cmds 96/120/89):

        The Set Bitmap command allows setting a user defined printer 
        label bitmap graphic. The Get Bitmap command is useful for 
        obtaining screen dumps for publication of measurement results. 
        The program FCAPTURE.EXE is provided for this purpose (see the 
        FRYE/FCAPTURE subdirectory).

        In software versions prior to V2.21 Cmd 89 did not work correctly 
        for saving the bitmap to eerom. 

        Prior to V3.20, the bitmap command would accept, without 
        complaining, style "16" (representing a 16 color bitmap) even 
        though the FP35 has a monochrome display and printer. Starting 
        with V3.20 this was "corrected". The correct style "4" is now 
        used to identify a 16 color bitmap, and style 8 is a 256 color 
        bitmap. Pixel color '0' is translated to the current background 
        color, and any other pixel color is translated to the current 
        foreground color (black for the FP35 printer). 

        Prior to V3.31 in Set Bitmap (cmd 96) if the image size was 0 (no 
        image), the label text would be cleared. This has been corrected 
        to clear the bitmap instead. 

        Prior to V3.31 Get Bitmap (cmd 120) returned two extra words if 
        width was zero. The extra words can be ignored. Also the Get 
        Bitmap returned header value "BitmapStart" was incorrectly 
        returned as 16 (it should be 10). 


                                       37


        Set Bitmap (cmd 96):
        Command 96 can be used to place a graphic bitmap such as a logo 
        in the unused print area below the label text. Currently only the 
        printer bitmap (page 0) is supported. The bitmap will be placed 
        on the area of the printer label as specified by the X/Y 
        location, with 0,0 being the top left corner of the label. When 
        the label is created, the bitmap is drawn last, so if it overlays 
        text, the text that the bitmap covers will not be visible.
        Although a bitmap can be sent to the screen (page 1), it is of 
        little value since it will be quickly over-written by the test 
        screen updates.

        If no data is provided (w=0 or h=0), the page will be cleared to 
        the background color. If a bitmap is provided, it is drawn 
        with the putpixel method, which is somewhat slow. Don't expect 
        'realtime' updates. 

        The provided bitmap must have pixel line lengths that end on a 
        word boundary. Only the pixel width specified will be drawn. Any 
        remaining pixels in the pixel line will not be drawn. This is 
        done to make it easier to access the data for drawing on the 
        screen. It also matches the format of the GetBitmap command.

        Command Format:
          [0]=command (96)
          [1]=packet size in words (1024 max)
          [2]=bitmap  style (2=monochrome,  4=16color, 8=256color)
          [3]=xpos   (in pixels) (n*8:mono, n*2:16color, n*1:256color)
          [4]=ypos   (in pixels)
          [5]=width  (in pixels) (n*8:mono, n*2:color, n*1:256color)
          [6]=height (in pixels)
          [7]=Page   (0=printer, 1=work screen)
          [8]=bitmapsize (in bytes)
          [9]=bitmap start (index where bitmap data starts - in words)
          [...]=bitmap data

        Notes: 
        Additional header information may get added after index[9]
        at a later date. Use value in index[9] to determine the starting 
        location in the packet for the bitmap data. 
















                                       38


        Get Bitmap (cmd 120):
        This Command will read the selected bitmap from the FP35. This 
        command requires six words of data to be sent. The first word 
        specifies the bit map style to return. Currently on the FP35, 
        only style(0) is supported (automatic). The Style parameter is 
        ignored. Only monochrome bitmaps are provided from the FP35.

        The next two words specify the X/Y start location to begin 
        reading the bitmap. The following two words specify the width and 
        height of the area of the bitmap to be read. Currently in the 
        FP35, there are some limitations to the location and size of the 
        bitmap area to be read. The X location must start on an image 
        word boundary (16 pixels per word in monochrome). If it is not, 
        the location will be truncated to the next X/Y location that is 
        on a image word boundary. The width must also be specified in 
        word increments (16 pixels per word in monochrome). If the width 
        is not specified in word increments, the width will be truncated 
        to a word width. The Y location and height number can be 
        specified on individual pixel boundaries. The final value 
        specified is the bitmap page to read. Currently only the printer 
        label (0) and the display work screen (1) can be read. 

         [0]=command (120)
         [1]=length  (6)
         [2]=bitmap style (normally 0 - auto)   [style value is ignored]
         [3]=xpos    (in pixels - word inc) 
         [4]=ypos    (in pixels - pixel inc)
         [5]=width   (in pixels - word inc)
         [6]=height  (in pixels - pixel inc)
         [7]=Page    (0=printer, 1=work screen)

        The Get Bitmap command responds with the following information.  
         [0]=response# (120+0x8000)
         [1]=packet size in words (1024 max)
         [2]=bitmap  style (2=monochrome,  4=16color, 8=256 color)
         [3]=xpos    (in  pixels)  (bytes per scanline if w=0)
         [4]=ypos    (in pixels) (this is 0 if h = 0)
         [5]=width  (in pixels)
         [6]=height (in pixels)
         [7]=Page   (0=printer, 1=work screen)
         [8]=bitmapsize (in bytes) (if h or w = 0 this is 0)
         [9]=bitmap start (index in packet where bitmap data starts (10)
         [10...]=bitmap data

        You can predetermine how large the image will be by specifying 
        the width and height as zero. In that case, the Xpos value will 
        return the number of bytes in a scan line, and width and height 
        will return the total width and height of the page in pixels. 
        Bitmap data is not returned since width and height were zero.







                                       39


        GetLastDeviceID (cmd 100):
        GetLastDeviceID will return the highest short ID number for the 
        device identifiers in the instrument. Device IDs start at Zero(0) 
        and increment sequentially to the highest device number. 
        Currently the FP35 only has two device IDs, the CPU ID, and the 
        Microphone ID. So it will return GetLastDeviceID as "1".

        GetDeviceID (cmd 101):
        To read the device ID from the FP35, use the GetDeviceID command. 
        The command will return the Long ID number associated with the 
        Short ID number given. For the FP35, Device ID zero(0) is always 
        presented as the CPU ID. Device ID one(1) in the FP35 is normally 
        associated with the currently selected microphone. The device ID 
        is a unique number that is associated with the device it 
        represents. Note that Family and Serial are important. Similar 
        Serial numbers can potentially appear in other family codes. 
        The CRC can possibly be left out of the number if desired. It's 
        purpose is to insure the integrity of the serial number while 
        being communicated. 

        typedef struct {    // ID information (from dallas part)
          BYTE Family;      // Storage Device family 
          BYTE Serial[6];   // Device serial number  
          BYTE Crc;         // Eight bit CRC of data 
        } tDALLAS_ID;

        GetDeviceData (cmd 102):
        The GetDeviceData command allows you to read the data information 
        stored in the DeviceID part. The command uses the short ID 
        reference for the Device ID (CPU = 0, MIC = 1). The format is 
        dependent upon the particular device being read. 
        There are currently two formats; the CPU ID and the MIC ID. 

        For the CPU ID, the format is as follows:
        typedef struct {     // Cpu information (from dallas part)
          INT16 Temperature; // Temperature in +-0.5C increments 
          BYTE UserTH;       // User storage (bootloader version)
          BYTE UserTL;       // User storage (bootloader version)
          WORD Reserved;     // <reserved>
          BYTE Remain;       // (see DS1820 manual; don't worry about it)
          BYTE CountPerC;    // (see DS1820 manual; don't worry about it)
          BYTE Crc;          // Crc of the above
          BYTE Spare;        // Spare used to fill record to word size) 
        } tCPU_DATA;

        The primary useful item in the CPU data is the temperature.
        It is the internal operational temperature of the FP35. It can be 
        used to determine if the FP35 has reached the nominal operating 
        temperature (for slightly improved accuracy). 

        There are two methods (device selection) for getting CPU data, 
        0=update temperature (returns last data immediately) then updates 
        temperature, 1=send last known temperature only (no update).
        Temperature is given as C*0.5 degrees (direct from Dallas part).


                                       40


        If there is a failure to access the temperature device, a single 
        value of -1 is returned as the result rather than the CpuID 
        structure.

        The MIC ID format contains the calibration information for the 
        microphone along with the calibration date and the type of the 
        microphone. The format will in the future include additional 
        information such as serial number and model number. Currently the 
        calibration data values are defined as DB*100, but they may be 
        compressed in the future to reduce storage requirements to be 
        able to include additional information in the device. 

        The MIC ID format is variable and depends on the microphone 
        installed and the component used to store the device data. 
        Because of the variable nature of the information, it is not 
        presented here. If you need the format information for a 
        particular microphone, you can specifically request the 
        information from Frye Electronics. 

        GetRealTimeClock (cmd 103):
        SetRealTimeClock (cmd 104):
        These commands allow the attached program to get or set the real 
        time clock data in the FP35.

        The real time clock data uses the following Intel data format 
        packed into the returned data packed. As an Example, "Second" 
        will be the low byte of the second data word and "Minute" will be 
        the high byte of the second data word. Second data word is packet 
        word index[3].

         typedef struct {
          WORD Millisecond;  //set to 0 if not supported
          BYTE Second; //0-59
          BYTE Minute; //0-59
          BYTE Hour;   //0-24 or 1-12
          BYTE Spare;  //spare (is day of week on some clocks)
          BYTE Day;    //1-31
          BYTE Month;  //1-12
          WORD Year;   //1992-9999
         } tRTC_Time;
















                                       41


        Set/Get Leveling Data (cmds 145/146):
        These commands were added in V3.20 software to allow the current 
        leveling data for the instrument to be read or set. If you do not 
        provide leveling data with the Set command, it will set the FP35 
        to the unleveled state. You are not allowed to set the level 
        frequency list, and the level list must be equal to the length 
        and format of the provided format. The data list contains the 
        attenuation values in DB*100 that are applied to the source at 
        each frequency. The first value of the leveling data list 
        contains the overall attenuation applied. The frequency list 
        contains the list of leveling frequencies that relate to the 
        leveling data. The first item in the Frequency list is the number 
        of frequencies in the list (and thus the number of leveling data 
        items in the leveling list). These commands can be used to 
        externally store and set the leveling data. See cmd 68 Set 
        Spectrum for a better way of controlling the source if you wish 
        the results to be temporary.

        Set Leveling State (cmd 147):
        This command was added in V3.20. It allows the leveling to be to 
        0: Unleveled (flat), 1: Restore from saved level, or 2: Save 
        current leveling. The save and restore only work in chamber mode. 
        In real ear, only the unleveled operation works since there is 
        not a leveling save feature in real ear. This command is currently 
        not available in any other screens besides real ear and chamber.

        Note: In the real ear audiogram screen, this command only affects 
        the sound field leveling. It has no effect on the earphone 
        calibration. This is of note since the Get Leveling status 
        command (29) in the audiogram screen will return the earphone 
        calibration status when the earphones are selected as the output 
        device to be used.

        Set/Get User Number (cmds 150/151):
        Starting with Version 3.20 The current user selection can be set 
        and read using commands 150 and 151. There is currently no direct 
        way to save the selected user number via RS232, although it is 
        potentially possible to implement key presses to go into the 
        default menu and press F5 via a RS232 keypress to Store the 
        current selection after setting the user number.

        Set/Get Measurement Skew (cmds 168/169):
        Starting with version 3.31 the current measurement skew values 
        can be set and read using commands 168 and 169. The skew value is 
        a temporary value that is reset to the default values on reset or 
        exit from a test screen. The fist value of the command specifies 
        which mic channel to set or get. If zero, the current measurement 
        mic channel is used. If one, the coupler mic is used. if 2 the 
        probe mic is used. If -1, both mic channels are set to their 
        default skew values. Any other value will result in an Invalid 
        command response. If a non-valid skew value is given, the skew 
        will be set to the default skew value. 




                                       42


        Set/Get Coupler Selection (cmds 172/173):
        This command is new with V3.60. Selects type of coupler to be 
        used. This command is the preferred comand to be used in future 
        instruments. It replaces the individual commands to select OES or 
        CIC couplers. 

        Set/Get Analysis Selection (cmds 174/175):
        This command is new with V3.60. Selects the RMS analysis method 
        to be used. This overides the default method used to compute the 
        RMS. Normally this should be left as auto so that the FP35 can 
        select the best and most accurate analysis method for the 
        selected operation.

        Do Save (cmd 177):
        This command allows RS232 to save to eerom, restore from eerom, 
        or reset to the factory defaults the main default config menu 
        items. 0=reset to factory default, 1=restore from eerom, 2=save 
        to eerom.

        Do Custom Test (cmd 176):
        This command is new with V3.60. This command only performs a 
        puretone sweep using a previously loaded frequency list.
        There are no parameters for this command.

        This command tells the FP35 to use the special uploaded User 
        frequency list for a pure tone sweep. This command is only 
        active in pure tone mode. See cmd 118 on how to set the user 
        frequency list.

        Set/Get User List (cmds 118/119):
        Although these commands were present in earlier software, they 
        were not functional until V3.60. This command expects a list type 
        as the first item in the list, and the list itself next. An FP35 
        list always includes the count of items in the list as the first 
        item in the list. 

        The available list types are:
         0 = Current Frequency list (read only)
         1 = Current distortion list (read only)
         2 = User Frequency list (read/write)
         3 = User distortion list (read/write)
         4 = Tone sweep settle list
         5 = I/O sweep settle list

        The User frequency and distortion list is only used by the Do 
        User Sweep command. Normal operation commands use the normal 
        default frequency list.









                                       43


        Calibration Screens:

        Starting with V3.20 The Major State of the calibration screens 
        was changed from Major 16 as a subset of the Main menu to be its 
        own major state (32). 

        Prior to V3.20, the calibration screens were off the Main default 
        config menu. There were two problems. The calibration screens all 
        shared the same minor state (so you didn't know which screen you 
        were in), and with the addition of another main config menu, there 
        was a minor state conflict. This was resolved by moving the 
        calibration screens to their own state and assigning a new minor 
        state number to each of the screens. The Time set screen was also 
        moved into the calibration screens since it is treated as one of 
        the calibration screens. 
         
        There are now several sub states off the calibration screen in 
        the FP35, the Main calibration screen is Minor State 0, the Mic 
        Calscreen is Minor State 2, the Custom Coupler Cal screen is 
        Minor State 3. There is no minor state for the custom probe 
        because it is transitory and does not communicate via RS232. It 
        always returns to the Mic Cal Screen when done. The Earphone Cal 
        screen is accessed from the main calibration screen as Major 32, 
        Minor 4. The Real time clock setup is accessed from the main
        calibration screen as major 32, minor state 1.

        You cannot directly use the Calibration minor screen to get to
        the minor calibration screens. You must first go to the main
        calibration screen Major(32):Minor(0). In addition, you must
        either be in the Top opening screen, or the Main Menu screen to
        get to the Calibration screen. You can not get there from a
        regular test screen.

        Main Default Menu Screens:

        As a part of the menu and calibration screen changes, the Main 
        Default Config menu was split into multiple screens to reduce the 
        clutter and to be able to add additional items (we were out of 
        room on the one screen). The additional menu screens are now 
        labeled 0, 1 and 2. The primary menu screen is still zero, the 
        advanced screen is 1 and the resets screen is 2.

        Starting with V3.30, the printer label can now be viewed in the 
        Main Menu screen set (using the back key). Its sub-state is 100.












                                       44


        Adjust Calibration (cmd 144)
        This command was added starting with V3.20 software. It is used 
        for factory automation to allow automatic adjustment of the 
        coupler microphone calibration. The single word value provided is 
        added to the current calibration sensitivity to increase or 
        decrease the coupler microphone response level. It would not 
        normally be called by a user program. Prior to V3.50, the value 
        increased or decreased the current coupler input sensitivty. 
        Starting with V3.50 software the value sets an absolute 
        sensitivity. The maximum setting is +-60.00dB.

        The Calibration screens are all limited in the RS232 commands 
        available. However, the custom coupler calibration screen is 
        special and has added commands to assist in factory automation. 
        The following commands were added to the Coupler calibration 
        screen. Normally though they would not be used by a user program.

           0 SetCalSourceAmplitude  (turns on source during calibration)
           1 SetCalDistortionStatus    (turns on distortion measurement)
           2 SetCalFrequencyValue        (sets the source frequency)
           4 SetCalNoiseReductionStatus  (sets noise reduction)
          21 GetCalSourceAmplitude       (opposite of cmd 0) 
          22 GetCalDistortionStatus      (opposite of cmd 1)
          23 GetCalFrequencyValue        (opposite of cmd 2)
          26 GetCalNoiseReductionStatus  (opposite of cmd 4)
          29 GetCalChamberLevelingStatus (returns chamber level status)
          31 GetCalChamberMicData        (gets coupler mic rms value)
          32 GetCalDistData             (gets distortion measurement)  36 
        GetCalGainStatus            (returns gain status (0) )   
         105 GetSpeakerSelection         (get int/ext speaker selection)   
         106 SetSpeakerSelection         (set int/ext speaker selection)   
         107 GetCalImpulseRejection      (get Imp Rej value)
         108 SetCalImpulseRejection      (set Imp Rej value in db*100)
         144 DoCalibration        (adjust coupler calibration in db*100)

        The DoCalibration command was also added to the Top Calibration 
        Screen in V3.20. In this screen, passing a parameter of 0 will 
        initiate the system calibration procedure. (Hardware calibration 
        must be done manually since it requires user intervention.)
        No other DoCalibration parameters are currently defined for the 
        top Calibration screen.















                                       45


                                Fitting Commands

        Set/Get Fit Rule (134/135):
        The Fit Rule is used in conjunction with other fitting parameters 
        to generate the desired target. The Fit Rule will also change the 
        average REUR, REDD and RECD values. 

          Selection:
            0 = NAL-RP      3=1/3 GAIN     6=DSL-LIN      14=OTHER
            1 = BERGER      4=1/2 GAIN     7=DSL-WDRC     15=DIRECT
            2 = POGO        5=2/3 GAIN     8=NAL-NL1    

        Fitting rules 9-13 are not currently defined. 
        The DSL rule is not available prior to V3.00 software.
        The NAL-NL1 fitting rule is not available prior to V3.10.

        Set/Get Client Age (140/141):
        The Client Age is used in conjunction with the Fitting Rule to 
        generate the desired target. The Client Age will also change the 
        average REUR, REDD and RECD values. It will not change these 
        values if they were measured. (V2.40+ software)

        Get/Set Compression Value (cmds 138/139)
        The Compression threshold value is used to set the compression 
        value for conversion formulas that use the value, such as DSL.
        This command became available in V3.00 software.

        Get/Set Transducer Location (cmd 142/143)
        This command allows you to set or get the location of the sound 
        field speaker. Available in software V3.10 and above. The Speaker 
        is Transducer (0), and the direction can be set to either zero(0) 
        or 45 degrees. The transducer location will also change the 
        average REUR and REDD values.

        Set/Get Aid Channels (cmds 158/159):
        The number of channels controls the number of channels that are 
        used in the fitting of an adaptive aid. 1 to 18 channels can be 
        selected. Fitting rules that do not use the number of channels in 
        the prescription default to one channel. If the result returned 
        is zero channels, it means that the number of channels is 
        unknown and should be presumed to be one channel. Available in 
        software V3.20 and above.

        Set/Get Aid Limiting (cmds 160/161):
        The aid limiting selection specifies the limiting method used by 
        the aid under test. Available in software V3.20 and above.

        It can be one of the following three items:

         None (0)         = no limiting (linear aid)
         Wideband (1)     = single channel agc aid
         Multichannel (2) = multichannel limiting agc aid




                                       46


        Set/Get Fit Type (cmds 152/153):
        The fit type specifies the type of fit being used. 
        Available in software V3.20 and above.

        It can be one of the three following:  

         Unknown (0)    = Unknown fit type (assume unilateral)
         Unilateral (1) = fitting applies to a single aid only
         Bilateral (2)  = fitting applies to both aids working together

        Set/Get Aid Venting (cmds 156/157):
        The Venting selection specifies the venting being used for the 
        aid under test. Available in software V3.20 and above.

        It can be one of the following:  

          FIT_VENT_OPEN =     0 : Ventout ( Open )
          FIT_VENT_OCCLUDED = 1 : Ventout ( Occluded )
          FIT_VENT_TIGHT =    2 : Ventout ( tight )
          FIT_VENT_MM1 =      3 : Ventout ( 1mm )
          FIT_VENT_MM2 =      4 : Ventout ( 2mm )
          FIT_VENT_MM3 =      5 : Ventout ( 3mm )

        Set/Get Aid Tubing (cmds 154/155):
        The Tubing selection specifies the tubing being used for the 
        (BTE) aid under test. Available in software V3.20 and above.

        It can be one of the following:  

          FIT_TUBING_NONE   = 0 : Tubing ( None ) [cic, itc, ite aids]
          FIT_TUBING_LIBBY3 = 1 : Tubing ( Libby 3 )
          FIT_TUBING_LIBBY4 = 2 : Tubing ( Libby 4 )
          FIT_TUBING_CFA2   = 3 : Tubing ( CFA #2 horn )
          FIT_TUBING_CFA3   = 4 : Tubing ( CFA #3 stepped bore )
          FIT_TUBING_No13   = 5 : Tubing ( #13 )
          FIT_TUBING_sixC5  = 6 : Tubing ( 6C5 )
          FIT_TUBING_sixC10 = 7 : Tubing ( 6C10 )



















                                       47


        Set/Get Fitting Parameters (Cmds 164/165):
        In addition to the individual fitting selection commands, you can 
        read or set them as a group using the Fitting Parameters 
        commands. Available in software V3.20 and above.

        The group consists of twelve items arranged as follows:

         typedef struct {
          INT16 FitRule;       //1  FX_Cur.FitRule;
          INT16 ClientAge;     //2  FX_Cur.ClientAge
          INT16 AidGroup;      //3  FX_Cur.AidGroup; (see below)
          INT16 AidType;       //4  FX_Cur.AidType;  (see below)
          INT16 AidCompression;//5  FX_Cur.AidCompression;
          INT16 OutputDevice;  //6  FX_Cur.AU_OutputDevice; (see below)
          INT16 TransducerLoc; //7  HD_SpeakerLoc;
          INT16 AidChannels;   //8  HD_AidChannels;
          INT16 AidLimiting;   //9  HD_AidLimiting;
          INT16 FitType;       //10 HD_FitType;
          INT16 AidVent;       //11 HD_AidVent;
          INT16 AidTubing;     //12 HD_AidTubing;
         }tFitParam;

         Output Device Selection:      [V3.20 and up] 
           UNKNOWN_DEVICE = 0      (left channel on only)
           SPEAKER_DEVICE = 1      (left channel on only)
           ONE_EARPHONE_DEVICE = 2 (left channel on only)
           TWO_EARPHONE_DEVICE = 3 (L+R channel on)
           <reserved> = 4
           TDH39_DEVICE = 5        (no source output)

        Aid Groups: LINEAR = 0, AGC = 1, ADAPTIVE = 2

        Aid Types : 0=None, 1=BTE,  2=ITE, 3=ITC, 4=CIC (canal), 
                    5=UEM (BTE with user's own earmold)






















                                       48


        Set/Get Aid Selection (123/124):

        This command can be used to set the aid group and or type. 
        If one value is passed, it is set as the aid group. Starting with 
        V2.40 software, a second value, Aid Type can be passed to select 
        the aid type to be used. If either value is passed as 8000H 
        (-32768), that value will be left at the current setting.

        There are preset delays in the FP35 for specific groups of aids. 
        Selecting an aid group will automatically set the predelay and 
        settle times for the aid. For special cases, the predetermined 
        delay times can be changed in the local menu or via RS232 for the 
        test after the aid group has been selected.

        The Default Aid Group selection for the FP35 is a Linear aid.
        The Default Aid Type selection for the FP35 is None.

        Default FP35 test delay selections:

        Aid Group    Test         Short      Long  
                     Predelay     Settle     Settle
        Linear       100mS        0mS        0mS
        AGC          500mS        50mS       100mS  
        Adaptive     3000mS       100mS      250mS 


        Aid Types: 0=None     2=ITE       4=CIC (canal)
                   1=BTE      3=ITC

        The RS232 commands 83 and 84 (Set/Get Measurement Delays) can be 
        used to change the measurement delay times. 

        Note long delays may make keyboard operation sluggish. 























                                       49


        Set/Get Output Device(106/105):
        This command selects whether the external speaker jack or 
        internal speaker jack is selected for measurements. This is used 
        when  a  separate external sound field speaker is used.  It  also 
        selects the type of transducer that is attached to the output.

        Prior to V3.20, this command was incorrectly implemented and did 
        not always properly select the intended output device. The 
        command has been slightly changed to correct the problems and to 
        provide enhanced operation. 

        The command was first provided in V2.00 and only provided 
        selection of the speaker jack to be external or internal. 

         Output Selection:        [V2.00 -> V2.13]
           0 = INTERNAL
           1 = EXTERNAL
           2 = AUTO SELECT (coupler=Int spkr, real-ear=ext spkr)

        ---
        The Output Device command was enhanced in V2.20 to include the 
        ability to select the type of audiometric output transducer to 
        use. The second parameter only worked in the audiogram screen. 
        The other screens only used the single parameter version of the 
        command.

         Output Selection:       [V2.20 -> V3.10] 
           0 = INTERNAL
           1 = EXTERNAL
           2 = AUTO SELECT (coupler=Int spkr, real-ear=ext spkr)

         Device Selection:       (available only in audiogram screen)
           UNKNOWN_DEVICE = 0
           SPEAKER_DEVICE = 1
           ONE_EARPHONE_DEVICE = 2
           TWO_EARPHONE_DEVICE = 3




















                                       50


        The Output Device command was enhanced and changed in V3.20 to 
        untangle the internal software problems and to provide better and 
        more flexible control of the output selections as well as making 
        the selections more compatible with other related RS232 commands.
        The revised format is backwards compatible, but provides added 
        control of the output jacks by using bit definitions to provide 
        direct control over the outputs. 

         Output Selection:       [V3.20 and up] 

          Bit  Description
           0 : 0=Internal,           1=External (spkr and tcoil) 
           1 : 0=Fixed,              1=Auto Int/Ext Select *
           2 : 0=Speaker on,         1=Speaker off (*note inversion)
           3 : 0=Earphone off,       1=Earphone on (L+R)
          4-7: <reserved>
           8 : 0=Auto Left channel   1=Mute Left channel output 
           9 : 0=Auto Right channel  1=Mute Right channel output
         8-15: <reserved>

        Note that the above definitions retain the old command number 
        format such that:
           0 = INTERNAL SPEAKER ON
           1 = EXTERNAL SPEAKER ON
           2 = AUTO SELECT SPKR (coupler=Int spkr, real-ear=ext spkr)

        To achieve this compatibility, the speaker control bit is 
        inverted so that the speaker is on when the bit is off. 

        To use this command, you should get the current Output Selection, 
        only change the bits you want to change, then send the result 
        back to the instrument. If the instrument cannot perform the 
        indicated selection, it will return an ILLegal command result and 
        the command will be ignored (nothing will be changed). 

        * If Auto Int/Ext select is on, bit zero is ignored. Internal and 
        External is controlled by the operational mode of the instrument.

        The sound field speaker can be independently turned on or off, 
        and switched between the internal jack and the external jack. 
        The speaker is driven by the left source channel and shares the 
        left source output with the left earphone driver. 

        On FP35 boards prior to rev -08 the right channel output is 
        always on and the connection is present in both the external and 
        the internal speaker jacks (ie is it not controlled by the 
        internal/external switching relay). The output is driven by the 
        right source channel and shares the right output with the 
        earphone driver. The only way to turn off the right output is to 
        not use the right source output channel (or physically unplug the 
        speaker). 





                                       51


        On FP35 boards starting with Rev -08, the seaper and earphone 
        jacks were changed. As a part of this change, the right output no 
        longer goes to the speaker jack. It was intended to be for 
        telecoil use, but was never implmented that way. The telecoil as 
        implemented uses either the earphone or the speaker jack and 
        works through the normal left channel source.

        The Earphone jack can be independently turned on or off. 
        The earphone driver is either on or off for both earphones. 
        Individual earphone output selection is controlled by presenting 
        or not presenting source output in the left or right channel 
        (see bits 8 and 9). 

        Because the earphone shares the same source output as the Speaker 
        (left channel), some slight interference between the earphone and 
        the speaker may occur if the earphone output is turned on at the 
        same time as the speaker. This is particularly an issue with low 
        impedance earphones (or a short on the earphone output) which can 
        disrupt the source. 

        If the left and/or right mute bit is turned on, the associated 
        channel source output will be muted (disabled). 

        If the mute bit is off, the source output muting is automatically 
        controlled by the software. If the earphone jack is on, both left 
        and right source outputs are enabled. If the earphone jack is 
        off, the right channel source output is automatically muted 
        (turned off). If the earphone is off and the speaker is off, the 
        left channel source output is automatically muted. 

        Note: The output selection control bits are overridden in the 
        audiogram screen. The Device Selection and software operating 
        mode will determine which output is selected. Only the 
        Internal/External and Auto control (bits 0 and 1) are functional 
        in the audiogram screen, and only when speaker is selected as the 
        audiometric output device. 

        The speaker jack has 16dB of gain over the left earphone jack 
        output (and the associated increase in the noise floor). 
        Unleveled, the earphone jack will produce an electrically flat 
        response source calibrated to 30mVrms at 110dB SPL. 
        The speaker jack output will be 16.07dB higher, or 191mVrms at 
        110dB.













                                       52


        The second parameter of the Output Device command remains the 
        same as in previous software versions with the exception that a 
        new selection has been added (TDH39). This selection only allows 
        entry of TDH39 assessment values in the audiometric screen. The 
        FP35 cannot perform audiometric measurements when the TDH39 
        earphone (it requires insert earphones or the sound field 
        speaker).

         Device Selection:      [V3.20 and up] 
           UNKNOWN_DEVICE = 0      (left channel on only)
           SPEAKER_DEVICE = 1      (left channel on only)
           ONE_EARPHONE_DEVICE = 2 (left channel on only)
           TWO_EARPHONE_DEVICE = 3 (L+R channel on)
           <reserved> = 4
           TDH39_DEVICE = 5        (no source output)

        If the Speaker is selected, the sound field speaker is used. If 
        the one earphone is selected, one insert earphone is used 
        (configured to use the left channel output only). If the speaker 
        is selected, you must level the sound field before the test 
        values will be valid. There is no measurement support for the 
        TDH39 device (it can only be used for assessment).


        Do User Message (67):
        This command is new starting with V3.50 software. Only 
        destination format 0 (pop-up text) is allowed. This feature is 
        only available in the Top (Navigation), Coupler and Real Ear 
        screens.

        This feature is only really usable when the screen is locked (cmd 
        62, option #2). Since any screen update will automatically remove 
        the displayed user message. A user message cannot be displayed if 
        an FP35 pop-up message is on the display. (The FP35 message has 
        priority.) 

        The message strings must be no longer than 56 characters. Longer 
        strings will be truncated. No more than 21 lines can be 
        displayed. Any more will be ignored. 

        A message can be removed by sending a blank (zero length) 
        Do User message command. If a User message is currently 
        displayed, and another message is sent, the new message will 
        replace the old one. 

        Text is top/left justified in the message box. The message box is 
        automatically sized to the message text provided and the box is 
        centered on the display.








                                       53


        Set/Get Display Mode (170/171):
        These commands set and get the display mode. These commands 
        became available starting with V3.40 software. If only the 
        internal monochrome display is available, only one parameter 
        (internal LCD palette is valid. 0=Light (default), 1=Dark.

        If the external VGA monitor is available, you can send/get an 
        additional parameter which selects the palette used for the 
        external VGA display. 

        The VGA palette consists of two nibbles, the lower nibble 
        controls the background palette selection, and the upper nibble 
        controls the foreground palette selection. 

         Data[0] LCD palette (0=Light, 1=Dark)
         Data[1] VGA palette (LoNIB=bkgd, HiNIB=frgd)

         LCD Palette            Select
          0 - Light ------------ 0000 (light background)
          1 - Dark ------------- 0001 (dark background)

         VGA Palette            Select
          0 - Black ------------ 0000
          1 - Blue ------------- 0001
          2 - Green ------------ 0010
          3 - Cyan ------------- 0011
          4 - Red -------------- 0100
          5 - Magenta ---------- 0101
          6 - Yellow ----------- 0110
          7 - Black ------------ 0111
          8 - Gray ------------- 1000
          9 - Light Blue ------- 1001
         10 - Light Green ------ 1010
         11 - Light Cyan ------- 1011
         12 - Light Red -------- 1100
         13 - Light Magenta ---- 1101
         14 - Light Yellow ----- 1110
         15 - White ------------ 1111

        If you set both the foreground and the background the VGA 
        palettes to the same colors (an invalid condition), the default 
        palette selections will be used instead. There are two 
        exceptions. If both palettes are set to black(0), the external 
        VGA will follow the internal LCD palette. This is the default 
        factory unprogrammed condition. If both VGA palettes are set to 
        White(15), the VGA display will follow an inverted internal LCD 
        palette selection. 

        If the external VGA display is not available, the get command 
        will not return the VGA palette and you cannot set the VGA 
        palette. If the external VGA display is available, the get 
        command will return the VGA palette and you can set the VGA 
        palette with the set command with the extra parameter.



                                       54


        Do measurement (85):
        This command was implemented starting with Version 3.50 software.
        The DoMeasurement command was not previously supported because it 
        violated the FIPP protocol as originally defined on the 6500. 
        The command as implemented on the 6500 didn't really save any 
        time anyway. 

        The command has been changed for the FP35 to allow the command to 
        work within the FIPP protocol. As a side effect, the changes 
        improve the functionality of the command and actually make it 
        usable. These changes are the new defined method of operation for 
        command 85.

        Specifically, as defined, the command can take up to three 
        optional parameters. Frequency[0], Amplitude[1] and 
        SettleTime[2]. The command returns the last known measurement 
        value (see command 31). If the source is pure tone and 
        distortion is on, the distortion measurment value will be 
        returned as the second returned value (see command 32). If 
        distortion is off, only the one measurment value will be 
        returned. If the source is composite, the current measurement 
        average (noise reduction count) will be returned instead.

        Warning: It is important to note that this command returns the 
        *current* measurement value. After the value is returned, the 
        frequency, amplitude and settle times will be updated based on 
        the values passed in the command. It is an easy trap to fall into 
        thinking that the measurment value is for the passed values. 

        An added advantage to this method is that the protocol overhead 
        can be used as a part of the settling time for the frequency and 
        amplitude changes being made. This means less wasted time waiting 
        on things to settle down. 

        The settle time is a temporary override of the selected settle 
        time in the instrument. It will only remain in effect as long as 
        no other signal/measurement changes are made in the FP35. Any 
        change made will revert to the selected settle time. 

        Any number of parameters can be sent to the FP35. If no 
        parameters are sent, then no changes are made, and the current 
        measurement value is returned. This is essentially the same as 
        calling command 31. If only the first parameter (frequency) is 
        sent, then only the frequency will be changed. If two parameters 
        are sent (frequency and amplitude), then both will be changed. If 
        settle time is sent as well, then it will be change for the next 
        measurement too. 

        If any parameter is passed with INVALID (0x8000) for a value, 
        then that parameter will be ignored. This allows changing only 
        the amplitude since a frequency parameter must always be sent if 
        the second amplitude parameter is to be sent.




                                       55


        In addition to the three defined parameters, the FP35 has two 
        additional custom parameter extentions available with command 85. 
        If a forth parameter is sent, the low byte of data sent will be 
        placed on the printer port data lines. If a fifth byte is sent, 
        the low byte will be placed on the printer port control lines. 
        If either parameter is is passed as INVALID (0x8000), the 
        parameter will be ignored. 

        If a printer port parameter is passed, the printer data lines 
        (low byte) and printer status (high byte) will be returned as a 
        third return value. In this case, if distortion is off, the 
        second (distortion data) value will be returned as INVALID 
        (0x8000). 

        The printer port control can be useful for controlling equipment 
        attached to the FP35. Because the original intended purpose was 
        to control attached microphones, when the data lines are changed, 
        the measurement settle time is set to a minimum of 100ms for the 
        next measurment. (If a longer settle time is programmed, it will 
        take precidence.) This allows for the hardware to settle down 
        after the transducer change has occurred. The settle time is not 
        added if only the control lines are changed. 

        Much of this additional time will be used up by the communication 
        overhead and the normal measurement cycle loop. If the frequency 
        or amplitude are also changed, the settle time may be affected by 
        the changes there as well. Changing the source will add an 
        additional 50ms delay. It should also be remembered that if the 
        input prescalers change, there may be an additional settle time 
        of up to 50ms may be added to allow the prescalers time to settle 
        down before a valid measurment can be made. Also remember that if 
        you are in pure tone measurment and noise reduction is set to 2x 
        or higher, the selected number of measurments will be made before 
        the measurement cycle is complete. 


                                 O'SCOPE Screen

        Starting with V3.50, the FP35 has an O'Scope feature available. 
        The o'scope screen can be entered by going to the default config 
        menu and selecting oscope as the screen to be attached to the F1 
        key. Pressing the F1 key will then take you to the o'scope 
        screen. 













                                       56


        -----------------------------------------------------------------

                              Printer Control Lines

                                          How it shows at the program
        Bit  Description                  level (software register)
        ---  -----------                  --------------------------
        7-5  not used set to zero         SW:0=normal operation
        4    Direction set it to 0        SW:0=normal operation, 
                                             1=use data lines as input
        3    SelectIn (*SW inverted)      SW:0=select the printer, 
                                             1=disable printer
        2    Initialize (non-inverted)    SW:0=initialize printer, 
                                             1=normal operation
        1    Auto Line Feed (HW inverted) SW:0=no autoLF added to CR,
                                             1=add LF to CR
        0    Strobe (HW inverted)         SW:0=idle (normal), 
                                             1=latch data in printer

        -----------------------------------------------------------------

                              Printer Status Lines

                                          How it shows at the program
        Bit  Description                  level (software register)
        ---  -------------                -----------------------
        7    Busy (HW inverted)           SW:0=printer is busy, 
                                             1=printer is ready
        6    Acknowledge (SW inverted)    SW:0=idle(ready), 
                                             1=acknowledged strobe
        5    No Paper (non-inverted)      SW:0=normal operation, 
                                             1=out of paper
        4    Selected (non-inverted)      SW:0=not selected, 
                                             1=printer is selected
        3    Fault/Error (SW inverted)    SW:0=normal operation, 
                                             1=fault condition
        2    Interrupt status (non-inv)   SW:0=normal, 
                                             1=interrupt pending
        1-0  not used                     SW:x=always ignore these bits
                                             (unknown state)
















                                       57


                     Centronics connector pin descriptions

        The FP35 software emulates this interface layer. 
         *=SW data reg value inverted from HW pin data.
         +=SW data reg value same as HW pin data.
         <- from printer.
         -> to printer.
         Cn=control bit.
         Sn=Status bit.
         Dn=data bit.

        25D - Sig - 36rib   : signal - desc at PRINTER end of cable
        -----------------------------------------------------------------
        *pin1<-C0<-pin1     : /strobe - set this low after setting data, 
                               wait for busy, then set high. (init high)
        +pin2-9->Dn->pin2-9 : data - data goes out/in here;  (init high)
                               pin2=data0, pin9=data7; high=1; low=0 

        +pin10<-S6<-pin 10  : /ack - this goes low for 10us to 15 us when 
                               data is accepted by printer.

        *pin11<-S7<-pin 11  : busy - high means the printer is busy;  
                               low means it is ready.

        +pn12<-S5<-pin 12   : perr - high means the printer is out of 
                               paper; low mean all ok

        +pin13<-S4<-pin 13  : select - high means printer selected;  via 
                               3.3K resistor to +5v on some printers.

        *pin14->C1->pin 14  : /autofeed - low causes lf to be added to 
                               cr. (init high)

                  pin 15    : <not used> - no connect
        ----------pin 16    : logic ground
        ----------pin 17    : chassis ground
                  pin 18    : <not used>
        pin18-25--pin 19-30 : return grounds

        +pin16->C2->pin 31  : initialize - normally high; set low (>100us)
                               to initialize printer. (init high)

        +pin15<-S3<-pin 32  : /error - low means printer error, off line, 
                               no paper; high means all ok.

        ----------pin 33    : return ground
                  pin 34    : <not used> - no connect
                  pin 35    : <not used - high via 3.3K resistor 
                               on some printers.

        *pin17->C3->pin 36  : /SelectIn - low means printer is selected; 
                               high disconnects printer. (init low)




                                       58


        Set/Get Analysis Selection (174/175):
        This command sets the current analysis selection. FP35 software 
        only supports these commands in version 3.50 and later software. 

        Selection : 
         DEFAULT_ANALYSIS = -1  Use the default analysis 
         NO_ANALYSIS      = 0   Don't do any analysis 
         TRMS_ANALYSIS    = 1   Do True RMS analysis
         CRMS_ANALYSIS    = 2   Do Corrected RMS analysis
         ERMS_ANALYSIS    = 3   Do Estimated RMS analysis
         DFT_ANALYSIS     = 4   Do DFT analysis
         FFT_ANALYSIS     = 5   Do FFT analysis
         RMS5K_ANALYSIS   = 6   Do reduced bandwith ERMS (200Hz->5KHz)


        Depending on operational conditions, either a limited set of 
        analysis methods may be available, or the selection may be 
        ignored altogether. 

        For Composite, the selection refers to the overall RMS analysis 
        method to be used. Default is ERMS. Composite Probe RMS analysis 
        can only be NO_ANALYSIS or ERMS. Any other selection is ignored 
        and ERMS is used.

        The probe input is not capable of doing a True RMS or Corrected 
        RMS analysis. It requires a DFT or FFT type analysis to 
        compensate for the non-flat hardware response.

        The coupler composite RMS analysis can use any 
        of the selections.

        The CRMS and DFT analysis methods require a reference frequency. 
        For those analysis methods, the current selected frequency is 
        used for puretone, or 1KHz for composite.

        Pure tone sweep with source off DFT analysis only (selection 
        is ignored).
        Pure tone sweep with source on.


















                                       59


                          FP35 Option Flags Description

        The FP35 contains a standard option flag indicator, a custom 
        option information word and an expanded option flag indicator 
        that can be read by requesting the version number from the FP35. 

        The software version request will return the Software version 
        installed in the FP35 followed by the option words. 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 bit flags low word
                  oooo - Standard option bit flags high word
                  cccc - Custom option low word
                  cccc - Custom option high word
                  0035 - 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 FP35'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 FP35. When the bit is on (1), the 
        option has been installed in the FP35 when the bit is off (0) the 
        option is not installed. Standard options are options which are 
        available on all FP35s. 

        Following the standard option flag indicator is the custom option 
        information word. The custom option word consists of a 16 bit 
        word which is used to indicate what if any custom option has been 
        installed on the FP35. 

        Custom options are options provided through a special 
        arrangement with a customer and are not available on standard 
        FP35s. Since custom option definitions can change over time, the 
        individual definitions are not covered by this appendix. If you 
        require specific information on a custom option you should 
        contact Frye Electronics for more information.











                                       60


        The custom option information consists of three parts. The low 
        byte (Intel format) defines the custom FP35. The number can be 0 
        thru 254. 255 is reserved for future expansion. A Zero indicates 
        a standard FP35 (non-custom). A non-zero value indicates a 
        customer specific custom FP35. 

        The high byte of the low word (Intel format) of the custom option 
        information is intended to be a set of bit flags used to identify 
        specific individual custom options that may operate across 
        multiple custom instruments. When the custom option bit flag is 
        on (1), the option has been installed in the FP35 when the bit is 
        off (0) the option is not installed. 

        The high word (Intel format) of the custom option information is 
        reserved for future use. It is intended to be used as an 
        expansion of the standard option flags should the definitions of 
        the standard flags be used up. The newer definition of the high 
        word of the custom option information redefines the word to be 
        Expanded option bit flags. Currently on the FP35, this expanded 
        definition is not used, but it may possibly change sometime in 
        the future if the expanded option bit flags required by new 
        software.

        Prior to V3.20 the custom option words were set to 0xffff in 
        some systems. This can be treated the same as no custom option 
        information being present. ie 0xffff is equivalent to 0x0000. 

        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 FP35 instrument will return a 35 in the 
        machine type word. The machine sub-type specifies the type of 
        FP35. The FP35 will return a sub-type of 0(normal), -1(boot), or 
        4(vga monitor).






















                                       61


        Standard Option Flags:

        Each FP35 contains a set of flags which tell what standard 
        options are installed on that instrument.  The flags are stored 
        as a 32 bit long-word and can be retrieved with the get version 
        message to the FP35. 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    - ENASNI  - <reserved>  (ANSI87)    ........ .......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  - <reserved>  (gain)      ...x.... ........
        (13)  13    - ENOES   - OES                     ..x..... ........
        (14)  14    - ENVAC   - <reserved>  (corfig)    .x...... ........
        (15)  15    - ENRS232 - RS232                   x....... ........
        ----second word----
        (16)   0    - ENCIC   - CIC                     ........ .......x
        (17)   1    - ANSI96  - ANSI96                  ........ ......x.
        (18)   2    - PROFILE - Profiler                ........ .....x..
        (19)   3    - DIGSPC  - Digital Speech          ........ ....x...
        (20)   4    - ENOP20  - <reserved>  (enh. DSP)  ........ ...x....
        (21)   5    - ENAN03  - ANSI03                  ........ ..x.....
        (22)   6    - ENOP22  - <reserved>              ........ .x......
        (23)   7    - ENOP23  - <reserved>              ........ x.......
        (24)   8    - ENOP24  - <reserved>              .......x ........
        (25)   9    - ENCRT   - <reserved>  (crt)       ......x. ........
        (26)  10    - ENPORT  - <reserved>  (portable)  .....x.. ........
        (27)  11    - ENCOMP  - Composite               ....x... ........
        (28)  12    - ENOP28  - <reserved>              ...x.... ........
        (29)  13    - ENOP29  - <reserved>              ..x..... ........
        (30)  14    - ENOP30  - <reserved>              .x...... ........
        (31)  15    - ENAUD   - 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. Note: not all the 
        options indicated are available on the FP35. Consult sales for 
        available options.





                                       62


        -med
        <eof>






















































                                       63
